GENERIC INTERFACE ElectricEvaluator (LocalAttributes, LocalEvaluator); (* WHERE /\ TYPE LocalAttributes.T /\ TYPE LocalEvaluator.T *) TYPE T <: LocalEvaluator.T; PROCEDURE New( READONLY q: ARRAY OF LocalAttributes.T; (* Charge positions *) READONLY w: ARRAY OF REAL; (* Charge magnitudes *) radius: LONGREAL; ): T; (* Returns an evaluator "e" that treats each attribute vector "q[j]" as the position of a fuzzy electric charge of magniture "w[j]" and approximate extent "radius". The value of "e(p)" is then the electric potential of a unitary negative electric charge at point "p". *) END ElectricEvaluator2D.i3.