go-hep.org/x/hep@v0.38.1/groot/rtree/rfunc/rfunc_f64_gen.go (about) 1 // Copyright ©2020 The go-hep Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Automatically generated. DO NOT EDIT. 6 7 package rfunc 8 9 import ( 10 "fmt" 11 ) 12 13 // FuncI32ToF64 implements rfunc.Formula 14 type FuncI32ToF64 struct { 15 rvars []string 16 arg0 *int32 17 fct func(arg00 int32) float64 18 } 19 20 // NewFuncI32ToF64 return a new formula, from the provided function. 21 func NewFuncI32ToF64(rvars []string, fct func(arg00 int32) float64) *FuncI32ToF64 { 22 return &FuncI32ToF64{ 23 rvars: rvars, 24 fct: fct, 25 } 26 } 27 28 // RVars implements rfunc.Formula 29 func (f *FuncI32ToF64) RVars() []string { return f.rvars } 30 31 // Bind implements rfunc.Formula 32 func (f *FuncI32ToF64) Bind(args []any) error { 33 if got, want := len(args), 1; got != want { 34 return fmt.Errorf( 35 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 36 got, want, 37 ) 38 } 39 { 40 ptr, ok := args[0].(*int32) 41 if !ok { 42 return fmt.Errorf( 43 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*int32", 44 f.rvars[0], args[0], 45 ) 46 } 47 f.arg0 = ptr 48 } 49 return nil 50 } 51 52 // Func implements rfunc.Formula 53 func (f *FuncI32ToF64) Func() any { 54 return func() float64 { 55 return f.fct( 56 *f.arg0, 57 ) 58 } 59 } 60 61 var ( 62 _ Formula = (*FuncI32ToF64)(nil) 63 ) 64 65 // FuncF32ToF64 implements rfunc.Formula 66 type FuncF32ToF64 struct { 67 rvars []string 68 arg0 *float32 69 fct func(arg00 float32) float64 70 } 71 72 // NewFuncF32ToF64 return a new formula, from the provided function. 73 func NewFuncF32ToF64(rvars []string, fct func(arg00 float32) float64) *FuncF32ToF64 { 74 return &FuncF32ToF64{ 75 rvars: rvars, 76 fct: fct, 77 } 78 } 79 80 // RVars implements rfunc.Formula 81 func (f *FuncF32ToF64) RVars() []string { return f.rvars } 82 83 // Bind implements rfunc.Formula 84 func (f *FuncF32ToF64) Bind(args []any) error { 85 if got, want := len(args), 1; got != want { 86 return fmt.Errorf( 87 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 88 got, want, 89 ) 90 } 91 { 92 ptr, ok := args[0].(*float32) 93 if !ok { 94 return fmt.Errorf( 95 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float32", 96 f.rvars[0], args[0], 97 ) 98 } 99 f.arg0 = ptr 100 } 101 return nil 102 } 103 104 // Func implements rfunc.Formula 105 func (f *FuncF32ToF64) Func() any { 106 return func() float64 { 107 return f.fct( 108 *f.arg0, 109 ) 110 } 111 } 112 113 var ( 114 _ Formula = (*FuncF32ToF64)(nil) 115 ) 116 117 // FuncToF64 implements rfunc.Formula 118 type FuncToF64 struct { 119 fct func() float64 120 } 121 122 // NewFuncToF64 return a new formula, from the provided function. 123 func NewFuncToF64(rvars []string, fct func() float64) *FuncToF64 { 124 return &FuncToF64{ 125 fct: fct, 126 } 127 } 128 129 // RVars implements rfunc.Formula 130 func (f *FuncToF64) RVars() []string { return nil } 131 132 // Bind implements rfunc.Formula 133 func (f *FuncToF64) Bind(args []any) error { 134 if got, want := len(args), 0; got != want { 135 return fmt.Errorf( 136 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 137 got, want, 138 ) 139 } 140 return nil 141 } 142 143 // Func implements rfunc.Formula 144 func (f *FuncToF64) Func() any { 145 return func() float64 { 146 return f.fct() 147 } 148 } 149 150 var ( 151 _ Formula = (*FuncToF64)(nil) 152 ) 153 154 // FuncF64ToF64 implements rfunc.Formula 155 type FuncF64ToF64 struct { 156 rvars []string 157 arg0 *float64 158 fct func(arg00 float64) float64 159 } 160 161 // NewFuncF64ToF64 return a new formula, from the provided function. 162 func NewFuncF64ToF64(rvars []string, fct func(arg00 float64) float64) *FuncF64ToF64 { 163 return &FuncF64ToF64{ 164 rvars: rvars, 165 fct: fct, 166 } 167 } 168 169 // RVars implements rfunc.Formula 170 func (f *FuncF64ToF64) RVars() []string { return f.rvars } 171 172 // Bind implements rfunc.Formula 173 func (f *FuncF64ToF64) Bind(args []any) error { 174 if got, want := len(args), 1; got != want { 175 return fmt.Errorf( 176 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 177 got, want, 178 ) 179 } 180 { 181 ptr, ok := args[0].(*float64) 182 if !ok { 183 return fmt.Errorf( 184 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float64", 185 f.rvars[0], args[0], 186 ) 187 } 188 f.arg0 = ptr 189 } 190 return nil 191 } 192 193 // Func implements rfunc.Formula 194 func (f *FuncF64ToF64) Func() any { 195 return func() float64 { 196 return f.fct( 197 *f.arg0, 198 ) 199 } 200 } 201 202 var ( 203 _ Formula = (*FuncF64ToF64)(nil) 204 ) 205 206 // FuncF64F64ToF64 implements rfunc.Formula 207 type FuncF64F64ToF64 struct { 208 rvars []string 209 arg0 *float64 210 arg1 *float64 211 fct func(arg00 float64, arg01 float64) float64 212 } 213 214 // NewFuncF64F64ToF64 return a new formula, from the provided function. 215 func NewFuncF64F64ToF64(rvars []string, fct func(arg00 float64, arg01 float64) float64) *FuncF64F64ToF64 { 216 return &FuncF64F64ToF64{ 217 rvars: rvars, 218 fct: fct, 219 } 220 } 221 222 // RVars implements rfunc.Formula 223 func (f *FuncF64F64ToF64) RVars() []string { return f.rvars } 224 225 // Bind implements rfunc.Formula 226 func (f *FuncF64F64ToF64) Bind(args []any) error { 227 if got, want := len(args), 2; got != want { 228 return fmt.Errorf( 229 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 230 got, want, 231 ) 232 } 233 { 234 ptr, ok := args[0].(*float64) 235 if !ok { 236 return fmt.Errorf( 237 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float64", 238 f.rvars[0], args[0], 239 ) 240 } 241 f.arg0 = ptr 242 } 243 { 244 ptr, ok := args[1].(*float64) 245 if !ok { 246 return fmt.Errorf( 247 "rfunc: argument type 1 (name=%s) mismatch: got=%T, want=*float64", 248 f.rvars[1], args[1], 249 ) 250 } 251 f.arg1 = ptr 252 } 253 return nil 254 } 255 256 // Func implements rfunc.Formula 257 func (f *FuncF64F64ToF64) Func() any { 258 return func() float64 { 259 return f.fct( 260 *f.arg0, 261 *f.arg1, 262 ) 263 } 264 } 265 266 var ( 267 _ Formula = (*FuncF64F64ToF64)(nil) 268 ) 269 270 // FuncF64F64F64ToF64 implements rfunc.Formula 271 type FuncF64F64F64ToF64 struct { 272 rvars []string 273 arg0 *float64 274 arg1 *float64 275 arg2 *float64 276 fct func(arg00 float64, arg01 float64, arg02 float64) float64 277 } 278 279 // NewFuncF64F64F64ToF64 return a new formula, from the provided function. 280 func NewFuncF64F64F64ToF64(rvars []string, fct func(arg00 float64, arg01 float64, arg02 float64) float64) *FuncF64F64F64ToF64 { 281 return &FuncF64F64F64ToF64{ 282 rvars: rvars, 283 fct: fct, 284 } 285 } 286 287 // RVars implements rfunc.Formula 288 func (f *FuncF64F64F64ToF64) RVars() []string { return f.rvars } 289 290 // Bind implements rfunc.Formula 291 func (f *FuncF64F64F64ToF64) Bind(args []any) error { 292 if got, want := len(args), 3; got != want { 293 return fmt.Errorf( 294 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 295 got, want, 296 ) 297 } 298 { 299 ptr, ok := args[0].(*float64) 300 if !ok { 301 return fmt.Errorf( 302 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float64", 303 f.rvars[0], args[0], 304 ) 305 } 306 f.arg0 = ptr 307 } 308 { 309 ptr, ok := args[1].(*float64) 310 if !ok { 311 return fmt.Errorf( 312 "rfunc: argument type 1 (name=%s) mismatch: got=%T, want=*float64", 313 f.rvars[1], args[1], 314 ) 315 } 316 f.arg1 = ptr 317 } 318 { 319 ptr, ok := args[2].(*float64) 320 if !ok { 321 return fmt.Errorf( 322 "rfunc: argument type 2 (name=%s) mismatch: got=%T, want=*float64", 323 f.rvars[2], args[2], 324 ) 325 } 326 f.arg2 = ptr 327 } 328 return nil 329 } 330 331 // Func implements rfunc.Formula 332 func (f *FuncF64F64F64ToF64) Func() any { 333 return func() float64 { 334 return f.fct( 335 *f.arg0, 336 *f.arg1, 337 *f.arg2, 338 ) 339 } 340 } 341 342 var ( 343 _ Formula = (*FuncF64F64F64ToF64)(nil) 344 )