imate
C++/CUDA Reference
c_csc_affine_matrix_function.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: Copyright 2021, Siavash Ameli <sameli@berkeley.edu>
3
* SPDX-License-Identifier: BSD-3-Clause
4
* SPDX-FileType: SOURCE
5
*
6
* This program is free software: you can redistribute it and/or modify it
7
* under the terms of the license found in the LICENSE.txt file in the root
8
* directory of this source tree.
9
*/
10
11
12
#ifndef _C_LINEAR_OPERATOR_C_CSC_AFFINE_MATRIX_FUNCTION_H_
13
#define _C_LINEAR_OPERATOR_C_CSC_AFFINE_MATRIX_FUNCTION_H_
14
15
16
// =======
17
// Headers
18
// =======
19
20
#include "../_definitions/types.h"
// LongIndexType
21
#include "
./c_affine_matrix_function.h
"
// cAffineMatrixFunction
22
#include "
./c_csc_matrix.h
"
// cCSCMatrix
23
24
25
// ============================
26
// c CSC Affine Matrix Function
27
// ============================
28
29
template
<
typename
DataType>
30
class
cCSCAffineMatrixFunction
:
public
cAffineMatrixFunction
<DataType>
31
{
32
public
:
33
34
// Member methods
35
cCSCAffineMatrixFunction
(
36
const
DataType* A_data_,
37
const
LongIndexType
* A_indices_,
38
const
LongIndexType
* A_index_pointer_,
39
const
LongIndexType
num_rows_,
40
const
LongIndexType
num_columns_);
41
42
cCSCAffineMatrixFunction
(
43
const
DataType* A_data_,
44
const
LongIndexType
* A_indices_,
45
const
LongIndexType
* A_index_pointer_,
46
const
LongIndexType
num_rows_,
47
const
LongIndexType
num_colums_,
48
const
DataType* B_data_,
49
const
LongIndexType
* B_indices_,
50
const
LongIndexType
* B_index_pointer_);
51
52
virtual
~cCSCAffineMatrixFunction
();
53
54
virtual
void
dot
(
55
const
DataType* vector,
56
DataType* product);
57
58
virtual
void
transpose_dot
(
59
const
DataType* vector,
60
DataType* product);
61
62
protected
:
63
64
// Member data
65
cCSCMatrix<DataType>
A
;
66
cCSCMatrix<DataType>
B
;
67
};
68
69
#endif
// _C_LINEAR_OPERATOR_C_CSC_AFFINE_MATRIX_FUNCTION_H_
c_affine_matrix_function.h
c_csc_matrix.h
cAffineMatrixFunction
Base class for affine matrix functions of one parameter.
Definition:
c_affine_matrix_function.h:41
cCSCAffineMatrixFunction
Definition:
c_csc_affine_matrix_function.h:31
cCSCAffineMatrixFunction::B
cCSCMatrix< DataType > B
Definition:
c_csc_affine_matrix_function.h:66
cCSCAffineMatrixFunction::transpose_dot
virtual void transpose_dot(const DataType *vector, DataType *product)
Computes the matrix vector product:
Definition:
c_csc_affine_matrix_function.cpp:168
cCSCAffineMatrixFunction::A
cCSCMatrix< DataType > A
Definition:
c_csc_affine_matrix_function.h:65
cCSCAffineMatrixFunction::dot
virtual void dot(const DataType *vector, DataType *product)
Computes the matrix vector product:
Definition:
c_csc_affine_matrix_function.cpp:112
cCSCAffineMatrixFunction::~cCSCAffineMatrixFunction
virtual ~cCSCAffineMatrixFunction()
Definition:
c_csc_affine_matrix_function.cpp:86
cCSCAffineMatrixFunction::cCSCAffineMatrixFunction
cCSCAffineMatrixFunction(const DataType *A_data_, const LongIndexType *A_indices_, const LongIndexType *A_index_pointer_, const LongIndexType num_rows_, const LongIndexType num_columns_)
Constructor. Matrix B is assumed to be the identity matrix.
Definition:
c_csc_affine_matrix_function.cpp:29
cCSCMatrix
Definition:
c_csc_matrix.h:30
LongIndexType
int LongIndexType
Definition:
types.h:60
imate
_c_linear_operator
c_csc_affine_matrix_function.h
Generated on Mon Jan 22 2024 00:04:57 for imate by
1.9.1