#include "../../common.h" void nerv_matrix_(add)(Matrix *c, const Matrix *a, const Matrix *b, MATRIX_ELEM alpha, MATRIX_ELEM beta, CuContext *context, Status *status); void nerv_matrix_(mul)(Matrix *c, const Matrix *a, const Matrix *b, MATRIX_ELEM alpha, MATRIX_ELEM beta, int ta, int tb, CuContext *context, Status *status); void nerv_matrix_(sigmoid)(Matrix *a, const Matrix *b, CuContext *context, Status *status); void nerv_matrix_(sigmoid_grad)(Matrix *nerr, const Matrix *err, const Matrix *output, CuContext *context, Status *status); void nerv_matrix_(tanh)(Matrix *a, const Matrix *b, CuContext *context, Status *status); void nerv_matrix_(tanh_grad)(Matrix *nerr, const Matrix *err, const Matrix *output, CuContext *context, Status *status); void nerv_matrix_(relu)(Matrix *a, const Matrix *b, CuContext *context, Status *status); void nerv_matrix_(relu_grad)(Matrix *nerr, const Matrix *err, const Matrix *output, CuContext *context, Status *status); Matrix *nerv_matrix_(softmax)(Matrix *b, const Matrix *a, CuContext *context, Status *status); Matrix *nerv_matrix_(rowsum)(Matrix *a, CuContext *context, Status *status); Matrix *nerv_matrix_(colsum)(Matrix *a, CuContext *context, Status *status); Matrix *nerv_matrix_(colsame)(Matrix *a, const Matrix *ref, CuContext *context, Status *status); Matrix *nerv_matrix_(rowmax)(Matrix *a, CuContext *context, Status *status); void nerv_matrix_(rowmax_idx)(Matrix *a, Matrix **b, Matrix **idx, CuContext *context, Status *status); void nerv_matrix_(add_row)(Matrix *b, const Matrix *a, double beta, CuContext *context, Status *status); void nerv_matrix_(clip)(Matrix *self, double val1, double val2, CuContext *context, Status *status); void nerv_matrix_(fill)(Matrix *self, double val, CuContext *context, Status *status); void nerv_matrix_(diagonalize)(Matrix *self, CuContext *context, Status *status); void nerv_matrix_(set_values_by_mask)(Matrix *self, Matrix *mask, double val, CuContext *context, Status *status); void nerv_matrix_(copy_fromd)(Matrix *a, const Matrix *b, int a_begin, int b_begin, int b_end, CuContext *context, Status *status); void nerv_matrix_(copy_fromh)(Matrix *a, const Matrix *b, int a_begin, int b_begin, int b_end, CuContext *context, Status *status); void nerv_matrix_(copy_toh)(Matrix *a, const Matrix *b, int a_begin, int a_end, int b_begin, CuContext *context, Status *status); Matrix *nerv_matrix_(trans)(Matrix *a, CuContext *context, Status *status); void nerv_matrix_(mul_elem)(Matrix *c, const Matrix *a, const Matrix *b, CuContext *context, Status *status); void nerv_matrix_(log_elem)(Matrix *b, const Matrix *a, CuContext *context, Status *status); Matrix *nerv_matrix_(decompress)(const Matrix *a, int orig_col, CuContext *context, Status *status); void nerv_matrix_(copy_rows_fromh_by_idx)(Matrix *a, const Matrix *b, const Matrix *idx, int b_begin, CuContext *context, Status *status); void nerv_matrix_(copy_rows_fromd_by_idx)(Matrix *a, const Matrix *b, const Matrix *idx, int b_begin, CuContext *context, Status *status); void nerv_matrix_(copy_rows_fromd_by_colidx)(Matrix *a, const Matrix *b, const Matrix *idx, int b_begin, CuContext *context, Status *status); #ifdef __NERV_FUTURE_CUDA_7 void nerv_matrix_(update_select_rows_by_rowidx)(Matrix *c, const Matrix *a, const Matrix *idx, double alpha, double beta, CuContext *context, Status *status); void nerv_matrix_(update_select_rows_by_colidx)(Matrix *c, const Matrix *a, const Matrix *idx, double alpha, double beta, CuContext *context, Status *status); #endif void nerv_matrix_(expand_frm)(Matrix *a, const Matrix *b, int cont, CuContext *context, Status *status); void nerv_matrix_(rearrange_frm)(Matrix *a, const Matrix *b, int step, CuContext *context, Status *status); void nerv_matrix_(scale_rows_by_col)(Matrix *a, const Matrix *b, CuContext *context, Status *status); void nerv_matrix_(scale_rows_by_row)(Matrix *a, const Matrix *b, CuContext *context, Status *status); void nerv_matrix_(prefixsum_row)(Matrix *a, const Matrix *b, CuContext *context, Status *status); void nerv_matrix_(thres_mask)(Matrix *a, Matrix *b, double thres, double low, double high, CuContext *context, Status *status); void nerv_matrix_(rand_uniform)(Matrix *a, CuContext *context, Status *status); #ifdef __NERV_FUTURE_CUDA_7 void nerv_matrix_(update_select_rows_by_rowidx)(Matrix *c, const Matrix *a, const Matrix *idx, double alpha, double beta, CuContext *context, Status *status); void nerv_matrix_(update_select_rows_by_colidx)(Matrix *c, const Matrix *a, const Matrix *idx, double alpha, double beta, CuContext *context, Status *status); #endif void nerv_matrix_(prefixsum_row)(Matrix *a, const Matrix *b, CuContext *context, Status *status);