InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
linalg_vector_norm.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_BASE_LINALG_VECTOR_NORM_H_
2#define INFINI_OPS_BASE_LINALG_VECTOR_NORM_H_
3
4#include <optional>
5#include <vector>
6
7#include "operator.h"
8
9namespace infini::ops::linalg {
10
11class VectorNorm : public Operator<VectorNorm> {
12 public:
13 VectorNorm(const Tensor input, const double ord,
14 const std::optional<std::vector<int64_t>> dim, const bool keepdim,
15 const std::optional<DataType> dtype, Tensor out)
16 : input_shape_{input.shape()},
17 input_strides_{input.strides()},
18 input_type_{input.dtype()},
19 out_shape_{out.shape()},
20 out_strides_{out.strides()},
21 out_type_{out.dtype()},
22 ord_{ord},
23 dim_{dim},
24 keepdim_{keepdim},
25 dtype_{dtype},
26 device_index_{out.device().index()} {}
27
28 virtual void operator()(const Tensor input, const double ord,
29 const std::optional<std::vector<int64_t>> dim,
30 const bool keepdim,
31 const std::optional<DataType> dtype,
32 Tensor out) const = 0;
33
34 protected:
35 Tensor::Shape input_shape_;
36
37 Tensor::Strides input_strides_;
38
39 DataType input_type_;
40
41 Tensor::Shape out_shape_;
42
43 Tensor::Strides out_strides_;
44
45 DataType out_type_;
46
47 double ord_{};
48
49 std::optional<std::vector<int64_t>> dim_{};
50
51 bool keepdim_{};
52
53 std::optional<DataType> dtype_{};
54
56};
57
58} // namespace infini::ops::linalg
59
60#endif
Definition generated/include/operator.h:282
Definition linalg_vector_norm.h:11
std::optional< std::vector< int64_t > > dim_
Definition linalg_vector_norm.h:49
bool keepdim_
Definition linalg_vector_norm.h:51
VectorNorm(const Tensor input, const double ord, const std::optional< std::vector< int64_t > > dim, const bool keepdim, const std::optional< DataType > dtype, Tensor out)
Definition linalg_vector_norm.h:13
Tensor::Strides input_strides_
Definition linalg_vector_norm.h:37
DataType out_type_
Definition linalg_vector_norm.h:45
std::optional< DataType > dtype_
Definition linalg_vector_norm.h:53
virtual void operator()(const Tensor input, const double ord, const std::optional< std::vector< int64_t > > dim, const bool keepdim, const std::optional< DataType > dtype, Tensor out) const =0
int device_index_
Definition linalg_vector_norm.h:55
Tensor::Shape out_shape_
Definition linalg_vector_norm.h:41
Tensor::Shape input_shape_
Definition linalg_vector_norm.h:35
DataType input_type_
Definition linalg_vector_norm.h:39
Tensor::Strides out_strides_
Definition linalg_vector_norm.h:43
double ord_
Definition linalg_vector_norm.h:47
Definition linalg_cholesky.h:6
infini::rt::TensorView Tensor
Definition tensor.h:8