"""@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 'value' 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 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) # ------------------------------------------------------------