github.com/richardwilkes/toolbox@v1.121.0/eval/float_evaluator.go (about)

     1  // Copyright (c) 2016-2024 by Richard A. Wilkes. All rights reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the Mozilla Public
     4  // License, version 2.0. If a copy of the MPL was not distributed with
     5  // this file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6  //
     7  // This Source Code Form is "Incompatible With Secondary Licenses", as
     8  // defined by the Mozilla Public License, version 2.0.
     9  
    10  package eval
    11  
    12  import (
    13  	"golang.org/x/exp/constraints"
    14  )
    15  
    16  // NewFloatEvaluator creates a new evaluator whose number type is one of the constraints.Float types.
    17  func NewFloatEvaluator[T constraints.Float](resolver VariableResolver, divideByZeroReturnsZero bool) *Evaluator {
    18  	return &Evaluator{
    19  		Resolver:  resolver,
    20  		Operators: FloatOperators[T](divideByZeroReturnsZero),
    21  		Functions: FloatFunctions[T](),
    22  	}
    23  }