@ ChangeLog for Endymion

This describes the changes for Endymion

Version 0.0

  1. [2005/03/05]
    (Lisp) check_bounds() returns an integer.
    (physio) Renamed m_obuf as m_outpos
    (physio) Replaced m_ringur by a vector.
    Removed ringur_length
  2. [2005/03/07]
    (runtime.h) Inlined macros LL_PUSH, LL_POP, LL_POP0, LL_ADJSTK and LL_TOPSTACK.
    Added functions Lisp::check_int(), Lisp::check_bounds(), Lisp::check_symbol(), Lisp::check_char(), and Lisp::check_vector().
    Made a Lisp method of ck_int2, ck_int3, ck_int4, obj_to_string.
    Added a name to the enumeration ll_ftype.
    Changed retval of type_of to ll_type
    Removed a cast for explode push/pop.
    (reader) Changed type of m_IS and m_IS_last to positions
  3. [2005/03/09] (reader) Added two classes, for trace and ringur.
    Removed some gotos
  4. [2005/03/10] (list) Using pointers for compare.
    Made Lisp::Lisp(lisp*) explicit.
    Changed function type bool lisp::equal(const lisp* y)const;
    Added two functions lgetprop
  5. [2005/03/12]
    (eval) Replaced static keyword for functions by namespace.
    Added end test is_cons in e_progn
    Added 3 as subtype, for compiled functions.
    Made Some character strings constant.
  6. [2005/03/15] (lap)
    Removed the union in the lap object
    Replaced the object by two objects
    Replaced the Lisp tables by vectors.
    Replaced pointers to the lap by an offset.
  7. [2005/03/16](eval)
    Changed type of stack_pointer to an integer.
    Changed LL_POP : replaces the stack slot by nil
    Change type of quit_on_error to a enum
    Added field fvali to a symbol
    Removed a goto
  8. [2005/03/31]
    Changed fields PKGC and ALINK to a_symbol* instead of type Lisp
    It compiles. Still does not run
    Changed arg type of a Lisp function to const Lisp&
  9. [2005/04/04]
    Split file gc into egc, and esymbols.
    Removed a goto
    (eval) Replaced check_larg and flatt by a non-recursive function
    (eval, physio) Removed the variables left_arrow, right_arrow (hack for tracing...)
    (eval) get_type does not signal an error.
    Removed hacks for map, every, etc in the case of LAP
    Use vectors in cirequal and circopy
    (eval) Added namespaces almost everywhere. Removed friends
    Replaced my_equal by eval::equal
  10. [Version 0.04, 2005/04/11]
    (display) Move value of ttyheight in Istack
    Changed type of graphic_list
    Changed type of vrule to a list of 3 integers.
  11. [Version 0.05, 2005/04/14]
    Made File_reader::buffer static
    Added a second method name_of
    Split peb2ioin two files
    Made printerror use S_function instead of NULL
    (physio) Removed ringur
    (physio) Removed m_pk as member
    (ratio) Removed a_complex::atan and a_complex::atanh
    Split include files for ratio in public and private
    (ratio) Removed the special case of NULL inumber
    (ratio) Changed type of is_not_integer to bool
    Removed 39 gotos
  12. [Version 0.06, 2005/04/25]
    Renamed SLD to quad, everywhere, but for the namespace
    Added a function cirprint-to-string. Useful for testing Endymion
    Namespace added in list
  13. [2005/05/01]
    Renamed sld files as quad files
    (eval) Added variable current_fct; holds the current function, that is no more an argument
    Added a new Lisp object: date
    Fixed a bug in reference counting
    Defined a macro: COMMON_FIELDS.
    Defined function ratio::haulong.
    Fixewd bug in nrand48
    Made catenate and string behave alike
    Removed the errfix error
    Added comparison for type Wstring
    Recoded Euler Phi
    Changed final test in isqrt
  14. [2005/05/01]
    Hack (iroot x n), if n is not an integer
    (bf0 Recoded get_interval
    Moved itable_size in a include file
    Added reset_random32
  15. [Version 0.08 (September 2005)
    Added type Symbol
    Made lap registers static
    Removed the set_buf_last function
    Removed initial cons in read_list
    Re-implemented try_atom
    (eval) Removed self argument of a subrf
    (display) Replaced to_lisp method by print
    Changed number of arguments of tex_paren_args to one
    Added class buffer
    Added file mforma
  16. [Version 0.09 (September 2005)]
    Added file pretty
    Made Polynomial and matrix fields protected/private
    Added file elsode1
    Replaced quad_gen_op_xx by gen_op_xx
    Added a function with fewer arguments for polynom/matrix set
    Added oprec fourier
    Added #ifdef NEED_FPE in newton.C
    Replaced get_one by set_to_one
    Removed void* coefficients();
    Replaced from_obj by from_Lobj

Version 0.10 (October 2005)

  1. [version 0.10]
    Added seq
    Made is_pol_type etc inline functions.
    Renamed Flist toList
  2. [version 0.11]
    Added seq
    Made Module a Lisp object
    Replaced hyperion by endymion wherever justified
    (compiler) Changed type of To_compile to VT
    Change type of Cfct to Lisp
    (ecomp5) Added usage of w_var
    Changed type of potvar to non-Lisp
    Changed number of arguments of VT::sv to zero
    Removed calls to my_compiler_online
  3. [version 0.12]
    Installed compiler
    Removed friends for the compiler.
  4. [Version 0.13, 26-12-2005]
    Removed test to string in caller for probepath etc openo etc
    Changed type of load1
    [29-12-2005] (eratio1) Fixed initialisation of iinteger_10_8
    (epola0) Bug fix: all matrices had the same type!
    [31-12-2005] (epola4) Changed type of sparse poly.
    (ratio) rat_to_float uses a buffer now
    [06-01-2006] Changed rbp of case to 200
    Allows arbitrary symbol lengths
    Renamed mforma method to format, and added to class Lisp, namespace changed to forma.
    Added a member function that returns a bool
    Added method is_list to Lisp objects
    Changed return type of (mforma 1.l0) to integer
    Removed type ring_pol
    Use const pointers in eval::equal type_of_eq
    Added ratio::nremainder
    Added Lisp lisp::to_Lisp() const
    Added a typedef Lisp_pair
    Added method is_mone for rats.
    Added Minus one in rings mod n.
    Added is_constant for polynomials
    Made negdistrib, rat_arith_mixed_flag, ratsimp variable-functions
    Split esimpc.h in two parts
  5. [Version 0.14 (February 2006)]
    Made VLisp an alias for vector<Lisp>
    Made all fields of display private
    Made argument of a_graphic::compare const
    (Displa) Changed refcount to -1 before casting to Lisp; because the object could be destroyed
    Added type a_num introduced.
    Implemented the linear form of a polynomial as a vector
  6. [2006/04/19]
    Replaced num_z and num_q by num_b that has a Lisp number as value
    Made most fields of Ring and Num private or protected
    Changed return value of eval_pm_one to number not a Num
    Added typedef for Monom_1::List::const_iterator and Monom_n::List::const_iterator
    Changed return type of internal Bezout to Lisp triple
    (readline) Saved current string in case of ^P etc
    (readline) Made history a vector
    (display) Bug fix #:[1 2 3] displays OK
    Changed return value of need_flist to void
    Changed ring kernels type to Num
    Added Reveal function for rats
    Changed printing of rings
    Added a function add_id that remembers RCS ids
    Changed print function for rings
    Added a function that returns num&den of a number
    (eval) Added the function #:feval:apply
    (eval) Replaced my_length by eval::length
  7. [Version 0.15, 2006/05/13]
    Moved fifty lines from startup.ll to epretty.C
    Removed some useless lines in startup.ll
    Added a function a_fexpression::to_general
    Changed representation of sum, product, power
    Removed function find_op
    Added putprop, getprop for fsymbols
    Replaced #:ed:eval:fun by a get/set function. Simplified the C code
    Size of Istack correctly computed
    Automatic call of declare_var_fun for system get/set
    Changed type of power(x,y) for x and y double, to a real or a pure imaginary
    Constant functions endymion_names, endymion_values, endymion_constants used instead of some unusable variables.
    Added new print method for VT objects
    Moved error messages in the endymion package
    Added a function make_sfun; changed bootstrap order
  8. [Version 0.16, June 2006]
    Made things like Slet symbolic constants
    Removed files Startup.ll and startup.sis
    Made %e, %i, Infinity constants
    (sequences) Made all fields private
    Replaced formel::feval_bra by list::Lflist
    Hide internals of arrays
  9. Version 0.17 (January 2007)M
    Moved min, max in an include file
    Changed namespace list to list_ns
    (efiles.C) Used buffer data structure
    (main.C) Changed user_name to string
  10. [Version 0.18 (February 2007)]
    (pathname) Removed empty_dir and empty_extension removed
    Changed argument type of open_file1 to string
    Made errors open_file and open_file1 not fatal
    Checked return value of new fstream
    Removed error in expand_name
    Replaced class peb_converter by a namespace
    Removed overflow in peb_scan
    Changed namespace name eval to eval_ns Same for gc
    (peb2conv) Removed print method, tokens traced instead
    Added two include files: einline.h and etypes1.h
    Moved all functions of egc.C are in a namespace
    Removed my_strcat and my_strdup; using C++ strings instead
    Removed cpu_time removed,
    Renamed cpu_time1 renamed to cpu_time
    Two functions named allocate_vector
    Removed new_intr new_doubler new_complexr new_quad_complexr my_openr
    Use std::minr and std::maxr
    Renamed classes Sringur and Strace as sreader_ringur and sreader_trace, and made subclass of Sreader, renamed symbolic_reader
    (IO) Modified enum file_status modified
    Renamed files *peb* to *bep*
    Added files eplot.C eplot.h

Version 0.20 (February 2007)

  1. [Version 0.20, February 2007]
    (plot) Removed restrictions on size of strings
    Removed Complex::print() using operator<< instead
    Renamed some classes: inumber, all from bep
    Made some fields private (ratio)
  2. [Version 0.21, May 2007]
    Added splines
    Use a special stack for recursive implode (error recovery)
    Split physio in two part
    Inmplemented IO buffers as Endymion buffers
    Removed IS_inpos, IS_inmax, IS_lmargin, IS_rmargin
    Changed reader to convert #<0x123> to nil, as well as#<nil>
    Made prompt a variable function
    Made printflush call the Itsoft.
    Buf fix: The function pratom does not call itself
    Feature addded: Control-backslash aborts endymion in (more).
    Allowed eval_pol to evaluate splines.
  3. [2007/06/27]
    Added class names FourierD, FourierQ, FourierO,
    Changed Lisp types to ll_type_fourier, ll_type_fourierQ, ll_type_fourierQ
    Renamed malloced_datato raw_data.
    Removed const hack in Fourier print
    Moves inline functions like is_some_type to etypes.h
    Renamed mix.C, mix.h renamed to emix.C emix.h
    Renamed PI to my_pi in an include file
  4. [2007/06/28]
    (Poly printer) Removed class pol_coef_t.
    (Polynom) Replaced macros by inline for some functions like pol_coef. Plus overloading. Some const qualifiers added.
  5. [2007/07/02]
    Renamed class symbolic_reader to Sreader
    Made gather_chars work on an implode list.
    (Sreader) Set IS_lastr to 0 in case gather_chars fails
    Added more typechecks when reading polynomials.
    Signal an error in the case #2P.
    Renamed feval_print into feval::print
    Made Fourier_truncate work for all 3 types of Fourier.
    Implemented neg_rotate for Quad and Oprec
    Replaced namespace sld by quad_ns
    Added a few templates in fourier.C
    Replaced errnra by errnRa in conversions (Poly)
    Changed true-degree(fourier 0) to give (0 . -1), so that 0 and 1/z have different degrees.
    Added add_one to classes complex, quad, oprec, quad_complex, oprec_complex.
    Replaced already existing function by i_add_one.
  6. [2007/07/14]
    Enhanced Main::pprint
    Added function get_machine_name
    Removed heap_size
    Fixed a bug where only one option was stored
    Added option -h -L, -S to the program
    More cleanups in main.
    Renamed data structures peb* to Bep*
    (load_arl2_file) Read N floats, instead of N lines,
    Allow file_ext=i_j in a parameter file
    Added File_handler data structure
    (ebep2conv.C) Removed Global variable out_fp
    Removed function Complex::to_file
    Removed plot_data_disc_only removed from bep class.
  7. [Version 0.23, July 2007]
    (arl2) Converted to vectors: method_table, flag_table, many_init_table, min_degs, iter_table
    Added a buffer for Gnuplot
    Made filename of plotweight customizable
    Converted Min_list to a list.
    Converted data of Orth_poly to a vector.
    Added data structures PolynomL, MatrixL, MatrixPL
    Converted data of Matrix and polynomials to vectors
    Use trivial destructors for matrix and polynomials
    Changed polynm::div_i to always compute the quotient
    Converted arguments of dgesl dgefa to vectors
    Added include files efloat, enumber
    Added inline operator for Numbers.
    Converted data of Lfunctor and Nfunctors to iterators
    Removed l2_quo_norm
    Removed functions to2doubles , from2doubles etc
    Removed m_size field of poly
    Removed realloc_poly (inline)
    Fixed semantic bug in poly in case A+B, deg(A)>deg(B), true_deg(A)<deg(B).
    Removed Ratfrac::duplicate
    Changed type of data of PolynomD to Double
  8. [September 2007.]
    [Integrator] Use a single data structure LsodeA
    Disallow zero for maximum step size hmax
    Use an enumeration for state of affairs
    Accept all istate values in lsode_checks
    Changed names of y, quad_lin to functor_in, functor_q_in
    Removed error in ewset
    Removed error ``tout too close to t''
    Renamed class a_foo as Ofoo for all Lisp objects.
    Renamed arl2 classes.
    Changed type of table and orth poly to pointers
  9. [October 2007]
    (reader) Removed trace and ringur as member, because of inheritance
    Replaced print_roots by is_unstable
    Changed interface to find_roots
    Changed compute_w_powers
    Made ewset

Version 0.25 (October 2007)

  1. [October 2007]
    Moved result for find_roots in a vector.
    (slot_inverse) Implemented only quad precision
    (mat_horner_gen) Changed omega from polynomial to scalar
    Inlined some functions for omega
    Corrected a bug in load, if last char of file is not newline
    Corrected a bug if macro-evaluation yields an atom.
    Added functions macro-expand and macro-expand1 added
    (lsode) Renamed result_in_quad as precision and cur_n as in_size.
    Added a variable a_NP in OarL2.
    Hacking with cur_prec in arl2mat simplified.
    Removed 4 gotos in the code.
  2. [January 2008, version 0.26]
    Added triple poles
    Added multiplicity to slot
    Changed IO for slot, make it incompatible with hyperion
    Renamed Bf_reset to bf_reset
    Removed variable next_serial
    Changed type of min_degs to boolean table
    Removed r_find_new_min, r_find_new_min0
    Changed internal target: now divided by pole multiplicity
    Use short names instead of integrator_quad_y
    Changed size of tables like many_init_table to target/mult.
    Removed gotos in Arl2_scalar_data::r_degree_one.
    Set name of PS file to foo_d2_m3_22.ps for multiplicity 3
  3. [May 2008, version 0.27]
    Change polynom evaluation
    Changed types quad , oprec to Quad Oprec QComplex Ocomplex
    Changed buffer to Buffer class
    Changed semantics of rat_to_float
    Replaced S by Q in poly/mat type
    Changed a bug in poly conjugate
    Use reference type whereever possible
    Changed types to ll_type_polynomOC etc
    Re-implemented Pol-eval
    Changed names PwFunction ContinuitySaver PlotHelper< Obep BepFlags BepPair
    [June 2008] Made size and degree system functions
    Added a symbolic index to PW functions, omega, theta, value, assoc, and interpolation
    Changed value of B[data_on_circle] to boolean.
    Added a fucntion to order PW items
    Added macros increment and decrement
    Change syntax of BEP identifier: can contain +
    Allows \n in strings.
    Changed comment syntax: as in C++
    Made the string "a/* b // c */ d" valid
    Swapped meaning of { and << in symbolic evaluation.
  4. [July 2008, version 0.28]
    Symbolic printer prints lineno in case of error
    Implemented date_to_vector and vector_to_date
    Added functions uppercase, lowercase, transform
    Changed display of keywords in lower case
    Added operators +=, -=, *= *=
    (splines) Optimised Interv function
    Made operator If synonym to ifo
    Renamed even? odd? as evenp oddp
    Implemented functions min max
    Implemented operators || and &&
    Implemented Repeat
    Merged read-from-vector into read-from-string
    Simplified implode (single function instead of two)
    Implemented PLIST as ALIST.
    Renamed all namespaces under the form foo_ns
    Capitalised a lot of class names
    Removed all macros catch_this...
    Renamed #:compiler:verbose to compiler_verbose
    Added a file etrace.C
    Moved Compiler:;gensym out of class.
    Implemented tarce_handler and trace_one
    Fixed lbp and rbp of text-space and text-comma.
    Added #:feval:vector.
    Implemented f(x:vector):=x[2]
    Changed psize of tagbody and let to 2
  5. [August 2008, version 0.29]
    Optimised array_ref and array_set in the one index case
    Added x[] that returns the type of x
    Added more array semantics to some objects
    Added extensible arrays
    Added symbolic map and mapc
    Fixed a bug in matrix printing
    Fixed size(a_matrix)
    Implemented quote-postfix
    (ratio) Removed global variable carry
    Added (round 1.5)
    Modified rqm2: result is a reduced number
    Removed the global variable is_not_integer
    Removed function nx
    fixed a bug in display of f()
    Improved a bit pretty print
    Changed Lisp and symbolic reading of newline: CR ignored LF retained
    Changed printing of newline in strings, see above
    Changed name of brace from progn_op to op_progn
    Changed vect_to_numb to accept 32 bit numbers
    Added random33
    Allows semi-colon instead of comma in list (symbolic reader)
    Evaluating (compare #C(0 12) #C(0 524 )) gives -1
    Fixed function compare-eps
    Fixed alphalessp to work with any argument.
    Made Block objects of type Lisp
    Removed BlockRecmac
    [Sep 2008] Spline creator accepts null weight
    Removed aux functions of Fourier_matrix
    Removed splines_size
    Splines canm be read symbolically
    Implemented array references with 2 indices for splines.
    MacIntel params added
  6. [January 2009, version 0.30]
    Re-implemented Fourier data structure via a ScaledVector
    Removed ContinuitySaver
    Changed Semantics of Fourier Ctor
    [2009/01/12] Changes for FC10 compiler
    Added string.h to standard headers.
    Compare-eps gives division by 0 if both numbers equal
    Changed (fill-polynom Fourier l), thye list is truncated if too long
    Allow Fourier series without constant term
    Added dependencies of eplot.h in Makefile

Last update $Date: 2009/01/20 17:53:20 $