beginning:

november 21,  2001:  version 1.08. beginning.
2001/11/22:  correction  of operator == and != 
2001/11/23 , version: 1.09: correction  (with g++) 
template<class A>  struct SameType, type of OK must be int and not bool 

2001/11/24   add fonctionality in plot,  bb=[[x1,y1],[x2,y2]] 
 add  loop if enter  character +,-,=,c,C,r  in graphic window.
2001/11/28
 correction bug initialization of QuadTree if less than 4 points in the quadtree
 files  QuadTree.cpp and FQuadTree.hpp
 add exec("xxx..."); //to execute on system command. "xxx ... " 
 add  dumptable(cout); //to show all internal table
2001/11/29:  
  Version ans graphique + ajout d'option dans plot (cf. doc)
  correction ajoute renum() des maillage crer. 
2001/12/10
  Correct missing check in plot  
     ex:  plot(1);  trap before now, genere a compile error
  Correct in the interpolation is full not conforme FE, 
  do not prolonged by continuity. change 
  add after line 479 in file lgfem.cpp
  if (outside && !KK.tfe->NbDfOnVertex && !KK.tfe->NbDfOnEdge) 
    return   SetAny<R>(0.0); 
2001/12/12
   correction in gibbs (mesh renum) reconstruct the array of
   triangle for each vertex (PB. of interpolation in non 
   convexe domain) Big bug.
 Make version 1.14
 2001/12/14
   correction in trunc mesh, bug if empty mesh is created,
   and move  a little the test point in a triangle 
   is not exactly the barycenter.  

 2002/01/14
   correction in probem.cpp line 1309  bug when we write   qft= ...  , in int2d 
  if (nargs[0]) return  *GetAny<const  Fem2D::QuadratureFormular*>((*nargs[1])(stack));
 becomes:
  if (nargs[0]) return  *GetAny<const  Fem2D::QuadratureFormular*>((*nargs[0])(stack));
2002/01/15
  in lgfem.cpp remove line 522  reffecran();  //  bug if not graphique some time
  in file MeshGeom.cpp line 108 bug if name == 0 ;  add test before the cout like 
    if(name) cout << " ... " << name << .... 
  correct the name of the exec file (FreeFee++ -> FreeFem++) in Makefile
2002/02/03
  in Mesh2.cpp in preinit() add call to srand(), to get the same  mesh with the same data. 
  correct 
  mesh tth=th; 
  
Make version 1.15

2002/02/20
   Add periodic boundary condition see the manual 

Make version 1.16
  Add Parallele Mpi 
  correct bug in SegmentationFault.edp missing placing of delete[] operator
  put declaration in  for
  wait =xx change the default value of wait
  ofstream f("foo.txt",append)  open a file in append mode
   add NoUseOfWait=true;    never wait for run test easly

Make version 1.17 2002/03/20
  Make default iso value changing with zoom option.
 Add GMRES solver   dimKrylov= ,  tgv=
 
april 2002
  Make the current version without CheckPtr, and 
  correct some bug in string allocation (forgetting +1 in some length)
  Improving the speed of the software
  add CPUTime global bool variable to print the CPU time of each instruction.
  correct some printing without verbosity 
  adding some checking in array management 
  Add option in the Makefile (gnumake)

Make version 1.18 the 2002/04/08  
  
  Big correction in automatic cast see  bugv1.18.edp
  correction in interpolation of  label see also bugv1.18.edp
  Big correction in construction of non-symetrix matrix (see BUG)



Make version 1.19 2002/04/18

   Correction in Quadtree integer overflow when 
   interpolate solution of from one big domain to a very small one.

   Correction in embedded function (return problem)
   Correction in return type of function (right value an note left value)
   Correction cast bool to int, so lots of bug in expression 
   like  (region==2)*5 given alway 0, invisibl before 1.18 (because bug in
   automatics cast)

Make version 1.20 2002/04/25

  Correction of bug in interpolation on non convexe domain.
  correction of bug in periodic boundary condition (pb of sens(in french))
  correction some compilation bug under g++ v3.0 in RNM file
  correction find common point buildmesh (change threshold value)

Make version 1.21 2002/04/29
  Add Non linear Conjugued Gradient (CGNL) routine.
  correct bug in linearGC with non zero right and size.

Make version 1.22 2002/05/02
 all optimisation tool from http://coool.mines.edu/
 Add BFGS optimisation tools form  cool 
 correct bug in CGNL, correct tgv=, in linear form
 make algo.edp example 

Make version 1.23 2002/05/13

 correct bug of the symetric matrix are independ of  x,y,..
add line at  285, in file problem.cpp:           MeshPointStack(stack)->set(T(pi),pi,Ku);

 correct bug in sign of int1d in linearform, 
so change in exemple fluidstructure, schwarz-no-overlap, LaplaceP1, 
aalapacien, lapacienprecon
correct some bug in -= operator with  result of *. */ 
add some operator:

square(u) = u^2 
intalledges(Th)(...) to compute integrale on all edges 
for error indicator add global :
lenEdge the len of the current edge
hTriangle the size of the current triangle
area the area of the current triangle

