Skip to content

why matrix needs to have a numerical value? #38

Description

@telephon

See: ambisonictoolkit/atk-sc3#132

Let's relax the constraint in the Matrix class (MathLib) that values must be numbers. Since sclang automatically lifts math operations to UGens, it seems overly narrow.

EDIT: I've made a ticklist for methods that work with UGens, Arrays, and Functions as matrix entries, from inspecting the code.

class methods

  • *newClear (rows, cols)
  • *with (array)
  • *withFlatArray (rows, cols, array)
  • *newIdentity (n)
  • *fill (rows, cols, func)
  • *newDiagonal (diagonal)
  • *newDFT (n)
  • *newIDFT (n)
  • *mul (m1, m2)

instance methods

  • rows ()
  • cols ()
  • shape ()
  • printOn (stream)
  • printItemsOn (stream)
  • postmln ()
  • at (row, col)
  • get (row, col)
  • put (row, col, val)
  • putRow (row, vals)
  • putCol (col, vals)
  • fillRow (row, func)
  • fillCol (col, func)
  • exchangeRow (posA, posB)
  • exchangeCol (posA, posB)
  • collect (func)
  • addRow (rowVals)
  • insertRow (col, rowVals)
  • addCol (colVals)
  • insertCol (row, colVals)
  • getRow (row)
  • getCol (col)
  • getDiagonal ()
  • fromRow (row)
  • fromCol (col)
  • removeRow (row)
  • removeAt (row)
  • removeCol (col)
  • doRow (row, func)
  • doCol (col, func)
  • doMatrix (function)
  • rowsDo (func)
  • colsDo (func)
  • sub (row, col)
  • getSub (rowStart, colStart, rowLength, colHeight)
  • postSub (rowStart, colStart, rowLength, colHeight, round)
  • asArray ()
  • flat ()
  • flatten ()
  • flop ()
  • mul (multplier2)
  • * (that)
  • mulMatrix (aMatrix)
  • mulNumber (aNumber)
  • + (summand2)
  • addNumber (aNumber)
  • - (summand2)
  • subNumber (aNumber)
  • == (matrix2)
  • det ()
  • cofactor (row, col)
  • adjoint ()
  • inverse ()
  • gram ()
  • grammian ()
  • pseudoInverse ()
  • trace ()
  • norm ()
  • sum ()
  • sumRow (row)
  • sumCol (col)
  • isSquare ()
  • isSingular ()
  • isRegular ()
  • isSymmetric ()
  • isAntiSymmetric ()
  • isPositive ()
  • isNonNegative ()
  • isNormal ()
  • isZero ()
  • isIntegral ()
  • isIdentity ()
  • isDiagonal ()
  • isOrthogonal ()
  • isIdempotent ()
  • sumCols (function)
  • sumRows (function)
  • mean ()
  • center (mean)
  • cov (mean)
  • covML (mean)

Extensions

  • solve (b, method)
  • lowerTriangularSolve (b)
  • unitLowerTriangularSolve (b)
  • lowerTriangularInverse ()
  • unitLowerTriangularInverse ()
  • upperTriangularSolve (b)
  • unitUpperTriangularSolve (b)
  • upperTriangularInverse ()
  • unitUpperTriangularInverse ()
  • gauss (b)
  • choleski ()
  • choleskiSolve (b)
  • crout ()
  • croutSolve (b)
  • croutPivot ()
  • croutPivotSolve (b, pivot)
  • doolittle ()
  • doolittleSolve (b)
  • doolittlePivot ()
  • doolittlePivotSolve (b, pivot)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions