blob: 62b2535a28b73ee0e48dc2f89dad55b50fbe2dc7 [file] [log] [blame]
"""@file matrix_ops.py_in
@brief Help message functions for all matrix operations
@namespace linalg
"""
matrix_arg_str = """
------------------------------------------------------------
MATRIX ARGUMENTS
------------------------------------------------------------
A string containing multiple named arguments of the form "name=value".
This argument is used as a container for multiple parameters related to a single
matrix.
The following parameters are supported for this string argument:
- row: (Default: 'row_num') Name of the column containing row index of the matrix.
- col: (Default: 'col_num') Name of the column containing column index of the matrix.
- val: (Default: 'val') Name of the column containing the entries of the matrix.
For a dense matrix, this should be of an ARRAY type.
These string arguments can be NULL if the default values are to be used.
If not provided, 'out_args' uses same value as the first input args.
'out_args' can also include an additional formatting argument:
- fmt: The format (dense/sparse) for output matrix. If not specified output
format is inferred from the format of input.
"""
output_str = """
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output table ('matrix_r' above) has the following columns
-- Dense format
'{row}' -- Row index for each row of the matrix
'{val}' -- Each row vector
-- Sparse format
'{row}' -- Row index for each element
'{col}' -- Column index for each element
'{val}' -- Value for each element
The column names in {} are set using the options provided in 'out_args'.
"""
def _get_help_message(schema_madlib, message, function_name, functionality_str,
usage_str, **kwargs):
format_dict = dict(locals().items() + globals().items())
if not message:
help_string = """
------------------------------------------------------------
SUMMARY
------------------------------------------------------------
Functionality: {functionality_str}
For more details on the function usage:
SELECT {schema_madlib}.{function_name}('usage');
For more details on the two input formats (dense or sparse):
SELECT {schema_madlib}.matrix_info();
"""
elif message.lower().strip() in ['usage', 'help', '?']:
help_string = usage_str
else:
help_string = "No such option. Use {schema_madlib}.{function_name}('usage')"
return help_string.format(**format_dict)
def matrix_info_help_message(schema_madlib, message, **kwargs):
"""
Args:
@param schema_madlib
@param message
@param kwargs
Returns:
STR.
"""
message = message.lower()
if not message:
help_string = """
Run "SELECT matrix_info('dense');" or "SELECT matrix_info('sparse');"
for examples of the specific data format.
"""
elif message == 'dense':
help_string = """
A dense matrix is represented as a distributed collection of 1-D arrays.
An example 3x10 matrix would be the below table:
row_id | row_vec
--------+-------------------------
1 | {{9,6,5,8,5,6,6,3,10,8}}
2 | {{8,2,2,6,6,10,2,1,9,9}}
3 | {{3,9,9,9,8,6,3,9,5,6}}
The column names above can be user-defined - the matrix functions provide options
to input these column names. The default names expected are 'row_num' and 'val'.
"""
elif message == 'sparse':
help_string = """
A sparse matrix is represented using the row and column indices for each
non-zero entry of the matrix. This representation is useful for sparse matrices,
containing multiple zero elements. Given below is an example of a sparse 4x7 matrix
with just 6 out of 28 entries being non-zero.
Note: There should be exactly one tuple that has a NULL for the '<em>value</em>'
column. This tuple gives the dimensionality of the sparse matrix (the
dimensionality cannot be determined just by the entries since the last
row/column could have all zeros).
row_id | col_id | value
--------+--------+-------
1 | 1 | 9
1 | 5 | 6
1 | 7 | 6
2 | 1 | 8
3 | 1 | 3
3 | 2 | 9
4 | 7 | 0
(6 rows)
The column names above can be user-defined - the matrix functions provide options
to input these column names. The default names expected are 'row_num', 'col_num'
and 'val'.
"""
else:
help_string = "No such option. Use {schema_madlib}.matrix_add('usage')"
return help_string.format(schema_madlib=schema_madlib)
# ----------------------------------------------------------------------
def matrix_identity_help_message(schema_madlib, message, **kwargs):
""" Help message for Create an identity matrix
"""
functionality_str = "Create a square identity matrix of specified dimension"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_identity(
dim -- Integer specifying the dimensionality of output.
'matrix_out' -- Name of the table to store result matrix
'out_args' -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_identity",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_diag_help_message(schema_madlib, message, **kwargs):
""" Help message for Creating a diagonal matrix
"""
functionality_str = "Create a diagonal matrix using provided diagonal elements"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_diag(
diag_elements -- The array containing diagonal elements.
'matrix_out' -- Name of output matrix.
'out_args' -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_diag",
functionality_str, usage_str)
# ------------------------------------------------------------------------------
def matrix_extract_diag_help_message(schema_madlib, message, **kwargs):
""" Help message for main diagonal of the matrix
"""
functionality_str = "Extract the main diagonal of a square matrix."
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_extract_diag(
'matrix_in' -- Name of the table containing input matrix
'in_args' -- String argument containing matrix_in arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is an array containing the main diagonal.
"""
return _get_help_message(schema_madlib, message, "matrix_extract_diag",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_add_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix addition
"""
functionality_str = "Compute addition of two matrices"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_add(
'matrix_a', -- Name of the table containing 1st matrix
'a_args', -- String argument containing matrix_a specific arguments
-- (see matrix arguments below for options)
'matrix_b', -- Name of the table containing 2nd matrix
'b_args', -- String argument containing matrix_b specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
'out_args', -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_add",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_zeros_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix initialization with zeros
"""
functionality_str = "Create a matrix with all elements set to zero"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_zeros(
row_dim, -- The number of row of matrix initialized with zeros
col_dim, -- The number of column of matrix initialized with zeros
'matrix_out' -- Name of the table to store result matrix
'out_args', -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_zeros",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_ones_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix initialization with ones
"""
functionality_str = "Create a matrix with all elements set to one"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_ones(
row_dim, -- The row dimension of output matrix
col_dim, -- The column dimension of output matrix
'matrix_out' -- Name of output matrix
'out_args', -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_ones",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_sub_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix subtraction
"""
functionality_str = "Compute subtraction of two matrices"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_sub(
'matrix_a', -- Name of the table containing 1st matrix
'a_args', -- String argument containing matrix_a specific arguments
-- (see matrix arguments below for options)
'matrix_b', -- Name of the table containing 2nd matrix
'b_args', -- String argument containing matrix_b specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
'out_args', -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_sub",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_ndims_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix dimension
"""
if not message:
help_string = """
------------------------------------------------------------
SUMMARY
------------------------------------------------------------
Functionality: Matrix dimension information
This function provides dimension information of a matrix either in dense or sparse format.
For more details on the function usage:
SELECT {schema_madlib}.matrix_ndims('usage');
For more details on the two input formats (dense or sparse):
SELECT {schema_madlib}.matrix_info();
"""
elif message.lower().strip() in ['usage', 'help', '?']:
help_string = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_ndims(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in arguments
-- (see matrix arguments below for options)
'is_block' -- where the table is in block format
);
------------------------------------------------------------
MATRIX ARGUMENTS
------------------------------------------------------------
A string containing multiple named arguments of the form "name=value".
This argument is used as a container for multiple parameters related to a single
matrix.
The following parameters are supported for this string argument:
row: (Default: 'row_num') Name of the column containing row index of the matrix.
col: (Default: 'col_num') Name of the column containing column index of the matrix.
val: (Default: 'val') Name of the column containing the entries of the matrix.
For a dense matrix, this should be of an ARRAY type.
These string arguments can be NULL if the default values are to be used.
If not provided, out_args uses same value as in_args.
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
An array with matrix_in dimension information in format of (number of rows,number of columns)
"""
else:
help_string = "No such option. Use {schema_madlib}.matrix_trans('usage')"
return help_string.format(schema_madlib=schema_madlib)
# ------------------------------------------------------------------------------
def matrix_elem_mult_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix multiplication by element
"""
functionality_str = "Compute element-wise multiplication of two matrices"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_elem_mult(
'matrix_a', -- Name of the table containing 1st matrix
'a_args', -- String argument containing matrix_a specific arguments
-- (see matrix arguments below for options)
'matrix_b', -- Name of the table containing 2nd matrix
'b_args', -- String argument containing matrix_b specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
'out_args', -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_elem_mult",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_mult_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix Multiplicationn
"""
functionality_str = "Compute multiplication of two matrices"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_mult(
'matrix_a', -- Name of the table containing 1st matrix
'a_args', -- String argument containing matrix_a specific arguments
-- (see matrix arguments below for options)
'matrix_b', -- Name of the table containing 2nd matrix
'b_args', -- String argument containing matrix_b specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
'out_args', -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_mult",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_trans_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix transposition
"""
functionality_str = "Compute transpose of a matrix"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_trans(
'matrix_in', -- Name of the table containing the matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
'out_args', -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_trans",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_extract_row_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix row extraction
"""
functionality_str = "Extract row from a matrix"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_extract_row(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'index' -- Index of the desired row
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_extract_row",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_extract_col_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix column extraction
"""
functionality_str = "Extract col from a matrix"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_extract_col(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'index' -- Index of the desired col
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_extract_col",
functionality_str, usage_str)
# ------------------------------------------------------------
def _min_max_help_message(schema_madlib, message, suffix, **kwargs):
""" Common help message for Matrix min and max
"""
functionality_str = "Compute {0} along a specified dimension".format(suffix)
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {1}.matrix_{0}(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'dim' -- Dimension. Should either be 1 or 2. This value indicates
the dimension to operate along i.e. whose length reduces
to 1 in the result
'matrix_r' -- Name of the table to store result matrix
'fetch_index' -- If true, corresponding index of each {0} value is returned
);
{{matrix_arg_str}}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output table ('matrix_r' above) has the following columns
'{0}' -- Vector of ordered {0} values
'index' -- Vector of ordered corresponding indices of {0} values
""".format(suffix, schema_madlib)
return _get_help_message(schema_madlib, message, "matrix_" + suffix,
functionality_str, usage_str)
def matrix_max_help_message(schema_madlib, message, **kwargs):
return _min_max_help_message(schema_madlib, message, 'max')
def matrix_min_help_message(schema_madlib, message, **kwargs):
return _min_max_help_message(schema_madlib, message, 'min')
# ------------------------------------------------------------
def matrix_norm_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix norm
"""
if not message:
help_string = """
------------------------------------------------------------
SUMMARY
------------------------------------------------------------
Functionality: Matrix norm
This function computes matrix norm values either in dense or sparse format.
For more details on the function usage:
SELECT {schema_madlib}.matrix_norm('usage');
For more details on the two input formats (dense or sparse):
SELECT {schema_madlib}.matrix_info();
"""
elif message.lower().strip() in ['usage', 'help', '?']:
help_string = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_norm(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'norm_type' -- Optional, default 'fro'. It supports
'one' or 'o' 1 norm
<float(>0)> element-wise norm
'inf' or 'i' infinite norm
'max' or 'm' max absolute value norm
'fro' or 'f' F norm
);
------------------------------------------------------------
MATRIX ARGUMENTS
------------------------------------------------------------
A string containing multiple named arguments of the form "name=value".
This argument is used as a container for multiple parameters related to a single
matrix.
The following parameters are supported for this string argument:
- row: (Default: 'row_num') Name of the column containing row index of the matrix.
- col: (Default: 'col_num') Name of the column containing column index of the matrix.
- val: (Default: 'val') Name of the column containing the entries of the matrix.
For a dense matrix, this should be of an ARRAY type.
These string arguments can be NULL if the default values are to be used.
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is a value which computes matrix norm.
"""
else:
help_string = "No such option. Use {schema_madlib}.matrix_norm('usage')"
return help_string.format(schema_madlib=schema_madlib)
# ------------------------------------------------------------
def _agg_help_message(schema_madlib, message, suffix, **kwargs):
""" Common help message for aggregate operations on Matrix
"""
functionality_str = "Compute the {0} along a specific dimension".format(suffix)
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {1}.matrix_{0}(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'dim' -- Dimension. Should either be 1 or 2. This value indicates
the dimension to operate along i.e. whose length reduces
to 1 in the result
);
{{matrix_arg_str}}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is a vector containing the {0} along given dimension.
""".format(suffix, schema_madlib)
return _get_help_message(schema_madlib, message, "matrix_" + suffix,
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_sum_help_message(schema_madlib, message, **kwargs):
return _agg_help_message(schema_madlib, message, "sum")
def matrix_mean_help_message(schema_madlib, message, **kwargs):
return _agg_help_message(schema_madlib, message, "mean")
def matrix_scalar_mult_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix scalar multiply
"""
functionality_str = "Compute multiplication of matrix with a scalar"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_scalar_mult(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'scalar' -- Scalar value used to be multiplied with matrix_in
'matrix_out', -- Name of the table containing result
'out_args', -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
{output_str}
"""
return _get_help_message(schema_madlib, message, "matrix_scalar_mult",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_vec_mult_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix vector multiply
"""
functionality_str = "Compute multiplication of matrix with a vector"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_vec_mult(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'vector' -- Vector value used to be multiplied with matrix_in
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is an array representing the result of the vector multiplication.
"""
return _get_help_message(schema_madlib, message, "matrix_vec_mult",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_eigen_help_message(schema_madlib, message, **kwargs):
""" Help message for Matrix eigen values extraction
"""
functionality_str = "Extract eigen values of matrix"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_eigen(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output are eigen values of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_eigen",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_pinv_help_message(schema_madlib, message, **kwargs):
""" Help message for generic inverse of matrix
"""
functionality_str = "Generic inverse of matrix"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_pinv(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out', -- Name of the table to store result matrix
'out_args' -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is generic inverse of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_pinv",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_cholesky_help_message(schema_madlib, message, **kwargs):
""" Help message for cholesky decomposition of matrix
"""
functionality_str = "Matrix cholesky decomposition"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_cholesky(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out_prefix' -- Name prefix of the table to store result matrix L
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is cholesky decomposition of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_cholesky",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_qr_help_message(schema_madlib, message, **kwargs):
""" Help message for QR decomposition of matrix
"""
functionality_str = "Matrix QR decomposition"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_qr(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out_prefix', -- Name prefix of the table to store result matrix
'out_args' -- String argument containing matrix_r specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is QR decomposition of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_qr",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_lu_help_message(schema_madlib, message, **kwargs):
""" Help message for LU decomposition of matrix
"""
functionality_str = "Matrix LU decomposition"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_lu(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out_prefix', -- Name of the table to store result matrix P
'out_args' -- String argument containing matrix_p specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is LU decomposition of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_lu",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_nuclear_norm_help_message(schema_madlib, message, **kwargs):
""" Help message for computing nuclear norm of matrix
"""
functionality_str = "Matrix nuclear norm computing"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_nuclear_norm(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is nuclear norm computing of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_nuclear_norm",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_rank_help_message(schema_madlib, message, **kwargs):
""" Help message for computing rank of matrix
"""
functionality_str = "Matrix rank computing"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_rank(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is rank computing of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_rank",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_inverse_help_message(schema_madlib, message, **kwargs):
""" Help message for computing inverse of matrix
"""
functionality_str = "Matrix inverse computing"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_inverse(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
'out_args' -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is inverse of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_inverse",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_sparsify_help_message(schema_madlib, message, **kwargs):
""" Help message for sparsifying a matrix
"""
functionality_str = "Matrix sparsify"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_sparsify(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
'out_args' -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is the sparse version of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_sparsify",
functionality_str, usage_str)
# ------------------------------------------------------------
def matrix_densify_help_message(schema_madlib, message, **kwargs):
""" Help message for densifying a matrix
"""
functionality_str = "Matrix densify"
usage_str = """
------------------------------------------------------------
USAGE
------------------------------------------------------------
SELECT {schema_madlib}.matrix_densify(
'matrix_in', -- Name of the table containing input matrix
'in_args', -- String argument containing matrix_in specific arguments
-- (see matrix arguments below for options)
'matrix_out' -- Name of the table to store result matrix
'out_args' -- String argument containing matrix_out specific arguments
-- (see matrix arguments below for options)
);
{matrix_arg_str}
------------------------------------------------------------
OUTPUT
------------------------------------------------------------
The output is the dense version of the matrix.
"""
return _get_help_message(schema_madlib, message, "matrix_densify",
functionality_str, usage_str)
# ------------------------------------------------------------