Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce RowVector as the transpose of a vector #19670

Merged
merged 2 commits into from
Jan 13, 2017

Commits on Jan 12, 2017

  1. Moved all array transpose functions to LinAlg

    Transposition is a concept of linear algebra rather than
    multidimensional arrays of data.
    Andy Ferris committed Jan 12, 2017
    Configuration menu
    Copy the full SHA
    c168e71 View commit details
    Browse the repository at this point in the history

Commits on Jan 13, 2017

  1. Introduce RowVector as vector transpose

    `RowVector` is now defined as the `transpose` of any `AbstractVector`. If
    `v` is an `AbstractVector`, then it obeys the identity that `(v.').'
    === v` and the matrix multiplication rules follow that `(A * v).' == (v.' *
    A.')`. `RowVector` is a "view" and maintains the recursive nature of
    `transpose`. It is a subtype of `AbstractMatrix` and maintains the
    current shape and broadcast behavior for `v.'.
    
    Consequences include:
    
     * v'' is a vector, not a matrix
     * v'*v is a scalar, not a vector
     * v*v' is the outer produce (returns a matrix)
     * v*A (for A::AbstractMatrix) is removed, since its puprose was to
       provide a way of doing the outer product above, and is no longer
       necessary.
    
    Closes #4774
    Andy Ferris committed Jan 13, 2017
    Configuration menu
    Copy the full SHA
    af9a28f View commit details
    Browse the repository at this point in the history