Represents the pointwise, or Hadamard, product of two matrices.
equivalent to multiplying this matrix by itself, power times
Consider this Matrix as the r2 row of a matrix.
Consider this Matrix as the r2 row of a matrix. The current matrix must be a row, which is to say, its row type must be Unit.
Users should never need this.
Users should never need this. This is the current Matrix2, but in most optimized form. Usually, you will just do matrix operations until you eventually call write or toTypedPipe
the result is the same as considering everything on the this to be like a 1 value so we just sum, using only a monoid on VecV, where this Matrix has the value true.
the result is the same as considering everything on the this to be like a 1 value so we just sum, using only a monoid on VecV, where this Matrix has the value true. This is useful for graph propagation of monoids, such as sketchs like HyperLogLog, BloomFilters or CountMinSketch. TODO This is a special kind of product that could be optimized like Product is
Row L2 normalization (can only be called for Double) After this operation, the sum(|x|^2) along each row will be 1.
This is the future Matrix API. The old one will be removed in scalding 0.10.0 (or 1.0.0).
Create Matrix2 instances with methods in the Matrix2 object. Note that this code optimizes the order in which it evaluates matrices, and replaces equivalent terms to avoid recomputation. Also, this code puts the parenthesis in the optimal place in terms of size according to the sizeHints. For instance: (A*B)*C == A*(B*C) but if B is a 10 x 106 matrix, and C is 106 x 100, it is better to do the B*C product first in order to avoid storing as much intermediate output.
NOTE THIS REQUIREMENT: for each formula, you can only have one Ring[V] in scope. If you evaluate part of the formula with one Ring, and another part with another, you must go through a TypedPipe (call toTypedPipe) or the result may not be correct.