go-hep.org/x/hep@v0.38.1/groot/rtree/rfunc/rfunc_f32_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  // FuncToF32 implements rfunc.Formula
    14  type FuncToF32 struct {
    15  	fct func() float32
    16  }
    17  
    18  // NewFuncToF32 return a new formula, from the provided function.
    19  func NewFuncToF32(rvars []string, fct func() float32) *FuncToF32 {
    20  	return &FuncToF32{
    21  		fct: fct,
    22  	}
    23  }
    24  
    25  // RVars implements rfunc.Formula
    26  func (f *FuncToF32) RVars() []string { return nil }
    27  
    28  // Bind implements rfunc.Formula
    29  func (f *FuncToF32) Bind(args []any) error {
    30  	if got, want := len(args), 0; got != want {
    31  		return fmt.Errorf(
    32  			"rfunc: invalid number of bind arguments (got=%d, want=%d)",
    33  			got, want,
    34  		)
    35  	}
    36  	return nil
    37  }
    38  
    39  // Func implements rfunc.Formula
    40  func (f *FuncToF32) Func() any {
    41  	return func() float32 {
    42  		return f.fct()
    43  	}
    44  }
    45  
    46  var (
    47  	_ Formula = (*FuncToF32)(nil)
    48  )
    49  
    50  // FuncF32ToF32 implements rfunc.Formula
    51  type FuncF32ToF32 struct {
    52  	rvars []string
    53  	arg0  *float32
    54  	fct   func(arg00 float32) float32
    55  }
    56  
    57  // NewFuncF32ToF32 return a new formula, from the provided function.
    58  func NewFuncF32ToF32(rvars []string, fct func(arg00 float32) float32) *FuncF32ToF32 {
    59  	return &FuncF32ToF32{
    60  		rvars: rvars,
    61  		fct:   fct,
    62  	}
    63  }
    64  
    65  // RVars implements rfunc.Formula
    66  func (f *FuncF32ToF32) RVars() []string { return f.rvars }
    67  
    68  // Bind implements rfunc.Formula
    69  func (f *FuncF32ToF32) Bind(args []any) error {
    70  	if got, want := len(args), 1; got != want {
    71  		return fmt.Errorf(
    72  			"rfunc: invalid number of bind arguments (got=%d, want=%d)",
    73  			got, want,
    74  		)
    75  	}
    76  	{
    77  		ptr, ok := args[0].(*float32)
    78  		if !ok {
    79  			return fmt.Errorf(
    80  				"rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float32",
    81  				f.rvars[0], args[0],
    82  			)
    83  		}
    84  		f.arg0 = ptr
    85  	}
    86  	return nil
    87  }
    88  
    89  // Func implements rfunc.Formula
    90  func (f *FuncF32ToF32) Func() any {
    91  	return func() float32 {
    92  		return f.fct(
    93  			*f.arg0,
    94  		)
    95  	}
    96  }
    97  
    98  var (
    99  	_ Formula = (*FuncF32ToF32)(nil)
   100  )
   101  
   102  // FuncF32F32ToF32 implements rfunc.Formula
   103  type FuncF32F32ToF32 struct {
   104  	rvars []string
   105  	arg0  *float32
   106  	arg1  *float32
   107  	fct   func(arg00 float32, arg01 float32) float32
   108  }
   109  
   110  // NewFuncF32F32ToF32 return a new formula, from the provided function.
   111  func NewFuncF32F32ToF32(rvars []string, fct func(arg00 float32, arg01 float32) float32) *FuncF32F32ToF32 {
   112  	return &FuncF32F32ToF32{
   113  		rvars: rvars,
   114  		fct:   fct,
   115  	}
   116  }
   117  
   118  // RVars implements rfunc.Formula
   119  func (f *FuncF32F32ToF32) RVars() []string { return f.rvars }
   120  
   121  // Bind implements rfunc.Formula
   122  func (f *FuncF32F32ToF32) Bind(args []any) error {
   123  	if got, want := len(args), 2; got != want {
   124  		return fmt.Errorf(
   125  			"rfunc: invalid number of bind arguments (got=%d, want=%d)",
   126  			got, want,
   127  		)
   128  	}
   129  	{
   130  		ptr, ok := args[0].(*float32)
   131  		if !ok {
   132  			return fmt.Errorf(
   133  				"rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float32",
   134  				f.rvars[0], args[0],
   135  			)
   136  		}
   137  		f.arg0 = ptr
   138  	}
   139  	{
   140  		ptr, ok := args[1].(*float32)
   141  		if !ok {
   142  			return fmt.Errorf(
   143  				"rfunc: argument type 1 (name=%s) mismatch: got=%T, want=*float32",
   144  				f.rvars[1], args[1],
   145  			)
   146  		}
   147  		f.arg1 = ptr
   148  	}
   149  	return nil
   150  }
   151  
   152  // Func implements rfunc.Formula
   153  func (f *FuncF32F32ToF32) Func() any {
   154  	return func() float32 {
   155  		return f.fct(
   156  			*f.arg0,
   157  			*f.arg1,
   158  		)
   159  	}
   160  }
   161  
   162  var (
   163  	_ Formula = (*FuncF32F32ToF32)(nil)
   164  )
   165  
   166  // FuncF32F32F32ToF32 implements rfunc.Formula
   167  type FuncF32F32F32ToF32 struct {
   168  	rvars []string
   169  	arg0  *float32
   170  	arg1  *float32
   171  	arg2  *float32
   172  	fct   func(arg00 float32, arg01 float32, arg02 float32) float32
   173  }
   174  
   175  // NewFuncF32F32F32ToF32 return a new formula, from the provided function.
   176  func NewFuncF32F32F32ToF32(rvars []string, fct func(arg00 float32, arg01 float32, arg02 float32) float32) *FuncF32F32F32ToF32 {
   177  	return &FuncF32F32F32ToF32{
   178  		rvars: rvars,
   179  		fct:   fct,
   180  	}
   181  }
   182  
   183  // RVars implements rfunc.Formula
   184  func (f *FuncF32F32F32ToF32) RVars() []string { return f.rvars }
   185  
   186  // Bind implements rfunc.Formula
   187  func (f *FuncF32F32F32ToF32) Bind(args []any) error {
   188  	if got, want := len(args), 3; got != want {
   189  		return fmt.Errorf(
   190  			"rfunc: invalid number of bind arguments (got=%d, want=%d)",
   191  			got, want,
   192  		)
   193  	}
   194  	{
   195  		ptr, ok := args[0].(*float32)
   196  		if !ok {
   197  			return fmt.Errorf(
   198  				"rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float32",
   199  				f.rvars[0], args[0],
   200  			)
   201  		}
   202  		f.arg0 = ptr
   203  	}
   204  	{
   205  		ptr, ok := args[1].(*float32)
   206  		if !ok {
   207  			return fmt.Errorf(
   208  				"rfunc: argument type 1 (name=%s) mismatch: got=%T, want=*float32",
   209  				f.rvars[1], args[1],
   210  			)
   211  		}
   212  		f.arg1 = ptr
   213  	}
   214  	{
   215  		ptr, ok := args[2].(*float32)
   216  		if !ok {
   217  			return fmt.Errorf(
   218  				"rfunc: argument type 2 (name=%s) mismatch: got=%T, want=*float32",
   219  				f.rvars[2], args[2],
   220  			)
   221  		}
   222  		f.arg2 = ptr
   223  	}
   224  	return nil
   225  }
   226  
   227  // Func implements rfunc.Formula
   228  func (f *FuncF32F32F32ToF32) Func() any {
   229  	return func() float32 {
   230  		return f.fct(
   231  			*f.arg0,
   232  			*f.arg1,
   233  			*f.arg2,
   234  		)
   235  	}
   236  }
   237  
   238  var (
   239  	_ Formula = (*FuncF32F32F32ToF32)(nil)
   240  )