|
FUNCTION derive_dimensional_exponents (x : unit) : dimensional_exponents; LOCAL result : dimensional_exponents := dimensional_exponents ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ; END_LOCAL ; IF 'measure_schema.derived_unit' IN TYPEOF ( x ) THEN REPEAT i := LOINDEX ( x \ derived_unit . elements ) TO HIINDEX ( x \ derived_unit . elements ) ; result . length_exponent := result . length_exponent + ( x \ derived_unit . elements [ i ] \ derived_unit_element . exponent * x \ derived_unit . elements [ i ] \ derived_unit_element . unit \ named_unit . dimensions . length_exponent ) ; result . mass_exponent := result . mass_exponent + ( x \ derived_unit . elements [ i ] \ derived_unit_element . exponent * x \ derived_unit . elements [ i ] \ derived_unit_element . unit \ named_unit . dimensions . mass_exponent ) ; result . time_exponent := result . time_exponent + ( x \ derived_unit . elements [ i ] \ derived_unit_element . exponent * x \ derived_unit . elements [ i ] \ derived_unit_element . unit \ named_unit . dimensions . time_exponent ) ; result . electric_current_exponent := result . electric_current_exponent + ( x \ derived_unit . elements [ i ] \ derived_unit_element . exponent * x \ derived_unit . elements [ i ] \ derived_unit_element . unit \ named_unit . dimensions . electric_current_exponent ) ; result . thermodynamic_temperature_exponent := result . thermodynamic_temperature_exponent + ( x \ derived_unit . elements [ i ] \ derived_unit_element . exponent * x \ derived_unit . elements [ i ] \ derived_unit_element . unit \ named_unit . dimensions . thermodynamic_temperature_exponent ) ; result . amount_of_substance_exponent := result . amount_of_substance_exponent + ( x \ derived_unit . elements [ i ] \ derived_unit_element . exponent * x \ derived_unit . elements [ i ] \ derived_unit_element . unit \ named_unit . dimensions . amount_of_substance_exponent ) ; result . luminous_intensity_exponent := result . luminous_intensity_exponent + ( x \ derived_unit . elements [ i ] \ derived_unit_element . exponent * x \ derived_unit . elements [ i ] \ derived_unit_element . unit \ named_unit . dimensions . luminous_intensity_exponent ) ; END_REPEAT ; ELSE result := x \ named_unit . dimensions ; END_IF ; RETURN ( result ) ; END_FUNCTION; -- derive_dimensional_exponents |
|
public class FDerive_dimensional_exponents public static Value run(SdaiContext _context, Value x) |