InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
lerp.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_BASE_LERP_H_
2#define INFINI_OPS_BASE_LERP_H_
3
4#include "operator.h"
5
6namespace infini::ops {
7
8class Lerp : public Operator<Lerp> {
9 public:
10 Lerp(const Tensor input, const Tensor end, const double weight, Tensor out)
11 : input_shape_{input.shape()},
12 input_strides_{input.strides()},
13 input_type_{input.dtype()},
14 end_shape_{end.shape()},
15 end_strides_{end.strides()},
16 end_type_{end.dtype()},
17 out_shape_{out.shape()},
18 out_strides_{out.strides()},
19 out_type_{out.dtype()},
20 weight_{weight},
21 device_index_{out.device().index()} {}
22
23 Lerp(const Tensor input, const Tensor end, const Tensor weight, Tensor out)
24 : input_shape_{input.shape()},
25 input_strides_{input.strides()},
26 input_type_{input.dtype()},
27 end_shape_{end.shape()},
28 end_strides_{end.strides()},
29 end_type_{end.dtype()},
30 out_shape_{out.shape()},
31 out_strides_{out.strides()},
32 out_type_{out.dtype()},
33 weight_shape_{weight.shape()},
34 weight_strides_{weight.strides()},
35 weight_type_{weight.dtype()},
36 device_index_{out.device().index()} {}
37
40 [[deprecated("Use the explicit-output overload instead.")]]
41 Lerp(Tensor input, const Tensor end, const double weight)
42 : input_shape_{input.shape()},
43 input_strides_{input.strides()},
44 input_type_{input.dtype()},
45 end_shape_{end.shape()},
46 end_strides_{end.strides()},
47 end_type_{end.dtype()},
48 weight_{weight},
49 device_index_{input.device().index()} {}
50
53 [[deprecated("Use the explicit-output overload instead.")]]
54 Lerp(Tensor input, const Tensor end, const Tensor weight)
55 : input_shape_{input.shape()},
56 input_strides_{input.strides()},
57 input_type_{input.dtype()},
58 end_shape_{end.shape()},
59 end_strides_{end.strides()},
60 end_type_{end.dtype()},
61 weight_shape_{weight.shape()},
62 weight_strides_{weight.strides()},
63 weight_type_{weight.dtype()},
64 device_index_{input.device().index()} {}
65
66 virtual void operator()(const Tensor input, const Tensor end,
67 const double weight, Tensor out) const = 0;
68
69 virtual void operator()(const Tensor input, const Tensor end,
70 const Tensor weight, Tensor out) const = 0;
71
74 [[deprecated("Use an explicit-output overload instead.")]]
75 virtual void operator()(Tensor input, const Tensor end,
76 const double weight) const = 0;
77
80 [[deprecated("Use an explicit-output overload instead.")]]
81 virtual void operator()(Tensor input, const Tensor end,
82 const Tensor weight) const = 0;
83
84 protected:
85 Tensor::Shape input_shape_;
86
87 Tensor::Strides input_strides_;
88
89 DataType input_type_;
90
91 Tensor::Shape end_shape_;
92
93 Tensor::Strides end_strides_;
94
95 DataType end_type_;
96
97 Tensor::Shape out_shape_;
98
99 Tensor::Strides out_strides_;
100
101 DataType out_type_;
102
103 double weight_{};
104
105 Tensor::Shape weight_shape_;
106
107 Tensor::Strides weight_strides_;
108
109 DataType weight_type_;
110
112};
113
114} // namespace infini::ops
115
116#endif
Definition lerp.h:8
double weight_
Definition lerp.h:103
virtual void operator()(const Tensor input, const Tensor end, const Tensor weight, Tensor out) const =0
virtual void operator()(const Tensor input, const Tensor end, const double weight, Tensor out) const =0
Tensor::Shape out_shape_
Definition lerp.h:97
DataType weight_type_
Definition lerp.h:109
Lerp(const Tensor input, const Tensor end, const double weight, Tensor out)
Definition lerp.h:10
virtual void operator()(Tensor input, const Tensor end, const Tensor weight) const =0
Tensor::Strides end_strides_
Definition lerp.h:93
DataType input_type_
Definition lerp.h:89
Tensor::Strides out_strides_
Definition lerp.h:99
Tensor::Strides input_strides_
Definition lerp.h:87
Lerp(const Tensor input, const Tensor end, const Tensor weight, Tensor out)
Definition lerp.h:23
Lerp(Tensor input, const Tensor end, const Tensor weight)
Definition lerp.h:54
int device_index_
Definition lerp.h:111
DataType out_type_
Definition lerp.h:101
Tensor::Shape weight_shape_
Definition lerp.h:105
Lerp(Tensor input, const Tensor end, const double weight)
Definition lerp.h:41
Tensor::Strides weight_strides_
Definition lerp.h:107
virtual void operator()(Tensor input, const Tensor end, const double weight) const =0
DataType end_type_
Definition lerp.h:95
Tensor::Shape input_shape_
Definition lerp.h:85
Tensor::Shape end_shape_
Definition lerp.h:91
Definition generated/include/operator.h:282
Definition generated/include/operator.h:28
infini::rt::TensorView Tensor
Definition tensor.h:8