// CLN exported types and functions

#ifndef _CLN_H
#define _CLN_H

// Automatically generated by configure
//#include "cln/config.h"      // included by "cln/types.h" below
//#include "cln/intparam.h"    // included by "cln/types.h" below
//#include "cln/floatparam.h"  // not needed by any public header file

// ============================== base ==============================

// Basic types and definitions.
#include "cln/types.h"
#include "cln/modules.h"
#include "cln/object.h"

// Miscellaneous.
#include "cln/random.h"
#include "cln/malloc.h"
#include "cln/exception.h"
#include "cln/floatformat.h"
#include "cln/io.h"
#include "cln/condition.h"

// Symbolic facilities.
#include "cln/string.h"
#include "cln/symbol.h"
#include "cln/proplist.h"

// Miscellaneous.
#include "cln/input.h"
#include "cln/output.h"

// Abstract number classes.
#include "cln/number.h"
#include "cln/number_io.h"
#include "cln/complex_class.h"
#include "cln/real_class.h"
#include "cln/rational_class.h"

// Rings.
#include "cln/ring.h"

// ============================== integer ==============================

// Integers.
#include "cln/integer_class.h"
#include "cln/integer.h"
#include "cln/integer_io.h"
#include "cln/integer_ring.h"
#include "cln/null_ring.h"

// ============================== rational ==============================

// Rational numbers.
#include "cln/rational.h"
#include "cln/rational_io.h"
#include "cln/rational_ring.h"

// ============================== float ==============================

// Floating-point numbers.
#include "cln/float_class.h"
#include "cln/sfloat_class.h"
#include "cln/ffloat_class.h"
#include "cln/dfloat_class.h"
#include "cln/lfloat_class.h"
#include "cln/float.h"
#include "cln/float_io.h"
#include "cln/sfloat.h"
#include "cln/sfloat_io.h"
#include "cln/ffloat.h"
#include "cln/ffloat_io.h"
#include "cln/dfloat.h"
#include "cln/dfloat_io.h"
#include "cln/lfloat.h"
#include "cln/lfloat_io.h"

// ============================== real ==============================

// Real numbers.
#include "cln/real.h"
#include "cln/real_io.h"
#include "cln/real_ring.h"

// ============================== complex ==============================

// Complex numbers.
#include "cln/complex.h"
#include "cln/complex_io.h"
#include "cln/complex_ring.h"

// ============================== modinteger ==============================

// Modular integers.
#include "cln/modinteger.h"

// ============================== numtheory ==============================

// Rings for number theory.
#include "cln/numtheory.h"

// ============================== vector ==============================

// Vectors.
#include "cln/V.h"
#include "cln/GV.h"
#include "cln/GV_number.h"
#include "cln/GV_complex.h"
#include "cln/GV_real.h"
#include "cln/GV_rational.h"
#include "cln/GV_integer.h"
#include "cln/GV_modinteger.h"
#include "cln/SV.h"
#include "cln/SV_number.h"
#include "cln/SV_complex.h"
#include "cln/SV_real.h"
#include "cln/SV_rational.h"
#include "cln/SV_integer.h"
#include "cln/SV_ringelt.h"

// ============================== polynomial ==============================

// Polynomials.
#include "cln/univpoly.h"
#include "cln/univpoly_complex.h"
#include "cln/univpoly_real.h"
#include "cln/univpoly_rational.h"
#include "cln/univpoly_integer.h"
#include "cln/univpoly_modint.h"

// ============================== modpolynomial ==============================

// ============================== timing ==============================

// Environmental facilities.
#include "cln/timing.h"

#endif /* _CLN_H */