Make version 1.24

add in BamgFreeFem.cpp after line 211 to set name 
  Tn->name= new char[strlen("msh2bamg")+1];
  strcpy(Tn->name,"msh2bamg");

 add -  of linearform and bilinearform see LaplaceP1bis.edp 

correct: July 8, 2002
Vh u1,u2,v1,v2; 
bug in problem(u1,u2,v1,v2,.... ) = 
in file: FESSpace.hpp line 193:
    { throwassert(dim_which_sub_fem[N-1]>=0 && dim_which_sub_fem[N-1]< nb_sub_fem);
      for(int i=0,n0=0,l=0,i0=0; i<k;  i++,n0+=t.N,i0+=t.NbDoF)
        for (int j=0;j<t.pij_alpha.N();j++,l++) {
          pij_alpha[l].i=t.pij_alpha[j].i+i0;
          pij_alpha[l].p=t.pij_alpha[j].p;
          pij_alpha[l].j=t.pij_alpha[j].j+n0;
          }                         
    } 

add plot of list of border

add init array:

 real[int] a=[1,2,3,5.6,7,8,9]; 

Make version 1.25 
 
13 aout 2002 Major Bug in : FESpace.hpp ligne 199

All the non scalar problem with same kind
of finite element do not work: 

FESpace.hpp ligne 199
      for(int i=0,n0=0,l=0,i0=0; i<k;  i++,n0+=t.N,i0+=t.NbDoF)
        for (int j=0;j<t.pij_alpha.N();j++,l++) {
          pij_alpha[l].i=t.pij_alpha[j].i+i0;
          pij_alpha[l].p=t.pij_alpha[j].p;
          pij_alpha[l].j=t.pij_alpha[j].j+n0;
          }                         
become
     // Warning the componant is moving first 
        for (int j=0,l=0;j<t.pij_alpha.N();j++) // for all sub DF
          for(int i=0,i0=0; i<k; i++,l++) // for componate
          {
          pij_alpha[l].i=t.pij_alpha[j].i*k+i;   //  DoF number
          pij_alpha[l].p=t.pij_alpha[j].p;       //  point of interpolation
          pij_alpha[l].j=t.pij_alpha[j].j+i*t.N; //  componante of interpolation
          }                         

13 aout 
  two corrections in problem.cpp :
     2 missing  delete     (example laplacienprecon.edp)
     2 delete -> delete [] (example testFE.edp) 

26 septembre add New Finite element RTortho (a conforme 
FE in $H(curl)$ like RT $ conforme FE in $H(div)$.
see exemple aaRT.epd
correct the computation of dx(v) and dy(u) in [u,v] RT finite element
function. 
compile on hpux 11 with gcc 3.2 see Makefile-hp9000s700
correct argument passing in GMRES routine

Make version 1.26 le 26 septembre 2002

05 nov. 2002 Correct very small mistake in bamglib  part.

19 nov 2002:
add:
tanh function 
qf2pT4P1 a triangular QuadratureFormular (4P1 the qf2pT QuadratureFormular)
small change une meshadapt to just compute the metrix see exemple 
convectapt.edp 
make interpolation matrix between to FEspace ( finir)

3/12/2002 
make correction to get a not to bad linenumber in error.
add add test is used of unset x,y to make a error.
add checkmovemesh(Th,[x+u,y+v]) function to return the
value of the area of the minimal triangle of the movemesh.
see mesh.edp example.

23/12/2002:
add eigen value solver 
see eigen README_ARPACK to compile
see  examples++-eigen to test.

version 1.28 2/1/2003 

09/1/2003:
add sub array option in array: 
  real[int] tab(100);
  tab(:) = array from 0 to 99=tab.n-1
  tab(2:10)  sub array from 2 to 10
  tab(2:10:2)  sub array from 2 to 10 by step 2
  tab(2:10:2)[0] = 5 ; => modificaton of tab[2] = 5;
  tab(2:10:2)[1] = 6 ; => modificaton of tab[2+2] = 6;
  
  add full matrix
  real [int,int] A(10,10); 
  A(5,5) = 2;
  
16/01/2003
add macro generation like cpp preprosseur:
this is usefull to make automating differenteil
exemple: 
real cc=2;
macro f(u) (cc*(exp(u)-1)) //
macro df(f) (cc*(exp(f)))  //
real u=1;
cout << (cc*(exp(u)-1)) << endl;
cout << f(u) << endl;
cout << df(f(u)) << endl;

see macro.edp  for more detail:
  
22/01/2003 
in file lex.cpp add .c_str() for compilation problem 
on g++ 2.95   
  
15/04/2003
add new finite element:
 P1b  P1 + Bubble
 P1dc P1 discontinious
 P2dc P2 discontinious

correct bug periodic BC with vectorial FESpace, 
add the code.

make version 1.31
  
23/04/2003
  small correction to compile with  g++ 2.95.2 in eigen value tools

26/04/2003
  add function triangulate(filename) to build the 
  Delaunay Triangulation of a set of points in R^2.
 to build a function form a set of : x y f(x,y)
 see exemple tablefunction.edp  

29/04/2003
make version 1.32
  