![]() |
planc
Parallel Lowrank Approximation with Non-negativity Constraints
|
#include "dimtree/ddttensor.h"
Go to the source code of this file.
Functions | |
void | vdMul (long int n, double *a, double *b, double *c) |
void | printM_ColMajor (double *M, long int num_cols, long int num_rows) |
void | printM_RowMajor (double *M, long int num_cols, long int num_rows) |
void | print_Ktensor_RowMajor (ktensor *Y) |
void | print_tensor (tensor *T, long int show_data) |
void | print_dgemm_inputs (CBLAS_ORDER dgemm_layout, CBLAS_TRANSPOSE transA, CBLAS_TRANSPOSE transB, long int m, long int n, long int k, double alpha, long int strideA, long int strideB, double beta, long int strideC) |
void | print_dgemv_inputs (CBLAS_ORDER dgemv_layout, CBLAS_TRANSPOSE transA, long int m, long int n, double alpha, long int T_offset, long int tensor_stride, long int A_offset, long int A_stride, double beta, long int output_col_stride, long int output_stride) |
void | reorder_Factors (ktensor *Y, double **reordered_Factors, long int *reordered_Dims, long int n) |
void | update_Partial_Hadamards (ktensor *Y, long int *indexers, double *partial_Hadamards, double **reordered_Factors) |
void | KR_RowMajor (ktensor *Y, double *C, long int n) |
void | Multi_KR_RowMajor (ktensor *Y, double *C, long int n) |
void | Upper_Hadamard_RowMajor (long int nRows, long int nCols, double *A, double *B, double *C) |
long int | CompareM (double *A, double *B, long int nRows, long int nCols, double eps) |
void | MTTKRP_RowMajor (tensor *T, double *K, double *C, long int rank, long int n) |
void | MHada_RowMajor (ktensor *Y, double **SYRKs, double *V, long int n) |
void | do_SYRKs_RowMajor (ktensor *Y, double **SYRKs) |
void | normalize_Factor_Matrix_RowMajor (ktensor *Y, long int n) |
void | normalize_Ktensor_RowMajor (ktensor *Y) |
void | TransposeM (double *A, double *A_T, long int rowsA, long int colsA) |
void | Full_nMode_Matricization_RowMajor (tensor *T, ktensor *Y, long int n) |
double | approximation_Error (double *X, double *KR, ktensor *Y, long int n) |
double | CP_ALS_efficient_error_computation (ktensor *Y, long int n, double *MTTKRP, double *V, double *S, double tensor_norm) |
CP_ALS_efficient_error_computation(); needs to compute dotXX - 2*dot XY + dotYY 1) Y, ktensor 2) n, mode that was just updated or is being updated 3) MTTKRP, the MTTKRP of the nth mode 4) V, the multiple hadamard product for the nth mode 5) S, pointer to the storage space for the SYRK of the nth factor matrix 6) tensor_norm, the fro norm of the tensor input. More... | |
double | CP_ALS_naive_error_computation (tensor *T, ktensor *Y, double *X, double *KRP, long int n) |
Computes the error between T and Y. More... | |
void | dims_check (long int *dims, long int length) |
void | reorder_Ktensor (ktensor *Y, ktensor *nY, long int n) |
void | compute_KRP_Indices (long int j, ktensor *Y, long int *indeces) |
void | wrapper_Parallel_Multi_revKRP (ktensor *Y, long int num_threads, double *KRP) |
Wrapper function for the reverse KRP of a ktensor Y 1) Ktensor object 2) number of threads to use 3) KRP, output KRP More... | |
void | Gen_Tensor (ktensor *Y, tensor *T, long int R, long int N, long int *D, double noise) |
void | parallel_Multi_KR_RowMajor (ktensor *Y, double *C, long int start, long int end) |
void | parallel_KR_RowMajor (ktensor *Y, double *C, long int start, long int end) |
parallel_KR_RowMajor(); Does the parallel KRP of the factor matrices in the ktensor Y More... | |
void | parallel_update_Partial_Hadamards (ktensor *Y, long int *indexers, double *partial_Hadamards) |
void | compute_Iteration_Space (long int thread_id, long int num_threads, long int iter_space, long int *start, long int *end) |
void | clean_Up_Gen_Tensor (ktensor *Y, tensor *T) |
void | process_inputs (long int argc, char *argv[], tensor_inputs *inputs) |
void | destroy_inputs (tensor_inputs *inputs) |
void | LR_Ktensor_Reordering_newY (ktensor *Y, ktensor *nY, long int n, direction D) |
void | LR_Ktensor_Reordering_existingY (ktensor *Y, ktensor *nY, long int n, direction D) |
void | remove_mode_Ktensor (ktensor *Y, long int n) |
void | destruct_Ktensor (ktensor *Y, long int clear_factors) |
void | destruct_Tensor (tensor *T) |
void | tensor_data_swap (tensor *t1, tensor *t2) |
void | LR_tensor_Reduction (tensor *T, tensor *nT, long int n, direction D) |
void | ktensor_copy_constructor (ktensor *Y, ktensor *nY) |
direction | opposite_direction (direction D) |
double approximation_Error | ( | double * | X, |
double * | KR, | ||
ktensor * | Y, | ||
long int | n | ||
) |
Definition at line 718 of file ddttensor.hpp.
void clean_Up_Gen_Tensor | ( | ktensor * | Y, |
tensor * | T | ||
) |
Definition at line 1186 of file ddttensor.hpp.
long int CompareM | ( | double * | A, |
double * | B, | ||
long int | nRows, | ||
long int | nCols, | ||
double | eps | ||
) |
Definition at line 397 of file ddttensor.hpp.
void compute_Iteration_Space | ( | long int | thread_id, |
long int | num_threads, | ||
long int | iter_space, | ||
long int * | start, | ||
long int * | end | ||
) |
Definition at line 1162 of file ddttensor.hpp.
void compute_KRP_Indices | ( | long int | j, |
ktensor * | Y, | ||
long int * | indeces | ||
) |
Definition at line 847 of file ddttensor.hpp.
double CP_ALS_efficient_error_computation | ( | ktensor * | Y, |
long int | n, | ||
double * | MTTKRP, | ||
double * | V, | ||
double * | S, | ||
double | tensor_norm | ||
) |
CP_ALS_efficient_error_computation(); needs to compute dotXX - 2*dot XY + dotYY 1) Y, ktensor 2) n, mode that was just updated or is being updated 3) MTTKRP, the MTTKRP of the nth mode 4) V, the multiple hadamard product for the nth mode 5) S, pointer to the storage space for the SYRK of the nth factor matrix 6) tensor_norm, the fro norm of the tensor input.
Definition at line 743 of file ddttensor.hpp.
double CP_ALS_naive_error_computation | ( | tensor * | T, |
ktensor * | Y, | ||
double * | X, | ||
double * | KRP, | ||
long int | n | ||
) |
Computes the error between T and Y.
||T->data - Y||_2 Does so by forming the explicit approximatino of T form Y subtracting the two matricized tensors and taking the 2norm.
Definition at line 775 of file ddttensor.hpp.
void destroy_inputs | ( | tensor_inputs * | inputs | ) |
Definition at line 1256 of file ddttensor.hpp.
void destruct_Ktensor | ( | ktensor * | Y, |
long int | clear_factors | ||
) |
Definition at line 1348 of file ddttensor.hpp.
void destruct_Tensor | ( | tensor * | T | ) |
Definition at line 1370 of file ddttensor.hpp.
void dims_check | ( | long int * | dims, |
long int | length | ||
) |
Definition at line 788 of file ddttensor.hpp.
void do_SYRKs_RowMajor | ( | ktensor * | Y, |
double ** | SYRKs | ||
) |
Definition at line 591 of file ddttensor.hpp.
void Full_nMode_Matricization_RowMajor | ( | tensor * | T, |
ktensor * | Y, | ||
long int | n | ||
) |
Definition at line 689 of file ddttensor.hpp.
void Gen_Tensor | ( | ktensor * | Y, |
tensor * | T, | ||
long int | R, | ||
long int | N, | ||
long int * | D, | ||
double | noise | ||
) |
Definition at line 899 of file ddttensor.hpp.
void KR_RowMajor | ( | ktensor * | Y, |
double * | C, | ||
long int | n | ||
) |
Definition at line 278 of file ddttensor.hpp.
void ktensor_copy_constructor | ( | ktensor * | Y, |
ktensor * | nY | ||
) |
Definition at line 1413 of file ddttensor.hpp.
void LR_Ktensor_Reordering_existingY | ( | ktensor * | Y, |
ktensor * | nY, | ||
long int | n, | ||
direction | D | ||
) |
Definition at line 1297 of file ddttensor.hpp.
void LR_Ktensor_Reordering_newY | ( | ktensor * | Y, |
ktensor * | nY, | ||
long int | n, | ||
direction | D | ||
) |
Definition at line 1264 of file ddttensor.hpp.
void LR_tensor_Reduction | ( | tensor * | T, |
tensor * | nT, | ||
long int | n, | ||
direction | D | ||
) |
Definition at line 1388 of file ddttensor.hpp.
void MHada_RowMajor | ( | ktensor * | Y, |
double ** | SYRKs, | ||
double * | V, | ||
long int | n | ||
) |
Definition at line 562 of file ddttensor.hpp.
void MTTKRP_RowMajor | ( | tensor * | T, |
double * | K, | ||
double * | C, | ||
long int | rank, | ||
long int | n | ||
) |
Definition at line 413 of file ddttensor.hpp.
void Multi_KR_RowMajor | ( | ktensor * | Y, |
double * | C, | ||
long int | n | ||
) |
Definition at line 303 of file ddttensor.hpp.
void normalize_Factor_Matrix_RowMajor | ( | ktensor * | Y, |
long int | n | ||
) |
Definition at line 614 of file ddttensor.hpp.
void normalize_Ktensor_RowMajor | ( | ktensor * | Y | ) |
Definition at line 628 of file ddttensor.hpp.
direction opposite_direction | ( | direction | D | ) |
Definition at line 1434 of file ddttensor.hpp.
void parallel_KR_RowMajor | ( | ktensor * | Y, |
double * | C, | ||
long int | start, | ||
long int | end | ||
) |
parallel_KR_RowMajor(); Does the parallel KRP of the factor matrices in the ktensor Y
Definition at line 1066 of file ddttensor.hpp.
void parallel_Multi_KR_RowMajor | ( | ktensor * | Y, |
double * | C, | ||
long int | start, | ||
long int | end | ||
) |
Definition at line 993 of file ddttensor.hpp.
void parallel_update_Partial_Hadamards | ( | ktensor * | Y, |
long int * | indexers, | ||
double * | partial_Hadamards | ||
) |
Definition at line 1097 of file ddttensor.hpp.
void print_dgemm_inputs | ( | CBLAS_ORDER | dgemm_layout, |
CBLAS_TRANSPOSE | transA, | ||
CBLAS_TRANSPOSE | transB, | ||
long int | m, | ||
long int | n, | ||
long int | k, | ||
double | alpha, | ||
long int | strideA, | ||
long int | strideB, | ||
double | beta, | ||
long int | strideC | ||
) |
Definition at line 110 of file ddttensor.hpp.
void print_dgemv_inputs | ( | CBLAS_ORDER | dgemv_layout, |
CBLAS_TRANSPOSE | transA, | ||
long int | m, | ||
long int | n, | ||
double | alpha, | ||
long int | T_offset, | ||
long int | tensor_stride, | ||
long int | A_offset, | ||
long int | A_stride, | ||
double | beta, | ||
long int | output_col_stride, | ||
long int | output_stride | ||
) |
Definition at line 149 of file ddttensor.hpp.
void print_Ktensor_RowMajor | ( | ktensor * | Y | ) |
Definition at line 56 of file ddttensor.hpp.
void print_tensor | ( | tensor * | T, |
long int | show_data | ||
) |
Definition at line 89 of file ddttensor.hpp.
void printM_ColMajor | ( | double * | M, |
long int | num_cols, | ||
long int | num_rows | ||
) |
Definition at line 19 of file ddttensor.hpp.
void printM_RowMajor | ( | double * | M, |
long int | num_cols, | ||
long int | num_rows | ||
) |
Definition at line 39 of file ddttensor.hpp.
void process_inputs | ( | long int | argc, |
char * | argv[], | ||
tensor_inputs * | inputs | ||
) |
Definition at line 1209 of file ddttensor.hpp.
void remove_mode_Ktensor | ( | ktensor * | Y, |
long int | n | ||
) |
Definition at line 1323 of file ddttensor.hpp.
void reorder_Factors | ( | ktensor * | Y, |
double ** | reordered_Factors, | ||
long int * | reordered_Dims, | ||
long int | n | ||
) |
Definition at line 189 of file ddttensor.hpp.
void reorder_Ktensor | ( | ktensor * | Y, |
ktensor * | nY, | ||
long int | n | ||
) |
Definition at line 823 of file ddttensor.hpp.
void tensor_data_swap | ( | tensor * | t1, |
tensor * | t2 | ||
) |
Definition at line 1378 of file ddttensor.hpp.
void TransposeM | ( | double * | A, |
double * | A_T, | ||
long int | rowsA, | ||
long int | colsA | ||
) |
Definition at line 668 of file ddttensor.hpp.
void update_Partial_Hadamards | ( | ktensor * | Y, |
long int * | indexers, | ||
double * | partial_Hadamards, | ||
double ** | reordered_Factors | ||
) |
Definition at line 204 of file ddttensor.hpp.
void Upper_Hadamard_RowMajor | ( | long int | nRows, |
long int | nCols, | ||
double * | A, | ||
double * | B, | ||
double * | C | ||
) |
Definition at line 372 of file ddttensor.hpp.
void vdMul | ( | long int | n, |
double * | a, | ||
double * | b, | ||
double * | c | ||
) |
Definition at line 12 of file ddttensor.hpp.
void wrapper_Parallel_Multi_revKRP | ( | ktensor * | Y, |
long int | num_threads, | ||
double * | KRP | ||
) |
Wrapper function for the reverse KRP of a ktensor Y 1) Ktensor object 2) number of threads to use 3) KRP, output KRP
Definition at line 872 of file ddttensor.hpp.