InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
linalg_eigh.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_BASE_LINALG_EIGH_H_
2#define INFINI_OPS_BASE_LINALG_EIGH_H_
3
4#include <string>
5
6#include "operator.h"
7
8namespace infini::ops::linalg {
9
10class Eigh : public Operator<Eigh> {
11 public:
12 Eigh(const Tensor input, const std::string UPLO, Tensor eigvals,
13 Tensor eigvecs)
14 : input_shape_{input.shape()},
15 input_strides_{input.strides()},
16 input_type_{input.dtype()},
17 eigvals_shape_{eigvals.shape()},
18 eigvals_strides_{eigvals.strides()},
19 eigvals_type_{eigvals.dtype()},
20 eigvecs_shape_{eigvecs.shape()},
21 eigvecs_strides_{eigvecs.strides()},
22 eigvecs_type_{eigvecs.dtype()},
23 UPLO_{UPLO},
24 device_index_{eigvals.device().index()} {}
25
26 virtual void operator()(const Tensor input, const std::string UPLO,
27 Tensor eigvals, Tensor eigvecs) const = 0;
28
29 protected:
30 Tensor::Shape input_shape_;
31
32 Tensor::Strides input_strides_;
33
34 DataType input_type_;
35
36 Tensor::Shape eigvals_shape_;
37
38 Tensor::Strides eigvals_strides_;
39
40 DataType eigvals_type_;
41
42 Tensor::Shape eigvecs_shape_;
43
44 Tensor::Strides eigvecs_strides_;
45
46 DataType eigvecs_type_;
47
48 std::string UPLO_{};
49
51};
52
53} // namespace infini::ops::linalg
54
55#endif
Definition generated/include/operator.h:282
Definition linalg_eigh.h:10
DataType eigvals_type_
Definition linalg_eigh.h:40
Tensor::Shape eigvecs_shape_
Definition linalg_eigh.h:42
Tensor::Shape input_shape_
Definition linalg_eigh.h:30
DataType input_type_
Definition linalg_eigh.h:34
Tensor::Shape eigvals_shape_
Definition linalg_eigh.h:36
std::string UPLO_
Definition linalg_eigh.h:48
virtual void operator()(const Tensor input, const std::string UPLO, Tensor eigvals, Tensor eigvecs) const =0
Tensor::Strides eigvecs_strides_
Definition linalg_eigh.h:44
Eigh(const Tensor input, const std::string UPLO, Tensor eigvals, Tensor eigvecs)
Definition linalg_eigh.h:12
Tensor::Strides eigvals_strides_
Definition linalg_eigh.h:38
Tensor::Strides input_strides_
Definition linalg_eigh.h:32
DataType eigvecs_type_
Definition linalg_eigh.h:46
int device_index_
Definition linalg_eigh.h:50
Definition linalg_cholesky.h:6
infini::rt::TensorView Tensor
Definition tensor.h:8