public function augmentAbove(Matrix $b) : self
    {
        if ($this->m > 0 and $b->n() !== $this->n) {
            throw new DimensionalityMismatchException('Matrix A requires'
                . " $this->n columns but Matrix B has {$b->n()}.");
        }

        $b = array_merge($b->asArray(), $this->a);

        return self::quick($b);
    }