@@ -14,18 +14,14 @@ namespace deepx::tf
1414 class NewTensor : public TF
1515 {
1616 public:
17- NewTensor ()
17+ NewTensor (vector<Param> args, vector<Param> returns )
1818 {
1919 this ->name = " newtensor" ;
20- this ->funcdef ();
20+ this ->args = args;
21+ this ->returns = returns;
2122 }
22- // support polymorphism=0 or 1
23- NewTensor (int polymorphism = 0 )
24- {
25- this ->name = " newtensor" ;
26- this ->funcdef (polymorphism);
27- }
28- NewTensor (string text, bool call = false )
23+
24+ NewTensor (string text)
2925 {
3026 this ->parse (text);
3127 if (this ->name != " newtensor" )
@@ -146,22 +142,6 @@ namespace deepx::tf
146142 return 0 ;
147143 };
148144
149- void funcdef (int polymorphism = 0 ) override
150- {
151- switch (polymorphism)
152- {
153-
154- case 1 :
155- this ->args .push_back (Param (" shape" , DataCategory::Var, Precision::String));
156- break ;
157- case 0 :
158- default :
159- this ->args .push_back (Param (" shape" , DataCategory::Vector, Precision::Int32));
160- break ;
161- }
162- this ->returns .push_back (Param (" tensor1" , DataCategory::Tensor, Precision::Any));
163- };
164-
165145 string math_formula () const override
166146 {
167147 return " T1 = zeros(shape)" ;
@@ -174,7 +154,7 @@ namespace deepx::tf
174154 CopyTensor ()
175155 {
176156 this ->name = " copytensor" ;
177- this -> funcdef ();
157+
178158 }
179159 CopyTensor (string text)
180160 {
@@ -192,11 +172,7 @@ namespace deepx::tf
192172 // tensorfunc::copytensor(*src,*dst);
193173 return 0 ;
194174 }
195- void funcdef (int polymorphism = 0 ) override
196- {
197- this ->args .push_back (Param (" src" , DataCategory::Tensor, Precision::Any));
198- this ->args .push_back (Param (" dst" , DataCategory::Tensor, Precision::Any));
199- }
175+
200176 string math_formula () const override
201177 {
202178 return " T2.data = T1.data" ;
@@ -209,7 +185,7 @@ namespace deepx::tf
209185 CloneTensor ()
210186 {
211187 this ->name = " clonetensor" ;
212- this -> funcdef ();
188+
213189 }
214190 int run (mem::Mem &mem, string &error) override
215191 {
@@ -220,11 +196,7 @@ namespace deepx::tf
220196 return 0 ;
221197 }
222198
223- void funcdef (int polymorphism = 0 ) override
224- {
225- this ->args .push_back (Param (" src" , DataCategory::Tensor, Precision::Any));
226- this ->args .push_back (Param (" dst" , DataCategory::Var, Precision::String));
227- }
199+
228200 string math_formula () const override
229201 {
230202 return " T2 = T1.clone()" ;
@@ -237,7 +209,7 @@ namespace deepx::tf
237209 DelTensor ()
238210 {
239211 this ->name = " deltensor" ;
240- this -> funcdef ();
212+
241213 }
242214 DelTensor (string text)
243215 {
@@ -253,10 +225,7 @@ namespace deepx::tf
253225 mem.delete_tensor (name);
254226 return 0 ;
255227 }
256- void funcdef (int polymorphism=0 ) override
257- {
258- this ->args .push_back (Param (" tensor1" , DataCategory::Tensor, Precision::Any));
259- }
228+
260229 string math_formula () const override
261230 {
262231 return " del T1" ;
0 commit comments