decl_opr('MatrixMul', pyname='matrix_mul_v0', inputs=['opr0', 'opr1'], params='MatrixMulV0', desc='matrix multiplication') decl_opr('BatchedMatrixMul', pyname='batched_matrix_mul_v0', inputs=['opr0', 'opr1'], params='MatrixMulV0', desc='batched matrix multiplication: input shapes should be ' '(n, a, b) and (n, b, c) (assuming transposeA and transeposeB are ' 'False); then :math:`n` independent matrix multiplications would be ' 'performed and output shape is (n, a, c)') decl_opr('MatrixMul', inputs=['opr0', 'opr1'], params=[('param', 'MatrixMul'), ('execution_polity', 'ExecutionPolicy')], desc='matrix multiplication', version=2, has_out_dtype=True) decl_opr('BatchedMatrixMul', inputs=['opr0', 'opr1'], params=[('param', 'MatrixMul'), ('execution_polity', 'ExecutionPolicy')], desc='batched matrix multiplication: input shapes should be ' '(n, a, b) and (n, b, c) (assuming transposeA and transeposeB are ' 'False); then :math:`n` independent matrix multiplications would be ' 'performed and output shape is (n, a, c)', version=2, has_out_dtype=True) decl_opr('Dot', inputs=['opr0', 'opr1'], params='Empty', desc='dot-product of two vectors; inputs must be 1-dimensional, ' 'and scalar input can be automatically broadcasted') decl_opr('MatrixInverse', inputs=['src'], params='Empty', desc='inverse a batch of matrices; the input must has shape ' '``[..., n, n]``') decl_opr('SVD', inputs=['src'], params='SVD', desc='Computes the singular value decompositions of matrices. ' 'The input must has shape ``[..., M, N]``.') decl_opr('Cross', inputs=['A', 'B'], params='Cross', desc='computes the cross product of two (arrays of) vectors.') # vim: ft=python