@@ -110,4 +110,35 @@ CL_DEFUN T_mv core__float_to_digits(T_sp tdigits, Float_sp number, T_sp position
110110
111111SYMBOL_EXPORT_SC_ (CorePkg, float_to_digits);
112112
113+ CL_DEFUN List_sp core__float_traits () {
114+ return Cons_O::createList (
115+ Cons_O::create (
116+ cl::_sym_short_float,
117+ Cons_O::createList (
118+ Cons_O::create (kw::_sym_exponent_size, clasp_make_fixnum (schubfach::float_traits<short_float_t >::exponent_width)),
119+ Cons_O::create (kw::_sym_significand_size,
120+ clasp_make_fixnum (schubfach::float_traits<short_float_t >::significand_width)),
121+ Cons_O::create (kw::_sym_implementation_type, SYM_SHORT_FLOAT_IMPL ))),
122+ Cons_O::create (
123+ cl::_sym_single_float,
124+ Cons_O::createList (
125+ Cons_O::create (kw::_sym_exponent_size, clasp_make_fixnum (schubfach::float_traits<single_float_t >::exponent_width)),
126+ Cons_O::create (kw::_sym_significand_size,
127+ clasp_make_fixnum (schubfach::float_traits<single_float_t >::significand_width)),
128+ Cons_O::create (kw::_sym_implementation_type, SYM_SINGLE_FLOAT_IMPL ))),
129+ Cons_O::create (
130+ cl::_sym_double_float,
131+ Cons_O::createList (
132+ Cons_O::create (kw::_sym_exponent_size, clasp_make_fixnum (schubfach::float_traits<double_float_t >::exponent_width)),
133+ Cons_O::create (kw::_sym_significand_size,
134+ clasp_make_fixnum (schubfach::float_traits<double_float_t >::significand_width)),
135+ Cons_O::create (kw::_sym_implementation_type, SYM_DOUBLE_FLOAT_IMPL ))),
136+ Cons_O::create (cl::_sym_long_float,
137+ Cons_O::createList (Cons_O::create (kw::_sym_exponent_size,
138+ clasp_make_fixnum (schubfach::float_traits<long_float_t >::exponent_width)),
139+ Cons_O::create (kw::_sym_significand_size,
140+ clasp_make_fixnum (schubfach::float_traits<long_float_t >::significand_width)),
141+ Cons_O::create (kw::_sym_implementation_type, SYM_LONG_FLOAT_IMPL ))));
142+ }
143+
113144}; // namespace core
0 commit comments