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 }