[freefempp] 03/03: Refresh examples++-load.patch

Dimitrios Eftaxiopoulos eftaxiop-guest at moszumanska.debian.org
Fri Mar 13 13:16:20 UTC 2015


This is an automated email from the git hooks/post-receive script.

eftaxiop-guest pushed a commit to branch experimental
in repository freefempp.

commit bcf5b34b76439c5cccf2c5490fa5ba763cba7c72
Author: Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>
Date:   Fri Mar 13 15:13:52 2015 +0200

    Refresh examples++-load.patch
---
 DOC/._freefem++doc.pdf                             |   Bin 177 -> 0 bytes
 DOC/Makefile.in                                    |   674 -
 HISTORY.orig                                       | 16178 --------------
 INNOVATION.orig                                    |  1217 --
 Makefile.am.orig                                   |   265 -
 Makefile.in                                        |  1199 --
 README_MAC.orig                                    |   107 -
 acmacros.m4.orig                                   |    46 -
 acmpi.m4.orig                                      |   429 -
 acoptim.m4.orig                                    |   258 -
 build/download.orig                                |    82 -
 configure                                          | 20836 -------------------
 configure.ac.orig                                  |  2082 --
 debian/changelog.orig                              |   193 -
 debian/control                                     |     2 +-
 debian/patches/configure.patch.orig                |    28 -
 debian/patches/examples++-load.patch               |     6 +-
 debian/patches/examples++-load.patch.orig          |    38 -
 debian/patches/examples-bamg.patch.orig            |    12 -
 debian/source/options                              |     2 +-
 download/Makefile                                  |   609 +-
 download/Makefile.am.orig                          |   207 -
 download/Makefile.orig                             |  1211 --
 download/arpack/Makefile                           |   612 +-
 download/{bin/ff-pkg-download => bin}              |     2 +-
 download/bin/ff-get-dep                            |    76 -
 download/blas/Makefile                             |    41 +-
 download/blas/Makefile.in                          |  4348 ----
 download/blas/opendownload.done                    |     0
 download/fftw/Makefile                             |   593 +-
 download/fftw/Makefile.orig                        |   873 -
 download/getall.orig                               |   224 -
 download/scotch/Makefile-scotch.inc.orig           |    36 -
 download/umfpack/Makefile                          |   601 +-
 download/umfpack/Makefile.orig                     |  1005 -
 examples++-3d/._MeshSurface.idp                    |   Bin 171 -> 0 bytes
 examples++-3d/Makefile.am.orig                     |    50 -
 examples++-3d/Makefile.in                          |  1228 --
 examples++-bug/Makefile.in                         |   580 -
 examples++-chapt3/Makefile.in                      |  1110 -
 examples++-eigen/._BeamEigenValue.edp              |   Bin 171 -> 0 bytes
 examples++-eigen/._free-cyl-axi.edp                |   Bin 171 -> 0 bytes
 examples++-eigen/Makefile.in                       |  1041 -
 examples++-load/._bilapP3-hct-like.edp             |   Bin 171 -> 0 bytes
 examples++-load/._ff-AiryBiry.cpp                  |   Bin 624 -> 0 bytes
 examples++-load/._ffrandom.edp                     |   Bin 171 -> 0 bytes
 examples++-load/._gsl.awk                          |   Bin 171 -> 0 bytes
 examples++-load/._gsl.awk.orig                     |   Bin 171 -> 0 bytes
 examples++-load/._iohd5-beam-2d.edp                |   Bin 174 -> 0 bytes
 examples++-load/._iohd5-beam-3d.edp                |   Bin 174 -> 0 bytes
 examples++-load/._msh3.hpp                         |   Bin 171 -> 0 bytes
 examples++-load/._testFE-PkEdge.edp                |   Bin 171 -> 0 bytes
 examples++-load/BinaryIO.cpp.orig                  |   100 -
 examples++-load/DxWriter.cpp.orig                  |   362 -
 examples++-load/FreeFemQA.cpp.orig                 |   202 -
 examples++-load/Makefile.am.orig                   |   284 -
 examples++-load/Makefile.in                        |  1829 --
 examples++-load/MetricKuate.cpp                    |    12 +-
 examples++-load/MetricKuate.cpp.orig               |   681 -
 examples++-load/MetricPk.cpp                       |    20 +-
 examples++-load/MetricPk.cpp.orig                  |   423 -
 examples++-load/NewSolver.cpp.orig                 |   354 -
 examples++-load/PARDISO.cpp.orig                   |   261 -
 examples++-load/SuperLu.cpp.orig                   |   794 -
 examples++-load/VTK_writer.cpp.orig                |   352 -
 examples++-load/VTK_writer_3d.cpp.orig             |   380 -
 examples++-load/addNewType.cpp.orig                |    92 -
 examples++-load/bfstream.cpp.orig                  |    89 -
 examples++-load/dfft.cpp.orig                      |   284 -
 examples++-load/ff-Ipopt.cpp.orig                  |  1759 --
 examples++-load/ff-NLopt.cpp.orig                  |   891 -
 examples++-load/ff-cmaes.cpp.orig                  |   321 -
 examples++-load/ff-get-dep.in.orig                 |    99 -
 examples++-load/fflapack.cpp.orig                  |   995 -
 examples++-load/ffnewuoa.cpp.orig                  |   206 -
 examples++-load/freeyams.cpp.orig                  |   844 -
 examples++-load/funcTemplate.cpp.orig              |   142 -
 examples++-load/gmsh.cpp.orig                      |   854 -
 examples++-load/gsl.cpp.orig                       |   268 -
 examples++-load/ilut.cpp.orig                      |   170 -
 examples++-load/iovtk.cpp                          |    10 +-
 examples++-load/iovtk.cpp.orig                     |  4049 ----
 examples++-load/isolineP1.cpp                      |     8 +-
 examples++-load/isolineP1.cpp.orig                 |   908 -
 examples++-load/lapack.cpp.orig                    |   995 -
 examples++-load/lgbmo.cpp.orig                     |   340 -
 examples++-load/load.link.in.orig                  |   296 -
 examples++-load/mat_dervieux.cpp.orig              |   170 -
 examples++-load/mat_psi.cpp.orig                   |   283 -
 examples++-load/medit.cpp                          |     2 +-
 examples++-load/medit.cpp.orig                     |  2444 ---
 examples++-load/metis.cpp.orig                     |   151 -
 examples++-load/mmg3d-v4.0.cpp.orig                |   453 -
 examples++-load/msh3.cpp                           |    38 +-
 examples++-load/msh3.cpp.orig                      |  5905 ------
 examples++-load/mshmet.cpp.orig                    |   770 -
 examples++-load/myfunction2.cpp.orig               |    32 -
 examples++-load/pcm2rnm.cpp.orig                   |   133 -
 examples++-load/ppm2rnm.cpp.orig                   |   338 -
 examples++-load/qf11to25.cpp.orig                  |   883 -
 examples++-load/scotch.cpp.orig                    |   164 -
 examples++-load/splitedges.cpp.orig                |   271 -
 examples++-load/splitmesh3.cpp.orig                |   131 -
 examples++-load/splitmesh6.cpp.orig                |   178 -
 examples++-load/symmetrizeCSR.cpp.orig             |    90 -
 examples++-load/tetgen.cpp                         |     2 +-
 examples++-load/tetgen.cpp.orig                    |  2549 ---
 examples++-load/thresholdings.cpp.orig             |   108 -
 examples++-mpi/._DDM-NSUzawaCahouetChabart.edp     |   Bin 171 -> 0 bytes
 examples++-mpi/._MUMPS_FreeFem.cpp                 |   Bin 171 -> 0 bytes
 examples++-mpi/._PETSc.hpp                         |   Bin 261 -> 0 bytes
 examples++-mpi/._additional.idp                    |   Bin 174 -> 0 bytes
 .../._complex_SuperLU_DIST_FreeFem.cpp~HEAD        |   Bin 171 -> 0 bytes
 ...omplex_SuperLU_DIST_FreeFem.cpp~upstream_3.34.2 |   Bin 171 -> 0 bytes
 examples++-mpi/._dSuperLU_DIST.cpp~HEAD            |   Bin 171 -> 0 bytes
 examples++-mpi/._dSuperLU_DIST.cpp~upstream_3.34.2 |   Bin 171 -> 0 bytes
 examples++-mpi/._hips_FreeFem.cpp                  |   Bin 171 -> 0 bytes
 examples++-mpi/._hips_FreeFem.cpp.orig             |   Bin 171 -> 0 bytes
 examples++-mpi/._parms_FreeFem.cpp                 |   Bin 171 -> 0 bytes
 examples++-mpi/._parms_FreeFem.cpp.orig            |   Bin 171 -> 0 bytes
 .../._real_SuperLU_DIST_FreeFem.cpp~HEAD           |   Bin 171 -> 0 bytes
 ...._real_SuperLU_DIST_FreeFem.cpp~upstream_3.34.2 |   Bin 171 -> 0 bytes
 examples++-mpi/._removeDOF.cpp                     |   Bin 171 -> 0 bytes
 examples++-mpi/._schwarz.cpp                       |   Bin 171 -> 0 bytes
 examples++-mpi/._schwarz.edp                       |   Bin 174 -> 0 bytes
 examples++-mpi/._stokes-2d.edp                     |   Bin 174 -> 0 bytes
 examples++-mpi/DDM-Schwarz-macro.idp.orig          |   406 -
 examples++-mpi/MPICG.cpp.orig                      |   512 -
 examples++-mpi/MPIplot.idp.orig                    |    42 -
 examples++-mpi/MUMPS.cpp.orig                      |   318 -
 examples++-mpi/MUMPS_FreeFem.cpp.orig              |  2619 ---
 examples++-mpi/Makefile.am.orig                    |   124 -
 examples++-mpi/Makefile.in                         |  1251 --
 examples++-mpi/Stokes-v1-matrix-mumps.edp.orig     |    85 -
 .../complex_SuperLU_DIST_FreeFem.cpp.orig          |   861 -
 examples++-mpi/complex_pastix_FreeFem.cpp          |     4 +-
 examples++-mpi/complex_pastix_FreeFem.cpp.orig     |   701 -
 examples++-mpi/dSuperLU_DIST.cpp.orig              |   758 -
 examples++-mpi/hips_FreeFem.cpp.orig               |   781 -
 examples++-mpi/hypre_FreeFem.cpp                   |     2 +-
 examples++-mpi/hypre_FreeFem.cpp.orig              |  1779 --
 examples++-mpi/interfacepastix.cpp                 |     4 +-
 examples++-mpi/interfacepastix.cpp.orig            |   565 -
 examples++-mpi/mpi-cmaes.cpp.orig                  |   405 -
 examples++-mpi/parms_FreeFem.cpp.orig              |  1083 -
 examples++-mpi/real_SuperLU_DIST_FreeFem.cpp.orig  |   831 -
 examples++-mpi/real_pastix_FreeFem.cpp             |     4 +-
 examples++-mpi/real_pastix_FreeFem.cpp.orig        |   733 -
 examples++-mpi/removeDOF.cpp.orig                  |   278 -
 examples++-mpi/schwarz.cpp.orig                    |   473 -
 examples++-mpi/schwarz.edp.orig                    |   133 -
 examples++-mpi/utility.cpp.orig                    |   430 -
 examples++-other/Makefile.in                       |   954 -
 examples++-tutorial/._NSUzawaCahouetChabart.edp    |   Bin 171 -> 0 bytes
 examples++-tutorial/._cavityNewtow.edp             |   Bin 171 -> 0 bytes
 examples++-tutorial/._schwarz-no-overlap.edp       |   Bin 171 -> 0 bytes
 examples++-tutorial/._string.edp                   |   Bin 171 -> 0 bytes
 examples++-tutorial/Makefile.in                    |  1405 --
 examples++-tutorial/sparse-cmatrix.edp.orig        |   162 -
 examples++-tutorial/sparse-matrix.edp.orig         |   250 -
 examples++/._NSP1P2.edp                            |   Bin 171 -> 0 bytes
 examples++/Makefile.in                             |  1123 -
 src/Algo/Makefile.in                               |   588 -
 src/Graphics/._ffglut.cpp                          |   Bin 167 -> 0 bytes
 src/Graphics/._getprog-unix.hpp                    |   Bin 171 -> 0 bytes
 src/Graphics/._gggg.cpp                            |   Bin 171 -> 0 bytes
 src/Graphics/._gggg.cpp.orig                       |   Bin 171 -> 0 bytes
 src/Graphics/._sansrgraph.cpp                      |   Bin 170 -> 0 bytes
 src/Graphics/Makefile.in                           |   589 -
 src/Makefile.in                                    |   783 -
 src/bamg/Makefile.am.orig                          |    34 -
 src/bamg/Makefile.in                               |   768 -
 src/bamglib/._Mesh2.h~HEAD                         |   Bin 171 -> 0 bytes
 src/bamglib/._Mesh2.h~upstream_3.34.2              |   Bin 171 -> 0 bytes
 src/bamglib/._MeshWrite.cpp~HEAD                   |   Bin 167 -> 0 bytes
 src/bamglib/._MeshWrite.cpp~upstream_3.34.2        |   Bin 167 -> 0 bytes
 src/bamglib/._Metric.cpp                           |   Bin 167 -> 0 bytes
 src/bamglib/._QuadTree.cpp                         |   Bin 167 -> 0 bytes
 src/bamglib/._meshtype.h~HEAD                      |   Bin 171 -> 0 bytes
 src/bamglib/._meshtype.h~upstream_3.34.2           |   Bin 171 -> 0 bytes
 src/bamglib/._write_hdf5.hpp                       |   Bin 174 -> 0 bytes
 src/bamglib/._write_xdmf.cpp                       |   Bin 174 -> 0 bytes
 src/bamglib/._write_xdmf.hpp                       |   Bin 174 -> 0 bytes
 src/bamglib/Makefile.am.orig                       |    15 -
 src/bamglib/Makefile.in                            |   589 -
 src/bamglib/Mesh2.cpp                              |     4 +-
 src/bamglib/Mesh2.cpp.orig                         |  5205 -----
 src/bamglib/Mesh2.h.orig                           |  1536 --
 src/bamglib/MeshWrite.cpp.orig                     |  1906 --
 src/bamglib/meshtype.h.orig                        |    75 -
 src/bin-win32/Makefile.in                          |   654 -
 src/femlib/._CGNL.hpp                              |   Bin 171 -> 0 bytes
 src/femlib/._Drawing.cpp                           |   Bin 167 -> 0 bytes
 src/femlib/._Mesh3dn.cpp~HEAD                      |   Bin 170 -> 0 bytes
 src/femlib/._Mesh3dn.cpp~upstream_3.34.2           |   Bin 170 -> 0 bytes
 src/femlib/._QuadratureFormular.cpp                |   Bin 167 -> 0 bytes
 src/femlib/._QuadratureFormular.hpp                |   Bin 171 -> 0 bytes
 src/femlib/._R1.hpp                                |   Bin 171 -> 0 bytes
 src/femlib/._R2.hpp                                |   Bin 171 -> 0 bytes
 src/femlib/._R3.hpp                                |   Bin 171 -> 0 bytes
 src/femlib/._RNM_op.hpp                            |   Bin 171 -> 0 bytes
 src/femlib/._gmres.hpp                             |   Bin 171 -> 0 bytes
 src/femlib/BamgFreeFem.cpp.orig                    |   978 -
 src/femlib/CheckPtr.cpp.orig                       |   534 -
 src/femlib/GenericMesh.hpp                         |     6 +-
 src/femlib/GenericMesh.hpp.orig                    |  1599 --
 src/femlib/Makefile.in                             |   616 -
 src/femlib/MatriceCreuse.hpp.orig                  |  1061 -
 src/femlib/MatriceCreuse_tpl.hpp.orig              |  1980 --
 src/femlib/Mesh3dn.cpp                             |     4 +-
 src/femlib/Mesh3dn.cpp.orig                        |  1446 --
 src/femlib/RNM.hpp.orig                            |  1606 --
 src/fflib/._AFunction.hpp~HEAD                     |   Bin 167 -> 0 bytes
 src/fflib/._AFunction.hpp~upstream_3.34.2          |   Bin 167 -> 0 bytes
 src/fflib/._AFunction2.cpp                         |   Bin 170 -> 0 bytes
 src/fflib/._InitFunct.hpp                          |   Bin 171 -> 0 bytes
 src/fflib/._InitFunct.hpp.orig                     |   Bin 171 -> 0 bytes
 src/fflib/._array_tlp.hpp~upstream_3.34.2          |   Bin 171 -> 0 bytes
 src/fflib/._ffapi.cpp                              |   Bin 171 -> 0 bytes
 src/fflib/._ffapi.hpp                              |   Bin 171 -> 0 bytes
 src/fflib/._lgfem.cpp~HEAD                         |   Bin 170 -> 0 bytes
 src/fflib/._lgfem.cpp~upstream_3.34.2              |   Bin 170 -> 0 bytes
 src/fflib/._lgsolver.hpp                           |   Bin 171 -> 0 bytes
 src/fflib/AFunction.cpp.orig                       |  1996 --
 src/fflib/AFunction.hpp                            |     2 +-
 src/fflib/AFunction.hpp.orig                       |  3264 ---
 src/fflib/AFunction2.cpp                           |     2 +-
 src/fflib/AFunction2.cpp.orig                      |  1017 -
 src/fflib/InitFunct.hpp.orig                       |    84 -
 src/fflib/Makefile.am.orig                         |    75 -
 src/fflib/Makefile.in                              |  1399 --
 src/fflib/P1IsoValue.cpp.orig                      |   469 -
 src/fflib/P1IsoValue.hpp.orig                      |    56 -
 src/fflib/array_tlp.hpp.orig                       |  1464 --
 src/fflib/ffapi.cpp.orig                           |   323 -
 src/fflib/ffapi.hpp.orig                           |   124 -
 src/fflib/lex.cpp.orig                             |   864 -
 src/fflib/lgfem.cpp                                |     2 +-
 src/fflib/lgfem.cpp.orig                           |  6024 ------
 src/fflib/lgmat.cpp.orig                           |  3180 ---
 src/fflib/load.cpp.orig                            |   269 -
 src/fflib/problem.cpp.orig                         |  6159 ------
 src/fflib/problem.hpp                              |     2 +-
 src/fflib/problem.hpp.orig                         |  1351 --
 src/fflib/strversionnumber.cpp                     |     4 +-
 src/lglib/._lg.ypp                                 |   Bin 171 -> 0 bytes
 src/lglib/._mymain.cpp                             |   Bin 170 -> 0 bytes
 src/lglib/Makefile.in                              |   740 -
 src/lglib/lg.ypp.orig                              |   981 -
 src/libMesh/Makefile.in                            |   720 -
 src/medit/._keyboard.c                             |   Bin 171 -> 0 bytes
 src/medit/._mouse.c                                |   Bin 171 -> 0 bytes
 src/medit/._sproto.h                               |   Bin 171 -> 0 bytes
 src/medit/Makefile.in                              |   844 -
 src/mpi/._parallelempi.cpp                         |   Bin 170 -> 0 bytes
 src/mpi/Makefile.in                                |   899 -
 src/mpi/parallelempi.cpp.orig                      |  2661 ---
 src/nw/Makefile.in                                 |  1011 -
 258 files changed, 1311 insertions(+), 169197 deletions(-)

diff --git a/DOC/._freefem++doc.pdf b/DOC/._freefem++doc.pdf
deleted file mode 100644
index 8911007..0000000
Binary files a/DOC/._freefem++doc.pdf and /dev/null differ
diff --git a/DOC/Makefile.in b/DOC/Makefile.in
deleted file mode 100644
index 3ba2c6a..0000000
--- a/DOC/Makefile.in
+++ /dev/null
@@ -1,674 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# ======================================================================
-# Laboratoire Jacques-Louis Lions
-# Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-# ======================================================================
-# This file is part of Freefem++
-# 
-# Freefem++ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-# 
-# Freefem++ is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-# 
-# You should have received a copy of the GNU Lesser General Public
-# License along with Freefem++; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# ======================================================================
-# headeralh default=0 freefem make multipleauthors start=13/05/04 upmc
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = DOC
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(dist_pkgdata_DATA)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(pkgdatadir)"
-DATA = $(dist_pkgdata_DATA)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-dist_pkgdata_DATA = $(DOCPDF)
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu DOC/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu DOC/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
-	@$(NORMAL_INSTALL)
-	@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
-	done
-
-uninstall-dist_pkgdataDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
-	for dir in "$(DESTDIR)$(pkgdatadir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-dist_pkgdataDATA
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-dist_pkgdataDATA
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
-	ctags-am distclean distclean-generic distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dist_pkgdataDATA install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
-	uninstall-am uninstall-dist_pkgdataDATA
-
-documentation: $(DOCPDF) 
-docps:  $(DOCPS) $(DOCPSGZ) 
-docpdf: $(DOCPDF) 
-
-# ALH - 16/10/13 - split GNU make directives into a separate makefile [[file:gnu.mak]] to suppress automake warning
-# messages about non-portability
-
-freefem++doc.pdf:
-	$(MAKE) -f gnu.mak $@ EPSTOPDF="$(EPSTOPDF)"
-freefem++doc.ps:
-	$(MAKE) -f gnu.mak $@ EPSTOPDF="$(EPSTOPDF)"
-freefem++doc.ps.gz:
-	$(MAKE) -f gnu.mak $@ EPSTOPDF="$(EPSTOPDF)"
-clean:
-	$(MAKE) -f gnu.mak $@
-
-# Local Variables:
-# mode:makefile
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/HISTORY.orig b/HISTORY.orig
deleted file mode 100644
index 1dcebff..0000000
--- a/HISTORY.orig
+++ /dev/null
@@ -1,16178 +0,0 @@
-<<<<<<< HEAD
-@  changeset:   3168:841250c6ecc4
-|  tag:         tip
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Feb 16 12:51:05 2015 +0100
-|  summary:     correct find petsc
-|
-o  changeset:   3167:cd84708881af
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 13 19:04:29 2015 +0100
-|  summary:     correction  in caes of no compilion of hpddm
-|
-o  changeset:   3166:2ace2a1eda0b
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 13 15:53:04 2015 +0100
-|  summary:     correct typo in configure output
-|
-o  changeset:   3165:45280aa09820
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 13 15:43:25 2015 +0100
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   3164:0d87a638d273
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 13 15:41:24 2015 +0100
-|  summary:     put  change for hpdmm mlk old. Thank P. Jolivet.
-|
-o  changeset:   3163:6510f36c0063
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 13 10:14:01 2015 +0100
-|  summary:     add reinstall-hpddm targed in downlaod/Makefile
-|
-o  changeset:   3162:cd09add72c31
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 12 18:03:19 2015 +0100
-|  summary:     correct typo in find petsc
-|
-o  changeset:   3161:2d75c3267da7
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 12 15:41:22 2015 +0100
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   3160:07a30279fade
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 12 15:11:48 2015 +0100
-|  summary:     add notify of petsc
-|
-o  changeset:   3159:d71a3cc91c39
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 12 15:04:19 2015 +0100
-|  summary:     update INNOVATION file
-|
-o  changeset:   3158:7ffe24b7a08d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 12 15:02:49 2015 +0100
-|  summary:     pass to version 3.34-1 for PETSc interface ans schwarz plugins
-|
-o  changeset:   3157:83f4a2ab0c5f
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 12 11:20:52 2015 +0100
-|  summary:     coorect problem on version in PETSc interface and  MKL for schawtz.cpp
-|
-o  changeset:   3156:651407885920
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 12 10:11:33 2015 +0100
-|  summary:     correct typo after big change in plugin (now all test works)
-|
-o  changeset:   3155:bff13b38aba2
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 12 09:43:26 2015 +0100
-|  summary:     Change all int of plugins due to bug on somme allpe version
-|
-o  changeset:   3154:e8aa9ceccd60
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 10 21:34:10 2015 +0100
-|  summary:     try of compile schwarz.cpp on all case
-|
-o  changeset:   3153:f693d6250f91
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 10 17:23:21 2015 +0100
-|  summary:     remove plot in MPI
-|
-o  changeset:   3152:9cbe00fe0e23
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 10 15:43:46 2015 +0100
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   3151:e6be9d714829
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 10 15:33:31 2015 +0100
-|  summary:     remove libiomp5 if non openmp
-|
-o  changeset:   3150:fdef3857f8bf
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 10 14:45:06 2015 +0100
-|  summary:     updet missing file for hpddm
-|
-o  changeset:   3149:7a351cbaa77d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 10 14:43:09 2015 +0100
-|  summary:     coorect pb of compilation of schwarz.cpp plugins in progress.
-|
-o  changeset:   3148:f85a44d0ab6d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 10 10:28:55 2015 +0100
-|  summary:     correct ff-get-dep.in ff-get-dep.awk (pb of new line  in awk )
-|
-o  changeset:   3147:bb139ebb5e41
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 10 09:28:35 2015 +0100
-|  summary:     rewrite all automatic search of library in awk ad add no mandatory lib like PETSc
-|
-o  changeset:   3146:d23e38b06cd6
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Feb 09 18:06:20 2015 +0100
-|  summary:     correct missing include seach in ff-get-dep.in for no mandatori libs
-|
-o  changeset:   3145:3516b5ecac75
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 06 18:18:00 2015 +0100
-|  summary:     update download/Makefile.am
-|
-o  changeset:   3144:b6ce652f34d1
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 06 18:10:17 2015 +0100
-|  summary:     add install de hpddm ...
-|
-o  changeset:   3143:54b79f51069b
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 06 14:43:16 2015 +0100
-|  summary:     correct bad LIB_MPI in scotch
-|
-o  changeset:   3142:1faabfce37d3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 06 14:07:59 2015 +0100
-|  summary:     add no mandatoring lib in automatic lib search (WHERE-LIb search)
-|
-o  changeset:   3141:d7420bb1718d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 06 11:50:52 2015 +0100
-|  summary:     do lot of correction for new install version 3.24
-|
-o  changeset:   3140:ad567d1f75ac
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 05 21:40:31 2015 +0100
-|  summary:     correct acmpi for pb sgi mpicc
-|
-o  changeset:   3139:d2144a73ee94
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 05 09:47:20 2015 +0100
-|  summary:     correct problem when find c++11 version in configure
-|
-o  changeset:   3138:d777e1cc38d4
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 30 16:02:54 2015 +0100
-|  summary:     remove a madatory 3d test
-|
-o  changeset:   3137:ae6b05ca1182
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 30 15:49:33 2015 +0100
-|  summary:     continue coorect double free
-|
-o  changeset:   3136:d52565e53a04
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 30 15:01:45 2015 +0100
-|  summary:     correct pb 2 free in bamg
-|
-o  changeset:   3135:e2d7867ffd31
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 30 14:51:08 2015 +0100
-|  summary:     correct typo
-|
-o  changeset:   3134:e59974780d33
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 30 14:45:46 2015 +0100
-|  summary:     remove of pb of 2 free un bamg in case of crossing boundary
-|
-o  changeset:   3133:dfe9ee56d630
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 30 14:12:53 2015 +0100
-|  summary:     change for c++-11 and hdf5 with g++-4.9.1
-|
-o  changeset:   3132:d7e83d234408
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 30 09:59:26 2015 +0100
-|  summary:     correct jn call for c++11
-|
-o  changeset:   3131:c1663877ad52
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 30 09:57:04 2015 +0100
-|  summary:     coorect pow of c++-11 compiler
-|
-o  changeset:   3130:e1174bba7a16
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 29 10:31:52 2015 +0100
-|  summary:     coorect pb with pclose call
-|
-o  changeset:   3129:1af654663cff
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 29 10:01:11 2015 +0100
-|  summary:     add correct of pb compilation undec g++ 4.8.1 c++-11
-|
-o  changeset:   3128:084f6138edba
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 16 21:10:43 2015 +0100
-|  summary:     add schwarz.edp and add AutoGeneratedFile.tar.gz
-|
-o  changeset:   3127:4edf8d6dd064
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 16 21:05:34 2015 +0100
-|  summary:     cadd schwarz.edp test
-|
-o  changeset:   3126:40891f8e170d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 16 20:39:09 2015 +0100
-|  summary:     correct configure.ac to compile plugin schwarz with PETSc
-|
-o  changeset:   3125:397a0e0b089f
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jan 16 17:16:29 2015 +0100
-|  summary:     add petsc in configure (first test)
-|
-o  changeset:   3124:695d108081da
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 15 16:54:43 2015 +0100
-|  summary:     correct pb compile e new schwarz pluging
-|
-o  changeset:   3123:84eadda9ec1e
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 15 15:55:21 2015 +0100
-|  summary:     add schwarz interface
-|
-o  changeset:   3122:fb3f97e0b7ad
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 15 15:25:14 2015 +0100
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   3121:4e9df821cdd8
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 15 15:24:15 2015 +0100
-|  summary:     add new cpu type on apple
-|
-o  changeset:   3120:18f455b5dd91
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 15 15:14:33 2015 +0100
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   3119:f2a508d27a6d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 15 15:12:02 2015 +0100
-|  summary:     add cxx11 chech
-|
-o  changeset:   3118:89604c8d20bb
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 15 11:04:51 2015 +0100
-|  summary:     correct build/download to follow link in case of curl usage..
-|
-o  changeset:   3117:1356c66b9164
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jan 15 08:22:32 2015 +0100
-|  summary:     correct pb on depot
-|
-o  changeset:   3116:ed9ccb5032ff
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jan 13 22:49:44 2015 +0100
-|  summary:     coorect examples++-load/include dir construction
-|
-o  changeset:   3115:034691a4deff
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jan 13 22:34:43 2015 +0100
-|  summary:     correct reconstrion for examples++-load/include
-|
-o  changeset:   3114:c180b6d013fd
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jan 13 22:01:23 2015 +0100
-|  summary:     add missing file
-|
-o  changeset:   3113:ae32ce3d21c3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jan 13 21:31:46 2015 +0100
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   3112:3201f396e00c
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jan 13 21:30:17 2015 +0100
-|  summary:     correct src/bamg/Makefile.am for hdf5 tools
-|
-o  changeset:   3111:3cdca031639a
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jan 13 21:19:27 2015 +0100
-|  summary:     add missing file
-|
-o  changeset:   3110:cf15bbc40e87
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jan 13 21:08:20 2015 +0100
-|  summary:     add hd5 and xml stuff.
-|
-o  changeset:   3109:be503a9f1ff3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Dec 15 14:52:58 2014 +0100
-|  summary:     put modif un lg.ypp not in lg.tab.cpp
-|
-o  changeset:   3108:1f630ba53655
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Dec 15 14:17:33 2014 +0100
-|  summary:     add missing option in plot
-|
-o  changeset:   3107:77a71b1b2901
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Sat Dec 13 21:14:08 2014 +0100
-|  summary:     correct memory leak
-|
-o  changeset:   3106:e18aa16a8edf
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Sat Dec 13 14:53:47 2014 +0100
-|  summary:     correct typo for  c++11 >>
-|
-o  changeset:   3105:0094d2a7433d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Dec 12 20:53:16 2014 +0100
-|  summary:     rebuild AutoGeneratedFile.tar.gz and a P. Patch for
-|
-o  changeset:   3104:5d5d0f7cbcfc
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Dec 12 10:40:06 2014 +0100
-|  summary:     correct lot of memory leak in case of
-|
-o  changeset:   3103:e7c44e31bf18
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Dec 11 20:48:28 2014 +0100
-|  summary:     correct memory leack
-|
-o  changeset:   3102:768c07a126f7
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Dec 08 09:37:21 2014 +0100
-|  summary:     add file fore hpddm interface
-|
-o  changeset:   3101:fb9b853f36b3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Nov 28 13:43:55 2014 +0100
-|  summary:     correct ff_finalmize
-|
-o  changeset:   3100:b47f510056e4
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Nov 28 12:06:48 2014 +0100
-|  summary:     add function ff_finalize
-|
-o  changeset:   3099:913a0e471dca
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Nov 26 08:18:43 2014 +0100
-|  summary:     add missing files
-|
-o  changeset:   3098:78b5f9947030
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Nov 26 08:13:09 2014 +0100
-|  summary:     pass to version 3.33
-|
-o  changeset:   3097:492928d72946
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Nov 26 08:10:21 2014 +0100
-|  summary:     begin of PETSc integration
-|
-o  changeset:   3096:e5f2eccb8503
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Nov 14 23:03:05 2014 +0100
-|  summary:     correct bug in periodic B.C ( some time loop)
-|
-o  changeset:   3095:3ed7375fbf91
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Nov 14 09:12:19 2014 +0100
-|  summary:     remove debug call xxxx()
-|
-o  changeset:   3094:82be1c76fe42
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Nov 14 09:11:12 2014 +0100
-|  summary:     correct bug array growing behaves differently on Linux and Mac
-|
-o  changeset:   3093:eecf0e60f9f5
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Nov 12 16:28:08 2014 +0100
-|  summary:     add check on vol tet in readmesh3
-|
-o  changeset:   3092:fa4384bf86b4
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Nov 07 14:30:36 2014 +0100
-|  summary:     correct pb under window  in load.cpp (no dlerror)
-|
-o  changeset:   3091:0a4c31444a80
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-=======
-@  changeset:   3091:0a4c31444a80
-|  tag:         tip
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-|  date:        Tue Nov 04 10:58:24 2014 +0100
-|  summary:     correct    md5 code of OpenBlas.tar.gz
-|
-o  changeset:   3090:5da39542e29b
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Nov 03 21:46:43 2014 +0100
-|  summary:     Added tag 3.28 for changeset af4fbbef4ecd
-|
-o  changeset:   3089:02abe57a6937
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Nov 03 21:46:28 2014 +0100
-|  summary:     Added tag 3.27 for changeset 4c7506b5ac6c
-|
-o  changeset:   3088:641a8e0bee7c
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Nov 03 21:44:16 2014 +0100
-|  summary:     Added tag 3.29 for changeset d7efc421b561
-|
-o  changeset:   3087:acd6c3b0c193
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Nov 03 21:42:37 2014 +0100
-|  summary:     Added tag 3.32 for changeset d324bac28890
-|
-o  changeset:   3086:edda4017be2b
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Nov 03 21:40:19 2014 +0100
-|  summary:     Added tag 3.31-2 for changeset a7eb0c2116df
-|
-o  changeset:   3085:94b8a1970489
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Nov 03 21:39:58 2014 +0100
-|  summary:     Added tag 3.31-3 for changeset 4e164226411d
-|
-o  changeset:   3084:248ae9751459
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Oct 30 08:43:56 2014 +0100
-|  summary:     thanck to V. Huber  to take care of the verbosity level.
-|
-o  changeset:   3083:4ad6b556e1cb
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Oct 29 19:10:00 2014 +0100
-|  summary:     passversion  to 3.32-1
-|
-o  changeset:   3082:2047e74a7fd2
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Oct 29 19:05:50 2014 +0100
-|  summary:     a compuation of dx,dy in Element_PkEdge
-|
-o  changeset:   3081:39d9338aa60a
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Oct 29 17:10:40 2014 +0100
-|  summary:     coorect plugin
-|
-o  changeset:   3080:ab0bad526b7a
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Oct 22 11:47:55 2014 +0200
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   3079:adf7ec4e0148
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Oct 22 11:47:16 2014 +0200
-|  summary:     add correction of P. Jolivet.
-|
-o  changeset:   3078:d29757759e08
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Oct 20 21:30:08 2014 +0200
-|  summary:     add correct launchff++ add ++d parameter for debuggin
-|
-o  changeset:   3077:df774c8536bf
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Oct 17 10:54:18 2014 +0200
-|  summary:     update INNOVATION
-|
-o  changeset:   3076:9ad9343d75d5
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Oct 17 10:53:01 2014 +0200
-|  summary:     correct big big in memory manageemnt of sparse matrix Matrice_Creuse
-|
-o  changeset:   3075:7e28b3a59725
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Oct 16 22:42:59 2014 +0200
-|  summary:     correct pb of factorisation
-|
-o  changeset:   3074:a216bad8d511
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Oct 16 22:39:31 2014 +0200
-|  summary:     correct type add remove file
-|
-o  changeset:   3073:89d2902eadca
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Oct 16 22:36:24 2014 +0200
-|  summary:     correct typo and remove test ..
-|
-o  changeset:   3072:d4af5fcecb25
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Oct 16 18:30:25 2014 +0200
-|  summary:     add check \ escape on string  "\z" -> z "\\" -> \ "\"" -> "
-|
-o  changeset:   3071:d324bac28890
-|  tag:         3.32
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Oct 16 16:33:01 2014 +0200
-|  summary:     coorect size on arrow  in plot ..
-|
-o  changeset:   3070:50157156eec4
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Oct 01 16:14:50 2014 +0200
-|  summary:     correct PARDISO / omp interface un uv100
-|
-o  changeset:   3069:828f65161d32
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 17:23:35 2014 +0200
-|  summary:     coorect type in parms interface
-|
-o  changeset:   3068:8d8432eea0df
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 17:01:19 2014 +0200
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   3067:0bffd0452ab7
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 16:58:05 2014 +0200
-|  summary:     add MUMPS plugin as MUMPS_seq plug without mpi
-|
-o  changeset:   3066:defe4e954307
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 16:50:45 2014 +0200
-|  summary:     update getall for davis web site change
-|
-o  changeset:   3065:15f28ab62c85
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 16:00:57 2014 +0200
-|  summary:     update getall ofr change SuiteSparse change web site.
-|
-o  changeset:   3064:ec7869984007
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 15:16:41 2014 +0200
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   3063:3086bae92306
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 15:15:30 2014 +0200
-|  summary:     correct environment.cpp and Makefile.am to find and put plugin for mpi
-|
-o  changeset:   3062:1dfbc3cec7ed
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 13:57:17 2014 +0200
-|  summary:     clean return value of /clean_all_installed_ffpp.sh for mac installer
-|
-o  changeset:   3061:5f22bdd00e0e
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 13:51:01 2014 +0200
-|  summary:     add missing chaneg
-|
-o  changeset:   3060:3e57363e9da8
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 13:49:36 2014 +0200
-|  summary:     next step  for mpi plugin
-|
-o  changeset:   3059:8a87f28ed7f5
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Sep 16 11:22:47 2014 +0200
-|  summary:     correct MUMPS plugin  complex version
-|
-o  changeset:   3058:2d9d48374ec8
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Sep 01 14:48:27 2014 +0200
-|  summary:     add vectoral operator line v/a (resp.  a/v-  == v_i/a (resp. a/v_i)
-|
-o  changeset:   3057:e471d8a2ae32
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Aug 26 11:45:47 2014 +0200
-|  summary:     missing file in distribution.
-|
-o  changeset:   3056:d9e53bbab3af
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Aug 25 17:23:15 2014 +0200
-|  summary:     crrect pb in chech un window
-|
-o  changeset:   3055:f302c03c8ae7
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Aug 25 16:36:06 2014 +0200
-|  summary:     coorect a bug in buildlayer in case of 0  edge on border...
-|
-o  changeset:   3054:d23ac6140622
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Sat Aug 23 08:08:30 2014 +0200
-|  summary:     pass to ersion 3.31-3
-|
-o  changeset:   3053:4e164226411d
-|  tag:         3.31-3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Aug 12 23:19:52 2014 +0200
-|  summary:     coorect of array size in plot
-|
-o  changeset:   3052:a7eb0c2116df
-|  tag:         3.31-2
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jul 11 21:17:26 2014 +0200
-|  summary:     correct iter in stop function in CG
-|
-o  changeset:   3051:d267356f183c
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Jul 11 14:57:05 2014 +0200
-|  summary:     add script for installation
-|
-o  changeset:   3050:e63d8e10315a
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 22:32:46 2014 +0200
-|  summary:     chech !!
-|
-o  changeset:   3049:3a79062ffe5c
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 22:25:07 2014 +0200
-|  summary:     coorect typo
-|
-o  changeset:   3048:402527913245
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 22:23:35 2014 +0200
-|  summary:     add missing file
-|
-o  changeset:   3047:4b5c501566f6
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 22:00:44 2014 +0200
-|  summary:     update INNOVATION
-|
-o  changeset:   3046:5705d48950bd
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 21:45:46 2014 +0200
-|  summary:     correct pb ConjuguedGradient introduct this afternoon (kprint==0)
-|
-o  changeset:   3045:d3f01b55f65d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 21:23:36 2014 +0200
-|  summary:     correct bug put in DG formulation (rev 3044)
-|
-o  changeset:   3044:010dd06d2876
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 16:59:09 2014 +0200
-|  summary:     remove template initialisation of stopgc ..
-|
-o  changeset:   3043:27a77d0f60c9
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 10:45:24 2014 +0200
-|  summary:     pass to version 3.31-1
-|
-o  changeset:   3042:00d0f665141f
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 10 10:41:50 2014 +0200
-|  summary:     add stop function for adapted test ... si doc and iNNVATION file
-|
-o  changeset:   3041:074b99969ce5
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jul 09 16:31:08 2014 +0200
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   3040:5a06d3054622
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jul 09 16:30:03 2014 +0200
-|  summary:     correct problem whitc zdotc  on MacOS
-|
-o  changeset:   3039:ae09f5411c83
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jul 09 09:10:01 2014 +0200
-|  summary:     update INNOVATION
-|
-o  changeset:   3038:3eab3ae21140
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jul 09 08:22:07 2014 +0200
-|  summary:     add function matricx for eigein value
-|
-o  changeset:   3037:794839c2a7cd
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 03 18:57:21 2014 +0200
-|  summary:     end of corecttion of LinearGMRES and AffineGMREs
-|
-o  changeset:   3036:371512bac93d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jul 03 13:00:34 2014 +0200
-|  summary:     correct a big big in LinearGMRES (thank to franco at us.es)
-|
-o  changeset:   3035:b412d75b60bd
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jul 02 10:39:35 2014 +0200
-|  summary:     add missing plugin in MeshSurface.idp
-|
-o  changeset:   3034:0888dfd0dc61
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jul 02 10:31:04 2014 +0200
-|  summary:     correct typo
-|
-o  changeset:   3033:bb189e3f0ea3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jul 02 10:29:53 2014 +0200
-|  summary:     correct misstake  in examples++-3d/MeshSurface.idp
-|
-o  changeset:   3032:1e34d36052ec
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jul 01 19:19:48 2014 +0200
-|  summary:     add '=' for pickinhg on macos on medit..
-|
-o  changeset:   3031:aadbdf882d72
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jul 01 18:30:28 2014 +0200
-|  summary:     correct getall add -h parameter ...
-|
-o  changeset:   3030:dbde96404949
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Jul 01 15:23:05 2014 +0200
-|  summary:     add '=' in medit for picking on mac..
-|
-o  changeset:   3029:ff74fea8d8e7
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Jun 30 10:03:47 2014 +0200
-|  summary:     correct bug in jump in case 1d problem
-|
-o  changeset:   3028:96d648cf5661
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Sun Jun 29 22:39:20 2014 +0200
-|  summary:     coorect bug in change in DG matrice construction in case periodic
-|
-o  changeset:   3027:28131940d86b
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Jun 26 11:48:52 2014 +0200
-|  summary:     add new example of C1 approximation witn HCT ...
-|
-o  changeset:   3026:b468fda53b82
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jun 25 18:42:56 2014 +0200
-|  summary:     correct pb with freefem++-nw know no graphic).
-|
-o  changeset:   3025:c9f9ed1fd403
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jun 18 22:01:26 2014 +0200
-|  summary:     correct PARDISO.cpp to compile on Mac.
-|
-o  changeset:   3024:c9ebcf863ae0
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jun 18 21:48:29 2014 +0200
-|  summary:     correct error in gsl.edp
-|
-o  changeset:   3023:fe129f0a04a7
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jun 18 21:19:06 2014 +0200
-|  summary:     correct Makefine.am
-|
-o  changeset:   3022:fe328b42b0bf
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jun 18 21:13:42 2014 +0200
-|  summary:     correct typo (missing ; )
-|
-o  changeset:   3021:796a520a31f6
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jun 18 21:09:55 2014 +0200
-|  summary:     correct INNOVATION.
-|
-o  changeset:   3020:09dd923712b9
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Jun 18 21:07:28 2014 +0200
-|  summary:     add new plugin to make some binary io, will be
-|
-o  changeset:   3019:ff55bb4a608f
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri May 16 13:53:06 2014 +0200
-|  summary:     try correct comile pb on UV100
-|
-o  changeset:   3018:9c600978774d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri May 16 13:37:51 2014 +0200
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   3017:2952e5f96558
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri May 16 12:46:05 2014 +0200
-|  summary:     add levelset integral and pass to version 3.30-1  in 3d
-|
-o  changeset:   3016:07b402a63c90
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed May 07 21:21:05 2014 +0200
-|  summary:     correct pb in BEC plugin ( function denpendint of x,y,z point ..
-|
-o  changeset:   3015:1aea517bacce
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed May 07 16:14:10 2014 +0200
-|  summary:     add new plugins for BEC
-|
-o  changeset:   3014:ba2508484995
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Apr 28 14:50:11 2014 +0200
-|  summary:     remove spurioux cout in ffglut (00)
-|
-o  changeset:   3013:bdf2b6da5050
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 10:29:07 2014 +0200
-|  summary:     add binary mode file type
-|
-o  changeset:   3012:525001ac8cfc
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 09:30:04 2014 +0200
-|  summary:     add rev in innovation
-|
-o  changeset:   3011:59412345af2f
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 09:28:09 2014 +0200
-|  summary:     remove DEBUG print to find a bug in examples++-tutorial/periodic4.edp
-|
-o  changeset:   3010:0aef24b50bbc
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 01:41:01 2014 +0200
-|  summary:     correct typo
-|
-o  changeset:   3009:127d0bf1147d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 01:35:04 2014 +0200
-|  summary:     add dump
-|
-o  changeset:   3008:dd22333aaf2a
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 01:25:38 2014 +0200
-|  summary:     next
-|
-o  changeset:   3007:f0183dc26132
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 01:13:09 2014 +0200
-|  summary:     correct type in dump
-|
-o  changeset:   3006:178ac8a66957
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 01:11:06 2014 +0200
-|  summary:     add dump
-|
-o  changeset:   3005:2d95c7cc3a39
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Apr 24 01:02:10 2014 +0200
-|  summary:     add bug in Builmesh.
-|
-o  changeset:   3004:f445e1459c72
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Apr 23 17:30:18 2014 +0200
-|  summary:     version of the distribution 3.30
-|
-o  changeset:   3003:ed040aa51a0a
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Apr 23 16:56:47 2014 +0200
-|  summary:     coorect type in doc zero ->  two in def of nTonEdge
-|
-o  changeset:   3002:d3e4511ca0d7
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Apr 23 16:33:00 2014 +0200
-|  summary:     correct DOC version
-|
-o  changeset:   3001:10f137760625
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Apr 23 16:29:23 2014 +0200
-|  summary:     update the doc for multy border ...
-|
-o  changeset:   3000:c9a1eac26e35
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Apr 23 14:34:58 2014 +0200
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   2999:ab3683b70e74
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Apr 23 14:33:22 2014 +0200
-|  summary:     add multy border , past to version 3.30 ..
-|
-o  changeset:   2998:b7cb347b18f3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Apr 22 23:11:38 2014 +0200
-|  summary:     avant un multy border and comment the test .. in mesh.edp
-|
-o  changeset:   2997:03fb3a6a9894
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Apr 22 16:53:26 2014 +0200
-|  summary:     coorect pb of free not alloc pionter in mmg3d4-0
-|
-o  changeset:   2996:6958d44d16e8
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Apr 11 15:15:07 2014 +0200
-|  summary:     remove cout in RT1 2d Finite elemnt
-|
-o  changeset:   2995:57603195ad5d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Apr 09 08:50:57 2014 +0100
-|  summary:     add tools for Quadrature formular.
-|
-o  changeset:   2994:281a9fa7e47e
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 26 09:00:43 2014 +0100
-|  summary:     remove crazy output in lapack.cpp and fflapack.cpp
-|
-o  changeset:   2993:46fd913b30cf
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Mar 24 15:08:45 2014 +0100
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   2992:2036c6a948fd
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Mar 21 18:39:08 2014 +0100
-|  summary:     add tools for integrale with levelset (under ) in 2d ..
-|
-o  changeset:   2991:7ded401a2b84
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Mar 20 15:12:23 2014 +0100
-|  summary:     remve double def of R in P1IsoValue.cpp
-|
-o  changeset:   2990:555bf81333d6
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Mar 17 09:27:01 2014 +0100
-|  summary:     add tool to compute volume under levelset arealevelset , volumelevelset
-|
-o  changeset:   2989:935cf6997964
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Mar 17 09:21:26 2014 +0100
-|  summary:     add tools of mesure doamine def by levelset
-|
-o  changeset:   2988:e898b08ccf2f
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Mar 14 17:36:59 2014 +0100
-|  summary:     correct mistake in include  P1IsoValue.hpp
-|
-o  changeset:   2987:a7813b0a1b9b
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Mar 14 17:23:34 2014 +0100
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   2986:69fe85e411a0
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Mar 14 11:19:22 2014 +0100
-|  summary:     try empty matrix in MUMPS => dono works ..
-|
-o  changeset:   2985:03b6d8003a47
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Mar 14 11:09:15 2014 +0100
-|  summary:     put empty matrix in set if need
-|
-o  changeset:   2984:9afbc88823c8
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Mar 14 10:33:44 2014 +0100
-|  summary:     correct mistake in MUMPS.cpp (plugin)
-|
-o  changeset:   2983:2e43d499a8b3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 12 15:45:02 2014 +0100
-|  summary:     update rev innovatiop
-|
-o  changeset:   2982:5433ef595dd2
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 12 15:43:56 2014 +0100
-|  summary:     coorect type and memory mistake in fftime function
-|
-o  changeset:   2981:5cc256ed2a1b
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 12 15:12:16 2014 +0100
-|  summary:     add rev in INNOVATIOn
-|
-o  changeset:   2980:25666438652f
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 12 15:10:46 2014 +0100
-|  summary:     add macro generation stuff like Stringification,FILE, LINE si INNIVATION,
-|
-o  changeset:   2979:35727886f469
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 12 08:50:41 2014 +0100
-|  summary:     add int on levelset for sym matrix,
-|
-o  changeset:   2978:057aed9a37d3
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Mar 11 21:16:20 2014 +0100
-|  summary:     rebuild include.tar.gz
-|
-o  changeset:   2977:f68fc8801d7c
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Mar 11 21:06:37 2014 +0100
-|  summary:     add tools to compute int on levelset
-|
-o  changeset:   2976:f6777db44f02
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Mar 11 21:04:37 2014 +0100
-|  summary:     add tool to compute int on levelset
-|
-o  changeset:   2975:2384ccefae8e
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Mar 07 13:40:31 2014 +0100
-|  summary:     add bace cube function .
-|
-o  changeset:   2974:9b8b469c4f18
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Mar 07 11:52:08 2014 +0100
-|  summary:     update INNIVATION
-|
-o  changeset:   2973:d7efc421b561
-|  tag:         3.29
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Mar 06 17:01:11 2014 +0100
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   2972:566f7ef75969
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Mar 06 16:54:04 2014 +0100
-|  summary:     coorect type compilepkg in arpack makefile
-|
-o  changeset:   2971:51d803f66704
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Mar 06 16:07:42 2014 +0100
-|  summary:     coorect problem we getall script
-|
-o  changeset:   2970:be94e3caaa45
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Mar 06 12:11:29 2014 +0100
-|  summary:     coorect install pb in linux for next distribution
-|
-o  changeset:   2969:605daf8c95fd
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Mar 06 11:00:15 2014 +0100
-|  summary:     missing file in dist lgmesh.hpp
-|
-o  changeset:   2968:846a6a5f1192
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Mar 06 09:54:54 2014 +0100
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   2967:d95584630180
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Mar 06 09:53:23 2014 +0100
-|  summary:     correct make dist target in blas ...
-|
-o  changeset:   2966:094e01f7c642
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 19:26:11 2014 +0100
-|  summary:     coorect pb of recomple mmg3d if the patch change
-|
-o  changeset:   2965:a209379da038
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 18:45:23 2014 +0100
-|  summary:     leak mmg3d next step
-|
-o  changeset:   2964:e6f8ef801100
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 18:19:57 2014 +0100
-|  summary:     try memory leal mmg3d v4
-|
-o  changeset:   2963:e342d40ce4dd
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 15:40:39 2014 +0100
-|  summary:     coorect mshmet leak memory problem
-|
-o  changeset:   2962:6d042cb544d6
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 13:29:09 2014 +0100
-|  summary:     correct typo
-|
-o  changeset:   2961:52a5fe2df2b2
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 13:17:57 2014 +0100
-|  summary:     build AutoGeneratedFile.tar.gz
-|
-o  changeset:   2960:66c20b1178c9
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 13:17:25 2014 +0100
-|  summary:     add stuff  of get memory storage info on mac and linux
-|
-o  changeset:   2959:c3e4ab8a0afa
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 11:13:33 2014 +0100
-|  summary:     correct mshmet dependec
-|
-o  changeset:   2958:cab0cb8d1f99
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 11:10:13 2014 +0100
-|  summary:     correct typo error
-|
-o  changeset:   2957:82ad0bd4632f
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Mar 05 11:06:15 2014 +0100
-|  summary:     add tool to find memery leak storageused function ..
-|
-o  changeset:   2956:a39fe4a9f5b6
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Mon Mar 03 23:44:35 2014 +0100
-|  summary:     correct memory leak in mshmet inferface
-|
-o  changeset:   2955:5628f1212fad
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Sun Mar 02 21:45:36 2014 +0100
-|  summary:     rebuild  AutoGeneratedFile.tar.gz
-|
-o  changeset:   2954:a778070d5256
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Sun Mar 02 21:36:21 2014 +0100
-|  summary:     add uninstall-ff++ script freefem++
-|
-o  changeset:   2953:6f5b01300095
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Sun Mar 02 21:16:32 2014 +0100
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   2952:2f5eebee8e67
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Sun Mar 02 21:12:13 2014 +0100
-|  summary:     correct pb in evalution jump of region number
-|
-o  changeset:   2951:f1064e46586e
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Tue Feb 18 14:35:10 2014 +0100
-|  summary:     change error in warning in message error if missing library.
-|
-o  changeset:   2950:cba75b251d6d
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 13 10:55:31 2014 +0100
-|  summary:     correct in 2d integral on levelset of bilinear form
-|
-o  changeset:   2949:8762a49602b5
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Feb 12 18:45:43 2014 +0100
-|  summary:     coorect type in getall
-|
-o  changeset:   2948:10d76bbc862e
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Feb 12 18:39:26 2014 +0100
-|  summary:     make getall with or without thread depending of pearl install
-|
-o  changeset:   2947:934199f05868
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Wed Feb 12 11:26:56 2014 +0100
-|  summary:     rebuild AutoGeneratedFile.tar.gz
-|
-o  changeset:   2946:e0c1f8669ab4
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Fri Feb 07 13:33:03 2014 +0100
-|  summary:     update configure param to compile
-|
-o  changeset:   2945:6f9c41b5a9b1
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 06 22:38:38 2014 +0100
-|  summary:     coorecct readme
-|
-o  changeset:   2944:af4fbbef4ecd
-|  tag:         3.28
-|  parent:      2937:4c7506b5ac6c
-|  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-|  date:        Thu Feb 06 22:30:35 2014 +0100
-|  summary:     correct small bug in
-|
-| o  changeset:   2943:0aa8d880b527
-| |  branch:      alh-dev
-| |  user:        Antoine Le Hyaric
-| |  date:        Thu Feb 06 14:42:15 2014 +0100
-| |  summary:     partial commit on DebianTesting64 (odyssee)
-| |
-| o  changeset:   2942:6ff7e589dcaa
-| |  branch:      alh-dev
-| |  user:        Antoine Le Hyaric
-| |  date:        Wed Feb 05 18:01:38 2014 +0100
-| |  summary:     partial commit on DebianTesting64 (odyssee)
-| |
-| o  changeset:   2941:93032418cfc8
-| |  branch:      alh-dev
-| |  user:        Antoine Le Hyaric
-| |  date:        Tue Feb 04 18:56:55 2014 +0100
-| |  summary:     partial commit on DebianTesting64 (odyssee)
-| |
-| o  changeset:   2940:872c489a2867
-| |  branch:      alh-dev
-| |  user:        Antoine Le Hyaric
-| |  date:        Tue Feb 04 15:53:20 2014 +0100
-| |  summary:     partial commit on DebianTesting64 (odyssee)
-| |
-| o  changeset:   2939:1bc50b3ba773
-| |  branch:      alh-dev
-| |  user:        Antoine Le Hyaric
-| |  date:        Wed Jan 29 18:17:45 2014 +0100
-| |  summary:     >  - New script build/orgindex and file index.org to list all hyperlinks in the FF source in Emacs org-mode format
-| |
-| o  changeset:   2938:e78417933ae1
-| |  branch:      alh-dev
-| |  parent:      2935:72d03e2de866
-| |  user:        Antoine Le Hyaric
-| |  date:        Wed Jan 29 17:25:13 2014 +0100
-| |  summary:     partial commit on DebianTesting64 (odyssee)
-| |
-o |    changeset:   2937:4c7506b5ac6c
-|\ \   tag:         3.27
-| | |  parent:      2936:37691b670f5a
-| | |  parent:      2885:d58dea64f3a0
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Thu Feb 06 14:41:59 2014 +0100
-| | |  summary:     Synchronizing FH and ALH trees
-| | |
-| o |    changeset:   2936:37691b670f5a
-| |\ \   parent:      2934:2cc59dc4712c
-| | | |  parent:      2875:338cb00eff86
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Tue Jan 28 16:26:27 2014 +0100
-| | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | |
-| | | o  changeset:   2935:72d03e2de866
-| | | |  branch:      alh-dev
-| | | |  parent:      2932:6dc37a6b1b61
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Thu Jan 23 12:21:33 2014 +0100
-| | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | |
-| | o |  changeset:   2934:2cc59dc4712c
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Tue Jan 21 16:53:17 2014 +0100
-| | | |  summary:     partial commit on MacOS108 (athena)
-| | | |
-| | o |  changeset:   2933:d0779fbd3270
-| | | |  parent:      2927:05728123cfdd
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Tue Jan 21 16:26:29 2014 +0100
-| | | |  summary:     partial commit on MacOS108 (athena)
-| | | |
-| | | o  changeset:   2932:6dc37a6b1b61
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Thu Jan 09 14:17:02 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | | o  changeset:   2931:3f84037c3f82
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Thu Jan 09 10:45:30 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | | o  changeset:   2930:aef9c00fa974
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Thu Jan 09 10:42:48 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | | o  changeset:   2929:109fbfe6ae46
-| | |/|  branch:      alh-dev
-| | | |  parent:      2928:5ff83fb295b9
-| | | |  parent:      2927:05728123cfdd
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Thu Jan 09 10:37:20 2014 +0100
-| | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | |
-| | | o    changeset:   2928:5ff83fb295b9
-| | | |\   branch:      alh-dev
-| | | | |  parent:      2902:9f9543a57c4a
-| | | | |  parent:      2903:e7454fa79801
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Mon Jan 06 17:18:43 2014 +0100
-| | | | |  summary:     New FFCS version 14.1 using FF 3.26-3
-| | | | |
-| | o | |  changeset:   2927:05728123cfdd
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Jan 08 11:49:43 2014 +0100
-| | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | |
-| | o | |  changeset:   2926:6e8b8dee3c7d
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Jan 08 11:47:45 2014 +0100
-| | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | |
-| | o | |  changeset:   2925:991bc3308e91
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Jan 08 11:42:40 2014 +0100
-| | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | |
-| | o | |  changeset:   2924:731c6e6f7f12
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Jan 08 11:30:20 2014 +0100
-| | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | |
-| | o | |  changeset:   2923:b87e6117d8e4
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Jan 08 11:28:37 2014 +0100
-| | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | |
-| | o | |    changeset:   2922:d108089c7f41
-| | |\ \ \   parent:      2921:12aa8decef61
-| | | | | |  parent:      2920:b025c2cf1fc0
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 11:09:37 2014 +0100
-| | | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | | |
-| | | o | |  changeset:   2921:12aa8decef61
-| | | | | |  parent:      2917:e54ad4c7dbb5
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 11:09:36 2014 +0100
-| | | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | | |
-| | o | | |    changeset:   2920:b025c2cf1fc0
-| | |\ \ \ \   parent:      2918:44aca5b00458
-| | | | | | |  parent:      2919:ad120e12b53c
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Wed Jan 08 11:08:00 2014 +0100
-| | | | | | |  summary:     partial commit on DebianTesting32 (buis)
-| | | | | | |
-| | | o | | |  changeset:   2919:ad120e12b53c
-| | | | | | |  parent:      2908:ecd21a3c9519
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Tue Jan 07 16:41:24 2014 +0100
-| | | | | | |  summary:     Compiling FFCS on Windows 64
-| | | | | | |
-| | o---+ | |  changeset:   2918:44aca5b00458
-| |   | | | |  user:        Antoine Le Hyaric
-| |  / / / /   date:        Wed Jan 08 11:07:57 2014 +0100
-| | | | | |    summary:     partial commit on DebianTesting32 (buis)
-| | | | | |
-| | | o | |  changeset:   2917:e54ad4c7dbb5
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 11:02:32 2014 +0100
-| | | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | | |
-| | | o | |  changeset:   2916:9a46b1c26db3
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 11:00:32 2014 +0100
-| | | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | | |
-| | | o | |  changeset:   2915:7561672695dd
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 10:59:10 2014 +0100
-| | | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | | |
-| | | o | |  changeset:   2914:098107cd6199
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 10:56:56 2014 +0100
-| | | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | | |
-| | | o | |  changeset:   2913:2e4fcaf138a5
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 10:52:19 2014 +0100
-| | | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | | |
-| | | o | |  changeset:   2912:6916680747a7
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 10:47:23 2014 +0100
-| | | | | |  summary:     partial commit on Ubuntu1310-64 (ubu64)
-| | | | | |
-| | | o | |  changeset:   2911:866837b2af36
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 10:36:45 2014 +0100
-| | | | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | | | |
-| | | o | |  changeset:   2910:ef54830cf6ca
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jan 08 10:20:13 2014 +0100
-| | | | | |  summary:     Small updates for FFCS release
-| | | | | |
-| | | o | |  changeset:   2909:56d37abf1f91
-| | |/ / /   user:        Antoine Le Hyaric
-| | | | |    date:        Wed Jan 08 10:00:39 2014 +0100
-| | | | |    summary:     Small changing for FFCS compilation on Windows
-| | | | |
-| | o | |  changeset:   2908:ecd21a3c9519
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jan 07 15:05:11 2014 +0100
-| | | | |  summary:     Compiling FFCS on Windows 64
-| | | | |
-| | o | |  changeset:   2907:1ffe24c32b72
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jan 07 12:42:39 2014 +0100
-| | | | |  summary:     Compiling FFCS on Windows 64
-| | | | |
-| | o | |  changeset:   2906:39530b797474
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jan 07 12:34:17 2014 +0100
-| | | | |  summary:     Compiling FFCS on Windows 64
-| | | | |
-| | o | |  changeset:   2905:f800a6ab9788
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jan 07 09:03:23 2014 +0100
-| | | | |  summary:     Making FF compile with FFCS on Win32
-| | | | |
-| | o---+  changeset:   2904:fcdbf0cf5077
-| |   | |  user:        Antoine Le Hyaric
-| |  / /   date:        Mon Jan 06 17:21:07 2014 +0100
-| | | |    summary:     New FFCS version 14.1 using FF 3.26-3
-| | | |
-| | | o  changeset:   2903:e7454fa79801
-| | |/|  parent:      2873:5ea92a62899b
-| | | |  parent:      2902:9f9543a57c4a
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 17:17:08 2014 +0100
-| | | |  summary:     New FFCS version 14.1 using FF 3.26-3
-| | | |
-| | o |  changeset:   2902:9f9543a57c4a
-| | |\|  branch:      alh-dev
-| | | |  parent:      2901:b2c810edffc4
-| | | |  parent:      2873:5ea92a62899b
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 17:00:36 2014 +0100
-| | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | |
-| | o |  changeset:   2901:b2c810edffc4
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 16:59:33 2014 +0100
-| | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | |
-| | o |  changeset:   2900:d174317ebdb4
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 16:52:56 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | o |  changeset:   2899:fd9ac165cadb
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 15:38:04 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | o |  changeset:   2898:37cc9b9aa118
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 15:28:15 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | o |  changeset:   2897:7c15fa116135
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 14:53:49 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | o |  changeset:   2896:138744674c16
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 14:21:11 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | o |  changeset:   2895:a3105d01c462
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 12:35:35 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | o |  changeset:   2894:d5934c1a6b78
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Jan 06 12:11:05 2014 +0100
-| | | |  summary:     partial commit on Windows (telemos)
-| | | |
-| | o |    changeset:   2893:3d92537460f0
-| | |\ \   branch:      alh-dev
-| | | | |  parent:      2892:80c7cc90e5ed
-| | | | |  parent:      2890:741de2d14d63
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Thu Dec 19 16:04:58 2013 +0100
-| | | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | | |
-| | | o |  changeset:   2892:80c7cc90e5ed
-| | | | |  branch:      alh-dev
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Thu Dec 19 12:03:48 2013 +0100
-| | | | |  summary:     Incorporating changes from FH (default branch) into ALH developments (alh-dev branch)
-| | | | |
-| | | o |    changeset:   2891:707584572e06
-| | | |\ \   branch:      alh-dev
-| | | | | |  parent:      2888:9c4bf400b221
-| | | | | |  parent:      2864:b110654707d1
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Thu Dec 19 12:00:24 2013 +0100
-| | | | | |  summary:     Incorporating changes from FH (default branch) into ALH developments (alh-dev branch)
-| | | | | |
-| | o---+ |  changeset:   2890:741de2d14d63
-| | | | | |  branch:      alh-dev
-| | | | | |  parent:      2889:098e8bb04f23
-| | | | | |  parent:      2888:9c4bf400b221
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Dec 18 17:16:03 2013 +0100
-| | | | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | | | |
-| | o | | |  changeset:   2889:098e8bb04f23
-| | | | | |  branch:      alh-dev
-| | | | | |  parent:      2887:54388cb94ac9
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Dec 04 17:53:19 2013 +0100
-| | | | | |  summary:     partial commit on DebianTesting64 (caen)
-| | | | | |
-| | +---o |  changeset:   2888:9c4bf400b221
-| | | |  /   branch:      alh-dev
-| | | | |    user:        Antoine Le Hyaric
-| | | | |    date:        Wed Dec 18 16:18:08 2013 +0100
-| | | | |    summary:     partial commit on DebianTesting64 (odyssee)
-| | | | |
-| | o | |  changeset:   2887:54388cb94ac9
-| | | | |  branch:      alh-dev
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Thu Nov 28 16:29:19 2013 +0100
-| | | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | | |
-| | o | |  changeset:   2886:248f4bd285d0
-| | | | |  branch:      alh-dev
-| | | | |  parent:      2829:4ab97def6ad1
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Nov 27 15:14:05 2013 +0100
-| | | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | | |
-o | | | |  changeset:   2885:d58dea64f3a0
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Feb 05 22:18:08 2014 +0100
-| | | | |  summary:     add AddLayers in 3d
-| | | | |
-o | | | |  changeset:   2884:5d1fa9c3c817
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Feb 05 22:01:56 2014 +0100
-| | | | |  summary:     correct AddLayers
-| | | | |
-o | | | |  changeset:   2883:2cf6464d0761
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Feb 05 09:35:50 2014 +0100
-| | | | |  summary:     at init of full matrix this inverse matrix.
-| | | | |
-o | | | |  changeset:   2882:d0965d6036fc
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Feb 02 20:46:22 2014 +0100
-| | | | |  summary:     rebuild AutoGeneratedFile.tar.gz
-| | | | |
-o | | | |  changeset:   2881:4b6af956b8f8
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Feb 02 20:36:02 2014 +0100
-| | | | |  summary:     correct SplitMesh<R3> function in case of P1b3d display.
-| | | | |
-o | | | |  changeset:   2880:11edbb125bdc
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 29 11:37:27 2014 +0100
-| | | | |  summary:     up AutoGeneratedFile.tar.gz
-| | | | |
-o | | | |  changeset:   2879:961332cb7ed2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 29 11:36:20 2014 +0100
-| | | | |  summary:     correct but in splitsimplex.cpp of P1b 3d case
-| | | | |
-o | | | |  changeset:   2878:87a9a56664ef
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Jan 26 21:41:07 2014 +0100
-| | | | |  summary:     add BuildLayer function i C++
-| | | | |
-o | | | |  changeset:   2877:398ffc82c686
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Jan 24 17:38:34 2014 +0100
-| | | | |  summary:     ajout pour P. jolivet de
-| | | | |
-o | | | |  changeset:   2876:798588c5e951
-|/ / / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |    date:        Thu Jan 16 14:46:52 2014 +0100
-| | | |    summary:     add hypot c function
-| | | |
-o | | |  changeset:   2875:338cb00eff86
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 09 10:45:56 2014 +0100
-| | | |  summary:     add remark in innovation file
-| | | |
-o-----+  changeset:   2874:7b9c53ac2372
-  | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
- / / /   date:        Thu Jan 09 10:44:01 2014 +0100
-| | |    summary:     add missing function in gsl
-| | |
-| | o  changeset:   2873:5ea92a62899b
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Dec 30 22:16:52 2013 +0100
-| | |  summary:     carrect install windows missing files
-| | |
-| | o  changeset:   2872:60ef1773b8b2
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Dec 30 22:01:47 2013 +0100
-| | |  summary:     correct WindowsPackage.m4
-| | |
-| | o  changeset:   2871:27002ba88a46
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Dec 30 17:06:52 2013 +0100
-| | |  summary:     rebuild AutoGeneratedFile.tar.gz
-| | |
-| | o  changeset:   2870:897793e4a7f6
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Dec 30 17:05:54 2013 +0100
-| | |  summary:     correct typo
-| | |
-| | o  changeset:   2869:0b17a2cf1ea6
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Dec 30 17:01:27 2013 +0100
-| | |  summary:     coorect typo
-| | |
-| | o  changeset:   2868:324f120c84cf
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Dec 30 16:56:38 2013 +0100
-| | |  summary:     update gsl interface  with random generator
-| | |
-| | o  changeset:   2867:ccccd77442c2
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Sun Dec 29 23:21:04 2013 +0100
-| | |  summary:     add random gsl generator
-| | |
-| | o  changeset:   2866:5fc3f1298263
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Sat Dec 28 18:20:31 2013 +0100
-| | |  summary:     correct doc and pthread on window version
-| | |
-| | o  changeset:   2865:adf0cca701c2
-| |/   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |    date:        Mon Dec 23 13:41:04 2013 +0100
-| |    summary:     correct mshmesh under window (no phthread lib)
-| |
-| o  changeset:   2864:b110654707d1
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Mon Dec 09 21:34:15 2013 +0100
-| |  summary:     correct pthread with  openblas
-| |
-| o  changeset:   2863:3464dead1c8e
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Mon Dec 09 21:32:58 2013 +0100
-| |  summary:     pass to version 3.26-3
-| |
-| o  changeset:   2862:067eda36460c
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Mon Dec 09 21:08:43 2013 +0100
-| |  summary:     correct link problem of ipopt and blas missing thread libray.
-| |
-| o  changeset:   2861:9818994f3093
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Fri Dec 06 09:43:42 2013 +0100
-| |  summary:     correct lapack interface and simplify the test.
-| |
-| o  changeset:   2860:00a25dfebd01
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Dec 04 10:14:50 2013 +0100
-| |  summary:     add new logo in the doc.
-| |
-| o  changeset:   2859:d1e3f4891a08
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Dec 04 09:56:44 2013 +0100
-| |  summary:     add warning=  flags adaptmesh know if the max numbre of vertiex is reach
-| |
-| o  changeset:   2858:7abc92ebe5ba
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Fri Nov 29 08:49:54 2013 +0100
-| |  summary:     correct examples++-mpi/Laplace3d-hips.edp
-| |
-| o  changeset:   2857:50d15c3910b7
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 28 15:32:42 2013 +0100
-| |  summary:     remove blas and lapack from WHERE-lIBRAY-download
-| |
-| o  changeset:   2856:60a5720c24d4
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 28 13:11:50 2013 +0100
-| |  summary:     correct pb with norm
-| |
-| o  changeset:   2855:b50b5a5a2336
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 28 11:15:05 2013 +0100
-| |  summary:     new version
-| |
-| o  changeset:   2854:2b5ed56c8b59
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 28 10:59:51 2013 +0100
-| |  summary:     correct bug in script ff-get-dep
-| |
-| o  changeset:   2853:a9464311ddea
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Fri Nov 22 11:03:29 2013 +0100
-| |  summary:     correct ff-get-dep.in
-| |
-| o  changeset:   2852:0592cece2ae9
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Fri Nov 22 10:03:12 2013 +0100
-| |  summary:     coorect typo
-| |
-| o  changeset:   2851:58552a27b112
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Fri Nov 22 09:57:01 2013 +0100
-| |  summary:     next correctioon
-| |
-| o  changeset:   2850:f1f45a267a78
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Fri Nov 22 09:54:21 2013 +0100
-| |  summary:     coorect ff-get-dep.in of simple bash shell
-| |
-| o  changeset:   2849:b13a07b5a6b5
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 21 21:31:19 2013 +0100
-| |  summary:     correct gnu.mak to rebuild pdf figure.
-| |
-| o  changeset:   2848:4743da3cb7d6
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 21:52:07 2013 +0100
-| |  summary:     correct typo
-| |
-| o  changeset:   2847:2fdfe47a6f56
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 21:29:22 2013 +0100
-| |  summary:     correct for install
-| |
-| o  changeset:   2846:30a72fb6ca8e
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 20:44:56 2013 +0100
-| |  summary:     correct ff-c++ install
-| |
-| o  changeset:   2845:12a1482c206f
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 20:38:01 2013 +0100
-| |  summary:     correct ff-c++ and install version
-| |
-| o  changeset:   2844:67fa6ca3d5dd
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 18:22:02 2013 +0100
-| |  summary:     add EXTRA_DIST= path openbals
-| |
-| o  changeset:   2843:07cefac0627d
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 16:21:30 2013 +0100
-| |  summary:     update INNOVATIO
-| |
-| o  changeset:   2842:18d0a28bc820
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 16:19:19 2013 +0100
-| |  summary:     reome all relative path in WHERE_LIBRARY-config
-| |
-| o  changeset:   2841:de838ce6aed7
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 15:58:13 2013 +0100
-| |  summary:     cooret PB SuperLU
-| |
-| o  changeset:   2840:89928d1720be
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 20 15:24:11 2013 +0100
-| |  summary:     coorect pb with superlu
-| |
-| o  changeset:   2839:7ed38d0c562b
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 14 07:22:12 2013 +0100
-| |  summary:     correct typo
-| |
-| o  changeset:   2838:49fb2b403572
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 14 07:08:12 2013 +0100
-| |  summary:     correct pb in complex number in MPICG.cpp
-| |
-| o  changeset:   2837:d705f85f99a8
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 14 06:56:09 2013 +0100
-| |  summary:     coorect after test on MacOS 10.9
-| |
-| o  changeset:   2836:12ab7a082206
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Thu Nov 14 00:11:18 2013 +0100
-| |  summary:     coorect Makefile fr dist
-| |
-| o  changeset:   2835:128efccbdbbe
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 13 23:39:13 2013 +0100
-| |  summary:     restored examples++-tutorial/Laplace.cpp
-| |
-| o  changeset:   2834:12fd7a715267
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 13 23:22:25 2013 +0100
-| |  summary:     update AutoGeneratedFile.tar.gz
-| |
-| o  changeset:   2833:3a5004ce04b1
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 13 23:15:38 2013 +0100
-| |  summary:     correct clean Makefile not remove pakage source.
-| |
-| o  changeset:   2832:3f8bd0dc0696
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 13 19:26:39 2013 +0100
-| |  summary:     correct some example ???
-| |
-| o  changeset:   2831:79ffacff401c
-| |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| |  date:        Wed Nov 13 17:41:08 2013 +0100
-| |  summary:     pass to version 3.26
-| |
-| o    changeset:   2830:769140b8b4b5
-| |\   parent:      2822:f0cf8e4172bc
-| | |  parent:      2779:cf1946212db2
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Wed Nov 13 17:39:07 2013 +0100
-| | |  summary:     merge with ALH version, and FH version
-| | |
-o | |  changeset:   2829:4ab97def6ad1
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Thu Nov 07 14:13:31 2013 +0100
-| | |  summary:     >  - Separate download script for all third-party software [[file:download/getall]] (request from FH)
-| | |
-o | |  changeset:   2828:12dd3edd272b
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Thu Oct 31 17:20:51 2013 +0100
-| | |  summary:     >  - Separate download script for all third-party software [[file:download/getall]], request from FH
-| | |
-o | |  changeset:   2827:f9e5c9cdde3c
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Tue Oct 29 09:16:31 2013 +0100
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-o | |  changeset:   2826:7a9fc9218ecc
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Wed Oct 23 17:29:44 2013 +0200
-| | |  summary:     >  - Set all hyperlinks to relative paths to make sure that they work from any location
-| | |
-o | |  changeset:   2825:c213ac3c5ddd
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Wed Oct 23 15:30:46 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-o---+  changeset:   2824:80b91b59d758
-| | |  branch:      alh-dev
-| | |  parent:      2823:ac72f4fd3cdf
-| | |  parent:      2822:f0cf8e4172bc
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Tue Oct 22 17:47:33 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-o | |  changeset:   2823:ac72f4fd3cdf
-| | |  branch:      alh-dev
-| | |  parent:      2821:304b9771c959
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Mon Oct 21 12:14:40 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-+---o  changeset:   2822:f0cf8e4172bc
-| | |  parent:      2814:b788f2283f0a
-| | |  parent:      2821:304b9771c959
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Mon Oct 21 10:54:43 2013 +0200
-| | |  summary:     Keeping ALH and FH trees in sync
-| | |
-o | |  changeset:   2821:304b9771c959
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Mon Oct 21 10:46:00 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-o | |  changeset:   2820:f2d70674e0cf
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Thu Oct 17 11:39:56 2013 +0200
-| | |  summary:     >   - split DOC makefiles into Makefile.am and figs.mak to suppress automake warnings about portability
-| | |
-o---+  changeset:   2819:690015709315
-| | |  branch:      alh-dev
-| | |  parent:      2818:fd43eb5d72fd
-| | |  parent:      2814:b788f2283f0a
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Tue Oct 15 15:16:49 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-o | |  changeset:   2818:fd43eb5d72fd
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Tue Oct 15 14:57:20 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-o | |  changeset:   2817:7231ea317c6b
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Tue Oct 15 09:38:31 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-o | |  changeset:   2816:c82bafbc80ed
-| | |  branch:      alh-dev
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Mon Oct 14 15:48:32 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-o | |  changeset:   2815:8ee90b830900
-| | |  branch:      alh-dev
-| | |  parent:      2811:9fe8b47f26fe
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Tue Oct 08 16:50:41 2013 +0200
-| | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | |
-| | o  changeset:   2814:b788f2283f0a
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Mon Oct 14 10:33:16 2013 +0200
-| | |  summary:     changed FFCS Fortran MPI configuration for MPICH2
-| | |
-| | o    changeset:   2813:91392dc99aa0
-| | |\   parent:      2812:e39696d2e66f
-| | | |  parent:      2775:da720285cc20
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Tue Oct 08 10:50:59 2013 +0200
-| | | |  summary:     Keeping ALH and FH trees in sync
-| | | |
-+-----o  changeset:   2812:e39696d2e66f
-| | | |  parent:      2782:eb4999ba4ff4
-| | | |  parent:      2811:9fe8b47f26fe
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Tue Oct 08 10:31:31 2013 +0200
-| | | |  summary:     FFCS version number increased to 13.15
-| | | |
-o | | |  changeset:   2811:9fe8b47f26fe
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Oct 02 16:59:53 2013 +0200
-| | | |  summary:     partial commit on MacOS108 (athena)
-| | | |
-o | | |  changeset:   2810:1b93d130a6f3
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Oct 02 16:21:37 2013 +0200
-| | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | |
-o | | |  changeset:   2809:0a1b9e514197
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Sep 30 18:09:43 2013 +0200
-| | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | |
-o | | |  changeset:   2808:92b03c315566
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Sep 25 12:01:34 2013 +0200
-| | | |  summary:     partial commit on Ubuntu1204-64 (ubults64)
-| | | |
-o | | |  changeset:   2807:c15cd2f03b68
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Sep 25 11:11:44 2013 +0200
-| | | |  summary:     >
-| | | |
-o | | |  changeset:   2806:9c3a101331c6
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Mon Sep 23 09:59:26 2013 +0200
-| | | |  summary:     partial commit on DebianTesting64 (odyssee)
-| | | |
-o | | |  changeset:   2805:f364768a91ad
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Thu Sep 19 11:16:44 2013 +0200
-| | | |  summary:     partial commit on DebianTesting64 (iliade)
-| | | |
-o | | |  changeset:   2804:762acbe43ae9
-| | | |  branch:      alh-dev
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Thu Sep 19 11:10:58 2013 +0200
-| | | |  summary:     partial commit on MacOS108 (athena)
-| | | |
-o | | |    changeset:   2803:384865ca600b
-|\ \ \ \   branch:      alh-dev
-| | | | |  parent:      2802:180cf95c3043
-| | | | |  parent:      2801:b4f662e97b98
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Thu Sep 19 11:00:21 2013 +0200
-| | | | |  summary:     partial commit on MacOS108 (athena)
-| | | | |
-| o | | |  changeset:   2802:180cf95c3043
-| | | | |  branch:      alh-dev
-| | | | |  parent:      2800:79c467416c58
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Thu Sep 19 11:00:19 2013 +0200
-| | | | |  summary:     partial commit on MacOS108 (athena)
-| | | | |
-o | | | |  changeset:   2801:b4f662e97b98
-|\| | | |  branch:      alh-dev
-| | | | |  parent:      2794:20715307bd51
-| | | | |  parent:      2800:79c467416c58
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Thu Sep 19 10:59:32 2013 +0200
-| | | | |  summary:     partial commit on DebianTesting64 (iliade)
-| | | | |
-| o | | |    changeset:   2800:79c467416c58
-| |\ \ \ \   branch:      alh-dev
-| | | | | |  parent:      2799:880bc2986524
-| | | | | |  parent:      2793:da28c0b1be77
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Thu Sep 19 10:51:05 2013 +0200
-| | | | | |  summary:     partial commit on MacOS108
-| | | | | |
-| | o | | |  changeset:   2799:880bc2986524
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Thu Jul 25 14:44:53 2013 +0200
-| | | | | |  summary:     Small fixes for MacOS 10.8 compilation
-| | | | | |
-| | o | | |  changeset:   2798:318fde8763e3
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Thu Jul 25 14:31:41 2013 +0200
-| | | | | |  summary:     Small fixes for pastix compilation on MacOS
-| | | | | |
-| | o | | |  changeset:   2797:c3e6d188dd64
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Thu Jul 25 14:22:34 2013 +0200
-| | | | | |  summary:     Small fixes for pastix compilation on MacOS
-| | | | | |
-| | o | | |  changeset:   2796:72f90df8325c
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Thu Jul 25 14:15:58 2013 +0200
-| | | | | |  summary:     Small fixes for pastix compilation on MacOS
-| | | | | |
-| | o | | |  changeset:   2795:b3a31b5e5e66
-| | | | | |  branch:      alh-dev
-| | | | | |  parent:      2732:2a814f7c0f1f
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Thu Jul 25 14:06:15 2013 +0200
-| | | | | |  summary:     Small fixes for MacOS 10.8 compilation
-| | | | | |
-o | | | | |  changeset:   2794:20715307bd51
-|/ / / / /   branch:      alh-dev
-| | | | |    user:        Antoine Le Hyaric
-| | | | |    date:        Thu Sep 19 10:59:30 2013 +0200
-| | | | |    summary:     partial commit on DebianTesting64 (iliade)
-| | | | |
-o | | | |  changeset:   2793:da28c0b1be77
-| | | | |  branch:      alh-dev
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Sep 18 17:10:19 2013 +0200
-| | | | |  summary:     partial commit on DebianTesting64
-| | | | |
-o | | | |  changeset:   2792:7847a84effee
-| | | | |  branch:      alh-dev
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Sep 18 14:38:49 2013 +0200
-| | | | |  summary:     partial commit on DebianTesting64
-| | | | |
-o | | | |  changeset:   2791:99ff5d7f8b98
-| | | | |  branch:      alh-dev
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Sep 18 14:00:35 2013 +0200
-| | | | |  summary:     partial commit on DebianTesting64
-| | | | |
-o | | | |  changeset:   2790:3a3125233c7a
-| | | | |  branch:      alh-dev
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Sep 17 18:24:30 2013 +0200
-| | | | |  summary:     partial commit on DebianTesting64
-| | | | |
-o | | | |    changeset:   2789:b4393a12fe7f
-|\ \ \ \ \   branch:      alh-dev
-| | | | | |  parent:      2788:d9bb255ca068
-| | | | | |  parent:      2781:a0a0a2c0d990
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Sep 17 12:33:26 2013 +0200
-| | | | | |  summary:     partial commit on DebianTesting64
-| | | | | |
-| o | | | |  changeset:   2788:d9bb255ca068
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Sep 17 11:52:02 2013 +0200
-| | | | | |  summary:     partial commit on DebianTesting64
-| | | | | |
-| o | | | |    changeset:   2787:52cfe7abccc8
-| |\ \ \ \ \   branch:      alh-dev
-| | | | | | |  parent:      2784:f3d219682017
-| | | | | | |  parent:      2786:de558ef9e916
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Mon Sep 16 15:50:13 2013 +0200
-| | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | |
-| | o | | | |  changeset:   2786:de558ef9e916
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Mon Sep 16 15:37:42 2013 +0200
-| | | | | | |  summary:     partial commit on Ubuntu1304
-| | | | | | |
-| | o | | | |    changeset:   2785:e60e1b072fb5
-| | |\ \ \ \ \   branch:      alh-dev
-| | | | | | | |  parent:      2783:af7c913fea2f
-| | | | | | | |  parent:      2780:3aec73ae92a6
-| | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | |  date:        Mon Sep 16 14:27:46 2013 +0200
-| | | | | | | |  summary:     Merged FF default branch into alh-dev branch
-| | | | | | | |
-| o | | | | | |  changeset:   2784:f3d219682017
-| | | | | | | |  branch:      alh-dev
-| | | | | | | |  parent:      2763:f103190738d6
-| | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | |  date:        Mon Sep 16 15:50:11 2013 +0200
-| | | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | | |
-| +---o | | | |  changeset:   2783:af7c913fea2f
-| | |  / / / /   branch:      alh-dev
-| | | | | | |    parent:      2763:f103190738d6
-| | | | | | |    user:        Antoine Le Hyaric
-| | | | | | |    date:        Mon Sep 16 12:07:05 2013 +0200
-| | | | | | |    summary:     partial commit on DebianTesting32
-| | | | | | |
-+-----------o  changeset:   2782:eb4999ba4ff4
-| | | | | |    user:        Antoine Le Hyaric
-| | | | | |    date:        Tue Sep 17 18:24:22 2013 +0200
-| | | | | |    summary:     Small updates for FFCS
-| | | | | |
-o---+ | | |  changeset:   2781:a0a0a2c0d990
-| | | | | |  parent:      2780:3aec73ae92a6
-| | | | | |  parent:      2769:27971516538c
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Sep 17 11:51:05 2013 +0200
-| | | | | |  summary:     Synchronizing FH and ALH source trees
-| | | | | |
-| | o | | |  changeset:   2780:3aec73ae92a6
-| | | | | |  parent:      2768:9f9d303a3b9d
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Thu Sep 12 12:30:48 2013 +0200
-| | | | | |  summary:     Ignoring .htaccess to go through the web server
-| | | | | |
-| | | | o |  changeset:   2779:cf1946212db2
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Nov 13 14:37:02 2013 +0100
-| | | | | |  summary:     pass to version 2.55-1
-| | | | | |
-| | | | o |  changeset:   2778:58380ba26f11
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Sat Nov 02 10:25:48 2013 +0100
-| | | | | |  summary:     coorect pb in norm and real with new version complex in c++-11
-| | | | | |
-| | | | o |  changeset:   2777:737a1002ab0a
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Oct 31 21:35:57 2013 +0100
-| | | | | |  summary:     coorect mistake in download/ipopt/Makefile for blas
-| | | | | |
-| | | | o |  changeset:   2776:a34eb2d6108b
-| | | | |/   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |    date:        Thu Oct 31 18:41:00 2013 +0100
-| | | | |    summary:     do correct of MacOS 10.9 , new compiler.
-| | | | |
-| | | | o  changeset:   2775:da720285cc20
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Oct 05 08:29:54 2013 +0200
-| | | | |  summary:     correct mistike in the problme of matrix block
-| | | | |
-| | | | o  changeset:   2774:ade6693ffaf4
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Oct 03 18:18:20 2013 +0300
-| | | | |  summary:     correct problem in block matrix with 0 column or 0 row.
-| | | | |
-| | | | o  changeset:   2773:fd3772142d0a
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Sep 26 18:59:58 2013 +0200
-| | | | |  summary:     add missing test
-| | | | |
-| | | | o  changeset:   2772:a8cc2014376f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Sep 26 18:48:45 2013 +0200
-| | | | |  summary:     correct typo and add new autofiles
-| | | | |
-| | | | o  changeset:   2771:a5ad7a4f543a
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Sep 26 18:38:03 2013 +0200
-| | | | |  summary:     correct doc and fftw3  downlaod compilation
-| | | | |
-+-------o  changeset:   2770:166bd70dce7c
-| | | |    user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |    date:        Thu Sep 26 17:59:26 2013 +0200
-| | | |    summary:     correct fftw MAkefile.am
-| | | |
-o---+ |  changeset:   2769:27971516538c
-| | | |  parent:      2719:7ae83b320fea
-| | | |  parent:      2768:9f9d303a3b9d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 17 11:42:42 2013 +0200
-| | | |  summary:     update ffc version and ff++ version
-| | | |
-| | o |  changeset:   2768:9f9d303a3b9d
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Sep 11 17:45:42 2013 +0200
-| | | |  summary:     Updates for FFCS compilation on Windows
-| | | |
-| | o |    changeset:   2767:e9ae0c3079fb
-| | |\ \   parent:      2762:98437b4ebf50
-| | | | |  parent:      2766:2fbbc949c081
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Sep 11 17:40:38 2013 +0200
-| | | | |  summary:     partial commit on DebianTesting64
-| | | | |
-| | | o |  changeset:   2766:2fbbc949c081
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Sep 10 15:57:17 2013 +0200
-| | | | |  summary:     Updates for compiling FFCS on Ubuntu
-| | | | |
-| | | o |  changeset:   2765:71a8394c29e5
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Sep 10 15:40:07 2013 +0200
-| | | | |  summary:     Update for compiling FFCS on Ubuntu
-| | | | |
-| | | o |  changeset:   2764:55c008ede4ae
-| | | | |  parent:      2759:05059715e454
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Sep 10 15:08:11 2013 +0200
-| | | | |  summary:     Small corrections for FFCS compilation
-| | | | |
-| o | | |  changeset:   2763:f103190738d6
-| |\| | |  branch:      alh-dev
-| | | | |  parent:      2752:df47e2e6eed5
-| | | | |  parent:      2762:98437b4ebf50
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Sep 11 16:41:06 2013 +0200
-| | | | |  summary:     partial commit on DebianTesting64
-| | | | |
-| | o | |    changeset:   2762:98437b4ebf50
-| | |\ \ \   parent:      2761:16d91a730b0c
-| | | | | |  parent:      2760:6abf65bf289f
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Sep 11 10:42:57 2013 +0200
-| | | | | |  summary:     Updates for FFCS compilation
-| | | | | |
-| | | o | |  changeset:   2761:16d91a730b0c
-| | | | | |  parent:      2750:c63825bee6e0
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Sep 11 10:42:01 2013 +0200
-| | | | | |  summary:     Updates for FFCS compilation
-| | | | | |
-| | o---+ |  changeset:   2760:6abf65bf289f
-| |   | | |  user:        Antoine Le Hyaric
-| |  / / /   date:        Tue Sep 10 14:19:02 2013 +0200
-| | | | |    summary:     Small corrections for FFCS compilation
-| | | | |
-| | | o |    changeset:   2759:05059715e454
-| | | |\ \   parent:      2758:e3af440f1eb5
-| | | | | |  parent:      2757:094eb2bf1ed5
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Sep 10 14:14:04 2013 +0200
-| | | | | |  summary:     partial commit on Windows
-| | | | | |
-| | | | o |  changeset:   2758:e3af440f1eb5
-| | | | | |  parent:      2755:66c84a59ec08
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Sep 10 14:12:50 2013 +0200
-| | | | | |  summary:     Small corrections for cygwin compilation
-| | | | | |
-| | | o | |  changeset:   2757:094eb2bf1ed5
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Sep 10 13:55:23 2013 +0200
-| | | | | |  summary:     Corrections for MacOS 10.6 compilation
-| | | | | |
-| | | o | |  changeset:   2756:f6a45d5192d4
-| | | |/ /   user:        Antoine Le Hyaric
-| | | | |    date:        Tue Sep 10 13:44:49 2013 +0200
-| | | | |    summary:     Corrections for scotch compilation
-| | | | |
-| | | o |    changeset:   2755:66c84a59ec08
-| | | |\ \   parent:      2754:9c42ed65ca44
-| | | | | |  parent:      2717:c64826dc8c81
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Sep 10 11:39:04 2013 +0200
-| | | | | |  summary:     Keeping ALH and FH trees in sync
-| | | | | |
-| | | | o |  changeset:   2754:9c42ed65ca44
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Sep 10 11:16:50 2013 +0200
-| | | | | |  summary:     Corrected pastix compilation for FFCS on MacOS 10.6
-| | | | | |
-| | +---o |  changeset:   2753:da3780f311e8
-| | | |  /   parent:      2750:c63825bee6e0
-| | | | |    user:        Antoine Le Hyaric
-| | | | |    date:        Thu Sep 05 11:39:29 2013 +0200
-| | | | |    summary:     Corrected mumps-seq makefile
-| | | | |
-| o | | |  changeset:   2752:df47e2e6eed5
-| | | | |  branch:      alh-dev
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Sep 11 10:44:26 2013 +0200
-| | | | |  summary:     partial commit on DebianTesting32
-| | | | |
-| o | | |  changeset:   2751:40f8b19d30da
-| |\| | |  branch:      alh-dev
-| | | | |  parent:      2749:d1afac8f61a9
-| | | | |  parent:      2750:c63825bee6e0
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Sep 04 16:48:42 2013 +0200
-| | | | |  summary:     Merged modifs from FH into alh-dev branch
-| | | | |
-| | o | |    changeset:   2750:c63825bee6e0
-| | |\ \ \   parent:      2745:e7875904c41e
-| | | | | |  parent:      2710:4341df7bae13
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Sep 04 16:18:14 2013 +0200
-| | | | | |  summary:     Synchronizing FF and FFCS updates to the Mumps and Umfpack makefiles
-| | | | | |
-| o | | | |  changeset:   2749:d1afac8f61a9
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Sep 04 15:22:24 2013 +0200
-| | | | | |  summary:     partial commit on DebianTesting64
-| | | | | |
-| o | | | |  changeset:   2748:ef562c7d8fb7
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Sep 04 15:16:32 2013 +0200
-| | | | | |  summary:     partial commit on DebianTesting64
-| | | | | |
-| o | | | |  changeset:   2747:698f90a62961
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Sep 04 14:48:43 2013 +0200
-| | | | | |  summary:     partial commit on DebianTesting64
-| | | | | |
-| o---+ | |  changeset:   2746:05a30144950f
-| | | | | |  branch:      alh-dev
-| | | | | |  parent:      2743:2e0fd3c00f4f
-| | | | | |  parent:      2745:e7875904c41e
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Sep 04 14:20:02 2013 +0200
-| | | | | |  summary:     merged default branch back into alh-dev
-| | | | | |
-| | | o | |    changeset:   2745:e7875904c41e
-| | | |\ \ \   parent:      2744:495eae88dc63
-| | | | | | |  parent:      2742:36b98a7a6e7a
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Wed Sep 04 12:22:28 2013 +0200
-| | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | |
-| | | | o | |  changeset:   2744:495eae88dc63
-| | | | | | |  parent:      2708:e50fd5f8a141
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Wed Sep 04 12:19:28 2013 +0200
-| | | | | | |  summary:     Corrections for FFCS compilation
-| | | | | | |
-| o | | | | |  changeset:   2743:2e0fd3c00f4f
-| | | | | | |  branch:      alh-dev
-| | | | | | |  parent:      2741:64de98e105f6
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Thu Aug 01 15:17:00 2013 +0200
-| | | | | | |  summary:     partial commit on DebianTesting32
-| | | | | | |
-| +---o | | |  changeset:   2742:36b98a7a6e7a
-| | | | | | |  parent:      2729:e2707ecfe7b7
-| | | | | | |  parent:      2741:64de98e105f6
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Thu Aug 01 12:34:02 2013 +0200
-| | | | | | |  summary:     Committing all changes for FFCS 13.14 back into FF
-| | | | | | |
-| o | | | | |  changeset:   2741:64de98e105f6
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Wed Jul 31 14:13:59 2013 +0200
-| | | | | | |  summary:     Added configuration option --enable-hypre
-| | | | | | |
-| o | | | | |  changeset:   2740:2bf0f2c8f9db
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Wed Jul 31 11:32:39 2013 +0200
-| | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | |
-| o | | | | |  changeset:   2739:33ed198a1694
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Tue Jul 30 15:26:10 2013 +0200
-| | | | | | |  summary:     Added extra configuration options for metis, parmetis and nlopt
-| | | | | | |
-| o | | | | |  changeset:   2738:a8c44e294d36
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Tue Jul 30 14:30:43 2013 +0200
-| | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | |
-| o | | | | |  changeset:   2737:685af844956b
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Tue Jul 30 14:26:21 2013 +0200
-| | | | | | |  summary:     Parallelized download/mumps-seq compilation
-| | | | | | |
-| o | | | | |  changeset:   2736:1f2cb6cd91e8
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Tue Jul 30 14:04:52 2013 +0200
-| | | | | | |  summary:     Parallelized MUMPS compilation
-| | | | | | |
-| o | | | | |    changeset:   2735:82c740a1f338
-| |\ \ \ \ \ \   branch:      alh-dev
-| | | | | | | |  parent:      2733:e3d8549335c2
-| | | | | | | |  parent:      2734:9e79463c9e48
-| | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | |  date:        Mon Jul 29 18:18:26 2013 +0200
-| | | | | | | |  summary:     partial commit on DebianTesting32
-| | | | | | | |
-| | o---------+  changeset:   2734:9e79463c9e48
-| |   | | | | |  branch:      alh-dev
-| |  / / / / /   parent:      2732:2a814f7c0f1f
-| | | | | | |    user:        Antoine Le Hyaric
-| | | | | | |    date:        Mon Jul 29 18:15:22 2013 +0200
-| | | | | | |    summary:     Fixes for Win32 compilation
-| | | | | | |
-| o---------+  changeset:   2733:e3d8549335c2
-|   | | | | |  branch:      alh-dev
-|  / / / / /   user:        Antoine Le Hyaric
-| | | | | |    date:        Mon Jul 29 15:13:01 2013 +0200
-| | | | | |    summary:     Added configure options --with-[package]-include= and --with-[package]-ldflags=
-| | | | | |
-| | | | | o  changeset:   2732:2a814f7c0f1f
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jul 24 16:08:34 2013 +0200
-| | | | | |  summary:     Fixed DLL compilation on Windows for MUMPS and pARMS
-| | | | | |
-| | | | | o  changeset:   2731:36e1cd88de75
-| | | | | |  branch:      alh-dev
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jul 24 13:41:16 2013 +0200
-| | | | | |  summary:     Compilation fixes for Windows
-| | | | | |
-| | | | | o  changeset:   2730:dca84350a248
-| | | | | |  branch:      alh-dev
-| | | | | |  parent:      2728:577fe9901c85
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Jul 23 16:13:06 2013 +0200
-| | | | | |  summary:     Small fixes for FFCS release version
-| | | | | |
-| | o | | |    changeset:   2729:e2707ecfe7b7
-| | |\ \ \ \   parent:      2724:54b6485a68f0
-| | | | | | |  parent:      2706:4cc59f9e5863
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Thu Jul 11 14:37:27 2013 +0200
-| | | | | | |  summary:     Keeping FH and ALH trees in sync
-| | | | | | |
-| | | | | | o  changeset:   2728:577fe9901c85
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Tue Jul 23 13:17:36 2013 +0200
-| | | | | | |  summary:     partial commit on Windows
-| | | | | | |
-| | | | | | o  changeset:   2727:d36610b57655
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Thu Jul 11 17:22:39 2013 +0200
-| | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | |
-| | | | | | o  changeset:   2726:edcf91fc280c
-| | | | | | |  branch:      alh-dev
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Thu Jul 11 15:09:44 2013 +0200
-| | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | |
-| | | +-----o  changeset:   2725:6e0e54be960e
-| | | | | | |  branch:      alh-dev
-| | | | | | |  parent:      2723:dc28f7873452
-| | | | | | |  parent:      2724:54b6485a68f0
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Wed Jul 10 15:17:16 2013 +0200
-| | | | | | |  summary:     Copied updates from the default branch to the alh-dev branch
-| | | | | | |
-| | | o | | |    changeset:   2724:54b6485a68f0
-| | | |\ \ \ \   parent:      2702:888a6c206637
-| | | | | | | |  parent:      2675:ec7d549934f0
-| | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | |  date:        Wed Jul 10 15:10:10 2013 +0200
-| | | | | | | |  summary:     Technical commit: synchronizing all HG heads from the default branch
-| | | | | | | |
-| | | | | | | o    changeset:   2723:dc28f7873452
-| | | | | | | |\   branch:      alh-dev
-| | | | | | | | |  parent:      2699:8fc2e7e016aa
-| | | | | | | | |  parent:      2722:ed19cfc9dc4a
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Wed Jul 10 15:06:06 2013 +0200
-| | | | | | | | |  summary:     technical commit: synchronizing draft ALH developments
-| | | | | | | | |
-| | | | | | | | o  changeset:   2722:ed19cfc9dc4a
-| | | | | | | | |  branch:      alh-dev
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Mon Jul 01 09:43:47 2013 +0200
-| | | | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | | | |
-| | | | | | | | o  changeset:   2721:8a5543705d99
-| | | | | | | | |  branch:      alh-dev
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Thu Jun 27 12:36:58 2013 +0200
-| | | | | | | | |  summary:     partial commit on DebianTesting64
-| | | | | | | | |
-| | | | | | | | o  changeset:   2720:734e4213f762
-| | | | | | | | |  branch:      alh-dev
-| | | | | | | | |  parent:      2700:4682570a0e2f
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Wed Jun 26 15:41:34 2013 +0200
-| | | | | | | | |  summary:     Created branch alh-dev for draft ALH developments
-| | | | | | | | |
-o | | | | | | | |  changeset:   2719:7ae83b320fea
-| | | | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | | | |  date:        Fri Sep 06 15:34:49 2013 +0200
-| | | | | | | | |  summary:     coorect mistake in parmetis install files .
-| | | | | | | | |
-o-----------+ | |  changeset:   2718:35d438d9bcb2
-  | | | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
- / / / / / / / /   date:        Fri Sep 06 10:59:36 2013 +0200
-| | | | | | | |    summary:     coorect for compilation with OpenBlas and a Window versio   of sleep.
-| | | | | | | |
-| | | | | o | |  changeset:   2717:c64826dc8c81
-| | | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | | |  date:        Thu Sep 05 15:26:31 2013 +0200
-| | | | | | | |  summary:     add cote in -T MPIDIR
-| | | | | | | |
-| | | | | o | |  changeset:   2716:2597949bf544
-| | | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | | |  date:        Thu Sep 05 14:57:31 2013 +0200
-| | | | | | | |  summary:     correct wget problme in pastis and superludist Makefile
-| | | | | | | |
-| | | | | o | |  changeset:   2715:306e42af8aca
-| | | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | | |  date:        Thu Sep 05 10:58:44 2013 +0200
-| | | | | | | |  summary:     correct typo
-| | | | | | | |
-| | | | | o | |  changeset:   2714:2dca3a0b91a8
-| | | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | | |  date:        Thu Sep 05 10:23:15 2013 +0200
-| | | | | | | |  summary:     correct pb of make stop if no arpack..
-| | | | | | | |
-| | | | | o | |  changeset:   2713:8b9576d7d540
-| | | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | | |  date:        Thu Sep 05 09:55:51 2013 +0200
-| | | | | | | |  summary:     correct problem on skip mpi example in some case
-| | | | | | | |
-| | | | | o | |  changeset:   2712:524802dba437
-| | | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | | |  date:        Thu Sep 05 06:28:03 2013 +0200
-| | | | | | | |  summary:     rebuild AutoGeneratedFile.tar.gz
-| | | | | | | |
-+---------o | |  changeset:   2711:71a6c203d688
-| | | | |  / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |    date:        Thu Sep 05 06:27:19 2013 +0200
-| | | | | | |    summary:     correct problem of stop compilation of load example
-| | | | | | |
-o | | | | | |  changeset:   2710:4341df7bae13
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Wed Sep 04 15:35:34 2013 +0200
-| | | | | | |  summary:     correct pb in mpi test remove graphic
-| | | | | | |
-o-------+ | |  changeset:   2709:45813df0888a
-  | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
- / / / / / /   date:        Wed Sep 04 13:31:56 2013 +0200
-| | | | | |    summary:     add tools to build le list of AutoGeneratedFile.tar.gz
-| | | | | |
-| | | o | |  changeset:   2708:e50fd5f8a141
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Tue Aug 27 14:28:25 2013 +0200
-| | | | | |  summary:     summer correction.
-| | | | | |
-+-----o | |  changeset:   2707:17f80351763f
-| | |  / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |    date:        Sat Aug 17 22:39:03 2013 +0200
-| | | | |    summary:     add patch of holiday scotch dolaod with curl; an pb in a*[b,c,d,..]' with complex value
-| | | | |
-o | | | |  changeset:   2706:4cc59f9e5863
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jul 11 12:51:07 2013 +0200
-| | | | |  summary:     add comment for compile
-| | | | |
-o | | | |  changeset:   2705:c435a4165181
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jul 11 11:58:27 2013 +0200
-| | | | |  summary:     correct mmg3d
-| | | | |
-o | | | |  changeset:   2704:3bcad8cbbcbe
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jul 10 22:20:05 2013 +0200
-| | | | |  summary:     correct pb in save make the point is not in tet
-| | | | |
-o---+ | |  changeset:   2703:8a3547f7290a
-| | | | |  parent:      2702:888a6c206637
-|/ / / /   parent:      2675:ec7d549934f0
-| | | |    user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |    date:        Wed Jul 10 15:17:49 2013 +0200
-| | | |    summary:     restore skipcommet example
-| | | |
-| o | |  changeset:   2702:888a6c206637
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jul 10 14:44:03 2013 +0200
-| | | |  summary:     pass to version 3.25  merge ff++ of ALH and FH
-| | | |
-| o---+  changeset:   2701:dd21194cb9f6
-| | | |  parent:      2700:4682570a0e2f
-| | | |  parent:      2674:7bb139d17bea
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Jul 10 10:04:05 2013 +0200
-| | | |  summary:     Keeping FH and ALH trees in sync
-| | | |
-| | | o    changeset:   2700:4682570a0e2f
-| | | |\   parent:      2697:da86b515293e
-| | | | |  parent:      2698:62df716c1320
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Jun 26 15:37:52 2013 +0200
-| | | | |  summary:     Transferred all FreeFem++ patches from the FreeFem++-cs source tree to the FreeFem++ source tree
-| | | | |
-| | o---+  changeset:   2699:8fc2e7e016aa
-| |   | |  branch:      alh-dev
-| |  / /   user:        Antoine Le Hyaric
-| | | |    date:        Wed Jun 26 14:52:09 2013 +0200
-| | | |    summary:     Created branch alh-dev for draft ALH developments
-| | | |
-| | | o  changeset:   2698:62df716c1320
-| | | |  parent:      2696:791401576c4d
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Jun 26 12:08:39 2013 +0200
-| | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | |
-| | o |    changeset:   2697:da86b515293e
-| | |\ \   parent:      2688:3eab88cf4024
-| | | | |  parent:      2663:e0d9c72558a1
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jun 25 15:39:07 2013 +0200
-| | | | |  summary:     Keeping FH and ALH trees in sync
-| | | | |
-| | | | o  changeset:   2696:791401576c4d
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Jun 26 11:44:47 2013 +0200
-| | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | |
-| | | | o  changeset:   2695:3151480a64b7
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jun 25 15:50:08 2013 +0200
-| | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | |
-| | +---o  changeset:   2694:87b46e1b6393
-| | | | |  parent:      2693:86ea3e4a8851
-| | | | |  parent:      2663:e0d9c72558a1
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jun 25 15:46:25 2013 +0200
-| | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | |
-| | | | o  changeset:   2693:86ea3e4a8851
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jun 25 14:49:33 2013 +0200
-| | | | |  summary:     transferred all patches from the FFCS development tree
-| | | | |
-| | | | o  changeset:   2692:97a9606a653d
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Wed Jun 12 17:50:17 2013 +0200
-| | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | |
-| | | | o  changeset:   2691:419cee6966bc
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jun 11 18:00:21 2013 +0200
-| | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | |
-| | | | o  changeset:   2690:8abb5d66e20f
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jun 11 13:43:22 2013 +0200
-| | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | |
-| | | | o  changeset:   2689:3e931c8973b9
-| | | |/|  parent:      2687:aa013525fb7e
-| | | | |  parent:      2688:3eab88cf4024
-| | | | |  user:        Antoine Le Hyaric
-| | | | |  date:        Tue Jun 11 11:20:43 2013 +0200
-| | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | |
-| | | o |    changeset:   2688:3eab88cf4024
-| | | |\ \   parent:      2686:4fc31e72cdd0
-| | | | | |  parent:      2662:71cafe9dab38
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Tue Jun 11 10:36:23 2013 +0200
-| | | | | |  summary:     Keeping FH and ALH trees in sync
-| | | | | |
-| | | | | o  changeset:   2687:aa013525fb7e
-| | | | |/|  parent:      2681:46dd9851ed4d
-| | | | | |  parent:      2686:4fc31e72cdd0
-| | | | | |  user:        Antoine Le Hyaric
-| | | | | |  date:        Wed Jun 05 16:43:59 2013 +0200
-| | | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | | |
-| | | | o |    changeset:   2686:4fc31e72cdd0
-| | | | |\ \   parent:      2685:767efda6e451
-| | | | | | |  parent:      2308:f01c1ce34eb3
-| | | | | | |  user:        Antoine Le Hyaric
-| | | | | | |  date:        Wed Jun 05 11:19:30 2013 +0200
-| | | | | | |  summary:     Discarded obsolete head f01c1ce34eb3 (but kept that version in the repository)
-| | | | | | |
-| | | | | o |    changeset:   2685:767efda6e451
-| | | | | |\ \   parent:      2684:6b6c8aad96ac
-| | | | | | | |  parent:      2101:31c99c85707b
-| | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | |  date:        Wed Jun 05 11:18:45 2013 +0200
-| | | | | | | |  summary:     Discarded obsolete head 31c99c85707b (but kept that version in the repository)
-| | | | | | | |
-| | | | | | o |    changeset:   2684:6b6c8aad96ac
-| | | | | | |\ \   parent:      2683:cb8d4ecbfa92
-| | | | | | | | |  parent:      2054:f3cbf7394995
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Wed Jun 05 11:18:16 2013 +0200
-| | | | | | | | |  summary:     Discarded obsolete head f3cbf7394995 (but kept that version in the repository)
-| | | | | | | | |
-| | | | | | | o |  changeset:   2683:cb8d4ecbfa92
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Tue Jun 04 14:36:00 2013 +0200
-| | | | | | | | |  summary:     Created Doxygen main page and started to document the C++ classes
-| | | | | | | | |
-| | | | | | | o |  changeset:   2682:fcd1643fef04
-| | | | | | | | |  parent:      2656:77e6f87bfdbf
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Tue Jun 04 14:34:07 2013 +0200
-| | | | | | | | |  summary:     Created Doxygen main page and started to document the C++ classes
-| | | | | | | | |
-| | | | | | | | o  changeset:   2681:46dd9851ed4d
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Wed Jun 05 16:30:09 2013 +0200
-| | | | | | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | | | | | |
-| | | | | | | | o  changeset:   2680:2c62f82b7cf1
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Wed Jun 05 08:55:53 2013 +0200
-| | | | | | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | | | | | |
-| | | | | | | | o  changeset:   2679:7efba1855838
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Tue Jun 04 18:02:11 2013 +0200
-| | | | | | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | | | | | |
-| | | | | | | | o  changeset:   2678:684ae36c47ca
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Tue Jun 04 14:34:01 2013 +0200
-| | | | | | | | |  summary:     commit for fflibexport
-| | | | | | | | |
-| | | | | | | | o  changeset:   2677:be137189177e
-| | | | | | | | |  user:        Antoine Le Hyaric
-| | | | | | | | |  date:        Mon Jun 03 17:29:56 2013 +0200
-| | | | | | | | |  summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | | | | | |
-| | | | | | | | o  changeset:   2676:056116d8b9a9
-| | | | | | | |/   parent:      2656:77e6f87bfdbf
-| | | | | | | |    user:        Antoine Le Hyaric
-| | | | | | | |    date:        Mon Jun 03 16:53:15 2013 +0200
-| | | | | | | |    summary:     Modified by Antoine Le Hyaric on DebianTesting64 (machine odyssee)
-| | | | | | | |
-o | | | | | | |  changeset:   2675:ec7d549934f0
-|/ / / / / / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |    date:        Wed Jul 10 10:23:15 2013 +0200
-| | | | | | |    summary:     add skipcomment in readmesh.edp example
-| | | | | | |
-o | | | | | |  changeset:   2674:7bb139d17bea
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Thu Jul 04 18:04:37 2013 +0200
-| | | | | | |  summary:     put code of index and rindex missing in win32
-| | | | | | |
-o | | | | | |  changeset:   2673:93b7627f23fd
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Tue Jul 02 22:44:56 2013 +0300
-| | | | | | |  summary:     missing xfial Poisson3d.edp
-| | | | | | |
-o | | | | | |  changeset:   2672:ad18e7b807c6
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Tue Jul 02 22:43:32 2013 +0300
-| | | | | | |  summary:     autoreconf
-| | | | | | |
-o | | | | | |  changeset:   2671:67a063a1a524
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Tue Jul 02 22:42:53 2013 +0300
-| | | | | | |  summary:     add  xfail test in not tetgen
-| | | | | | |
-o | | | | | |  changeset:   2670:bc88752878d2
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Tue Jul 02 22:39:08 2013 +0300
-| | | | | | |  summary:     autoreconf
-| | | | | | |
-o | | | | | |  changeset:   2669:e7e5b1846361
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Tue Jul 02 22:38:23 2013 +0300
-| | | | | | |  summary:     update list of xfail example
-| | | | | | |
-o | | | | | |  changeset:   2668:11b43f1fdbfc
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Thu Jun 27 20:40:53 2013 +0200
-| | | | | | |  summary:     correct test-driver-ff to set XFAIL (to can fail no sure fail)
-| | | | | | |
-o | | | | | |  changeset:   2667:2cdabbc53b17
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Thu Jun 27 20:11:08 2013 +0200
-| | | | | | |  summary:     correct typo in XFAIL_TESTS automake variable
-| | | | | | |
-o | | | | | |  changeset:   2666:d11989c6ff07
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Thu Jun 27 19:55:11 2013 +0200
-| | | | | | |  summary:     add in pref missing include dir
-| | | | | | |
-o | | | | | |  changeset:   2665:b4b2ddd8100f
-| | | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | | |  date:        Thu Jun 27 19:37:44 2013 +0200
-| | | | | | |  summary:     add the creation of freefem++.pref file in all directory example
-| | | | | | |
-o | | | | | |  changeset:   2664:4575cdbc939c
-|/ / / / / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |    date:        Thu Jun 27 13:17:13 2013 +0200
-| | | | | |    summary:     coorect missing creation of freefem++.pref   file
-| | | | | |
-o | | | | |  changeset:   2663:e0d9c72558a1
-|/ / / / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |    date:        Tue Jun 11 21:40:05 2013 +0200
-| | | | |    summary:     add parameter in ffglut  program like  -g 1000x500+100+100 -t toto
-| | | | |
-o | | | |  changeset:   2662:71cafe9dab38
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Jun 10 20:48:03 2013 +0200
-| | | | |  summary:     correct pb of auto size of 3d plot
-| | | | |
-o | | | |  changeset:   2661:49e7d0ef36a7
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Jun 10 14:15:44 2013 +0200
-| | | | |  summary:     add -wait "0.1" of ffglut (=> no manuel wait)
-| | | | |
-o | | | |  changeset:   2660:4c22c41a9f85
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Jun 09 18:21:51 2013 +0200
-| | | | |  summary:     correct typo llevelset.edp ->intlevelset.edp
-| | | | |
-o | | | |  changeset:   2659:6e4d9f511a3c
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Jun 09 17:16:41 2013 +0200
-| | | | |  summary:     put correction of Lorenzo.
-| | | | |
-o | | | |  changeset:   2658:5f7becf9dbd3
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Jun 07 16:11:08 2013 +0200
-| | | | |  summary:     add test of pb ?: operator with div / 0.
-| | | | |
-o-------+  changeset:   2657:9641b54129e2
-  | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
- / / / /   date:        Thu Jun 06 20:57:44 2013 +0200
-| | | |    summary:     change default solver in bilap.edo example
-| | | |
-| | | o  changeset:   2656:77e6f87bfdbf
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Jun 01 10:11:30 2013 +0200
-| | | |  summary:     correct test test "${SKIP:-no}"
-| | | |
-| | | o  changeset:   2655:3b374e87a5a7
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Jun 01 09:52:31 2013 +0200
-| | | |  summary:     correct TESTing of freefem++
-| | | |
-| | | o  changeset:   2654:d9460e4552e0
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri May 31 22:44:45 2013 +0200
-| | | |  summary:     update automake test of freefem++
-| | | |
-| | | o  changeset:   2653:e65c6ce6f363
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed May 29 12:18:37 2013 +0200
-| | | |  summary:     remove \r in patch file
-| | | |
-| | | o  changeset:   2652:379e79e6761b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed May 29 11:48:45 2013 +0200
-| | | |  summary:     add ff-mpirun on windows distrib.
-| | | |
-| | | o  changeset:   2651:a33d824b6777
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed May 29 10:03:44 2013 +0200
-| | | |  summary:     add quote for windows
-| | | |
-| | | o  changeset:   2650:fdbc1f7fc3c6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue May 28 18:59:32 2013 +0200
-| | | |  summary:     correct typo in doc on operator .*+ and ./=
-| | | |
-| | | o  changeset:   2649:9ef12351b744
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 13 21:20:19 2013 +0200
-| | | |  summary:     correct CheckAll
-| | | |
-| | | o  changeset:   2648:e1207c606f45
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 13 21:05:18 2013 +0200
-| | | |  summary:     correct CheckAll
-| | | |
-| | | o  changeset:   2647:1e153d9d7218
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 13 20:55:40 2013 +0200
-| | | |  summary:     correct getline or \r\n files
-| | | |
-| | | o  changeset:   2646:ccdea38daf14
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 06 22:03:44 2013 +0200
-| | | |  summary:     correct configure.ac for umfpack downlad
-| | | |
-| | | o  changeset:   2645:13f113c861c0
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 06 20:42:41 2013 +0200
-| | | |  summary:     correct pb of compile umfpack if no --enable-download  flags
-| | | |
-| | | o  changeset:   2644:d68cb17545dc
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 06 20:28:13 2013 +0200
-| | | |  summary:     correct typo in CheckAll to store result
-| | | |
-| | | o  changeset:   2643:f7669c7a10ee
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri May 03 15:10:42 2013 +0200
-| | | |  summary:     remove dir in Makefile.am glx, std, x11
-| | | |
-| | | o  changeset:   2642:134644b820a8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri May 03 12:49:02 2013 +0200
-| | | |  summary:     version 3.23
-| | | |
-| | | o  changeset:   2641:36132ac7c1c1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Apr 27 11:36:36 2013 +0200
-| | | |  summary:     reomve x11, glx, ... off the compilation  prosess
-| | | |
-| | | o  changeset:   2640:4628a7908b73
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 19 15:38:16 2013 +0200
-| | | |  summary:     coorect type in isoline functio,n Area to compute the area of
-| | | |
-| | | o  changeset:   2639:d459cc808f30
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 18 20:45:09 2013 +0200
-| | | |  summary:     change area to Area because area is not a function.
-| | | |
-| | | o  changeset:   2638:f70cee1b6a7b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 18 19:02:42 2013 +0200
-| | | |  summary:     add area of isoline domaine
-| | | |
-| | | o  changeset:   2637:af2fae66daf5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 18 18:43:09 2013 +0200
-| | | |  summary:     coorect bug in close isoline  plugin
-| | | |
-| | | o  changeset:   2636:ef891424f88b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 18 16:47:38 2013 +0200
-| | | |  summary:     add Sylvain dans le auteur de FreeFem++
-| | | |
-| | | o  changeset:   2635:ca6bcf9490a4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 12 10:18:57 2013 +0200
-| | | |  summary:     remove graphics in case of -nw flags for batch test
-| | | |
-| | | o  changeset:   2634:895803f79633
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 12 09:42:12 2013 +0200
-| | | |  summary:     correct typo
-| | | |
-| | | o  changeset:   2633:9f74073f0c38
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 12 09:39:02 2013 +0200
-| | | |  summary:     up ./CheckAll of win32
-| | | |
-| | | o  changeset:   2632:35d4982c7d87
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 11 10:14:24 2013 +0200
-| | | |  summary:     add patch of freebsd on mshmet
-| | | |
-| | | o  changeset:   2631:88e6ad0b5eae
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Apr 09 08:14:58 2013 +0200
-| | | |  summary:     cadd message is case of no compile in configure
-| | | |
-| | | o  changeset:   2630:b7c3c4a72d2d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Apr 08 23:20:18 2013 +0200
-| | | |  summary:     try to put error when mesh is un set .
-| | | |
-| | | o  changeset:   2629:42e29538cbf1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Apr 08 22:05:45 2013 +0200
-| | | |  summary:     do gestion on non mesh (0 pointeur)
-| | | |
-| | | o  changeset:   2628:bc0e94fb0c28
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Apr 08 20:54:46 2013 +0200
-| | | |  summary:     add tools to remove interla faces
-| | | |
-| | | o  changeset:   2627:19af33493619
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Apr 08 18:01:17 2013 +0200
-| | | |  summary:     coormit glumesh in 2d of no mesh  (ok)
-| | | |
-| | | o  changeset:   2626:865b4afb98eb
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Apr 03 21:50:43 2013 +0200
-| | | |  summary:     update ffglut
-| | | |
-| | | o  changeset:   2625:21078f2bcf45
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Apr 03 09:16:57 2013 +0200
-| | | |  summary:     reput esc in ffglut to stop
-| | | |
-| | | o  changeset:   2624:6ee46703380b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Apr 02 11:28:02 2013 +0200
-| | | |  summary:     coorect stop ffglut in case of bug
-| | | |
-| | | o  changeset:   2623:6b417f8e333b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 29 08:59:00 2013 +0100
-| | | |  summary:     coorect the doc for new graphic option
-| | | |
-| | | o  changeset:   2622:d7215ddbcf5a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 28 23:46:05 2013 +0100
-| | | |  summary:     add new graphic event and multy windows
-| | | |
-| | | o  changeset:   2621:8e54a67d70fe
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 28 22:09:35 2013 +0100
-| | | |  summary:     pass to v 3.22
-| | | |
-| | | o  changeset:   2620:7a4a75730418
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 28 21:26:08 2013 +0100
-| | | |  summary:     update plot for multy windows
-| | | |
-| | | o  changeset:   2619:eb24ff98d1d1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Mar 26 23:41:03 2013 +0100
-| | | |  summary:     solve b off int overflow in gibbs renumbering
-| | | |
-| | | o  changeset:   2618:c2fce2359ce2
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Mar 25 16:21:52 2013 +0100
-| | | |  summary:     add type of real , int , complex in doc
-| | | |
-| | | o  changeset:   2617:915914787d79
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 22 23:24:47 2013 +0100
-| | | |  summary:     correct sheel plug for windows
-| | | |
-| | | o  changeset:   2616:2bc25eab7305
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 22 22:25:49 2013 +0100
-| | | |  summary:     cooret shell for windows
-| | | |
-| | | o  changeset:   2615:e4965faa0d98
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 22 21:55:43 2013 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2614:eb0e30cf59c6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 22 21:27:43 2013 +0100
-| | | |  summary:     correct Makefile for cleanning
-| | | |
-| | | o  changeset:   2613:ff917977e3ac
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 22 10:23:58 2013 +0100
-| | | |  summary:     add getenv in shell plugin
-| | | |
-| | | o  changeset:   2612:2411bba1d923
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 16:37:31 2013 +0100
-| | | |  summary:     end for pardiso on hpc1
-| | | |
-| | | o  changeset:   2611:a33781429270
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 16:12:29 2013 +0100
-| | | |  summary:     next PARDISO mkl hpc1
-| | | |
-| | | o  changeset:   2610:e2b27fa668bd
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 15:55:35 2013 +0100
-| | | |  summary:     blas / mlk hpc1 pb ..
-| | | |
-| | | o  changeset:   2609:ddb3de28b4b9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 15:41:14 2013 +0100
-| | | |  summary:     next step   mkl
-| | | |
-| | | o  changeset:   2608:b4a043b50359
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 15:31:14 2013 +0100
-| | | |  summary:     mkl next step ..
-| | | |
-| | | o  changeset:   2607:988959bff8b8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 14:21:30 2013 +0100
-| | | |  summary:     MAJ mlk
-| | | |
-| | | o  changeset:   2606:38b95806d70a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 12:02:32 2013 +0100
-| | | |  summary:     correct mkl  seach in autoconf ...
-| | | |
-| | | o  changeset:   2605:f742f2600c99
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 10:37:50 2013 +0100
-| | | |  summary:     add depend mkl to paridiso
-| | | |
-| | | o  changeset:   2604:8100a6d971e7
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 10:31:34 2013 +0100
-| | | |  summary:     REMOVE Mpi from PARDISO
-| | | |
-| | | o  changeset:   2603:31e73a49d8f3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 21 09:21:12 2013 +0100
-| | | |  summary:     correct 3d trunc . and type in CheckPtr
-| | | |
-| | | o  changeset:   2602:b0783e4cb2d3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Mar 19 09:02:13 2013 +0100
-| | | |  summary:     correct pb in gestion of outside flag in case of brute force search of tet contening a point
-| | | |
-| | | o  changeset:   2601:090c847ad8c8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 15 18:37:05 2013 +0100
-| | | |  summary:     coorect typo
-| | | |
-| | | o  changeset:   2600:3c995bdf4b50
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 15 16:51:31 2013 +0100
-| | | |  summary:     v 3.21-1 autoreconf.
-| | | |
-| | | o  changeset:   2599:71cd2d5a350f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 15 16:50:34 2013 +0100
-| | | |  summary:     passe to versioon 3.21-1
-| | | |
-| | | o  changeset:   2598:3f9a6c79377a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Mar 05 21:03:03 2013 +0100
-| | | |  summary:     correct timer for umfpack
-| | | |
-| | | o  changeset:   2597:206af6393108
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 20 22:02:06 2013 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2596:8a575742fc6f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 20 21:57:57 2013 +0100
-| | | |  summary:     change umpack to no version
-| | | |
-| | | o  changeset:   2595:9af00b7818c1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Feb 14 08:11:01 2013 -0600
-| | | |  summary:     coorect ref value of fluidstruct examples
-| | | |
-| | | o  changeset:   2594:43b25e32651f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 13 23:13:04 2013 -0600
-| | | |  summary:     add n, resize of arry of finite element function ...
-| | | |
-| | | o  changeset:   2593:54f4ad3d3362
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Feb 12 18:14:19 2013 -0600
-| | | |  summary:     correct doc for NSUzawaCahouetChabart.edp
-| | | |
-| | | o  changeset:   2592:aac1b5aec871
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Feb 04 08:19:25 2013 -0600
-| | | |  summary:     up. INNOCATION
-| | | |
-| | | o  changeset:   2591:f14702ce2e6d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Feb 04 08:18:36 2013 -0600
-| | | |  summary:     correct typo
-| | | |
-| | | o  changeset:   2590:7a3472e50c69
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Jan 28 14:20:28 2013 +0100
-| | | |  summary:     remove export MACOSX_DEPLOYMENT_TARGET=10.4 on macos (too old stuff)
-| | | |
-| | | o  changeset:   2589:a959a31a2912
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Jan 28 09:39:30 2013 +0100
-| | | |  summary:     coorect in  change function the flabel tools.
-| | | |
-| | | o  changeset:   2588:f53ea48bdac4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 24 18:23:48 2013 +0100
-| | | |  summary:     rm bad file
-| | | |
-| | | o  changeset:   2587:b1b23c7916a3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jan 23 16:25:01 2013 +0100
-| | | |  summary:     coorect missing build of quadtree in gmesh 2d case
-| | | |
-| | | o  changeset:   2586:dbd8bda95c9c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Jan 21 18:28:55 2013 +0100
-| | | |  summary:     correct ff-mpirun to make local launch in some cas
-| | | |
-| | | o  changeset:   2585:232b71bc7c24
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Jan 20 20:55:49 2013 +0100
-| | | |  summary:     pass to version 3.20-3
-| | | |
-| | | o  changeset:   2584:36c600f16fc4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Jan 18 21:57:09 2013 +0100
-| | | |  summary:     correct the new mmg3d4
-| | | |
-| | | o  changeset:   2583:fc1d1f80a3de
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Jan 15 10:09:22 2013 +0100
-| | | |  summary:     clean scalapack makefile
-| | | |
-| | | o  changeset:   2582:b1d5e28701fc
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Jan 15 09:38:04 2013 +0100
-| | | |  summary:     coorect scalapack lib without extern blacs add .oo file in lib
-| | | |
-| | | o  changeset:   2581:f7c9c3f0e753
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 10 11:26:13 2013 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2580:ff72eeaffa02
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 10 10:59:53 2013 +0100
-| | | |  summary:     reomve blacs lib now include in scalapack.
-| | | |
-| | | o  changeset:   2579:8f891641d4e6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 10 10:50:52 2013 +0100
-| | | |  summary:     add blacs in scalapack lib .
-| | | |
-| | | o  changeset:   2578:3e68b323cae8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 10 10:45:12 2013 +0100
-| | | |  summary:     correct type in scalapack
-| | | |
-| | | o  changeset:   2577:2ebfff8d40ea
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 10 10:41:32 2013 +0100
-| | | |  summary:     coorect -FPIC compile falgs in scalapack 2.02
-| | | |
-| | | o  changeset:   2576:1e1b16af7ef3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Jan 08 15:32:18 2013 +0100
-| | | |  summary:     correct DOC freefem++  notepad++ launch freefem++ with lauchff++
-| | | |
-| | | o  changeset:   2575:45ef0341b9de
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Dec 21 17:04:13 2012 +0100
-| | | |  summary:     correct def on WGET in scalapack MAKEFILE
-| | | |
-| | | o  changeset:   2574:43e587d524f2
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Dec 21 10:05:53 2012 +0100
-| | | |  summary:     coorect typo
-| | | |
-| | | o  changeset:   2573:706b1fb04002
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Dec 06 22:50:24 2012 +0100
-| | | |  summary:     update pipe.cpp interface add
-| | | |
-| | | o  changeset:   2572:75958d95b25a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Nov 29 17:50:38 2012 +0100
-| | | |  summary:     move PARDISO to example++-load ( not MPI program)
-| | | |
-| | | o  changeset:   2571:22c5533569ad
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Nov 29 17:38:03 2012 +0100
-| | | |  summary:     remove old version ...
-| | | |
-| | | o  changeset:   2570:a3e882fd71c3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Nov 29 14:45:38 2012 +0100
-| | | |  summary:     PASS PARDISO to complex (not test ..)
-| | | |
-| | | o  changeset:   2569:e916e4a8e005
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Nov 29 11:51:21 2012 +0100
-| | | |  summary:     Coorect SetDefaultSolver in all case (now in main)
-| | | |
-| | | o  changeset:   2568:73fcad054f91
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Nov 29 10:29:35 2012 +0100
-| | | |  summary:     update MUMPS mpi complex version
-| | | |
-| | | o  changeset:   2567:85a427c2f918
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 28 23:20:46 2012 +0100
-| | | |  summary:     put compex in MUMPS in progress
-| | | |
-| | | o  changeset:   2566:1beb3cf38e1d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 28 22:19:39 2012 +0100
-| | | |  summary:     add compile MUMPS and PARDISO
-| | | |
-| | | o  changeset:   2565:ade7d8e2fd80
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 28 22:16:47 2012 +0100
-| | | |  summary:     coorect MUMPS.cpp
-| | | |
-| | | o  changeset:   2564:820d39a3c8cf
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 28 22:11:16 2012 +0100
-| | | |  summary:     correct metis Makefile
-| | | |
-| | | o  changeset:   2563:284eaf041a4b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 28 21:28:36 2012 +0100
-| | | |  summary:     type erreur missing Makefile code for camd
-| | | |
-| | | o  changeset:   2562:b54f279c8c97
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 28 21:22:21 2012 +0100
-| | | |  summary:     add new matrix solver interface (see P. Jolivet)
-| | | |
-| | | o  changeset:   2561:c9eae98ad5dc
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Nov 02 22:59:13 2012 +0100
-| | | |  summary:     coorect missing setting nuTriangle
-| | | |
-| | | o  changeset:   2560:2eaedd8688ce
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Nov 02 22:36:18 2012 +0100
-| | | |  summary:     coorect missing of set nuTriangle  some time
-| | | |
-| | | o  changeset:   2559:ee9c67a82a1d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 30 18:25:43 2012 +0100
-| | | |  summary:     correct mistak in mmg3d Makefile
-| | | |
-| | | o  changeset:   2558:e0792728a848
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 26 16:10:48 2012 +0200
-| | | |  summary:     coorect change of intallfaces integral
-| | | |
-| | | o  changeset:   2557:a134cc81aaf2
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 25 10:03:41 2012 +0200
-| | | |  summary:     remove const in cblas interface sdot mistake  in openblas
-| | | |
-| | | o  changeset:   2556:dc973b75b634
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 25 08:04:52 2012 +0200
-| | | |  summary:     coorect PB with OpenBlas  cblas include without const in parameter
-| | | |
-| | | o  changeset:   2555:6fa9b9c59829
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 16 17:31:25 2012 +0200
-| | | |  summary:     add missing compile files
-| | | |
-| | | o  changeset:   2554:43560825cafe
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 10 15:21:51 2012 +0200
-| | | |  summary:     correct pipe.edp example to run under windows.
-| | | |
-| | | o  changeset:   2553:395f577c1a69
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Oct 08 11:53:33 2012 +0900
-| | | |  summary:     add pipe plugin to link with other soft
-| | | |
-| | | o  changeset:   2552:db4af2db147e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Oct 07 14:11:44 2012 +0900
-| | | |  summary:     do small coorection of windows
-| | | |
-| | | o  changeset:   2551:d32ffb11bec9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Oct 07 11:18:26 2012 +0900
-| | | |  summary:     coorect pb to set C io under winder
-| | | |
-| | | o  changeset:   2550:f3986a910f80
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Oct 06 22:34:10 2012 +0900
-| | | |  summary:     type
-| | | |
-| | | o  changeset:   2549:f6229d0989bb
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Oct 06 22:30:02 2012 +0900
-| | | |  summary:     correct mumps compilation
-| | | |
-| | | o  changeset:   2548:a1910dbcf7f9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Oct 06 11:50:54 2012 +0900
-| | | |  summary:     correct pb of segflaut on window atexit when creating the log file
-| | | |
-| | | o  changeset:   2547:1626cbdfe5d6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Oct 06 10:51:50 2012 +0900
-| | | |  summary:     coorect typo
-| | | |
-| | | o  changeset:   2546:7a7fba157b77
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Oct 06 10:50:08 2012 +0900
-| | | |  summary:     add option to remove console output on windows
-| | | |
-| | | o  changeset:   2545:b192e8d7cbd3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Oct 06 10:29:16 2012 +0900
-| | | |  summary:     correct thing of windows porting
-| | | |
-| | | o  changeset:   2544:1b485471f601
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 04 16:13:47 2012 +0200
-| | | |  summary:     coorect pb compile windows
-| | | |
-| | | o  changeset:   2543:b0e5ed55fcb8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 03 18:34:29 2012 +0200
-| | | |  summary:     correct mmg3d with new version
-| | | |
-| | | o  changeset:   2542:a2661dc3cf87
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 03 15:01:12 2012 +0200
-| | | |  summary:     correct pb with drawbdmesh ( not compile now),
-| | | |
-| | | o  changeset:   2541:5540ca108c29
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 03 14:38:28 2012 +0200
-| | | |  summary:     add find root of real poly in  gsl plugin
-| | | |
-| | | o  changeset:   2540:7fcb20950af8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 26 15:31:46 2012 +0200
-| | | |  summary:     remove drawbdmesh on windows
-| | | |
-| | | o  changeset:   2539:3646196ba7b4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 25 13:16:23 2012 +0200
-| | | |  summary:     A left scalar mul with formal arry.
-| | | |
-| | | o  changeset:   2538:004c3ce519db
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Sep 21 14:52:11 2012 +0200
-| | | |  summary:     try a build 3.20 version
-| | | |
-| | | o  changeset:   2537:4ea423174745
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Sep 21 11:37:23 2012 +0200
-| | | |  summary:     add levelset integral in 2d..
-| | | |
-| | | o  changeset:   2536:3df0231f5788
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 19 15:55:46 2012 +0200
-| | | |  summary:     coorect cout
-| | | |
-| | | o  changeset:   2535:1813e516c73c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 19 15:49:51 2012 +0200
-| | | |  summary:     correct isoline.cpp  hard ...
-| | | |
-| | | o  changeset:   2534:d63f9b0d6a90
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 18 21:17:21 2012 +0200
-| | | |  summary:     correct  isoline.cpp bug some time ....
-| | | |
-| | | o  changeset:   2533:9a0f4ba5bc83
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 05 22:33:04 2012 +0200
-| | | |  summary:     do coorect off clang++ compiler
-| | | |
-| | | o  changeset:   2532:7268da0a32dd
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 05 21:59:44 2012 +0200
-| | | |  summary:     correct big problem with clang++ compiler ...
-| | | |
-| | | o  changeset:   2531:bf616e104e58
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 05 21:56:56 2012 +0200
-| | | |  summary:     coorect pb with clang compile, verif strange..
-| | | |
-| | | o  changeset:   2530:10fbabb7ca26
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 05 14:55:29 2012 +0200
-| | | |  summary:     add formal tools Cofact, det 3x3,  : on formal array.
-| | | |
-| | | o  changeset:   2529:4603f7ce0737
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 04 16:41:21 2012 +0200
-| | | |  summary:     clang next step.
-| | | |
-| | | o  changeset:   2528:18d5c72b3f8b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 04 10:32:46 2012 +0200
-| | | |  summary:     do correct for clang compiler
-| | | |
-| | | o  changeset:   2527:061c058bf92d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Sep 03 16:18:48 2012 +0200
-| | | |  summary:     correct for c++11
-| | | |
-| | | o  changeset:   2526:47944725e009
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Aug 28 14:21:56 2012 +0200
-| | | |  summary:     update README macos
-| | | |
-| | | o  changeset:   2525:d54e7f17997b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Aug 28 12:53:41 2012 +0200
-| | | |  summary:     add CheckMPIMacLib.sh and CheckMacLib.sh taget in makefile for mac pkg install
-| | | |
-| | | o  changeset:   2524:8fde78f05ac0
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 27 16:03:36 2012 +0200
-| | | |  summary:     remove print  in sparse solver
-| | | |
-| | | o  changeset:   2523:d6c07fd2ec36
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Aug 26 21:27:19 2012 +0200
-| | | |  summary:     add missing operator ?: of bool
-| | | |
-| | | o  changeset:   2522:e5a90f5a7283
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Aug 16 09:47:15 2012 +0200
-| | | |  summary:     revome print ...
-| | | |
-| | | o  changeset:   2521:91006696c311
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Aug 14 21:17:02 2012 +0200
-| | | |  summary:     correct mistake find by P. Jolivet.
-| | | |
-| | | o  changeset:   2520:ef81308ec4f1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Aug 12 22:07:52 2012 +0200
-| | | |  summary:     cooorect automatic seach in configire (P Jolivet).
-| | | |
-| | | o  changeset:   2519:4422559d360a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 06 23:12:27 2012 +0200
-| | | |  summary:     add comment of my installation
-| | | |
-| | | o  changeset:   2518:27d04b01bb9d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 06 00:14:04 2012 +0200
-| | | |  summary:     correct Superludist with g++ v 4.8
-| | | |
-| | | o  changeset:   2517:08658feae475
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Aug 05 23:37:08 2012 +0200
-| | | |  summary:     forget files
-| | | |
-| | | o  changeset:   2516:c2d91d216c32
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Aug 05 23:31:52 2012 +0200
-| | | |  summary:     coerect Superlu.cpp of g++ v 4.8 add missong this->
-| | | |
-| | | o  changeset:   2515:68577323c46d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Aug 05 15:17:51 2012 +0200
-| | | |  summary:     change mac compiler gcc version 4.8.0
-| | | |
-| | | o  changeset:   2514:ce08661de7d5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jul 12 14:27:34 2012 +0200
-| | | |  summary:     add example
-| | | |
-| | | o  changeset:   2513:efd3db094bcf
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jul 12 14:00:47 2012 +0200
-| | | |  summary:     add imax, imam, correct sctoch interface not //
-| | | |
-| | | o  changeset:   2512:cd465304bca9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jun 13 20:04:15 2012 +0200
-| | | |  summary:     add compile of shell
-| | | |
-| | | o  changeset:   2511:250772fdd061
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jun 13 20:00:36 2012 +0200
-| | | |  summary:     add shell/unix interface
-| | | |
-| | | o  changeset:   2510:bfac9dec081e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jun 13 10:38:55 2012 +0200
-| | | |  summary:     correct PB of cleanning memory of array real[int][int] ...
-| | | |
-| | | o  changeset:   2509:4628b688eeaf
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jun 07 15:12:35 2012 +0200
-| | | |  summary:     add missing include in some computer unistd.h
-| | | |
-| | | o  changeset:   2508:031e9c676174
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jun 07 08:16:38 2012 +0200
-| | | |  summary:     correct mshmet makefile to force the recompilation
-| | | |
-| | | o  changeset:   2507:1839c38ea7dc
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jun 07 08:06:55 2012 +0200
-| | | |  summary:     chnge version to 3.19-2
-| | | |
-| | | o  changeset:   2506:80ae2baf5a8d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jun 07 07:50:29 2012 +0200
-| | | |  summary:     correct mshmet problem in case of 2 eigen value in Hessian.
-| | | |
-| | | o  changeset:   2505:95e33e458008
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed May 30 14:13:26 2012 +0200
-| | | |  summary:     correct typo in font size in postcript interface
-| | | |
-| | | o  changeset:   2504:f2cdbadf6faf
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue May 22 21:15:30 2012 +0200
-| | | |  summary:     correct clean part of mshmet makefile + add
-| | | |
-| | | o  changeset:   2503:bee48e40935e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue May 15 11:48:05 2012 +0200
-| | | |  summary:     correct missing const in qf11to25.cpp
-| | | |
-| | | o  changeset:   2502:0232fb9d45b7
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue May 15 11:39:15 2012 +0200
-| | | |  summary:     add build of Quadratur formular in qf11to25.cpp plugins
-| | | |
-| | | o  changeset:   2501:f20a2f3c7bd6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 14 21:04:26 2012 +0200
-| | | |  summary:     set fftw to version 3.3.2
-| | | |
-| | | o  changeset:   2500:f5c0851c058c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed May 09 22:26:21 2012 +0200
-| | | |  summary:     update modif of Ernesto Aranda <Ernesto.Aranda at uclm.es> for new version of mmg3d
-| | | |
-| | | o  changeset:   2499:de4c315dad33
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed May 09 21:11:04 2012 +0200
-| | | |  summary:     pass to version 3.19-1
-| | | |
-| | | o  changeset:   2498:7ecf46eb253d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed May 09 21:06:07 2012 +0200
-| | | |  summary:     add Ernesto Aranda <Ernesto.Aranda at uclm.es>  change ...
-| | | |
-| | | o  changeset:   2497:49f99f157b3c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 07 10:27:41 2012 +0200
-| | | |  summary:     coorect typo = -> != in configure (mkl sgi)
-| | | |
-| | | o  changeset:   2496:f5814395a638
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon May 07 10:14:08 2012 +0200
-| | | |  summary:     remove of use of MKL scalapack and blacs with sgi MPI
-| | | |
-| | | o  changeset:   2495:c3b18fa8f700
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu May 03 19:07:10 2012 +0200
-| | | |  summary:     remove MKLROOT form configure  ( disaper in new mkl configure)
-| | | |
-| | | o  changeset:   2494:d7658c0f681b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu May 03 18:28:44 2012 +0200
-| | | |  summary:     add correct in MUMPS mpi solver
-| | | |
-| | | o  changeset:   2493:c5124bde5bc5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu May 03 11:01:00 2012 +0200
-| | | |  summary:     remove cmake de configure
-| | | |
-| | | o  changeset:   2492:83094b26702f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu May 03 11:00:01 2012 +0200
-| | | |  summary:     add count pour ptr in CheckPtr.cpp
-| | | |
-| | | o  changeset:   2491:463c4c448187
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Apr 24 13:25:56 2012 +0200
-| | | |  summary:     try to count memery pointeur
-| | | |
-| | | o  changeset:   2490:66be2ba0ba65
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Apr 23 23:08:13 2012 +0200
-| | | |  summary:     change version of superlu.
-| | | |
-| | | o  changeset:   2489:d2bee8f1b140
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 17:09:00 2012 +0200
-| | | |  summary:     update mmg3d  swapar.o is also compile without optim.
-| | | |
-| | | o  changeset:   2488:76e28b509475
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 16:51:03 2012 +0200
-| | | |  summary:     correct atexit problem in mmg3 v4 ..
-| | | |
-| | | o  changeset:   2487:cb2752aee207
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 15:40:23 2012 +0200
-| | | |  summary:     correct Interface of Ipopt (ff-Ipopt)
-| | | |
-| | | o  changeset:   2486:04bbadc57f58
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 14:16:51 2012 +0200
-| | | |  summary:     carrect un set varable in mmage3d-v4
-| | | |
-| | | o  changeset:   2485:e83aa5d378f9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 12:03:38 2012 +0200
-| | | |  summary:     coorect ff-Ipopt version
-| | | |
-| | | o  changeset:   2484:90cf49c9fbb5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 11:33:36 2012 +0200
-| | | |  summary:     coorect typo in innovation file
-| | | |
-| | | o  changeset:   2483:baebf141d983
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 09:27:57 2012 +0200
-| | | |  summary:     update INNOVATION file
-| | | |
-| | | o  changeset:   2482:5ede79cd270b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 09:21:18 2012 +0200
-| | | |  summary:     correct typo
-| | | |
-| | | o  changeset:   2481:0c075c537334
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Apr 20 08:48:58 2012 +0200
-| | | |  summary:     add isNaN,IsInf,IsNormal FP fonction and
-| | | |
-| | | o  changeset:   2480:290972213b56
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 19 22:58:51 2012 +0200
-| | | |  summary:     add a true scotch example
-| | | |
-| | | o  changeset:   2479:c0c3c75dd20a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 19 18:46:00 2012 +0200
-| | | |  summary:     add sort of integer array
-| | | |
-| | | o  changeset:   2478:08b71cf34320
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 19 17:17:10 2012 +0200
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2477:551aa5767d7f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 19 17:12:43 2012 +0200
-| | | |  summary:     coorect header of plugin
-| | | |
-| | | o  changeset:   2476:a6258a786803
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 19 16:46:43 2012 +0200
-| | | |  summary:     add scotch interface thanks to P. Jolivet
-| | | |
-| | | o  changeset:   2475:b7f9353707c0
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 19 16:34:39 2012 +0200
-| | | |  summary:     Pour P. Jolivet,
-| | | |
-| | | o  changeset:   2474:e507d135fbf4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 19 16:28:28 2012 +0200
-| | | |  summary:     correct bug in macro with operator .*= and ./=
-| | | |
-| | | o  changeset:   2473:28d82b742e4e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Apr 16 13:54:02 2012 +0200
-| | | |  summary:     comment in stable script examples++-3d/Laplace-Adapt-aniso-3d.edp
-| | | |
-| | | o  changeset:   2472:f7c9fbfee29e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Apr 15 22:27:49 2012 +0200
-| | | |  summary:     correct mmg3d new interface.
-| | | |
-| | | o  changeset:   2471:67ac6a176e89
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Apr 15 10:36:30 2012 +0200
-| | | |  summary:     correct build fo missing file during test in ttestio
-| | | |
-| | | o  changeset:   2470:be230cbc9bb1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Apr 11 22:46:11 2012 +0200
-| | | |  summary:     update doc with  isoline example
-| | | |
-| | | o  changeset:   2469:7b55a13f44bf
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Apr 11 18:15:57 2012 +0200
-| | | |  summary:     correct type in edp files
-| | | |
-| | | o  changeset:   2468:cb455028d3bc
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 05 17:59:05 2012 +0200
-| | | |  summary:     correct  pb plot in 3d-lemen;edp example
-| | | |
-| | | o  changeset:   2467:a4495a14cc6f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 05 17:41:19 2012 +0200
-| | | |  summary:     correct Makefile for dist
-| | | |
-| | | o  changeset:   2466:c1c7515b599d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 05 17:38:21 2012 +0200
-| | | |  summary:     remove assert of generate surface mesh ???
-| | | |
-| | | o  changeset:   2465:adf7a32dec37
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 05 17:36:08 2012 +0200
-| | | |  summary:     add new Ipopt example
-| | | |
-| | | o  changeset:   2464:420d59368939
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Apr 05 17:17:53 2012 +0200
-| | | |  summary:     pass to version 3.19 , and add Ipopt documentation
-| | | |
-| | | o  changeset:   2463:684b603bce0f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Apr 03 15:35:04 2012 +0200
-| | | |  summary:     change the return value of inv in lapack , reture info value
-| | | |
-| | | o  changeset:   2462:43d891de7b5c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 30 13:52:21 2012 +0200
-| | | |  summary:     update IPOPT interface
-| | | |
-| | | o  changeset:   2461:ff9197c7215e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 19:02:18 2012 +0100
-| | | |  summary:     forget all.edp (automatical rebuild)
-| | | |
-| | | o  changeset:   2460:5f0193ae54c8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 18:59:23 2012 +0100
-| | | |  summary:     coorect install plugin
-| | | |
-| | | o  changeset:   2459:33407ff589c1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 18:52:47 2012 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2458:da832a4533ec
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 18:51:32 2012 +0100
-| | | |  summary:     romve use file
-| | | |
-| | | o  changeset:   2457:a70d6470d341
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 18:18:18 2012 +0100
-| | | |  summary:     correct typo
-| | | |
-| | | o  changeset:   2456:660e36d76368
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 18:14:56 2012 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2455:d1c7eb0f6226
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 17:48:02 2012 +0100
-| | | |  summary:     coorect FFLAGS in ippot
-| | | |
-| | | o  changeset:   2454:c7e70cac0ced
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 17:45:23 2012 +0100
-| | | |  summary:     correct ipopt fortran flags
-| | | |
-| | | o  changeset:   2453:fa1d39ecf8c5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 17:00:18 2012 +0100
-| | | |  summary:     correct chanhe of ff-IpOpt in ff-Ipopt
-| | | |
-| | | o  changeset:   2452:603891d1341f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 16:58:37 2012 +0100
-| | | |  summary:     correcrt Ipot name
-| | | |
-| | | o  changeset:   2451:abcfed2f161a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 15:24:19 2012 +0100
-| | | |  summary:     remove build file
-| | | |
-| | | o  changeset:   2450:fd47a9cb93e6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 22 14:01:53 2012 +0100
-| | | |  summary:     correct missing CFLAGS compile flige in ipopt
-| | | |
-| | | o  changeset:   2449:9c4f3a731d8f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 15 17:03:46 2012 +0100
-| | | |  summary:     update freeyams versio
-| | | |
-| | | o  changeset:   2448:57268fd78d95
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 15 16:22:26 2012 +0100
-| | | |  summary:     correct ipopt
-| | | |
-| | | o  changeset:   2447:648085c768e2
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Mar 15 15:41:31 2012 +0100
-| | | |  summary:     carrection iptop interface
-| | | |
-| | | o  changeset:   2446:db7e1719d41d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Mar 14 10:03:06 2012 +0100
-| | | |  summary:     coorect typo the WHERE file building
-| | | |
-| | | o  changeset:   2445:9652b407c4d4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Mar 14 09:40:38 2012 +0100
-| | | |  summary:     correct msh3.cpp see INNOVATION
-| | | |
-| | | o  changeset:   2444:0912ecf5b7b6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Mar 13 19:22:46 2012 +0100
-| | | |  summary:     correct type error
-| | | |
-| | | o  changeset:   2443:f73f7abb9628
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Mar 12 20:42:20 2012 +0100
-| | | |  summary:     add Ipopt interface, seems workinging
-| | | |
-| | | o  changeset:   2442:18c51dd3fae0
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 09 22:15:39 2012 +0100
-| | | |  summary:     add nex example
-| | | |
-| | | o  changeset:   2441:d857f8111e76
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 09 22:12:33 2012 +0100
-| | | |  summary:     add IpOpt interface
-| | | |
-| | | o  changeset:   2440:9811138f1bc7
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Mar 09 22:02:20 2012 +0100
-| | | |  summary:     add Ipopt interface
-| | | |
-| | | o  changeset:   2439:939ad2584480
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Mar 07 21:58:28 2012 +0100
-| | | |  summary:     correct pb of name in lapack in arpack configire variable
-| | | |
-| | | o  changeset:   2438:cc334b6ba942
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Mar 07 20:31:44 2012 +0100
-| | | |  summary:     add -mkl flgs in configure in test ..
-| | | |
-| | | o  changeset:   2437:8f1418723ac1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Mar 07 12:53:22 2012 +0100
-| | | |  summary:     add missing operator A(1:3,3:4) on full matrix
-| | | |
-| | | o  changeset:   2436:d8c7a95bab01
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Mar 06 23:13:13 2012 +0100
-| | | |  summary:     add new example
-| | | |
-| | | o  changeset:   2435:e9f77853f86a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Mar 06 22:57:22 2012 +0100
-| | | |  summary:     add subarrey of full matrix.
-| | | |
-| | | o  changeset:   2434:44e45a467771
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Mar 06 22:06:47 2012 +0100
-| | | |  summary:     add new type of array , array of array.
-| | | |
-| | | o  changeset:   2433:ff330cc9ed2a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Feb 24 17:43:14 2012 +0100
-| | | |  summary:     add ipopt download
-| | | |
-| | | o  changeset:   2432:6dd56733d650
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Feb 23 13:07:28 2012 +0100
-| | | |  summary:     add install of libphread-2.dd or win32
-| | | |
-| | | o  changeset:   2431:2fbea8d0c565
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Feb 23 12:07:08 2012 +0100
-| | | |  summary:     add pthread in mpi mumps
-| | | |
-| | | o  changeset:   2430:96c02671ec5c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Feb 23 12:05:52 2012 +0100
-| | | |  summary:     add pthread in WHERE-LIBARY-config for mumps-seq
-| | | |
-| | | o  changeset:   2429:b83672d4b4f9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 22 23:18:22 2012 +0100
-| | | |  summary:     correct typo in libseq path for mumps-seq compile
-| | | |
-| | | o  changeset:   2428:9c218b0575fc
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 22 22:16:57 2012 +0100
-| | | |  summary:     add MUMPS seq pluging
-| | | |
-| | | o  changeset:   2427:e714f05e8c68
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Feb 20 10:02:23 2012 +0100
-| | | |  summary:     add tag + correct missing file in windows distributiuon
-| | | |
-| | | o  changeset:   2426:16116189f9fc
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Feb 20 10:01:42 2012 +0100
-| | | |  summary:     Added tag 3.18-1 for changeset 7a11ffa1f26e
-| | | |
-| | | o  changeset:   2425:7a11ffa1f26e
-| | | |  tag:         3.18-1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Feb 17 16:14:54 2012 +0100
-| | | |  summary:     correct edp ..
-| | | |
-| | | o  changeset:   2424:ff06d18097d3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Feb 17 15:21:24 2012 +0100
-| | | |  summary:     coorect install windows
-| | | |
-| | | o  changeset:   2423:5dc5d4a44a0f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Feb 17 15:16:38 2012 +0100
-| | | |  summary:     correct missing file in makefiles
-| | | |
-| | | o  changeset:   2422:297b8d9f6034
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 15 22:00:56 2012 +0100
-| | | |  summary:     update doc
-| | | |
-| | | o  changeset:   2421:fc00fdf10fc8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 15 21:32:56 2012 +0100
-| | | |  summary:     continuing update
-| | | |
-| | | o  changeset:   2420:6cf5db8c5b72
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 15 21:29:17 2012 +0100
-| | | |  summary:     add .im, .re of array..compile test
-| | | |
-| | | o  changeset:   2419:56dc83bd98f5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 15 21:01:22 2012 +0100
-| | | |  summary:     add re , operator in complex  sparce matrix
-| | | |
-| | | o  changeset:   2418:04e97610e592
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Feb 14 21:46:23 2012 +0100
-| | | |  summary:     add convert of im and re parl of complex sparse matrix
-| | | |
-| | | o  changeset:   2417:c9503b6ad05c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Feb 14 15:30:45 2012 +0100
-| | | |  summary:     correct norme lp in RNM thank yo a student.
-| | | |
-| | | o  changeset:   2416:17002f8ac1e6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Feb 13 17:12:46 2012 +0100
-| | | |  summary:     add comment in INNOVATION file
-| | | |
-| | | o  changeset:   2415:99a84a69a476
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Feb 13 16:49:40 2012 +0100
-| | | |  summary:     add error  in case of probleme ith periodic
-| | | |
-| | | o  changeset:   2414:7e01a75cf0a2
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 08 18:02:06 2012 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2413:7e1ce5867819
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 08 18:01:07 2012 +0100
-| | | |  summary:     add missing files
-| | | |
-| | | o  changeset:   2412:1a9d248b0abe
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 08 17:57:12 2012 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2411:313f2537e2f6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 08 17:52:21 2012 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2410:f809aa7e43f9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 08 17:42:51 2012 +0100
-| | | |  summary:     add missing files
-| | | |
-| | | o  changeset:   2409:124a413008ed
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 08 16:34:17 2012 +0100
-| | | |  summary:     correct Makefiles
-| | | |
-| | | o  changeset:   2408:cbb20473adea
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 08 16:33:04 2012 +0100
-| | | |  summary:     remove example without new adaptation schema
-| | | |
-| | | o  changeset:   2407:9c7b8c0c8096
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Feb 08 16:24:20 2012 +0100
-| | | |  summary:     add adpt tool for PK aniso adation in 2d
-| | | |
-| | | o  changeset:   2406:40df8192a994
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Jan 20 15:36:57 2012 +0100
-| | | |  summary:     coorect scriot
-| | | |
-| | | o  changeset:   2405:9f521b6ad9e9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 19 13:37:05 2012 +0100
-| | | |  summary:     correct DOC
-| | | |
-| | | o  changeset:   2404:5c0462ce1574
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jan 19 09:54:05 2012 +0100
-| | | |  summary:     add New example in Chap 3.
-| | | |
-| | | o    changeset:   2403:4bee3958de18
-| | | |\   parent:      2401:64149fc11869
-| | | | |  parent:      2402:6d506087c6af
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 18 21:57:45 2012 +0100
-| | | | |  summary:     merging with 3.18 (error FH)
-| | | | |
-| | | | o  changeset:   2402:6d506087c6af
-| | | | |  parent:      2400:9506aca1ea28
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 18 21:36:47 2012 +0100
-| | | | |  summary:     Added tag v3.18 for changeset 9506aca1ea28
-| | | | |
-| | | o |  changeset:   2401:64149fc11869
-| | | |/   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |    date:        Wed Jan 18 21:34:52 2012 +0100
-| | | |    summary:     correct file to compile with xcode 4.2
-| | | |
-| | | o  changeset:   2400:9506aca1ea28
-| | | |  tag:         v3.18
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Jan 16 13:08:11 2012 +0100
-| | | |  summary:     add line ininnovation
-| | | |
-| | | o  changeset:   2399:153d0a5015bb
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Jan 16 13:04:13 2012 +0100
-| | | |  summary:     Correct NSprojection example
-| | | |
-| | | o  changeset:   2398:2d9a79b70d5b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Jan 16 11:27:49 2012 +0100
-| | | |  summary:     add redownload off mmg34 tar gz
-| | | |
-| | | o  changeset:   2397:1fd0801dc393
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Jan 16 11:10:33 2012 +0100
-| | | |  summary:     correct compile of mmg3d v4
-| | | |
-| | | o  changeset:   2396:f03a6f977499
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jan 11 21:35:51 2012 +0100
-| | | |  summary:     add missing file on windows
-| | | |
-| | | o  changeset:   2395:5fcad65c5ece
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jan 11 21:04:00 2012 +0100
-| | | |  summary:     passe to version 3.18
-| | | |
-| | | o  changeset:   2394:a8118bf9d0a5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jan 11 12:11:19 2012 +0100
-| | | |  summary:     update isoline dll.
-| | | |
-| | | o  changeset:   2393:d925ce8d8dd6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Jan 10 21:08:06 2012 +0100
-| | | |  summary:     correct mpigather
-| | | |
-| | | o  changeset:   2392:03d927f3dda3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Jan 10 20:50:00 2012 +0100
-| | | |  summary:     correct parallelempi.cpp mpigather assert
-| | | |
-| | | o  changeset:   2391:8898fcd7acce
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Jan 10 18:40:58 2012 +0100
-| | | |  summary:     change the isolineP1 load file by a isoline file
-| | | |
-| | | o  changeset:   2390:b778cdbf73c1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Dec 15 16:05:51 2011 +0100
-| | | |  summary:     correct pb of offset in readmesh in ffglut
-| | | |
-| | | o  changeset:   2389:cf6f4a7feea8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Dec 15 11:41:53 2011 +0100
-| | | |  summary:     coorect PB de shift  of  1 in  read .msh in 3d
-| | | |
-| | | o  changeset:   2388:8cab02860a3c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 30 15:02:31 2011 +0100
-| | | |  summary:     correct mistake in mpi interface (wrong assert and correct essai.edp)
-| | | |
-| | | o  changeset:   2387:d3f7e78540eb
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 30 14:42:47 2011 +0100
-| | | |  summary:     corret MPI problem
-| | | |
-| | | o  changeset:   2386:1a638fa49fbe
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Nov 17 15:12:11 2011 +0100
-| | | |  summary:     correct BLACS interface ( mkl and debain case)
-| | | |
-| | | o  changeset:   2385:111b11d41665
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Nov 17 13:39:47 2011 +0100
-| | | |  summary:     coorect pb in blacs lib order in WHERE_LIB
-| | | |
-| | | o  changeset:   2384:02fd8c5643f3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 16 22:10:38 2011 +0100
-| | | |  summary:     correct mshmet
-| | | |
-| | | o  changeset:   2383:c7dc28fb1321
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 16 18:30:17 2011 +0100
-| | | |  summary:     correct configure.ac (remove trick on odl mmg3 version (not use at all)
-| | | |
-| | | o  changeset:   2382:f661f9f8e47b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 16 17:56:03 2011 +0100
-| | | |  summary:     remove double symbloe in freeyam with meshlib
-| | | |
-| | | o  changeset:   2381:5732efc58a03
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 16 16:02:42 2011 +0100
-| | | |  summary:     remove compress tools in scotch by default
-| | | |
-| | | o  changeset:   2380:1f7181ed77e3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 16 11:39:39 2011 +0100
-| | | |  summary:     correct mistake in ymas interface
-| | | |
-| | | o  changeset:   2379:f671d72ac333
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 16 11:09:26 2011 +0100
-| | | |  summary:     uodate to last freeymas version
-| | | |
-| | | o  changeset:   2378:b5cf0e99fbc4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Nov 15 17:42:08 2011 +0100
-| | | |  summary:     correct aprmetis and mmg3d  opt version
-| | | |
-| | | o  changeset:   2377:c9f68542a064
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Nov 15 16:19:23 2011 +0100
-| | | |  summary:     add small correct of fratran stuff in ff-c++ et find mpirun in configure
-| | | |
-| | | o  changeset:   2376:e475dc98bc5b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Nov 08 22:30:16 2011 +0100
-| | | |  summary:     add new ffapi.o  in src/bin-win32/Makefile
-| | | |
-| | | o  changeset:   2375:0f35b35f0203
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Nov 08 22:26:08 2011 +0100
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2374:00b37e15d8b8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Nov 08 22:12:36 2011 +0100
-| | | |  summary:     make hack for true random number on window (use of mersen randow)
-| | | |
-| | | o  changeset:   2373:81725e52c648
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Nov 08 21:33:42 2011 +0100
-| | | |  summary:     correct typo error  and pdate the doc.
-| | | |
-| | | o  changeset:   2372:729356646c52
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Nov 08 21:02:28 2011 +0100
-| | | |  summary:     correct the new auto laod interface ...
-| | | |
-| | | o  changeset:   2371:97802e3f5d5e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Nov 06 20:59:48 2011 +0100
-| | | |  summary:     passe to versio 3.17
-| | | |
-| | | o  changeset:   2370:07ee613471d9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sun Nov 06 15:46:21 2011 +0100
-| | | |  summary:     coorect PB off pluging  ( ok may be)
-| | | |
-| | | o  changeset:   2369:3a017668777d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Nov 04 18:45:51 2011 +0100
-| | | |  summary:     correct Typo error in multiple include defence ..
-| | | |
-| | | o  changeset:   2368:72f8424630ee
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Nov 04 16:54:48 2011 +0100
-| | | |  summary:     up innovation
-| | | |
-| | | o  changeset:   2367:e0d1eed7452a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Nov 04 16:28:33 2011 +0100
-| | | |  summary:     update plugin to by compatible with new load schema
-| | | |
-| | | o  changeset:   2366:045f330b4eba
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Nov 02 21:43:35 2011 +0100
-| | | |  summary:     build a work version of mpi on window base of sdk windows hpc
-| | | |
-| | | o  changeset:   2365:896119ddcba9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 26 21:50:31 2011 +0200
-| | | |  summary:     correct missing
-| | | |
-| | | o  changeset:   2364:6162056c2706
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 26 13:27:13 2011 +0200
-| | | |  summary:     pass to v 3.16-1
-| | | |
-| | | o  changeset:   2363:bf3e6531f554
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 26 13:12:33 2011 +0200
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2362:f38424524a39
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 26 13:10:05 2011 +0200
-| | | |  summary:     add patch of Marco Atzeri <marco.atzeri at gmail.com> for cygwin
-| | | |
-| | | o  changeset:   2361:392218d17485
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 21 14:47:43 2011 +0200
-| | | |  summary:     doc is 3.16-1
-| | | |
-| | | o  changeset:   2360:174539a666e8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 21 14:44:44 2011 +0200
-| | | |  summary:     update doc S. Auliac (optim)
-| | | |
-| | | o  changeset:   2359:e2bd8b52269f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 21 14:17:20 2011 +0200
-| | | |  summary:     MAJ  INNOVATION
-| | | |
-| | | o  changeset:   2358:539aa3bc4a1b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 21 14:13:58 2011 +0200
-| | | |  summary:     add mpi_cmaes  lib and examples
-| | | |
-| | | o  changeset:   2357:38c7f4d3ea7b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 20 19:53:57 2011 +0200
-| | | |  summary:     add NLopt interface and cmaes interce (thank to S. Auliac)
-| | | |
-| | | o  changeset:   2356:2edd97964eeb
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 14 14:35:20 2011 +0200
-| | | |  summary:     add truc to remove 2 init
-| | | |
-| | | o  changeset:   2355:408618fc2d14
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 13 23:09:39 2011 +0200
-| | | |  summary:     correct auto load of mumps
-| | | |
-| | | o  changeset:   2354:233a5a7f55c1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 13 23:07:31 2011 +0200
-| | | |  summary:     correct pb of autoinitsfunct
-| | | |
-| | | o  changeset:   2353:09b0580dda3a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 12 15:01:36 2011 +0200
-| | | |  summary:     add tool to automatique load
-| | | |
-| | | o  changeset:   2352:4bf39e36e2aa
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 07 22:10:24 2011 +0200
-| | | |  summary:     coorect pb of alloaction
-| | | |
-| | | o  changeset:   2351:383e5c0deedb
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 07 21:17:54 2011 +0200
-| | | |  summary:     change testio.edp ttestio.edp
-| | | |
-| | | o  changeset:   2350:70f9874ad0e4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 07 17:42:22 2011 +0200
-| | | |  summary:     coorect example
-| | | |
-| | | o  changeset:   2349:b3c7905f858b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 06 17:30:42 2011 +0200
-| | | |  summary:     coorect type in mmg3v4
-| | | |
-| | | o  changeset:   2348:cade5380b91e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 06 17:24:50 2011 +0200
-| | | |  summary:     correct CFALGS
-| | | |
-| | | o  changeset:   2347:70b2d6267d97
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 06 16:55:39 2011 +0200
-| | | |  summary:     correct typo error
-| | | |
-| | | o  changeset:   2346:d48570028111
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 06 13:19:02 2011 +0200
-| | | |  summary:     correct typo error and warning
-| | | |
-| | | o  changeset:   2345:ccd64b80d57f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 06 12:52:17 2011 +0200
-| | | |  summary:     try to bluid v 3.15
-| | | |
-| | | o  changeset:   2344:d47b9dda863c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Oct 06 11:41:48 2011 +0200
-| | | |  summary:     coorect pb in real[int,int] A, B; B=A' , etc..
-| | | |
-| | | o  changeset:   2343:c3dee854061e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 05 18:29:37 2011 +0200
-| | | |  summary:     come back to metis 4.0 for compatibilite reason
-| | | |
-| | | o  changeset:   2342:55e2323587af
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 05 14:44:47 2011 +0200
-| | | |  summary:     correct pastix  patch include  (remove .. in patch file)
-| | | |
-| | | o  changeset:   2341:50b762415bd3
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 05 14:27:57 2011 +0200
-| | | |  summary:     correct  A=A' for array real[int,int] or complex[int,int]
-| | | |
-| | | o  changeset:   2340:70404bc0a76f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Sep 29 21:48:05 2011 +0200
-| | | |  summary:     correct Paul Cazeaux  diff
-| | | |
-| | | o  changeset:   2339:e9d61b12fae9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Sep 29 19:25:21 2011 +0200
-| | | |  summary:     correct install MacOSX
-| | | |
-| | | o  changeset:   2338:6a620fc389e1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Sep 29 13:55:16 2011 +0200
-| | | |  summary:     add freefem++ laucher
-| | | |
-| | | o  changeset:   2337:b6eca8cec8e8
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 28 20:29:53 2011 +0200
-| | | |  summary:     correc configure cmaek typo error
-| | | |
-| | | o  changeset:   2336:f98beda3b2a9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 28 20:26:15 2011 +0200
-| | | |  summary:     try to redo Freefem++.app
-| | | |
-| | | o  changeset:   2335:d03364e04423
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 27 18:23:44 2011 +0200
-| | | |  summary:     correct metis makefile
-| | | |
-| | | o  changeset:   2334:fe046f72fb0a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 27 18:07:55 2011 +0200
-| | | |  summary:     Added tag 3.14-1 for changeset 3d5d2f056b09
-| | | |
-| | | o  changeset:   2333:3d5d2f056b09
-| | | |  tag:         3.14-1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 27 18:07:22 2011 +0200
-| | | |  summary:     pass to versiuon 3.14-1
-| | | |
-| | | o  changeset:   2332:ee6c761a1250
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 27 17:24:22 2011 +0200
-| | | |  summary:     correct emtis interface to v. 5.0.1 (  version 4.0 diseaper).
-| | | |
-| | | o  changeset:   2331:37137749da6e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 27 15:24:10 2011 +0200
-| | | |  summary:     correct metis download  (version 5.0.1)
-| | | |
-| | | o  changeset:   2330:a8aac61cf98b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Sep 22 09:26:49 2011 +0200
-| | | |  summary:     coorect FreeFem++-CoCoa line 26: [: : integer expression expected
-| | | |
-| | | o  changeset:   2329:43229386f981
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Sep 02 09:05:52 2011 +0200
-| | | |  summary:     correct Missing WHERE buils
-| | | |
-| | | o  changeset:   2328:9dc607125215
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Sep 02 08:57:54 2011 +0200
-| | | |  summary:     add missing file
-| | | |
-| | | o  changeset:   2327:6e2de6f927d5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Sep 02 08:53:46 2011 +0200
-| | | |  summary:     update innovation
-| | | |
-| | | o  changeset:   2326:3ea8a0183313
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Sep 01 22:43:12 2011 +0200
-| | | |  summary:     coorect interface with mmg3d verson 4
-| | | |
-| | | o  changeset:   2325:878e5c556d1e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Sep 01 22:40:33 2011 +0200
-| | | |  summary:     coorect inferface with mmg3d version 4
-| | | |
-| | | o  changeset:   2324:6fdc0e5ff2d7
-| | | |  parent:      2321:e34f8a052707
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 29 15:11:31 2011 +0200
-| | | |  summary:     Added tag 3.14-0 for changeset e34f8a052707
-| | | |
-| | | | o  changeset:   2323:a2284c53ea2c
-| | | | |  branch:      alh-autoconf
-| | | | |  parent:      2005:815102f120b1
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Aug 29 11:27:42 2011 +0200
-| | | | |  summary:     close branch incompreansible, plus utiliser
-| | | | |
-| | | | | o  changeset:   2322:234fd78ad3c5
-| | | | | |  branch:      graphical-user-interface-branch
-| | | | | |  parent:      1970:44a4659127b5
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Aug 29 11:26:37 2011 +0200
-| | | | | |  summary:     close branch incompreansible, plus utiliser
-| | | | | |
-| | | o | |  changeset:   2321:e34f8a052707
-| | | | | |  tag:         3.14-0
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Aug 29 10:21:12 2011 +0200
-| | | | | |  summary:     correct bug in 3d P1 interpolation
-| | | | | |
-| | | o | |  changeset:   2320:8901cfb2463f
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 22:00:34 2011 +0200
-| | | | | |  summary:     correct mpi exemple
-| | | | | |
-| | | o | |  changeset:   2319:117a01a44f20
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 21:38:55 2011 +0200
-| | | | | |  summary:     correct allGather check
-| | | | | |
-| | | o | |  changeset:   2318:e100f2b57094
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 21:15:48 2011 +0200
-| | | | | |  summary:     correct pb of allignement in sub array send/recv with MPI
-| | | | | |
-| | | o | |  changeset:   2317:be0d2368a0f4
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 21:08:19 2011 +0200
-| | | | | |  summary:     correct missing return in WSEND
-| | | | | |
-| | | o | |  changeset:   2316:8f502dfff22e
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 15:05:09 2011 +0200
-| | | | | |  summary:     recorrect tetger clan makeifle
-| | | | | |
-| | | o | |  changeset:   2315:cff15f3375e6
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 15:01:16 2011 +0200
-| | | | | |  summary:     do autoreconf
-| | | | | |
-| | | o | |  changeset:   2314:dfe298c27b76
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 14:57:05 2011 +0200
-| | | | | |  summary:     restart of 3.14 version (big mistake yesterday)
-| | | | | |
-| | | o | |  changeset:   2313:fda9929d138d
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 13:53:31 2011 +0200
-| | | | | |  summary:     remobe -march=native (bug on allpe)
-| | | | | |
-| | | o | |  changeset:   2312:3d541b3d75d1
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 11:46:26 2011 +0200
-| | | | | |  summary:     correct optim compile flags
-| | | | | |
-| | | o | |  changeset:   2311:9a74f723f0ac
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 11:33:30 2011 +0200
-| | | | | |  summary:     redo second problem
-| | | | | |
-| | | o | |  changeset:   2310:bf083bb860bc
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Aug 26 11:18:55 2011 +0200
-| | | | | |  summary:     correct debug config flags
-| | | | | |
-| | | o | |  changeset:   2309:11f8b8770f48
-| | | | | |  parent:      2275:76e1708404c5
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Tue May 31 14:03:37 2011 +0200
-| | | | | |  summary:     coorect msssing lib in freeyam pluging
-| | | | | |
-o | | | | |  changeset:   2308:f01c1ce34eb3
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Aug 25 17:54:08 2011 +0200
-| | | | | |  summary:     coorect defaul compile flags
-| | | | | |
-o | | | | |  changeset:   2307:48f6f2dda6f9
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Aug 25 16:04:43 2011 +0200
-| | | | | |  summary:     coorect intrinc second to secnd2 in arpach (missing function).
-| | | | | |
-o | | | | |  changeset:   2306:f1321b98b61b
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Aug 25 11:20:20 2011 +0200
-| | | | | |  summary:     correct clean taget in  Makefile
-| | | | | |
-o | | | | |  changeset:   2305:4b313e53fd00
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Aug 25 09:31:50 2011 +0200
-| | | | | |  summary:     Added tag 3.14 for changeset fbc48e130737
-| | | | | |
-o | | | | |  changeset:   2304:fbc48e130737
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Aug 25 09:30:45 2011 +0200
-| | | | | |  summary:     and add -g in case of --enable-debug
-| | | | | |
-o | | | | |  changeset:   2303:572e5649ecf2
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Aug 03 15:55:49 2011 +0200
-| | | | | |  summary:     correct of lion os.
-| | | | | |
-o | | | | |  changeset:   2302:0183fdbeab37
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Jul 06 11:36:12 2011 +0200
-| | | | | |  summary:     see innovation
-| | | | | |
-o | | | | |  changeset:   2301:5aeeb62cc314
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jul 04 21:37:38 2011 +0200
-| | | | | |  summary:     correct makefile
-| | | | | |
-o | | | | |  changeset:   2300:5c0487b0b207
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 23:12:35 2011 +0200
-| | | | | |  summary:     correct typo
-| | | | | |
-o | | | | |  changeset:   2299:b1bfdb1c8d4c
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 16:48:53 2011 +0200
-| | | | | |  summary:     correct INNOVATION
-| | | | | |
-o | | | | |  changeset:   2298:e8247822dc8f
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 16:21:48 2011 +0200
-| | | | | |  summary:     correct hips solver typo arror in destructor
-| | | | | |
-o | | | | |  changeset:   2297:8d0d89f8408a
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 11:17:09 2011 +0200
-| | | | | |  summary:     pass to version 3.13-3
-| | | | | |
-o | | | | |  changeset:   2296:4088be2bb5b0
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 11:12:40 2011 +0200
-| | | | | |  summary:     add WGET in download/mumps/Makefile-mumps-4.10.0.inc
-| | | | | |
-o | | | | |  changeset:   2295:344cbb3584d8
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 11:05:02 2011 +0200
-| | | | | |  summary:     add missing file
-| | | | | |
-o | | | | |  changeset:   2294:21c29dd8cb63
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 11:00:03 2011 +0200
-| | | | | |  summary:     coorect innovation file
-| | | | | |
-o | | | | |  changeset:   2293:2a0706ac5c1b
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 10:57:28 2011 +0200
-| | | | | |  summary:     coorect hips solver
-| | | | | |
-o | | | | |  changeset:   2292:673e2af79b3b
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 30 09:32:00 2011 +0200
-| | | | | |  summary:     correct HIPS solver
-| | | | | |
-o | | | | |  changeset:   2291:d839c2fd8874
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Jun 29 09:30:24 2011 +0200
-| | | | | |  summary:     upgrade INNOVATION file
-| | | | | |
-o | | | | |  changeset:   2290:2809d03f67ce
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Jun 29 09:21:52 2011 +0200
-| | | | | |  summary:     add interface of New MUMPS version 4.10.0
-| | | | | |
-o | | | | |  changeset:   2289:3ed2fe0ff5bf
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Tue Jun 28 09:18:23 2011 +0200
-| | | | | |  summary:     pass to version 3.13-2
-| | | | | |
-o | | | | |  changeset:   2288:70da8688792b
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 27 23:29:05 2011 +0200
-| | | | | |  summary:     correct gibbs may be algo
-| | | | | |
-o | | | | |  changeset:   2287:97bf00ff569f
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 27 22:54:04 2011 +0200
-| | | | | |  summary:     fing a bug un gibbs algo dur dur
-| | | | | |
-o | | | | |  changeset:   2286:447235cc1f35
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 27 21:17:36 2011 +0200
-| | | | | |  summary:     correct interpolation problem with periodic BC.
-| | | | | |
-o | | | | |  changeset:   2285:fab78e8b1f74
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 27 19:20:06 2011 +0200
-| | | | | |  summary:     correct typo
-| | | | | |
-o | | | | |  changeset:   2284:0f2ff71f4833
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 27 19:14:22 2011 +0200
-| | | | | |  summary:     add mem usage in UMFPACK solver output
-| | | | | |
-o | | | | |  changeset:   2283:540832a7ce66
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 27 10:31:44 2011 +0200
-| | | | | |  summary:     add exemples examples++-tutorial/Laplace-RHS-Dirac.edp
-| | | | | |
-o | | | | |  changeset:   2282:49c1c93356a0
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 09 17:48:18 2011 +0200
-| | | | | |  summary:     correct ambiguity in square func.
-| | | | | |
-o | | | | |  changeset:   2281:a92f428fff7f
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Thu Jun 09 12:26:16 2011 +0200
-| | | | | |  summary:     correct choix of mpimkl
-| | | | | |
-o | | | | |  changeset:   2280:5aa51837cdb7
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Tue Jun 07 20:32:50 2011 +0200
-| | | | | |  summary:     correct install yams
-| | | | | |
-o | | | | |  changeset:   2279:214e7ba93af3
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 06 21:51:56 2011 +0200
-| | | | | |  summary:     correct freeyams
-| | | | | |
-o | | | | |  changeset:   2278:41c904b8660c
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 06 20:42:03 2011 +0200
-| | | | | |  summary:     correct spuriou print
-| | | | | |
-o | | | | |  changeset:   2277:fcaee41a91cb
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Mon Jun 06 19:07:24 2011 +0200
-| | | | | |  summary:     correct freeyams.cpp LD process.
-| | | | | |
-o-----+ | |  changeset:   2276:1a6949ae0965
-  | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
- / / / / /   date:        Mon May 30 15:16:17 2011 +0200
-| | | | |    summary:     add new example
-| | | | |
-| | o | |  changeset:   2275:76e1708404c5
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri May 27 14:40:04 2011 +0200
-| | | | |  summary:     correct typo in int blas type
-| | | | |
-| | o | |  changeset:   2274:beae57ef5319
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri May 27 14:36:03 2011 +0200
-| | | | |  summary:     correct int for blas variable ..
-| | | | |
-| | o | |  changeset:   2273:3f2e931fffc3
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu May 26 15:42:47 2011 +0200
-| | | | |  summary:     correct typo in doc.
-| | | | |
-| | o | |  changeset:   2272:6ba83092a50b
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu May 26 15:15:01 2011 +0200
-| | | | |  summary:     go v 3.13
-| | | | |
-| | o | |  changeset:   2271:27fb12aa07ae
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu May 26 15:13:55 2011 +0200
-| | | | |  summary:     autoreconf
-| | | | |
-| | o | |  changeset:   2270:93499395509f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu May 26 15:11:13 2011 +0200
-| | | | |  summary:     update doc
-| | | | |
-| | o | |  changeset:   2269:55460f8c273e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed May 25 21:07:04 2011 +0200
-| | | | |  summary:     add final comment on Element_miaxte.cpp file
-| | | | |
-| | o | |  changeset:   2268:ab20518693c9
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue May 24 18:21:42 2011 +0200
-| | | | |  summary:     add RT1, RT1Ortho, DBM1, DBM1Ortho Finite element in Element_Mixte.cpp dynamics libs
-| | | | |
-| | o | |  changeset:   2267:b1efdda0703b
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue May 24 17:16:27 2011 +0200
-| | | | |  summary:     add BDM1 and BDM1Ortho Finite element
-| | | | |
-| | o | |  changeset:   2266:b73e6b532325
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri May 20 16:47:08 2011 +0200
-| | | | |  summary:     in progress TD-NND 1 element
-| | | | |
-| | o | |  changeset:   2265:696e7299da62
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri May 20 09:46:32 2011 +0200
-| | | | |  summary:     end of validation for RT1
-| | | | |
-| | o | |  changeset:   2264:0512b6bb56db
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri May 20 09:09:16 2011 +0200
-| | | | |  summary:     correct RT1 and add RT1Ortho F.E.
-| | | | |
-| | o | |  changeset:   2263:b5d879cb17c2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu May 19 15:12:24 2011 +0200
-| | | | |  summary:     correct Elm_TD-NNS.cpp for RT1 F.E.
-| | | | |
-| | o | |  changeset:   2262:13906a499616
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon May 09 08:53:30 2011 +0200
-| | | | |  summary:     correct lapack
-| | | | |
-| | o | |  changeset:   2261:3d579277e4ce
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon May 09 08:02:42 2011 +0200
-| | | | |  summary:     coorect lapack.cpp add full matrice  multiplication
-| | | | |
-| | o | |  changeset:   2260:39fb84c4949b
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri May 06 14:56:04 2011 +0200
-| | | | |  summary:     coorct lapack and New FE element
-| | | | |
-| | o | |  changeset:   2259:a02b7f1a9c02
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu May 05 15:47:08 2011 +0200
-| | | | |  summary:     add New finite in construction
-| | | | |
-| | o | |  changeset:   2258:bcfcf356bb8c
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Apr 28 18:30:09 2011 +0200
-| | | | |  summary:     add splitedges tools  of Mghazli Zoubida <mghazli_zoubida at yahoo.com>
-| | | | |
-| | o | |  changeset:   2257:294a37023d46
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Apr 18 11:57:40 2011 +0200
-| | | | |  summary:     coorect load load under win32
-| | | | |
-| | o | |  changeset:   2256:4d0308f12e72
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Apr 18 09:57:50 2011 +0200
-| | | | |  summary:     correct load link pk of " and ' in var
-| | | | |
-| | o | |  changeset:   2255:da55768a880d
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Apr 15 22:31:24 2011 +0200
-| | | | |  summary:     correct configure.Ac
-| | | | |
-| | o | |  changeset:   2254:83972e23732a
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Apr 15 21:04:34 2011 +0200
-| | | | |  summary:     correct configure.ac for mpi under win32
-| | | | |
-| | o | |  changeset:   2253:2aca6f1b5497
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Apr 15 20:35:45 2011 +0200
-| | | | |  summary:     MPI for win32
-| | | | |
-| | o | |    changeset:   2252:e145e24f6aa0
-| | |\ \ \   parent:      2251:3d2ff16fa1e5
-| | | | | |  parent:      2250:88c8347babf4
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Apr 15 18:28:28 2011 +0200
-| | | | | |  summary:     coorect Makefile
-| | | | | |
-| | | o | |  changeset:   2251:3d2ff16fa1e5
-| | | | | |  parent:      2247:246a6ffbd1f1
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Fri Apr 15 18:13:05 2011 +0200
-| | | | | |  summary:     coorect mpi configure for win32
-| | | | | |
-| | o | | |  changeset:   2250:88c8347babf4
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Apr 13 14:14:51 2011 +0200
-| | | | | |  summary:     updaet Heat3d.idp
-| | | | | |
-| | o | | |  changeset:   2249:3c31e2572e2f
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Apr 13 14:10:00 2011 +0200
-| | | | | |  summary:     correct typ in Heat3d.idp filename
-| | | | | |
-| | o | | |  changeset:   2248:6bcbc93c5bca
-| | |/ / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |    date:        Wed Apr 13 14:07:57 2011 +0200
-| | | | |    summary:     change Heat3D.idp
-| | | | |
-| | o | |  changeset:   2247:246a6ffbd1f1
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Apr 12 22:18:31 2011 +0200
-| | | | |  summary:     coorect Problem in WHERE quote
-| | | | |
-| | o | |  changeset:   2246:bfcbef551c2e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Apr 08 21:47:10 2011 +0200
-| | | | |  summary:     correct Chaleur
-| | | | |
-| | o | |  changeset:   2245:32829734574c
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Apr 08 17:37:22 2011 +0200
-| | | | |  summary:     correct INNOVATION file
-| | | | |
-| | o | |  changeset:   2244:726002c6f090
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Apr 08 17:33:38 2011 +0200
-| | | | |  summary:     remove suprious dump in superlu dist.
-| | | | |
-| | o | |  changeset:   2243:48f3b1e4a098
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Apr 07 12:05:18 2011 +0200
-| | | | |  summary:     correct change for // computing
-| | | | |
-| | o | |  changeset:   2242:a48b9b504aba
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Apr 06 14:50:49 2011 +0200
-| | | | |  summary:     correct configure to build file
-| | | | |
-| | o | |  changeset:   2241:18630017f8c9
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Apr 06 14:49:07 2011 +0200
-| | | | |  summary:     Added tag 3.12-1 for changeset cd142ee7324d
-| | | | |
-| | o | |  changeset:   2240:cd142ee7324d
-| | | | |  tag:         3.12-1
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Apr 05 10:21:23 2011 +0200
-| | | | |  summary:     correct 3d period BC.
-| | | | |
-| | o | |  changeset:   2239:a43c08688b7e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 30 13:14:22 2011 +0200
-| | | | |  summary:     procon gmres remove tgv ????
-| | | | |
-| | o | |  changeset:   2238:fff6c5feb7b6
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Mar 29 21:54:33 2011 +0200
-| | | | |  summary:     gmres precon same
-| | | | |
-| | o | |  changeset:   2237:e04f738a5db2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Mar 29 21:39:31 2011 +0200
-| | | | |  summary:     change precon gmres
-| | | | |
-| | o | |  changeset:   2236:c3258922889e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Mar 29 21:13:11 2011 +0200
-| | | | |  summary:     correct precon gmres
-| | | | |
-| | o | |  changeset:   2235:6e138ea49c63
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Mar 24 16:56:02 2011 +0100
-| | | | |  summary:     correct  PB compiel for hypre with blas.
-| | | | |
-| | o | |  changeset:   2234:bfe9184061ce
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 23 17:30:48 2011 +0100
-| | | | |  summary:     cooret typo
-| | | | |
-| | o | |  changeset:   2233:ed0bb81df53d
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 23 17:24:34 2011 +0100
-| | | | |  summary:     add missing MPI_LIB
-| | | | |
-| | o | |  changeset:   2232:d23847ce53f2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 23 15:14:33 2011 +0100
-| | | | |  summary:     add cast of TypeSparseSlve on int for stokes type of solver .
-| | | | |
-| | o | |  changeset:   2231:f31959eb8d1f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Mar 22 00:59:18 2011 +0100
-| | | | |  summary:     correcd DDM examples; tyop error
-| | | | |
-| | o | |  changeset:   2230:2c44e0a52112
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Mar 21 21:22:49 2011 +0100
-| | | | |  summary:     coorect missing lin in mkl  whith _rf.so ..
-| | | | |
-| | o | |  changeset:   2229:6fc339f2ceff
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 16 14:55:23 2011 +0100
-| | | | |  summary:     coorect ref test in tutorial
-| | | | |
-| | o | |  changeset:   2228:7c7128939c45
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 16 14:21:49 2011 +0100
-| | | | |  summary:     corect configure for mpi
-| | | | |
-| | o | |  changeset:   2227:977b3193fe08
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 16 12:59:13 2011 +0100
-| | | | |  summary:     correct bug in intersection of metric in adaptmesh in case of given metrix
-| | | | |
-| | o | |  changeset:   2226:49d4be4bdab9
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Mar 15 14:55:54 2011 +0100
-| | | | |  summary:     coorect pb on configure of mpi (hard jos)
-| | | | |
-| | o | |  changeset:   2225:b9875e93b847
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Mar 15 14:40:24 2011 +0100
-| | | | |  summary:     add test for m4 and bison command in configure
-| | | | |
-| | o | |  changeset:   2224:7e9e01c6e550
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Mar 15 14:23:06 2011 +0100
-| | | | |  summary:     update mshmet to version 3.0
-| | | | |
-| | o | |  changeset:   2223:417a4450e6f8
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 09 22:22:41 2011 +0100
-| | | | |  summary:     correct mpi correct of sgi
-| | | | |
-| | o | |  changeset:   2222:85735d18b198
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 09 21:51:21 2011 +0100
-| | | | |  summary:     compile with sgi MPI
-| | | | |
-| | o | |  changeset:   2221:7d3bf33d6031
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 09 21:35:02 2011 +0100
-| | | | |  summary:     add check MPI_DOUBLE_COMPLEX in configure
-| | | | |
-| | o | |  changeset:   2220:1d2cb842acb2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 09 11:56:22 2011 +0100
-| | | | |  summary:     cooret mpi / cpp DOUBLE_COMPLEX
-| | | | |
-| | o | |  changeset:   2219:d0223be2ab7b
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 09 10:06:50 2011 +0100
-| | | | |  summary:     correct missing cflags in generic blas compilation
-| | | | |
-| | o | |  changeset:   2218:ed71122c4649
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 09 08:54:14 2011 +0100
-| | | | |  summary:     corrrect loop in makefile when cleanning
-| | | | |
-| | o | |  changeset:   2217:f3f99d1f9f92
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 09 08:39:35 2011 +0100
-| | | | |  summary:     correct loop in clean target makefiles
-| | | | |
-| | o | |  changeset:   2216:8b03d97bb490
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Mar 09 08:36:34 2011 +0100
-| | | | |  summary:     correct clean in freeyam makefile
-| | | | |
-| | o | |  changeset:   2215:5d1babde36d7
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Mar 08 17:57:47 2011 +0100
-| | | | |  summary:     correct mpi compile flags for sgi computer.
-| | | | |
-| | o | |  changeset:   2214:b04fdc8dbf99
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Feb 09 21:03:19 2011 +0100
-| | | | |  summary:     correct missing in install  examples++-load/fig.pgm	examples++-load/lg.pgm
-| | | | |
-| | o | |  changeset:   2213:0a53c3f15e2e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Feb 09 19:27:59 2011 +0100
-| | | | |  summary:     add missing file in Makefile dist tag.
-| | | | |
-| | o | |  changeset:   2212:bdae2c1318cc
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Feb 09 19:23:36 2011 +0100
-| | | | |  summary:     coorect MPI_DOUBLE_COMPLEX problem in mpi ...
-| | | | |
-| | o | |  changeset:   2211:a16c149daeb4
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Feb 09 18:11:31 2011 +0100
-| | | | |  summary:     correct mpiReduce complex case ..
-| | | | |
-| | o | |  changeset:   2210:94365074e706
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Feb 07 20:58:18 2011 +0100
-| | | | |  summary:     correct some mistake.
-| | | | |
-| | o | |  changeset:   2209:a076fd1237b7
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Jan 25 22:11:03 2011 +0100
-| | | | |  summary:     reomve spuriou dump
-| | | | |
-| | o | |  changeset:   2208:f3ce89f615f8
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Jan 25 21:48:48 2011 +0100
-| | | | |  summary:     add mpiAllReduce(umax,dmaxg,comm,mpiMAX);  where for real umax,dmaxg;
-| | | | |
-| | o | |  changeset:   2207:3a8495a5387a
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Jan 25 11:40:33 2011 +0100
-| | | | |  summary:     add mpiAllReduce on real , long , complex data type
-| | | | |
-| | o | |  changeset:   2206:08fcb4d98a99
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Jan 23 14:34:11 2011 +0100
-| | | | |  summary:     Added tag 3.12-win32 for changeset bea855340647
-| | | | |
-| | o | |  changeset:   2205:bea855340647
-| | | | |  tag:         3.12-win32
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Jan 23 14:33:52 2011 +0100
-| | | | |  summary:     update  INNOVATION
-| | | | |
-| | o | |  changeset:   2204:f6a959c7600c
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Jan 22 21:44:24 2011 +0100
-| | | | |  summary:     correct configure for win32
-| | | | |
-| | o | |  changeset:   2203:e84ba8234183
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 20 13:59:58 2011 +0100
-| | | | |  summary:     correct typo
-| | | | |
-| | o | |  changeset:   2202:09ee2c12edb8
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 20 13:57:40 2011 +0100
-| | | | |  summary:     correct typo
-| | | | |
-| | o | |  changeset:   2201:fb724f3e09a2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 20 13:55:11 2011 +0100
-| | | | |  summary:     correct install idp file in mpi examples
-| | | | |
-| | o | |  changeset:   2200:dd0ca033a004
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 20 13:34:00 2011 +0100
-| | | | |  summary:     add tag for version 3.12
-| | | | |
-| | o | |  changeset:   2199:672e0042f083
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 20 13:29:52 2011 +0100
-| | | | |  summary:     Added tag 3.12 for changeset 270198a4a293
-| | | | |
-| | o | |  changeset:   2198:270198a4a293
-| | | | |  tag:         3.12
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 20 13:23:35 2011 +0100
-| | | | |  summary:     correct HISTORY
-| | | | |
-| | o | |  changeset:   2197:e983b6801336
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 20 08:32:41 2011 +0100
-| | | | |  summary:     coorect type in top Makefile
-| | | | |
-| | o | |  changeset:   2196:673a610cc96e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 23:26:38 2011 +0100
-| | | | |  summary:     correct mpi sover files
-| | | | |
-| | o | |  changeset:   2195:daea22ad31ee
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 19:43:33 2011 +0100
-| | | | |  summary:     correct examples++-mpi/Makefile.am
-| | | | |
-| | o | |  changeset:   2194:b5f8a0106cc0
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 19:30:02 2011 +0100
-| | | | |  summary:     add missing file
-| | | | |
-| | o | |  changeset:   2193:06476f221b1e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 18:19:58 2011 +0100
-| | | | |  summary:     correct medit makefile
-| | | | |
-| | o | |  changeset:   2192:9d6b4e63eb04
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 17:28:44 2011 +0100
-| | | | |  summary:     coorect make for install FreeFem++-CoCoa on MAcOS
-| | | | |
-| | o | |  changeset:   2191:60616abdc65f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 17:15:42 2011 +0100
-| | | | |  summary:     coorect MPI example ...
-| | | | |
-| | o | |  changeset:   2190:daa42faa6092
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 16:55:25 2011 +0100
-| | | | |  summary:     correct MPI example and // solver
-| | | | |
-| | o | |  changeset:   2189:0a5cc096d146
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 16:42:28 2011 +0100
-| | | | |  summary:     correct lot of MPI example
-| | | | |
-| | o | |  changeset:   2188:65e69cb8fa59
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 15:19:20 2011 +0100
-| | | | |  summary:     add missing files
-| | | | |
-| | o | |  changeset:   2187:41b69f3e4ffc
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Jan 19 14:00:15 2011 +0100
-| | | | |  summary:     - correct link proble in hips and hypre under linux
-| | | | |
-| | o | |  changeset:   2186:38874c1f5f5f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Jan 18 23:39:31 2011 +0100
-| | | | |  summary:     add new MPI example DDM-Schwarz method
-| | | | |
-| | o | |  changeset:   2185:b8dc0377392a
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Jan 18 18:59:26 2011 +0100
-| | | | |  summary:     correct mistake in doc
-| | | | |
-| | o | |  changeset:   2184:fb8651ab5956
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Jan 18 18:45:59 2011 +0100
-| | | | |  summary:     see INNOVATION file for all modid
-| | | | |
-| | o | |  changeset:   2183:05d86033bc94
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Jan 18 13:13:23 2011 +0100
-| | | | |  summary:     add README_MAC
-| | | | |
-| | o | |  changeset:   2182:309f9d972d67
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Jan 17 23:43:41 2011 +0100
-| | | | |  summary:     correct isolineP1
-| | | | |
-| | o | |  changeset:   2181:f8e9984c708d
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Jan 17 23:22:06 2011 +0100
-| | | | |  summary:     ass isolineP1  dynamic lib to build border  form isoline
-| | | | |
-| | o | |  changeset:   2180:7d53be5311f3
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Jan 17 08:11:50 2011 +0100
-| | | | |  summary:     coorect spurious endl
-| | | | |
-| | o | |  changeset:   2179:3414092a9ef9
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Jan 17 08:07:34 2011 +0100
-| | | | |  summary:     remove spurio endl
-| | | | |
-| | o | |  changeset:   2178:1d166fa13593
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Jan 17 08:00:50 2011 +0100
-| | | | |  summary:     remove spurious cout
-| | | | |
-| | o | |  changeset:   2177:e413924e153f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Jan 17 00:04:56 2011 +0100
-| | | | |  summary:     add macro def;
-| | | | |
-| | o | |  changeset:   2176:e218c243ce05
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 13 22:18:17 2011 +0100
-| | | | |  summary:     correct for MINGW load.link
-| | | | |
-| | o | |  changeset:   2175:272b85192249
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 13 21:04:05 2011 +0100
-| | | | |  summary:     correct FLIBS on win32 case
-| | | | |
-| | o | |  changeset:   2174:e3f2a110bb91
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Jan 13 17:19:04 2011 +0100
-| | | | |  summary:     add gsl interface
-| | | | |
-| | o | |  changeset:   2173:a06e9ccb53fd
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Jan 04 17:50:50 2011 +0100
-| | | | |  summary:     add mesure for area of 2d mesh to by compatible this 3d mesh
-| | | | |
-| | o | |  changeset:   2172:6e8a3de60010
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Dec 25 09:23:14 2010 +0100
-| | | | |  summary:     update te doc
-| | | | |
-| | o | |  changeset:   2171:d4cbf3a97506
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Dec 25 08:22:35 2010 +0100
-| | | | |  summary:     see innovation
-| | | | |
-| | o | |  changeset:   2170:f2016b3dac72
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Dec 25 07:26:48 2010 +0100
-| | | | |  summary:     crrect configure.ac to be compatible with new version
-| | | | |
-| | o | |  changeset:   2169:65a4886d5bc8
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Dec 23 11:10:04 2010 +0100
-| | | | |  summary:     Add brute force for seach of poit to be sure
-| | | | |
-| | o | |  changeset:   2168:9ccdb108f833
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Dec 21 12:38:05 2010 +0100
-| | | | |  summary:     add tgv < 0 => no tgv = so we  put 0 on line except 1 on dig term on matrix probleme.
-| | | | |
-| | o | |  changeset:   2167:42f714837f49
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Dec 12 00:15:38 2010 +0100
-| | | | |  summary:     mpi win32 suire ...
-| | | | |
-| | o | |  changeset:   2166:ba43bd5ae9c2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Dec 12 00:11:57 2010 +0100
-| | | | |  summary:     mpi win32  suite
-| | | | |
-| | o | |  changeset:   2165:18e9fd7513ef
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sun Dec 12 00:05:38 2010 +0100
-| | | | |  summary:     mpi coorect on win32
-| | | | |
-| | o | |  changeset:   2164:4a2a7e6595ab
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Dec 11 23:41:02 2010 +0100
-| | | | |  summary:     correct parallele version for win32
-| | | | |
-| | o | |  changeset:   2163:3956acc41dd1
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Dec 11 21:10:00 2010 +0100
-| | | | |  summary:     change mpi ef trouth pointer
-| | | | |
-| | o | |  changeset:   2162:4aacb445efc2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Dec 11 14:27:23 2010 +0100
-| | | | |  summary:     correct pb CNOFLAGS (no opt CFLAGS for medir) under windows
-| | | | |
-| | o | |  changeset:   2161:34a9d49cc35e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Dec 11 14:11:57 2010 +0100
-| | | | |  summary:     next step
-| | | | |
-| | o | |  changeset:   2160:745e4814c1e2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Sat Dec 11 13:49:26 2010 +0100
-| | | | |  summary:     correct pb parallele-empty.cpp
-| | | | |
-| | o | |  changeset:   2159:a9e710fd658e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Dec 10 23:51:33 2010 +0100
-| | | | |  summary:     add src/mpi/parallelempi-empty.cpp
-| | | | |
-| | o | |  changeset:   2158:ff130a08ed27
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Dec 10 10:14:09 2010 +0100
-| | | | |  summary:     change default parameter in examples++-mpi/MPIGMRES3D.edp
-| | | | |
-| | o | |  changeset:   2157:00ba78e75b34
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Dec 09 19:41:01 2010 +0100
-| | | | |  summary:     last modif for v 3.11 (may be)
-| | | | |
-| | o | |  changeset:   2156:522db0c6b622
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Dec 09 18:16:14 2010 +0100
-| | | | |  summary:     updeta doc an exp
-| | | | |
-| | o | |  changeset:   2155:4932c2907ee9
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Dec 09 17:04:13 2010 +0100
-| | | | |  summary:     add macro quting
-| | | | |
-| | o | |  changeset:   2154:df881e2db1cd
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Dec 09 14:34:07 2010 +0100
-| | | | |  summary:     coorect type in getany (all int are long in freefem++)
-| | | | |
-| | o | |  changeset:   2153:5545e58c84ba
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Dec 09 10:59:03 2010 +0100
-| | | | |  summary:     correct tetgen set coorect defauft valeu in nbregion, nbhole, ...
-| | | | |
-| | o | |  changeset:   2152:143e4c285e2e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Dec 09 10:34:14 2010 +0100
-| | | | |  summary:     correct doc and mmg3-d interface
-| | | | |
-| | o | |  changeset:   2151:ffed0beed0f2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Dec 08 23:54:37 2010 +0100
-| | | | |  summary:     correct pb picking ffmedit remove -O flags
-| | | | |
-| | o | |  changeset:   2150:ee5ac6c2b487
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Dec 08 18:10:50 2010 +0100
-| | | | |  summary:     update makefie
-| | | | |
-| | o | |  changeset:   2149:a01cfcb5089f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Dec 08 17:33:38 2010 +0100
-| | | | |  summary:     coorect freeeyam mshmet to a-have more clean option
-| | | | |
-| | o | |  changeset:   2148:8016ff3a5430
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Dec 07 18:02:17 2010 +0100
-| | | | |  summary:     update mmg3d interface
-| | | | |
-| | o | |  changeset:   2147:54b806e85c3e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Dec 07 16:32:06 2010 +0100
-| | | | |  summary:     coorect mshmet ..
-| | | | |
-| | o | |  changeset:   2146:00ebac7181ed
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Dec 07 14:57:59 2010 +0100
-| | | | |  summary:     coorect configure.ac pb this blascoorectr freeyam interface with metric
-| | | | |
-| | o | |  changeset:   2145:444b58f89a98
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Dec 07 13:36:42 2010 +0100
-| | | | |  summary:     coorect freeyams aniso
-| | | | |
-| | o | |  changeset:   2144:de793b3e90c2
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Dec 03 17:44:00 2010 +0100
-| | | | |  summary:     add seach of MKL lib in configure (hard job)
-| | | | |
-| | o | |  changeset:   2143:baa57509c9cd
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Dec 02 23:17:52 2010 +0100
-| | | | |  summary:     see INNOVATION correct MPIGMREs[23]d.edp example
-| | | | |
-| | o | |    changeset:   2142:c01832c2d91e
-| | |\ \ \   parent:      2141:1ca02db51865
-| | | | | |  parent:      2140:bae26bfb0b8c
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Dec 01 16:24:20 2010 +0100
-| | | | | |  summary:     merge ???
-| | | | | |
-| | | o | |  changeset:   2141:1ca02db51865
-| | | | | |  parent:      2139:d87b27635075
-| | | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | | |  date:        Wed Dec 01 15:06:40 2010 +0100
-| | | | | |  summary:     remove file
-| | | | | |
-| | o | | |  changeset:   2140:bae26bfb0b8c
-| | |/ / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |    date:        Wed Dec 01 10:44:59 2010 +0100
-| | | | |    summary:     correct typo
-| | | | |
-| | o | |  changeset:   2139:d87b27635075
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Dec 01 10:38:32 2010 +0100
-| | | | |  summary:     correct the documenation
-| | | | |
-| | o | |  changeset:   2138:9b4cf63d9799
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 30 22:07:42 2010 +0100
-| | | | |  summary:     add file for mlk lib .
-| | | | |
-| | o | |  changeset:   2137:6ebd89576da6
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 30 21:05:05 2010 +0100
-| | | | |  summary:     correct WHERE_LIBRARY-downlaod creation
-| | | | |
-| | o | |  changeset:   2136:9f7e115581d0
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 30 19:17:18 2010 +0100
-| | | | |  summary:     correct mistake in construction of WHERE.gmm file
-| | | | |
-| | o | |  changeset:   2135:d0ec37b43744
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 30 17:50:39 2010 +0100
-| | | | |  summary:     go version 3.10-3
-| | | | |
-| | o | |  changeset:   2134:c00bebf2d35f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 30 15:47:39 2010 +0100
-| | | | |  summary:     do coorect of periodic boundary condition + MUMPS link order
-| | | | |
-| | o | |  changeset:   2133:0ce681a3f66e
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 25 22:06:41 2010 +0100
-| | | | |  summary:     add missing file
-| | | | |
-| | o | |  changeset:   2132:c0a45d4c82a9
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 25 21:50:27 2010 +0100
-| | | | |  summary:     correct spurious print with verbosity !=0
-| | | | |
-| | o | |  changeset:   2131:d0756d2ae8ed
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 25 21:37:14 2010 +0100
-| | | | |  summary:     remove spurio print
-| | | | |
-| | o | |  changeset:   2130:9c81e54436fb
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 25 14:16:34 2010 +0100
-| | | | |  summary:     correct Laplace-Adapt-3d.edp
-| | | | |
-| | o | |  changeset:   2129:d0f9a7e3ce91
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 24 21:20:18 2010 +0100
-| | | | |  summary:     correct Laplace-Adapt-3d.edp
-| | | | |
-| | o | |  changeset:   2128:9628d985d017
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 24 08:55:48 2010 +0100
-| | | | |  summary:     coorect pb compiel on gnome
-| | | | |
-| | o | |  changeset:   2127:934ff69faf4a
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 24 08:39:29 2010 +0100
-| | | | |  summary:     add err comment in case of mesh with isolated vertex
-| | | | |
-| | o | |  changeset:   2126:e05ac461f21d
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 23 13:54:07 2010 +0100
-| | | | |  summary:     update INNOVATION
-| | | | |
-| | o | |  changeset:   2125:5633591673ba
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 23 08:14:13 2010 +0100
-| | | | |  summary:     correct 3d adaptation , try to build a first true example
-| | | | |
-| | o | |  changeset:   2124:76dc4c8a0cbb
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 23 07:17:26 2010 +0100
-| | | | |  summary:     add function to cast formal array into array []  toZarray,toRarray , toCarray
-| | | | |
-| | o | |  changeset:   2123:ecb2452ebe90
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Nov 19 11:37:52 2010 +0100
-| | | | |  summary:     add getARGV tools
-| | | | |
-| | o | |  changeset:   2122:9297b462cd46
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 18 16:31:52 2010 +0100
-| | | | |  summary:     next step for ff-mpirun install (dur dur)
-| | | | |
-| | o | |  changeset:   2121:80914a8bb776
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 18 16:11:24 2010 +0100
-| | | | |  summary:     coorect makefile for ff-mpirun and add srandomdev by read /dev/random + time
-| | | | |
-| | o | |  changeset:   2120:27361d73a03b
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 17 22:04:05 2010 +0100
-| | | | |  summary:     continung tyoo error ff-mpirun
-| | | | |
-| | o | |  changeset:   2119:a4a681882e69
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 17 21:54:25 2010 +0100
-| | | | |  summary:     correct typo of  ff-mpirun  in configure.ac
-| | | | |
-| | o | |  changeset:   2118:967660b728d5
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 17 21:46:20 2010 +0100
-| | | | |  summary:     coorect the previous add ff-run
-| | | | |
-| | o | |  changeset:   2117:43b0bed1bd5b
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 17 21:13:52 2010 +0100
-| | | | |  summary:     coorect INNOVATION
-| | | | |
-| | o | |  changeset:   2116:993567388442
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 17 21:11:58 2010 +0100
-| | | | |  summary:     add ff-mpirun to launch freefem++-mpi simply
-| | | | |
-| | o | |  changeset:   2115:94e4e901b405
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Wed Nov 17 08:03:01 2010 +0100
-| | | | |  summary:     correct mistake
-| | | | |
-| | o | |  changeset:   2114:d684b3efa24f
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 16 22:37:26 2010 +0100
-| | | | |  summary:     correct typo error  in fftw3  in WHERE_LIBRARY-config
-| | | | |
-| | o | |  changeset:   2113:79e95c94d4a5
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 16 20:09:36 2010 +0100
-| | | | |  summary:     correct mistyping in metis.cpp
-| | | | |
-| | o | |  changeset:   2112:09b6d06266af
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 16 19:53:30 2010 +0100
-| | | | |  summary:     romve cout in metis.cpp
-| | | | |
-| | o | |  changeset:   2111:ac951e2d8008
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 16 19:51:00 2010 +0100
-| | | | |  summary:     remove strange dump
-| | | | |
-| | o | |  changeset:   2110:0addf52a6596
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Tue Nov 16 07:34:31 2010 +0100
-| | | | |  summary:     correct MPI version from gmone machine
-| | | | |
-| | o | |  changeset:   2109:18a79ce6b201
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Nov 15 20:36:31 2010 +0100
-| | | | |  summary:     coorect pb of comute of area of mesh some time
-| | | | |
-| | o | |  changeset:   2108:6e7efdc6c4cd
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Mon Nov 15 10:22:02 2010 +0100
-| | | | |  summary:     crrect atof, blas WHERE_LIBRARY
-| | | | |
-| | o | |  changeset:   2107:16dedee619b5
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Fri Nov 05 09:52:22 2010 +0100
-| | | | |  summary:     add nex example
-| | | | |
-| | o | |  changeset:   2106:5e33715c5809
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 04 19:23:41 2010 +0100
-| | | | |  summary:     correct output stream
-| | | | |
-| | o | |  changeset:   2105:ad9c5a3700f3
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 04 18:25:58 2010 +0100
-| | | | |  summary:     reove test in MPIGRES2D
-| | | | |
-| | o | |  changeset:   2104:27f8c8458b71
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 04 18:19:33 2010 +0100
-| | | | |  summary:     add missing file
-| | | | |
-| | o | |  changeset:   2103:3b3bdf3ac0c5
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 04 18:10:55 2010 +0100
-| | | | |  summary:     clean
-| | | | |
-| | o | |  changeset:   2102:b2b101c4208d
-| | | | |  parent:      2099:f9822a5aea7a
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 04 18:01:07 2010 +0100
-| | | | |  summary:     remove pb file
-| | | | |
-o | | | |  changeset:   2101:31c99c85707b
-| | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | | |  date:        Thu Nov 04 17:48:49 2010 +0100
-| | | | |  summary:     add missing idp files
-| | | | |
-o---+ | |  changeset:   2100:79615779ae45
-  | | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
- / / / /   date:        Thu Nov 04 17:48:14 2010 +0100
-| | | |    summary:     add new MPI example
-| | | |
-| o | |  changeset:   2099:f9822a5aea7a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Nov 04 16:50:40 2010 +0100
-| | | |  summary:     add BinaryIO  dynamic lib  in example++-load
-| | | |
-| o | |  changeset:   2098:530dbd02d812
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 27 14:54:30 2010 +0200
-| | | |  summary:     change the default  size of MPI buf to 1Mo
-| | | |
-| o | |  changeset:   2097:74a69bae2f83
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Oct 25 14:10:59 2010 +0200
-| | | |  summary:     correct MPIGMRES examples
-| | | |
-| o | |  changeset:   2096:65da29614162
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 22 21:26:27 2010 +0200
-| | | |  summary:     correct if (1) ; // trap
-| | | |
-| o | |  changeset:   2095:1388d0f67de2
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 22 15:20:08 2010 +0200
-| | | |  summary:     change configure.ac protect MPICMD flags Tanks to P. gostaff
-| | | |
-| o | |  changeset:   2094:d732b07cba51
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 22 15:16:58 2010 +0200
-| | | |  summary:     reomve peace of cade for AutoDiff not use
-| | | |
-| o | |  changeset:   2093:06b5aeacde3c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 22 14:08:30 2010 +0200
-| | | |  summary:     Add MPI CG/GMRES function  for // computing
-| | | |
-| o | |  changeset:   2092:ff22b8c7a500
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 08 15:39:32 2010 +0200
-| | | |  summary:     update INNOVATION
-| | | |
-| o | |  changeset:   2091:2d8b5240b671
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 08 14:12:54 2010 +0200
-| | | |  summary:     correct the bug fing by  O. Pantz  in expression like ;  a(2:)=A^-1*b(1,:)
-| | | |
-| o | |  changeset:   2090:0ab0cc381341
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Oct 06 17:02:11 2010 +0200
-| | | |  summary:     correct make check in 3d examples dir
-| | | |
-| o | |  changeset:   2089:3d4959d4b6e1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 18:34:02 2010 +0200
-| | | |  summary:     add missing file
-| | | |
-| o | |  changeset:   2088:3748aed79d1c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 16:34:40 2010 +0200
-| | | |  summary:     Added tag release_3_10 for changeset f96e7099dbed
-| | | |
-| o | |  changeset:   2087:f96e7099dbed
-| | | |  tag:         release_3_10
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 16:32:09 2010 +0200
-| | | |  summary:     coorect INNOVATION
-| | | |
-| o | |  changeset:   2086:a0a40e1e3132
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 16:02:04 2010 +0200
-| | | |  summary:     add missing install files
-| | | |
-| o | |  changeset:   2085:caf345bbc560
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 15:22:43 2010 +0200
-| | | |  summary:     correct install mpi dymanics libs
-| | | |
-| o | |  changeset:   2084:03ddaceddb3e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 14:50:46 2010 +0200
-| | | |  summary:     add install of dynamic lin in mpi
-| | | |
-| o | |  changeset:   2083:b689c5e0ebb4
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 14:06:32 2010 +0200
-| | | |  summary:     add "-cd" argument to change current directory to edp script directory
-| | | |
-| o | |  changeset:   2082:c0c0d05d486c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 11:30:08 2010 +0200
-| | | |  summary:     coorect missing compile parameter in pARMS libs
-| | | |
-| o | |  changeset:   2081:8626f17af8a6
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 10:49:26 2010 +0200
-| | | |  summary:     correct configure.ac for automatic download of mmg3d lib.
-| | | |
-| o | |  changeset:   2080:672655247fbf
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Oct 05 00:42:30 2010 +0200
-| | | |  summary:     do modif of g++-4.6
-| | | |
-| o | |  changeset:   2079:5b727e03ff94
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 01 16:36:38 2010 +0200
-| | | |  summary:     mistake in parm makefile
-| | | |
-| o | |  changeset:   2078:e0137efef48d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 01 16:10:58 2010 +0200
-| | | |  summary:     version ok for ubuntu 64
-| | | |
-| o | |  changeset:   2077:f43ece160238
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 01 15:47:06 2010 +0200
-| | | |  summary:     correctr for version 2.10xs
-| | | |
-| o | |  changeset:   2076:f0b9786353ec
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 01 15:13:40 2010 +0200
-| | | |  summary:     coorection fort 3.10 version
-| | | |
-| o | |  changeset:   2075:bc78bc18d0b1
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Oct 01 12:46:55 2010 +0200
-| | | |  summary:     try to close version 3.10
-| | | |
-| o | |  changeset:   2074:e2b8cf20c61b
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 29 16:33:21 2010 +0200
-| | | |  summary:     correct IntallWHERE in gmm makefiel
-| | | |
-| o | |  changeset:   2073:10b7a602f98f
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 29 15:38:54 2010 +0200
-| | | |  summary:     correct parms Makefile
-| | | |
-| o | |  changeset:   2072:9440ff46f0ea
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Sep 29 14:19:58 2010 +0200
-| | | |  summary:     Add missing  exemple
-| | | |
-| o | |  changeset:   2071:e843df1be44d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 21 22:05:42 2010 +0200
-| | | |  summary:     correct -fPIC flags un blacs compilation
-| | | |
-| o | |  changeset:   2070:39392778a85e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 21 21:24:17 2010 +0200
-| | | |  summary:     update INNOVATION
-| | | |
-| o | |  changeset:   2069:22cc87fe9e3d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 21 19:14:38 2010 +0200
-| | | |  summary:     corecct MUMPS Makefile (missing CC,FC compile  flags -fPIC )
-| | | |
-| o | |  changeset:   2068:596ef1aa8971
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 21 15:12:33 2010 +0200
-| | | |  summary:     do autorecconf for add HAVE_SYS_TIME_H
-| | | |
-| o | |  changeset:   2067:ea3d2e60219d
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 21 15:10:08 2010 +0200
-| | | |  summary:     coorect gmm Makefile for WHERE ...
-| | | |
-| o | |  changeset:   2066:e17ed9466e08
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 21 14:13:01 2010 +0200
-| | | |  summary:     correct pb on download/bin creation (so time it a file not a dir)
-| | | |
-| o | |  changeset:   2065:a1c8c12f1363
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 21 12:19:21 2010 +0200
-| | | |  summary:     correct gmm compile and WHERE def.
-| | | |
-| o | |  changeset:   2064:1bed39d421c9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Sep 21 07:55:41 2010 +0200
-| | | |  summary:     correct PB with echo_edp
-| | | |
-| o | |  changeset:   2063:14e807f30896
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Sep 20 22:49:04 2010 +0200
-| | | |  summary:     coorect Makefile of mmglib download ..
-| | | |
-| o | |  changeset:   2062:2005c8d27803
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Sep 20 21:34:12 2010 +0200
-| | | |  summary:     correct mmg3lib  precompile
-| | | |
-| o | |  changeset:   2061:77b950c53405
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Sep 20 20:36:40 2010 +0200
-| | | |  summary:     add new parameter -ne  to remove script output
-| | | |
-| o | |  changeset:   2060:90c7c0e87652
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Sep 09 15:43:29 2010 +0200
-| | | |  summary:     add gmm and corretc load.link.in for windows
-| | | |
-| o | |  changeset:   2059:04ef78a06b11
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Aug 31 13:18:25 2010 +0200
-| | | |  summary:     update README
-| | | |
-| o | |  changeset:   2058:9f3f911348ff
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Aug 31 13:11:27 2010 +0200
-| | | |  summary:     corect innovation
-| | | |
-| o | |  changeset:   2057:87b6d7922730
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Aug 31 13:10:35 2010 +0200
-| | | |  summary:     add missing compila of mshmet dynamc lib
-| | | |
-| o | |  changeset:   2056:5b51781d6c92
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Aug 31 13:02:05 2010 +0200
-| | | |  summary:     upate INNOVATION
-| | | |
-| o | |  changeset:   2055:1235170c0a9e
-| | | |  parent:      2053:0b6fd3c42d32
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Aug 31 12:56:55 2010 +0200
-| | | |  summary:     correct examples++-load/Makefile.am to recreate examples++-load/WHERE_LIBRARY-download
-| | | |
-o | | |  changeset:   2054:f3cbf7394995
-|/ / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |    date:        Tue Aug 31 12:42:00 2010 +0200
-| | |    summary:     coorect typo in asssert mmg3d.cpp
-| | |
-o | |  changeset:   2053:0b6fd3c42d32
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Tue Aug 31 12:30:33 2010 +0200
-| | |  summary:     coorech WHERE of mshlib
-| | |
-o | |  changeset:   2052:b3e9a365ee44
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Tue Aug 31 12:22:40 2010 +0200
-| | |  summary:     add build WHERE
-| | |
-o | |  changeset:   2051:ac3551adc8c2
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Tue Aug 31 11:31:55 2010 +0200
-| | |  summary:     coorect mshmet download compile / makefile
-| | |
-o | |  changeset:   2050:4d081c4fdc8b
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Tue Aug 31 10:00:33 2010 +0200
-| | |  summary:     correct problem of -fPIC compile option in NOOPT  C ompile setup in superludist
-| | |
-o | |  changeset:   2049:b31ed80c5418
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Aug 30 22:52:10 2010 +0200
-| | |  summary:     coorect INNOVATION and auto compile fftw under win32
-| | |
-o | |  changeset:   2048:650bf83f02fc
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Aug 30 22:46:35 2010 +0200
-| | |  summary:     correct problem of creation download/bin  as a file not a dir.
-| | |
-o | |    changeset:   2047:f08673def206
-|\ \ \   parent:      2046:d4c390fea2f5
-| | | |  parent:      2043:3e424de88d66
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 30 17:30:19 2010 +0200
-| | | |  summary:     pass to version 3.9-2
-| | | |
-| o | |  changeset:   2046:d4c390fea2f5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 30 17:27:51 2010 +0200
-| | | |  summary:     correct compile of freeyams and mmg3d under win32
-| | | |
-| o | |  changeset:   2045:008b77f57a47
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 30 16:39:06 2010 +0200
-| | | |  summary:     add missing file
-| | | |
-| o | |  changeset:   2044:226800ecaa6d
-| | | |  parent:      2041:76820d79834a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 30 16:26:41 2010 +0200
-| | | |  summary:     put c++ maning in eigen.h
-| | | |
-o | | |  changeset:   2043:3e424de88d66
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Aug 30 13:56:19 2010 +0200
-| | | |  summary:     correc mmg3d interface (j. Morice) )
-| | | |
-o | | |  changeset:   2042:e6a1f7c85239
-|/ / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |    date:        Mon Aug 30 13:43:47 2010 +0200
-| | |    summary:     coorect mmg3d interface
-| | |
-o | |  changeset:   2041:76820d79834a
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Mon Aug 30 10:31:52 2010 +0200
-| | |  summary:     correct DOC and add dep in ilut.cpp
-| | |
-o | |  changeset:   2040:6e07fc2d42f8
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Aug 27 17:53:53 2010 +0200
-| | |  summary:     update INNOVATION remove warning on pastix
-| | |
-o | |  changeset:   2039:7cf7e1a0a897
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Aug 27 17:51:18 2010 +0200
-| | |  summary:     correct  problem to compile pastix, scotch  undex ubuntu linux.
-| | |
-o | |  changeset:   2038:f6214647e5ab
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Aug 27 16:32:55 2010 +0200
-| | |  summary:     coorect -fPIC option on Fortrn
-| | |
-o | |  changeset:   2037:e79df603fcab
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Aug 27 11:17:59 2010 +0200
-| | |  summary:     coorect fftw Makefie
-| | |
-o | |  changeset:   2036:99c51676b313
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Aug 27 11:00:33 2010 +0200
-| | |  summary:     coorect mpi examples essa.edp an add wiat=1 in all medit call (bug on mac ???)
-| | |
-o | |  changeset:   2035:7b14eaf9f3ed
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Aug 27 09:32:47 2010 +0200
-| | |  summary:     update INNOVATION
-| | |
-o | |  changeset:   2034:0692ff74ab24
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Aug 27 09:28:57 2010 +0200
-| | |  summary:     correct problem of dynamic lib with or without mpi
-| | |
-o | |  changeset:   2033:c91026108711
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Thu Aug 26 20:39:46 2010 +0200
-| | |  summary:     add missing file DOC/plots/multiendmesh.eps
-| | |
-o | |  changeset:   2032:e6b7488922a9
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Thu Aug 26 20:37:52 2010 +0200
-| | |  summary:     add missing file
-| | |
-o | |  changeset:   2031:704b3d3af23d
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Thu Aug 26 18:55:46 2010 +0200
-| | |  summary:     See INNOVATION file for explaination of this change
-| | |
-o | |  changeset:   2030:e773af6b91a7
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Aug 06 11:26:27 2010 +0200
-| | |  summary:     correct configure mpi search when no full path are given (FH).
-| | |
-o | |  changeset:   2029:922d59d4af75
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Sat Jul 10 22:06:05 2010 +0200
-| | |  summary:     correct mistake in download/pastix/Makefile
-| | |
-o | |  changeset:   2028:a2bd2ad4e78a
-| | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |  date:        Fri Jul 09 21:06:22 2010 +0200
-| | |  summary:     update REDME and INNOVATION
-| | |
-o | |    changeset:   2027:14f495eec0bd
-|\ \ \   parent:      2025:6bc312b89041
-| | | |  parent:      2026:3b1e208730b0
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Jul 09 19:16:41 2010 +0200
-| | | |  summary:     coorect MUMPS link liste.
-| | | |
-| o | |  changeset:   2026:3b1e208730b0
-| | | |  parent:      2015:d14d5fe73ed9
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Jul 09 18:57:24 2010 +0200
-| | | |  summary:     do change un MUMPS_FreeFem.cpp
-| | | |
-o | | |  changeset:   2025:6bc312b89041
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Fri Jul 09 18:51:13 2010 +0200
-| | | |  summary:     correct a mistake in set  metric in adapt mesh, thank to J-F Remarcle.
-| | | |
-o | | |  changeset:   2024:e08ce8c8a5d2
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jun 30 22:39:42 2010 +0200
-| | | |  summary:     correct missing mpi_include flges in superlu-dist makefile
-| | | |
-o | | |  changeset:   2023:121ef5fadbf5
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jun 30 18:38:41 2010 +0200
-| | | |  summary:     update
-| | | |
-o | | |  changeset:   2022:e38e2dcabc3c
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jun 30 17:06:08 2010 +0200
-| | | |  summary:     add missing file and correct download/Makefile.am to remove
-| | | |
-o | | |  changeset:   2021:22b443fb5915
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jun 30 15:19:30 2010 +0200
-| | | |  summary:     correct pastix complex interface
-| | | |
-o | | |  changeset:   2020:b469944f3b63
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Tue Jun 29 13:59:08 2010 +0200
-| | | |  summary:     corret ff-get-dep.in
-| | | |
-o | | |  changeset:   2019:7613e18949b0
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Mon Jun 28 10:49:33 2010 +0200
-| | | |  summary:     remove stupid  assert (matrix sym is CG)
-| | | |
-o | | |  changeset:   2018:6be89be787cc
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Jun 26 22:02:09 2010 +0200
-| | | |  summary:     correct hips and pastix interface
-| | | |
-o | | |  changeset:   2017:e95f7c430680
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Sat Jun 26 21:59:25 2010 +0200
-| | | |  summary:     coorect stupid bug (due to remove static).
-| | | |
-o | | |  changeset:   2016:4b93ae958d23
-|/ / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |    date:        Sat Jun 26 21:46:05 2010 +0200
-| | |    summary:     Correct pastix
-| | |
-o | |    changeset:   2015:d14d5fe73ed9
-|\ \ \   parent:      2010:3bcb7b38c34a
-| | | |  parent:      2014:7a83a063e59e
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jun 17 10:57:12 2010 +0200
-| | | |  summary:     update README_HG
-| | | |
-| o | |  changeset:   2014:7a83a063e59e
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Thu Jun 17 09:00:54 2010 +0200
-| | | |  summary:     Modified by Antoine Le Hyaric on iris.ann.jussieu.fr
-| | | |
-| o | |  changeset:   2013:b72032208ab2
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Jun 16 17:13:41 2010 +0200
-| | | |  summary:     Modified by Antoine Le Hyaric on iris.ann.jussieu.fr
-| | | |
-| o | |  changeset:   2012:85e200ee9012
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Jun 16 15:10:12 2010 +0200
-| | | |  summary:     Modified by Antoine Le Hyaric on iris.ann.jussieu.fr
-| | | |
-| o | |  changeset:   2011:8bf4c30f32bf
-| | | |  parent:      2007:b47cd9ba79ca
-| | | |  user:        Antoine Le Hyaric
-| | | |  date:        Wed Jun 16 10:44:29 2010 +0200
-| | | |  summary:     converting from CVS to Mercurial
-| | | |
-o | | |  changeset:   2010:3bcb7b38c34a
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Thu Jun 17 10:44:16 2010 +0200
-| | | |  summary:     correct download makefile
-| | | |
-o | | |  changeset:   2009:1ba4e27c2764
-| | | |  user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | | |  date:        Wed Jun 16 21:16:16 2010 +0200
-| | | |  summary:     add build .hgrc comment
-| | | |
-o | | |  changeset:   2008:7344a2077883
-|/ / /   user:        Frederic Hecht <frederic.hecht at upmc.fr>
-| | |    date:        Wed Jun 16 18:53:05 2010 +0200
-| | |    summary:     try
-| | |
-o | |  changeset:   2007:b47cd9ba79ca
-| | |  user:        Antoine Le Hyaric
-| | |  date:        Wed Jun 16 10:31:22 2010 +0200
-| | |  summary:     converting from CVS to Mercurial
-| | |
-o | |  changeset:   2006:3bb8e4bb93b7
-| | |  parent:      1962:f5cdd2662eb6
-| | |  user:        convert-repo
-| | |  date:        Wed Jun 16 07:27:03 2010 +0000
-| | |  summary:     update tags
-| | |
-| o |  changeset:   2005:815102f120b1
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Fri Jun 04 15:26:59 2004 +0200
-| | |  summary:     Compilation ok sur Hydre.
-| | |
-| o |  changeset:   2004:6eb70bcaac52
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Fri Jun 04 12:06:26 2004 +0200
-| | |  summary:     Compilation ok sur idared
-| | |
-| o |  changeset:   2003:ff717298a121
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Thu Jun 03 16:02:58 2004 +0200
-| | |  summary:     Les bibliothèques BLAS, ARPACK et UMFPACK sont automatiquement téléchargées
-| | |
-| o |  changeset:   2002:edf4f99d7e54
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Wed Jun 02 12:39:56 2004 +0200
-| | |  summary:     Configuration des telechargements en cours
-| | |
-| o |  changeset:   2001:06b2ccabec8d
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Wed Jun 02 12:30:30 2004 +0200
-| | |  summary:     Configuration des telechargements en cours
-| | |
-| o |  changeset:   2000:092b0b13310c
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Wed Jun 02 11:34:04 2004 +0200
-| | |  summary:     Ajout des libs Blas, Arpack et Umfpack en cours sous Windows
-| | |
-| o |  changeset:   1999:3fd33de0d94b
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue Jun 01 17:11:53 2004 +0200
-| | |  summary:     Premiere installation Windows
-| | |
-| o |  changeset:   1998:0def60c97d19
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Fri May 28 14:13:19 2004 +0200
-| | |  summary:     Le rpertoir src/std contient maintenant non plus une version x11 mais
-| | |
-| o |  changeset:   1997:2eaf38b528a1
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Thu May 27 17:00:47 2004 +0200
-| | |  summary:     Toute première version de FreeFem++ compilable sur Windows avec Cygwin,
-| | |
-| o |  changeset:   1996:931a8adc93ae
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Wed May 26 11:21:29 2004 +0200
-| | |  summary:     Clarification de quelques commentaires.
-| | |
-| o |  changeset:   1995:6bc565381b22
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue May 25 16:14:21 2004 +0200
-| | |  summary:     Trois options de configuration manuelle ajoutées:
-| | |
-| o |  changeset:   1994:f40848886dac
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue May 25 15:05:32 2004 +0200
-| | |  summary:     - Modification de la procédure de test pour exécuter les scripts all.edp
-| | |
-| o |  changeset:   1993:70dc0e4a4a0a
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue May 25 10:50:09 2004 +0200
-| | |  summary:     Automake ok pour X11 sur MacOS X.
-| | |
-| o |  changeset:   1992:b140ece42b7e
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Mon May 24 19:12:19 2004 +0200
-| | |  summary:     Ajoute l'extension "-g" à la version debug des programmes en vue
-| | |
-| o |  changeset:   1991:eed90ccfb2f9
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Mon May 24 18:19:41 2004 +0200
-| | |  summary:     Automake ok sur Debian/Testing.
-| | |
-| o |  changeset:   1990:75cdc2370b75
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Mon May 24 17:31:34 2004 +0200
-| | |  summary:     Test de la configuration Automake sur macserv2+X11: compilation ok.
-| | |
-| o |  changeset:   1989:746910bc7d39
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Mon May 24 14:57:10 2004 +0200
-| | |  summary:     Début de configuration de FreeFem++ sur Windows/Cygwin.
-| | |
-| o |  changeset:   1988:9e62c7a49ce5
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Mon May 24 11:19:18 2004 +0200
-| | |  summary:     Intégration de la bibliothèque Umfpack dans la configuration et
-| | |
-| o |  changeset:   1987:e413f1a2441f
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Wed May 19 15:46:55 2004 +0200
-| | |  summary:     Ajoute src/Eigen/eigenvalue.cpp dans la bibliothèque src/fflib/libff.a
-| | |
-| o |  changeset:   1986:7c581dff37a2
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Wed May 19 15:06:18 2004 +0200
-| | |  summary:     Première version de la procédure de test de non-regression.
-| | |
-| o |  changeset:   1985:dadd01f5b506
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Wed May 19 13:52:55 2004 +0200
-| | |  summary:     Amélioration de la gestion des numéros de version.
-| | |
-| o |  changeset:   1984:aa87846f7d99
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Wed May 19 11:05:24 2004 +0200
-| | |  summary:     Automake configuré sur macserv2
-| | |
-| o |  changeset:   1983:2f557c31cc18
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue May 18 18:10:17 2004 +0200
-| | |  summary:     Configuration de la compilation sur MacOSX toujours en cours.
-| | |
-| o |  changeset:   1982:f749df09dd6a
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue May 18 18:00:00 2004 +0200
-| | |  summary:     Configuration de la procédure de compilation sur MacOSX en cours.
-| | |
-| o |  changeset:   1981:82ad80a2167a
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue May 18 17:35:36 2004 +0200
-| | |  summary:     Compilation ok sur Debian/Testing et Debian/Unstable
-| | |
-| o |  changeset:   1980:fcd66b328bfb
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue May 18 17:08:36 2004 +0200
-| | |  summary:     Modification de l'arborescence des répertoires dans src/ afin de placer
-| | |
-| o |  changeset:   1979:775f666ab880
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Tue May 18 12:02:34 2004 +0200
-| | |  summary:     Transformation de la compilation de programmes multiples (-g, -nw, -x11, ...)
-| | |
-| o |  changeset:   1978:f8525919fd4c
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Mon May 17 11:46:26 2004 +0200
-| | |  summary:     Intégration de Arpack et Umfpack en cours sur plusieurs architectures
-| | |
-| o |  changeset:   1977:c78650dfe24a
-| | |  branch:      alh-autoconf
-| | |  user:        hecht
-| | |  date:        Mon May 17 11:23:06 2004 +0200
-| | |  summary:     *** empty log message ***
-| | |
-| o |  changeset:   1976:1e1d2a42cfb1
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Fri May 14 11:48:00 2004 +0200
-| | |  summary:     Test de la présence de mpiCC ajouté (s'il est absent, la version
-| | |
-| o |  changeset:   1975:a25dd9092df7
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Fri May 14 10:08:22 2004 +0200
-| | |  summary:     Extension de la recherche de la bibliothèque BLAS.
-| | |
-| o |  changeset:   1974:74d24eef730c
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Thu May 13 14:54:09 2004 +0200
-| | |  summary:     Quelques nouveaux fichiers installés par la procédure standard Autoreconf -i.
-| | |
-| o |  changeset:   1973:dfa4239b5f28
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Thu May 13 14:45:32 2004 +0200
-| | |  summary:     La procédure Automake + Autoconf a été testée sur Hydre (Debian Testing).
-| | |
-| o |  changeset:   1972:a00adb8d7dee
-| | |  branch:      alh-autoconf
-| | |  user:        lehyaric
-| | |  date:        Thu May 13 14:08:11 2004 +0200
-| | |  summary:     Essai de configuration de autoconf en cours.
-| | |
-| o |  changeset:   1971:44cb3e95ebcc
-| | |  branch:      alh-autoconf
-| | |  parent:      0:6d28b8993874
-| | |  user:        lehyaric
-| | |  date:        Thu May 13 14:00:37 2004 +0200
-| | |  summary:     Intégration de Autoconf et Automake dans la procédure de build en cours.
-| | |
-| | o  changeset:   1970:44a4659127b5
-| | |  branch:      graphical-user-interface-branch
-| | |  tag:         merged_from_gui_branch_to_trunk
-| | |  user:        lehyaric
-| | |  date:        Thu Nov 04 17:26:54 2004 +0100
-| | |  summary:     The zoom facility is operational.
-| | |
-| | o  changeset:   1969:5c2f1f4412eb
-| | |  branch:      graphical-user-interface-branch
-| | |  user:        lehyaric
-| | |  date:        Thu Oct 28 18:18:46 2004 +0200
-| | |  summary:     IDE client currently being debugged. IDE server not connected yet.
-| | |
-| | o  changeset:   1968:0b0a37bf6daa
-| | |  branch:      graphical-user-interface-branch
-| | |  user:        lehyaric
-| | |  date:        Wed Oct 27 16:16:51 2004 +0200
-| | |  summary:     Client/server IDE compiles, but the server process does not run yet.
-| | |
-| | o  changeset:   1967:c8afa28839f5
-| | |  branch:      graphical-user-interface-branch
-| | |  user:        lehyaric
-| | |  date:        Mon Oct 25 17:29:43 2004 +0200
-| | |  summary:     client/server framework done. But the program is still far from compiling.
-| | |
-| | o  changeset:   1966:f97ec9365063
-| | |  branch:      graphical-user-interface-branch
-| | |  user:        lehyaric
-| | |  date:        Thu Oct 21 17:19:57 2004 +0200
-| | |  summary:     Client/server version of FreeFEM++ IDE currently being implemented.
-| | |
-| | o  changeset:   1965:958059001887
-| | |  branch:      graphical-user-interface-branch
-| | |  user:        lehyaric
-| | |  date:        Thu Oct 21 10:39:01 2004 +0200
-| | |  summary:     Reverts object "Global" back to static storage temporarily, while Frederic
-| | |
-| | o  changeset:   1964:82cbca1c015f
-| | |  branch:      graphical-user-interface-branch
-| | |  user:        lehyaric
-| | |  date:        Fri Oct 15 16:57:02 2004 +0200
-| | |  summary:     The IDE is programmed and compiled, but not running yet.
-| | |
-| | o  changeset:   1963:510c87bb28bb
-| |/   branch:      graphical-user-interface-branch
-| |    parent:      0:6d28b8993874
-| |    user:        lehyaric
-| |    date:        Fri Oct 08 12:21:58 2004 +0200
-| |    summary:     First model of an Integrated Development Environment for FreeFem++.
-| |
-o |  changeset:   1962:f5cdd2662eb6
-| |  user:        hecht
-| |  date:        Fri Jun 04 16:26:08 2010 +0200
-| |  summary:     coorect sunstring tools
-| |
-o |  changeset:   1961:85ef460011b5
-| |  user:        hecht
-| |  date:        Fri Jun 04 13:27:24 2010 +0200
-| |  summary:     add missing cast operator from SubString to string
-| |
-o |  changeset:   1960:9d02a34af84e
-| |  user:        morice
-| |  date:        Thu Jun 03 11:54:37 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1959:60960c8ea65f
-| |  user:        morice
-| |  date:        Wed Jun 02 18:28:54 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1958:7c18ab4a9896
-| |  user:        hecht
-| |  date:        Tue May 11 15:27:37 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1957:a54b6ce6a7e3
-| |  user:        hecht
-| |  date:        Mon May 10 23:35:08 2010 +0200
-| |  summary:     continue WHERE configure.ac
-| |
-o |  changeset:   1956:1d450f2bff65
-| |  user:        hecht
-| |  date:        Mon May 10 22:34:17 2010 +0200
-| |  summary:     add where seach
-| |
-o |  changeset:   1955:7b465c06c9d2
-| |  user:        hecht
-| |  date:        Mon May 10 13:41:42 2010 +0200
-| |  summary:     essai find where for downlaod
-| |
-o |  changeset:   1954:395d818be60c
-| |  user:        hecht
-| |  date:        Mon May 10 13:37:11 2010 +0200
-| |  summary:     correct essai
-| |
-o |  changeset:   1953:140dcce8e72d
-| |  user:        hecht
-| |  date:        Mon May 10 13:35:14 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1952:427b025b4dc9
-| |  user:        hecht
-| |  date:        Mon May 10 11:54:05 2010 +0200
-| |  summary:     essai de generation de WHERE-LIB
-| |
-o |  changeset:   1951:6e7c71e22ab1
-| |  user:        hecht
-| |  date:        Sat May 08 20:44:14 2010 +0200
-| |  summary:     change MPI parameter
-| |
-o |  changeset:   1950:b924356b1e5b
-| |  user:        hecht
-| |  date:        Thu May 06 23:20:39 2010 +0200
-| |  summary:     try to find mpi with better way
-| |
-o |  changeset:   1949:908a3c5af9ad
-| |  user:        hecht
-| |  date:        Thu May 06 16:04:20 2010 +0200
-| |  summary:     update OP
-| |
-o |  changeset:   1948:745ef197dbca
-| |  user:        hecht
-| |  date:        Thu May 06 16:04:07 2010 +0200
-| |  summary:     update OP.
-| |
-o |  changeset:   1947:96c42270bc55
-| |  user:        hecht
-| |  date:        Thu May 06 15:03:39 2010 +0200
-| |  summary:     correct  win32 trick
-| |
-o |  changeset:   1946:f7b235f1755a
-| |  user:        hecht
-| |  date:        Thu May 06 14:34:18 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1945:9c1e8dcd9100
-| |  user:        hecht
-| |  date:        Thu May 06 14:33:58 2010 +0200
-| |  summary:     co
-| |
-o |  changeset:   1944:f081711c3135
-| |  user:        hecht
-| |  date:        Fri Apr 30 17:45:19 2010 +0200
-| |  summary:     change to freeyam
-| |
-o |  changeset:   1943:9fadf6558ab1
-| |  user:        hecht
-| |  date:        Fri Apr 30 08:25:05 2010 +0200
-| |  summary:     upat configire.ac
-| |
-o |  changeset:   1942:ffa7bb4d488a
-| |  user:        hecht
-| |  date:        Thu Apr 29 23:14:40 2010 +0200
-| |  summary:     add freeyams interface
-| |
-o |  changeset:   1941:18f1981049b6
-| |  user:        hecht
-| |  date:        Thu Apr 29 23:13:49 2010 +0200
-| |  summary:     update configure.ac for add MPIRUN
-| |
-o |  changeset:   1940:a4a4f315dc9c
-| |  user:        hecht
-| |  date:        Wed Apr 28 13:22:09 2010 +0200
-| |  summary:     a not to bad download directory
-| |
-o |  changeset:   1939:9d8173ab1050
-| |  user:        hecht
-| |  date:        Tue Apr 27 22:06:49 2010 +0200
-| |  summary:     mise a jour
-| |
-o |  changeset:   1938:23e898259fef
-| |  user:        hecht
-| |  date:        Tue Apr 27 14:30:52 2010 +0200
-| |  summary:     correct mistake in download dir
-| |
-o |  changeset:   1937:828fe5ca6699
-| |  user:        hecht
-| |  date:        Fri Apr 23 18:34:16 2010 +0200
-| |  summary:     add new file
-| |
-o |  changeset:   1936:55b9e8dbc3ff
-| |  user:        hecht
-| |  date:        Fri Apr 23 18:32:39 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1935:49eca60e042b
-| |  user:        hecht
-| |  date:        Fri Apr 23 11:24:01 2010 +0200
-| |  summary:     try to build automaticaly all parallele solver (huge work)
-| |
-o |  changeset:   1934:e5293a9cdc8a
-| |  user:        hecht
-| |  date:        Thu Apr 22 11:28:45 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1933:fc1f6516d8f0
-| |  user:        morice
-| |  date:        Thu Apr 15 16:46:45 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1932:d7e0beb48e5e
-| |  user:        morice
-| |  date:        Thu Apr 15 11:22:43 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1931:629f1fe03042
-| |  user:        morice
-| |  date:        Thu Apr 15 10:59:20 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1930:0c7899097de2
-| |  user:        morice
-| |  date:        Mon Apr 12 15:45:36 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1929:a2b19da7465a
-| |  user:        morice
-| |  date:        Mon Apr 12 15:36:54 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1928:86be041b52dd
-| |  user:        morice
-| |  date:        Mon Apr 12 15:19:21 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1927:937c2afd093f
-| |  user:        morice
-| |  date:        Thu Apr 08 16:43:25 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1926:923abf222ca2
-| |  user:        hecht
-| |  date:        Thu Apr 01 21:46:42 2010 +0200
-| |  summary:     pass to version 3.8-2
-| |
-o |  changeset:   1925:aacaad3df8f6
-| |  user:        morice
-| |  date:        Thu Apr 01 14:41:54 2010 +0200
-| |  summary:     orientation for element in movemesh3
-| |
-o |  changeset:   1924:11023f67b884
-| |  user:        hecht
-| |  date:        Thu Apr 01 10:47:43 2010 +0200
-| |  summary:     add sphere6.edp
-| |
-o |  changeset:   1923:83a1575669f0
-| |  user:        hecht
-| |  date:        Wed Mar 31 15:13:12 2010 +0200
-| |  summary:     correct
-| |
-o |  changeset:   1922:04a73c54e6ee
-| |  user:        hecht
-| |  date:        Wed Mar 31 14:55:09 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1921:08a259f0ce22
-| |  user:        morice
-| |  date:        Wed Mar 31 10:54:59 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1920:e36d5fe8cd03
-| |  user:        hecht
-| |  date:        Wed Mar 31 10:50:56 2010 +0200
-| |  summary:     coorect makefile
-| |
-o |  changeset:   1919:55571ba570f9
-| |  user:        hecht
-| |  date:        Wed Mar 31 10:31:56 2010 +0200
-| |  summary:     add  new makefile
-| |
-o |  changeset:   1918:e781b347a370
-| |  user:        hecht
-| |  date:        Tue Mar 30 13:45:47 2010 +0200
-| |  summary:     update parmetis files
-| |
-o |  changeset:   1917:d90c1e2a30f9
-| |  user:        morice
-| |  date:        Mon Mar 29 11:58:30 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1916:c4bcfced6f13
-| |  user:        morice
-| |  date:        Mon Mar 29 11:19:45 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1915:b80817aa7ee7
-| |  user:        morice
-| |  date:        Mon Mar 29 11:07:16 2010 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1914:65fdb04766e3
-| |  user:        morice
-| |  date:        Fri Mar 26 17:38:56 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1913:f4000b122243
-| |  user:        morice
-| |  date:        Fri Mar 26 16:18:32 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1912:a33e7018c5a9
-| |  user:        morice
-| |  date:        Fri Mar 26 15:15:29 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1911:39e22b59029d
-| |  user:        hecht
-| |  date:        Mon Mar 22 17:18:27 2010 +0100
-| |  summary:     correct configure.ac  mpicxx  whta unset before
-| |
-o |  changeset:   1910:2c1683ac514a
-| |  user:        morice
-| |  date:        Mon Mar 22 12:24:25 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1909:8740c5457454
-| |  user:        morice
-| |  date:        Mon Mar 22 12:19:55 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1908:a3f4d18feef7
-| |  user:        morice
-| |  date:        Mon Mar 22 12:13:11 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1907:98cf6430a6d4
-| |  user:        morice
-| |  date:        Mon Mar 22 12:09:59 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1906:379861275764
-| |  user:        morice
-| |  date:        Fri Mar 19 15:37:02 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1905:b763fb4d6610
-| |  user:        morice
-| |  date:        Fri Mar 19 15:27:54 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1904:c86ddaec83d9
-| |  user:        morice
-| |  date:        Fri Mar 19 15:05:39 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1903:cd1703be1487
-| |  user:        morice
-| |  date:        Fri Mar 19 14:55:59 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1902:296133abf0d2
-| |  user:        morice
-| |  date:        Fri Mar 19 14:52:59 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1901:090d8fd21d56
-| |  user:        morice
-| |  date:        Fri Mar 19 14:43:48 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1900:8f61eac2a513
-| |  user:        morice
-| |  date:        Fri Mar 19 14:41:13 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1899:6747aaf6981a
-| |  user:        morice
-| |  date:        Fri Mar 19 14:40:11 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1898:fe5c75d39268
-| |  user:        morice
-| |  date:        Fri Mar 19 14:38:29 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1897:67532e425d3c
-| |  user:        morice
-| |  date:        Fri Mar 19 14:33:01 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1896:53e8bdd5722a
-| |  user:        morice
-| |  date:        Fri Mar 19 14:26:45 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1895:dad309f83d1a
-| |  user:        morice
-| |  date:        Fri Mar 19 14:22:24 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1894:42de76dbd6f2
-| |  user:        morice
-| |  date:        Fri Mar 19 14:18:40 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1893:6f2006878f1f
-| |  user:        morice
-| |  date:        Fri Mar 19 14:16:44 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1892:6aadc8bba606
-| |  user:        morice
-| |  date:        Fri Mar 19 13:41:21 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1891:4dc3e10452dd
-| |  user:        hecht
-| |  date:        Tue Mar 09 11:08:40 2010 +0100
-| |  summary:     correct type ilu.cpp -> ilut.cpp in makefile
-| |
-o |  changeset:   1890:6f245ceae4ce
-| |  user:        hecht
-| |  date:        Sun Mar 07 18:53:45 2010 +0100
-| |  summary:     add missing file
-| |
-o |  changeset:   1889:827ddd73fd36
-| |  user:        hecht
-| |  date:        Sun Mar 07 18:27:41 2010 +0100
-| |  summary:     pass to versio 3.8-1
-| |
-o |  changeset:   1888:216ef2fd580b
-| |  user:        hecht
-| |  date:        Sun Mar 07 18:16:30 2010 +0100
-| |  summary:     correct bug in return  real[int,int]  func
-| |
-o |  changeset:   1887:7f1fa00f6f88
-| |  user:        hecht
-| |  date:        Thu Feb 25 14:52:51 2010 +0100
-| |  summary:     add  flag in freefem++ command -ffg  'ffg command path'   with a traitement of space path.
-| |
-o |  changeset:   1886:eb7357e5511a
-| |  user:        hecht
-| |  date:        Wed Feb 10 16:30:50 2010 +0100
-| |  summary:     corct innovation
-| |
-o |  changeset:   1885:2542e1d811e8
-| |  user:        hecht
-| |  date:        Wed Feb 10 16:21:35 2010 +0100
-| |  summary:     correct  change renum triangle
-| |
-o |  changeset:   1884:2436e52254e4
-| |  user:        hecht
-| |  date:        Wed Feb 10 13:04:32 2010 +0100
-| |  summary:     add renumbering of  vertex in 2d mesh.
-| |
-o |  changeset:   1883:931d93f9ac39
-| |  user:        hecht
-| |  date:        Tue Feb 09 15:53:51 2010 +0100
-| |  summary:     add tellp tellg seekp seekg
-| |
-o |  changeset:   1882:4fc2a406c26d
-| |  user:        hecht
-| |  date:        Tue Feb 09 11:57:23 2010 +0100
-| |  summary:     add seekg and teelg
-| |
-o |  changeset:   1881:3d1237b0e08f
-| |  user:        hecht
-| |  date:        Tue Feb 09 10:00:13 2010 +0100
-| |  summary:     change all.edp build rule
-| |
-o |  changeset:   1880:10c734721deb
-| |  user:        hecht
-| |  date:        Mon Feb 08 19:58:31 2010 +0100
-| |  summary:     correct makefile
-| |
-o |  changeset:   1879:e3df8d40fb1c
-| |  user:        hecht
-| |  date:        Mon Feb 08 19:23:24 2010 +0100
-| |  summary:     add missing file
-| |
-o |  changeset:   1878:8a8a0b9efed9
-| |  user:        hecht
-| |  date:        Mon Feb 08 19:15:35 2010 +0100
-| |  summary:     correct  ' operator in lot of case
-| |
-o |  changeset:   1877:29d816db94eb
-| |  user:        hecht
-| |  date:        Thu Feb 04 20:30:07 2010 +0100
-| |  summary:     update INNOVATION
-| |
-o |  changeset:   1876:4ecd608b125d
-| |  user:        hecht
-| |  date:        Thu Feb 04 20:10:15 2010 +0100
-| |  summary:     unify lapack and fflapack load interface.
-| |
-o |  changeset:   1875:91c414a420a3
-| |  user:        morice
-| |  date:        Thu Feb 04 15:20:38 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1874:7af250db5757
-| |  user:        hecht
-| |  date:        Thu Feb 04 14:48:24 2010 +0100
-| |  summary:     correct lapack seack lib.
-| |
-o |  changeset:   1873:bf8ac5ac2f55
-| |  user:        hecht
-| |  date:        Thu Feb 04 11:15:07 2010 +0100
-| |  summary:     correct problem of include search path
-| |
-o |  changeset:   1872:fb13ee753e57
-| |  user:        hecht
-| |  date:        Wed Feb 03 09:22:35 2010 +0100
-| |  summary:     add 3d schwarz 3d
-| |
-o |  changeset:   1871:a422afbf9671
-| |  user:        hecht
-| |  date:        Tue Feb 02 20:51:19 2010 +0100
-| |  summary:     commeit tipo error
-| |
-o |  changeset:   1870:fc69c1fef879
-| |  user:        hecht
-| |  date:        Tue Feb 02 20:34:51 2010 +0100
-| |  summary:     add volume
-| |
-o |  changeset:   1869:c71bd076f2ec
-| |  user:        hecht
-| |  date:        Mon Feb 01 13:45:14 2010 +0100
-| |  summary:     add tools to get  fort wrapper name
-| |
-o |  changeset:   1868:f66e3f760562
-| |  user:        hecht
-| |  date:        Mon Feb 01 10:50:12 2010 +0100
-| |  summary:     Update co,figure.ac of MPIF77 , ...,  sizeof it, long
-| |
-o |  changeset:   1867:0d16ed2eac32
-| |  user:        hecht
-| |  date:        Sun Jan 31 17:24:57 2010 +0100
-| |  summary:     add MPI fortran and CC  interface
-| |
-o |  changeset:   1866:238d2e7a177d
-| |  user:        hecht
-| |  date:        Thu Jan 28 20:38:21 2010 +0100
-| |  summary:     correct edp to idp dir of  search .idp files
-| |
-o |  changeset:   1865:769324bb4d73
-| |  user:        hecht
-| |  date:        Thu Jan 28 17:44:36 2010 +0100
-| |  summary:     change refface= en label=
-| |
-o |  changeset:   1864:e7899c82f054
-| |  user:        hecht
-| |  date:        Mon Jan 25 09:10:25 2010 +0100
-| |  summary:     correct plot of array of FE  with new version
-| |
-o |  changeset:   1863:f298bac1900c
-| |  user:        hecht
-| |  date:        Mon Jan 25 07:17:34 2010 +0100
-| |  summary:     a littte improvante in ffglut (visu of 3d mesh)
-| |
-o |  changeset:   1862:2b1dc85030ca
-| |  user:        hecht
-| |  date:        Mon Jan 25 06:47:11 2010 +0100
-| |  summary:     ad seekp of ostream file ...
-| |
-o |  changeset:   1861:c1e242006cc8
-| |  user:        hecht
-| |  date:        Mon Jan 25 06:40:08 2010 +0100
-| |  summary:     correct topy in 3d plot
-| |
-o |  changeset:   1860:bf0657d69e94
-| |  user:        hecht
-| |  date:        Mon Jan 25 05:57:40 2010 +0100
-| |  summary:     remove F77_WRAPPER form configure trap on my mac with fort77
-| |
-o |  changeset:   1859:fe7b9cd0f709
-| |  user:        hecht
-| |  date:        Mon Jan 25 05:47:31 2010 +0100
-| |  summary:     pass to version 3.8
-| |
-o |  changeset:   1858:a9c19984fadd
-| |  user:        hecht
-| |  date:        Thu Jan 14 16:18:03 2010 +0100
-| |  summary:     coorect computation of eigen value on complex full matrix
-| |
-o |  changeset:   1857:f51530740c5c
-| |  user:        hecht
-| |  date:        Wed Jan 13 22:41:46 2010 +0100
-| |  summary:     add possibility  to put array in int1d,int2d,int3d,on key word to set
-| |
-o |  changeset:   1856:e6130f5019ba
-| |  user:        hecht
-| |  date:        Wed Jan 13 18:06:46 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1855:52a7add0311b
-| |  user:        hecht
-| |  date:        Wed Jan 13 18:03:59 2010 +0100
-| |  summary:     for mingw freeglut version ....
-| |
-o |  changeset:   1854:b7177e4145d5
-| |  user:        hecht
-| |  date:        Wed Jan 13 17:28:33 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1853:6d8ecc9202f5
-| |  user:        hecht
-| |  date:        Wed Jan 13 17:24:39 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1852:9bed1f5c517e
-| |  user:        hecht
-| |  date:        Wed Jan 13 17:16:01 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1851:5cc23ea21a59
-| |  user:        hecht
-| |  date:        Wed Jan 13 16:06:17 2010 +0100
-| |  summary:     correct typo in configure.ac under win32
-| |
-o |  changeset:   1850:2ba47239afb6
-| |  user:        hecht
-| |  date:        Wed Jan 13 15:14:59 2010 +0100
-| |  summary:     correct to must cou
-| |
-o |  changeset:   1849:421529d5cb67
-| |  user:        hecht
-| |  date:        Wed Jan 13 11:02:08 2010 +0100
-| |  summary:     correction in bamg for 2d ring shaped sub domaines
-| |
-o |  changeset:   1848:795d2400a80a
-| |  user:        hecht
-| |  date:        Tue Jan 12 23:38:00 2010 +0100
-| |  summary:     patch gmsh Christophe Trophime <christophe.trophime at grenoble.cnrs.fr>
-| |
-o |  changeset:   1847:03c7f9f5f133
-| |  user:        hecht
-| |  date:        Tue Jan 12 21:17:48 2010 +0100
-| |  summary:     try to build configure for mingw ...
-| |
-o |  changeset:   1846:48b1cd3c2e4b
-| |  user:        morice
-| |  date:        Tue Jan 12 16:15:59 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1845:f7b3d045a617
-| |  user:        hecht
-| |  date:        Tue Jan 12 13:53:05 2010 +0100
-| |  summary:     add exemple
-| |
-o |  changeset:   1844:c603be120d2d
-| |  user:        atenekeng
-| |  date:        Mon Jan 11 23:19:32 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1843:07d39562f84d
-| |  user:        hecht
-| |  date:        Mon Jan 11 21:02:55 2010 +0100
-| |  summary:     ass Superlu to version 4.0
-| |
-o |  changeset:   1842:9652d9a1931e
-| |  user:        hecht
-| |  date:        Mon Jan 11 17:52:18 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1841:735fdff39099
-| |  user:        hecht
-| |  date:        Sun Jan 10 22:47:14 2010 +0100
-| |  summary:     correct spuriou cout
-| |
-o |  changeset:   1840:6c1591ad5660
-| |  user:        morice
-| |  date:        Tue Jan 05 15:46:48 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1839:3b36b0cdd71f
-| |  user:        morice
-| |  date:        Tue Jan 05 14:10:13 2010 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1838:6453b34c9217
-| |  user:        hecht
-| |  date:        Sun Dec 27 19:17:04 2009 +0100
-| |  summary:     correct fortran link edition in case of incompatible g7è/gfortran and g++
-| |
-o |  changeset:   1837:5110dfd736f3
-| |  user:        hecht
-| |  date:        Sun Dec 27 19:01:36 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1836:6b80ef98c41c
-| |  user:        hecht
-| |  date:        Sun Dec 27 18:55:46 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1835:bc55abed1921
-| |  user:        hecht
-| |  date:        Sun Dec 27 18:51:04 2009 +0100
-| |  summary:     coorect gfrotran / lib pb
-| |
-o |  changeset:   1834:02bcb3362a47
-| |  user:        hecht
-| |  date:        Sun Dec 27 18:43:44 2009 +0100
-| |  summary:     correct configure un case of gfortran with not same version than gcc.
-| |
-o |  changeset:   1833:8ae1bbb6b9e1
-| |  user:        hecht
-| |  date:        Sun Dec 27 18:24:51 2009 +0100
-| |  summary:     correct iovtk.cpp (add tekplot case)
-| |
-o |  changeset:   1832:6e3050d3aacf
-| |  user:        hecht
-| |  date:        Sun Dec 27 12:09:54 2009 +0100
-| |  summary:     add build interpolation interpolation matrix in 3d
-| |
-o |  changeset:   1831:d117aa62e8d2
-| |  user:        hecht
-| |  date:        Fri Dec 18 10:00:30 2009 +0100
-| |  summary:     pass in version 3.7-1 and correct compilation CFLAGS  under  64 architecture.
-| |
-o |  changeset:   1830:749462a2fc20
-| |  user:        hecht
-| |  date:        Fri Dec 11 14:23:48 2009 +0100
-| |  summary:     trunc3d.cpp is now in mesh3.cpp
-| |
-o |  changeset:   1829:925d3a721e3f
-| |  user:        hecht
-| |  date:        Thu Dec 10 21:38:32 2009 +0100
-| |  summary:     add wait
-| |
-o |  changeset:   1828:a2e92cb3e6e3
-| |  user:        hecht
-| |  date:        Thu Dec 10 21:34:40 2009 +0100
-| |  summary:     remove this supite file in cvs
-| |
-o |  changeset:   1827:58d02edf2d0e
-| |  user:        hecht
-| |  date:        Thu Dec 10 21:33:19 2009 +0100
-| |  summary:     add trunc mesh in 3d.
-| |
-o |  changeset:   1826:dc4d33da9a55
-| |  user:        morice
-| |  date:        Thu Dec 10 16:35:06 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1825:6630293ece4e
-| |  user:        morice
-| |  date:        Thu Dec 10 16:25:01 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1824:e421852ce6a5
-| |  user:        morice
-| |  date:        Thu Dec 10 11:17:49 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1823:fff1817b0b36
-| |  user:        hecht
-| |  date:        Thu Dec 10 10:18:37 2009 +0100
-| |  summary:     change lg.y -> lg.ypp
-| |
-o |  changeset:   1822:40b7d100c5d8
-| |  user:        hecht
-| |  date:        Tue Dec 08 11:37:48 2009 +0100
-| |  summary:     suite
-| |
-o |  changeset:   1821:56eb1768a904
-| |  user:        hecht
-| |  date:        Tue Dec 08 11:36:21 2009 +0100
-| |  summary:     add info in INNOVATION
-| |
-o |  changeset:   1820:f7d8b4e0ae1d
-| |  user:        hecht
-| |  date:        Mon Dec 07 22:22:27 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1819:c1c8a95285bb
-| |  user:        hecht
-| |  date:        Mon Dec 07 18:17:16 2009 +0100
-| |  summary:     add example
-| |
-o |  changeset:   1818:fed850c6eb0f
-| |  user:        hecht
-| |  date:        Mon Dec 07 16:23:19 2009 +0100
-| |  summary:     do best plt of 3d meshes
-| |
-o |  changeset:   1817:c057f46814b0
-| |  user:        hecht
-| |  date:        Mon Dec 07 09:01:34 2009 +0100
-| |  summary:     coorect cube.idp and change 3d plot of mesh
-| |
-o |  changeset:   1816:72020a794a9e
-| |  user:        hecht
-| |  date:        Sat Dec 05 18:16:25 2009 +0100
-| |  summary:     remove imtempestive cout.
-| |
-o |  changeset:   1815:47a39d936529
-| |  user:        hecht
-| |  date:        Fri Dec 04 15:53:33 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1814:db02f8bf3214
-| |  user:        hecht
-| |  date:        Fri Dec 04 15:43:18 2009 +0100
-| |  summary:     correct FFLIGS flags of windows
-| |
-o |  changeset:   1813:137e79954fe7
-| |  user:        hecht
-| |  date:        Fri Dec 04 15:36:17 2009 +0100
-| |  summary:     remove copy of  header file form download directory
-| |
-o |  changeset:   1812:b4e4adbe84a3
-| |  user:        hecht
-| |  date:        Fri Dec 04 15:13:50 2009 +0100
-| |  summary:     add missing file
-| |
-o |  changeset:   1811:180008496671
-| |  user:        hecht
-| |  date:        Fri Dec 04 15:11:20 2009 +0100
-| |  summary:     add missing file
-| |
-o |  changeset:   1810:d8f3474d197b
-| |  user:        hecht
-| |  date:        Fri Dec 04 14:59:43 2009 +0100
-| |  summary:     correct   fortran flag in ff-c++ command
-| |
-o |  changeset:   1809:d52e91d99886
-| |  user:        hecht
-| |  date:        Fri Dec 04 14:37:58 2009 +0100
-| |  summary:     add new files for newuao optimiserx
-| |
-o |  changeset:   1808:625009875e58
-| |  user:        hecht
-| |  date:        Fri Dec 04 13:44:30 2009 +0100
-| |  summary:     change in innovation
-| |
-o |  changeset:   1807:10390fccf8b9
-| |  user:        hecht
-| |  date:        Thu Dec 03 10:49:42 2009 +0100
-| |  summary:     correct problem of free mesh to early in case off gluing
-| |
-o |  changeset:   1806:fc93d1454f21
-| |  user:        hecht
-| |  date:        Fri Nov 27 11:17:05 2009 +0100
-| |  summary:     add matrix<int>[int] type in grammar
-| |
-o |  changeset:   1805:bb43bba84bdf
-| |  user:        hecht
-| |  date:        Fri Nov 20 09:38:23 2009 +0100
-| |  summary:     remove warning
-| |
-o |  changeset:   1804:bff4956d8430
-| |  user:        hecht
-| |  date:        Fri Nov 20 09:35:47 2009 +0100
-| |  summary:     remove  some warning
-| |
-o |  changeset:   1803:08437a27c2a6
-| |  user:        hecht
-| |  date:        Thu Nov 19 22:14:40 2009 +0100
-| |  summary:     add example
-| |
-o |  changeset:   1802:24c6e35d1bda
-| |  user:        hecht
-| |  date:        Thu Nov 19 20:41:26 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1801:b22f5fecc9fa
-| |  user:        hecht
-| |  date:        Thu Nov 19 20:38:51 2009 +0100
-| |  summary:     add two examples
-| |
-o |  changeset:   1800:ea3546059a3b
-| |  user:        morice
-| |  date:        Thu Nov 19 16:49:22 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1799:6828802fdc80
-| |  user:        hecht
-| |  date:        Sat Nov 14 22:51:05 2009 +0100
-| |  summary:     in ffglut remove seg to small ???
-| |
-o |  changeset:   1798:416458502277
-| |  user:        hecht
-| |  date:        Fri Nov 13 22:32:37 2009 +0100
-| |  summary:     pass to version 3.7
-| |
-o |  changeset:   1797:5009b00a38ce
-| |  user:        hecht
-| |  date:        Fri Nov 13 12:19:41 2009 +0100
-| |  summary:     correct spouriou print
-| |
-o |  changeset:   1796:b1f05929d2d8
-| |  user:        hecht
-| |  date:        Wed Nov 11 22:46:19 2009 +0100
-| |  summary:     change
-| |
-o |  changeset:   1795:9543c5eca7b7
-| |  user:        hecht
-| |  date:        Wed Nov 11 22:45:29 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1794:a736d190fc78
-| |  user:        hecht
-| |  date:        Tue Nov 10 20:51:54 2009 +0100
-| |  summary:     correct install stuff
-| |
-o |  changeset:   1793:33efbea32b77
-| |  user:        hecht
-| |  date:        Tue Nov 10 20:28:07 2009 +0100
-| |  summary:     build WHERE_LIBRARY-config file for ff-c++ tools
-| |
-o |  changeset:   1792:1564d9e47726
-| |  user:        hecht
-| |  date:        Tue Nov 10 15:36:29 2009 +0100
-| |  summary:     add clapack.h interface
-| |
-o |  changeset:   1791:5df6bba70026
-| |  user:        hecht
-| |  date:        Tue Nov 10 14:33:50 2009 +0100
-| |  summary:     correct vtk files
-| |
-o |  changeset:   1790:9b3614fade98
-| |  user:        hecht
-| |  date:        Mon Nov 09 16:24:48 2009 +0100
-| |  summary:     passe to version  3.6-1
-| |
-o |  changeset:   1789:d4ba4d32c211
-| |  user:        hecht
-| |  date:        Mon Nov 09 15:22:29 2009 +0100
-| |  summary:     add PICHON stuff (for brute force seaching tet )
-| |
-o |  changeset:   1788:9066a9a4c83a
-| |  user:        hecht
-| |  date:        Mon Nov 09 11:59:11 2009 +0100
-| |  summary:     correct problem of missing to 2 functions with g++-4.4
-| |
-o |  changeset:   1787:c8afce8d6282
-| |  user:        hecht
-| |  date:        Mon Nov 09 11:56:46 2009 +0100
-| |  summary:     correct mistake this g+= 4.4 compiler
-| |
-o |  changeset:   1786:c7940961398f
-| |  user:        morice
-| |  date:        Fri Nov 06 11:46:05 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1785:5b9105ef4314
-| |  user:        morice
-| |  date:        Fri Nov 06 11:44:44 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1784:e8f258f9446a
-| |  user:        morice
-| |  date:        Fri Nov 06 11:41:40 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1783:3f117c9abc8d
-| |  user:        morice
-| |  date:        Fri Nov 06 10:50:32 2009 +0100
-| |  summary:     add new tetgen and medit edp file CVS: ----------------------------------------------------------------------
-| |
-o |  changeset:   1782:c6eda2a03844
-| |  user:        hecht
-| |  date:        Thu Nov 05 11:49:07 2009 +0100
-| |  summary:     add missing file.
-| |
-o |  changeset:   1781:0a6031f38b29
-| |  user:        hecht
-| |  date:        Wed Nov 04 12:56:48 2009 +0100
-| |  summary:     change innovation
-| |
-o |  changeset:   1780:8b10917a60ef
-| |  user:        hecht
-| |  date:        Tue Nov 03 21:38:30 2009 +0100
-| |  summary:     add auto stuff
-| |
-o |  changeset:   1779:8938281ebc2e
-| |  user:        hecht
-| |  date:        Tue Nov 03 21:29:32 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1778:2d9b15732841
-| |  user:        hecht
-| |  date:        Tue Nov 03 20:54:39 2009 +0100
-| |  summary:     passe to version 1.4.3 of tetgen.
-| |
-o |  changeset:   1777:d7ff001547be
-| |  user:        hecht
-| |  date:        Tue Oct 27 17:22:13 2009 +0100
-| |  summary:     add eigen value full
-| |
-o |  changeset:   1776:c8de02c7971f
-| |  user:        hecht
-| |  date:        Sun Oct 25 18:18:58 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1775:abb3258333e5
-| |  user:        hecht
-| |  date:        Sun Oct 25 18:03:03 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1774:ad90f689e762
-| |  user:        hecht
-| |  date:        Wed Oct 21 22:19:30 2009 +0200
-| |  summary:     update INNOVATION file
-| |
-o |  changeset:   1773:0fca1c94a0b5
-| |  user:        hecht
-| |  date:        Wed Oct 21 22:16:24 2009 +0200
-| |  summary:     passe to version 3.6
-| |
-o |  changeset:   1772:961bccd81738
-| |  user:        hecht
-| |  date:        Wed Oct 21 22:00:51 2009 +0200
-| |  summary:     coorect .cpp and simlify
-| |
-o |  changeset:   1771:1595300c7f81
-| |  user:        hecht
-| |  date:        Wed Oct 21 20:35:47 2009 +0200
-| |  summary:     New version of funcTemplate.cpp with  function with stack +  1 2 et 3 argument
-| |
-o |  changeset:   1770:12f4eb1a979a
-| |  user:        hecht
-| |  date:        Tue Oct 20 13:32:54 2009 +0200
-| |  summary:     add tools to read .pcm files for optic-flow computation
-| |
-o |  changeset:   1769:d449b7c05ec5
-| |  user:        hecht
-| |  date:        Mon Oct 19 22:46:57 2009 +0200
-| |  summary:     add tools to read pcm opticflow
-| |
-o |  changeset:   1768:41a11cfe6bd1
-| |  user:        hecht
-| |  date:        Thu Oct 15 23:23:01 2009 +0200
-| |  summary:     coorect assert error in gmres without preconditionner.
-| |
-o |  changeset:   1767:037d651d0a6b
-| |  user:        hecht
-| |  date:        Wed Oct 14 23:54:33 2009 +0200
-| |  summary:     You find a very hard bug to correct s ( a small miss tapping)
-| |
-o |  changeset:   1766:3e99aae2de38
-| |  user:        morice
-| |  date:        Wed Oct 14 15:25:40 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1765:5adb0c1b49f2
-| |  user:        morice
-| |  date:        Tue Oct 13 16:48:58 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1764:66936e3bfe84
-| |  user:        hecht
-| |  date:        Tue Oct 13 15:41:03 2009 +0200
-| |  summary:     correct a very old bug in bamg in case of mesh with internal
-| |
-o |  changeset:   1763:0d06bacf7d81
-| |  user:        morice
-| |  date:        Fri Oct 09 22:15:38 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1762:2a7535cf3b0c
-| |  user:        hecht
-| |  date:        Wed Oct 07 13:06:47 2009 +0200
-| |  summary:     correct print error
-| |
-o |  changeset:   1761:e90b49294374
-| |  user:        hecht
-| |  date:        Wed Oct 07 04:54:55 2009 +0200
-| |  summary:     add chech of size of fr-ortran integer, force fortran integer to by 4 bytes with  f2c
-| |
-o |  changeset:   1760:a1266eb439fe
-| |  user:        hecht
-| |  date:        Tue Oct 06 23:01:26 2009 +0200
-| |  summary:     correct  msitake in complex eigenvalue problem.
-| |
-o |  changeset:   1759:8af62e433f06
-| |  user:        hecht
-| |  date:        Mon Sep 28 22:53:48 2009 +0200
-| |  summary:     coorect install problem undex windows and Macos.
-| |
-o |  changeset:   1758:2d14d6567664
-| |  user:        hecht
-| |  date:        Mon Sep 28 21:24:24 2009 +0200
-| |  summary:     add __VC__ under windows (cygwin)
-| |
-o |  changeset:   1757:b34002c2d4ff
-| |  user:        hecht
-| |  date:        Mon Sep 28 18:43:06 2009 +0200
-| |  summary:     correct miss tapping in fflaunch++exe
-| |
-o |  changeset:   1756:4c4dc2c8f823
-| |  user:        hecht
-| |  date:        Mon Sep 28 18:02:18 2009 +0200
-| |  summary:     coorect miss take in launchff++.cpp filename
-| |
-o |  changeset:   1755:79cc99cce5ab
-| |  user:        hecht
-| |  date:        Mon Sep 28 18:01:21 2009 +0200
-| |  summary:     corect misstake in filename
-| |
-o |  changeset:   1754:ff040fb58b23
-| |  user:        morice
-| |  date:        Mon Sep 28 15:46:22 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1753:0b20838e0191
-| |  user:        hecht
-| |  date:        Thu Sep 24 16:51:20 2009 +0200
-| |  summary:     coorect d-Leman.edp      deep is under 0...   (before all tet a < 0)
-| |
-o |  changeset:   1752:f93cbf193dc5
-| |  user:        hecht
-| |  date:        Thu Sep 24 16:32:45 2009 +0200
-| |  summary:     coorect plot of 3d meshes
-| |
-o |  changeset:   1751:9b61149decbb
-| |  user:        hecht
-| |  date:        Thu Sep 24 14:38:15 2009 +0200
-| |  summary:     corect a stop test
-| |
-o |  changeset:   1750:18c376484a0b
-| |  user:        hecht
-| |  date:        Thu Sep 24 14:00:06 2009 +0200
-| |  summary:     correct big bug in case of 3D fepace with constante number of df / node.
-| |
-o |  changeset:   1749:13568ef94d25
-| |  user:        hecht
-| |  date:        Wed Sep 23 23:28:35 2009 +0200
-| |  summary:     continuning array of vect FE func 3d
-| |
-o |  changeset:   1748:9ca65f60265e
-| |  user:        hecht
-| |  date:        Wed Sep 23 21:53:47 2009 +0200
-| |  summary:     correct makefile build WHERE-LIB   -download
-| |
-o |  changeset:   1747:9ad5a70d9da5
-| |  user:        hecht
-| |  date:        Wed Sep 23 21:44:43 2009 +0200
-| |  summary:     add two examples
-| |
-o |  changeset:   1746:636e0dacf420
-| |  user:        hecht
-| |  date:        Wed Sep 23 21:28:34 2009 +0200
-| |  summary:     correct set array of vectorail finite element functions
-| |
-o |  changeset:   1745:fd499d9e6f28
-| |  user:        hecht
-| |  date:        Tue Sep 22 22:59:17 2009 +0200
-| |  summary:     rebuild makefile
-| |
-o |  changeset:   1744:c0f785566dae
-| |  user:        hecht
-| |  date:        Tue Sep 22 18:22:10 2009 +0200
-| |  summary:     add patch filexs
-| |
-o |  changeset:   1743:25480c53626d
-| |  user:        hecht
-| |  date:        Tue Sep 22 11:09:39 2009 +0200
-| |  summary:     corct make fo intall
-| |
-o |  changeset:   1742:5af770aaac29
-| |  user:        hecht
-| |  date:        Tue Sep 22 11:01:06 2009 +0200
-| |  summary:     correct makefile for metis
-| |
-o |  changeset:   1741:e06fc8bfa3e5
-| |  user:        hecht
-| |  date:        Tue Sep 22 10:54:59 2009 +0200
-| |  summary:     remove file from data base
-| |
-o |  changeset:   1740:4142e57dd0e6
-| |  user:        hecht
-| |  date:        Tue Sep 22 10:54:00 2009 +0200
-| |  summary:     coorect install makes
-| |
-o |  changeset:   1739:76b29386160e
-| |  user:        hecht
-| |  date:        Tue Sep 22 10:43:36 2009 +0200
-| |  summary:     continius ff-c++ auto
-| |
-o |  changeset:   1738:0695dbc17cb0
-| |  user:        hecht
-| |  date:        Tue Sep 22 10:25:01 2009 +0200
-| |  summary:     add missing file
-| |
-o |  changeset:   1737:a6f7a118aff7
-| |  user:        hecht
-| |  date:        Tue Sep 22 10:18:56 2009 +0200
-| |  summary:     rebuild makefiles
-| |
-o |  changeset:   1736:879121c3ec58
-| |  user:        hecht
-| |  date:        Tue Sep 22 10:18:19 2009 +0200
-| |  summary:     change ff-c++ off auto dep.  find
-| |
-o |  changeset:   1735:7a7c7c8057db
-| |  user:        hecht
-| |  date:        Mon Sep 21 22:44:01 2009 +0200
-| |  summary:     addfile for ff-pkg-download.in
-| |
-o |  changeset:   1734:15ae6f084ad1
-| |  user:        hecht
-| |  date:        Mon Sep 21 22:43:01 2009 +0200
-| |  summary:     change movemesh3d to movemesh3
-| |
-o |  changeset:   1733:5e49222d0c4d
-| |  user:        hecht
-| |  date:        Mon Sep 21 22:38:53 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1732:878dac9dd908
-| |  user:        morice
-| |  date:        Wed Sep 16 11:54:52 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1731:4f2fa344dc0b
-| |  user:        hecht
-| |  date:        Wed Sep 09 18:17:15 2009 +0200
-| |  summary:     add missing resize of sparse complex matrix
-| |
-o |  changeset:   1730:9d61b8cae5c5
-| |  user:        hecht
-| |  date:        Mon Sep 07 09:50:52 2009 +0200
-| |  summary:     add metis
-| |
-o |  changeset:   1729:90e9c94f2793
-| |  user:        morice
-| |  date:        Fri Sep 04 11:41:30 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1728:c5dbee61cf58
-| |  user:        morice
-| |  date:        Fri Sep 04 11:40:09 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1727:607657f6d2b8
-| |  user:        hecht
-| |  date:        Thu Sep 03 09:51:01 2009 +0200
-| |  summary:     add tools of automatics find libs and include
-| |
-o |  changeset:   1726:1ba4ebcbf0d5
-| |  user:        morice
-| |  date:        Thu Sep 03 08:26:47 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1725:3de000c981b5
-| |  user:        hecht
-| |  date:        Wed Sep 02 21:45:38 2009 +0200
-| |  summary:     add metis link
-| |
-o |  changeset:   1724:260e3f9628d2
-| |  user:        hecht
-| |  date:        Wed Sep 02 09:58:04 2009 +0200
-| |  summary:     add MPI_com in solver prameter
-| |
-o |  changeset:   1723:5399bf49daa4
-| |  user:        morice
-| |  date:        Tue Sep 01 12:41:02 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1722:a04f554f152e
-| |  user:        morice
-| |  date:        Tue Sep 01 12:30:05 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1721:3edc358fb626
-| |  user:        morice
-| |  date:        Tue Sep 01 10:28:55 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1720:f7df348e0c24
-| |  user:        hecht
-| |  date:        Mon Aug 31 10:59:34 2009 +0200
-| |  summary:     CORRECT IN CASE OF mpich
-| |
-o |  changeset:   1719:4a7c39d7edfb
-| |  user:        hecht
-| |  date:        Fri Aug 28 18:11:42 2009 +0200
-| |  summary:     add missing file to coorect trap tst on ubuntu
-| |
-o |  changeset:   1718:2d6aa202da95
-| |  user:        hecht
-| |  date:        Fri Aug 28 17:52:20 2009 +0200
-| |  summary:     coorect README
-| |
-o |  changeset:   1717:a9cc7f75566d
-| |  user:        hecht
-| |  date:        Fri Aug 28 17:27:12 2009 +0200
-| |  summary:     add file to remove trap in check of eigen exampel
-| |
-o |  changeset:   1716:b33bbe62d06f
-| |  user:        hecht
-| |  date:        Fri Aug 28 15:08:18 2009 +0200
-| |  summary:     coorect INNOVATION
-| |
-o |  changeset:   1715:780e891f2505
-| |  user:        hecht
-| |  date:        Thu Aug 27 22:00:32 2009 +0200
-| |  summary:     coorect mistake in parallelempi.cpp
-| |
-o |  changeset:   1714:ee657855b460
-| |  user:        hecht
-| |  date:        Thu Aug 27 21:55:33 2009 +0200
-| |  summary:     commit version 3.5  see innvovation for all change
-| |
-o |  changeset:   1713:d10318b35b4d
-| |  user:        hecht
-| |  date:        Thu Aug 27 16:03:16 2009 +0200
-| |  summary:     passe to versio 3.5  with a real mpi interface.
-| |
-o |  changeset:   1712:f2ac13edc9e2
-| |  user:        hecht
-| |  date:        Wed Aug 26 23:02:52 2009 +0200
-| |  summary:     do a not to bad  mpi version
-| |
-o |  changeset:   1711:9dcb3988b48a
-| |  user:        hecht
-| |  date:        Tue Aug 25 16:06:27 2009 +0200
-| |  summary:     add mpiBarrier + const of mpiGroup and mpiComm (boggus ???)
-| |
-o |  changeset:   1710:728541dd2b77
-| |  user:        hecht
-| |  date:        Tue Aug 25 10:06:23 2009 +0200
-| |  summary:     add   Scatter, Gather, etc in mpi
-| |
-o |  changeset:   1709:a15319a40921
-| |  user:        hecht
-| |  date:        Mon Aug 24 23:40:24 2009 +0200
-| |  summary:     correct mpi version see innovation for detail
-| |
-o |  changeset:   1708:3dc151cd6a93
-| |  user:        hecht
-| |  date:        Sat Aug 08 21:23:53 2009 +0200
-| |  summary:     bmo is boggus and correct mistapping in convect_dervieux
-| |
-o |  changeset:   1707:54225cd7c163
-| |  user:        hecht
-| |  date:        Sat Aug 08 21:12:14 2009 +0200
-| |  summary:     correct convect files
-| |
-o |  changeset:   1706:ea9ea9efff60
-| |  user:        hecht
-| |  date:        Sat Aug 08 20:57:06 2009 +0200
-| |  summary:     change a little, correct a stop test and do a fast version
-| |
-o |  changeset:   1705:5feb310149d3
-| |  user:        hecht
-| |  date:        Sat Aug 08 20:08:41 2009 +0200
-| |  summary:     change INNOVATION
-| |
-o |  changeset:   1704:8bdb3c81f330
-| |  user:        hecht
-| |  date:        Sat Aug 08 19:11:18 2009 +0200
-| |  summary:     build version 3.4-2
-| |
-o |  changeset:   1703:4b463c647ff0
-| |  user:        hecht
-| |  date:        Sat Aug 08 18:25:06 2009 +0200
-| |  summary:     do  new mesh inquire also in 3d
-| |
-o |  changeset:   1702:e91332ff3a6a
-| |  user:        hecht
-| |  date:        Sat Aug 08 10:53:20 2009 +0200
-| |  summary:     correct mesh.edp example for new mesh inquiring
-| |
-o |  changeset:   1701:eeab886b46aa
-| |  user:        hecht
-| |  date:        Fri Aug 07 22:40:17 2009 +0200
-| |  summary:     add tools to inquire boudnary directly in freefem++
-| |
-o |  changeset:   1700:24983130c3d7
-| |  user:        morice
-| |  date:        Sun Aug 02 14:50:37 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1699:2a03691fde42
-| |  user:        morice
-| |  date:        Thu Jul 30 12:55:18 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1698:77cc1c512479
-| |  user:        morice
-| |  date:        Thu Jul 30 07:42:48 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1697:6f77234eaec3
-| |  user:        morice
-| |  date:        Tue Jul 28 14:42:14 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1696:2682e3a39f4d
-| |  user:        morice
-| |  date:        Tue Jul 28 14:40:47 2009 +0200
-| |  summary:     :q
-| |
-o |  changeset:   1695:80772719f92e
-| |  user:        hecht
-| |  date:        Thu Jul 23 12:29:10 2009 +0200
-| |  summary:     add un first example ..
-| |
-o |  changeset:   1694:439fb84bb0eb
-| |  user:        hecht
-| |  date:        Thu Jul 23 12:17:04 2009 +0200
-| |  summary:     rewrite of mpi version ...
-| |
-o |  changeset:   1693:a7a22582cfb4
-| |  user:        hecht
-| |  date:        Wed Jul 22 22:41:32 2009 +0200
-| |  summary:     retore good version
-| |
-o |  changeset:   1692:b15405b6bd05
-| |  user:        hecht
-| |  date:        Wed Jul 22 11:30:29 2009 +0200
-| |  summary:     correct INNOTION
-| |
-o |  changeset:   1691:82f9057773f4
-| |  user:        hecht
-| |  date:        Wed Jul 22 11:28:16 2009 +0200
-| |  summary:     add plot of array of meshes and array of finite element function.
-| |
-o |  changeset:   1690:8acf1467c8c9
-| |  user:        hecht
-| |  date:        Mon Jul 20 22:30:52 2009 +0200
-| |  summary:     go to version 3.4-1
-| |
-o |  changeset:   1689:6fcd68db92d1
-| |  user:        hecht
-| |  date:        Mon Jul 20 18:23:45 2009 +0200
-| |  summary:     cosmetic in ffglut
-| |
-o |  changeset:   1688:d3b315513ffe
-| |  user:        hecht
-| |  date:        Mon Jul 20 18:12:06 2009 +0200
-| |  summary:     update ffglut
-| |
-o |  changeset:   1687:5505e8ebf028
-| |  user:        hecht
-| |  date:        Fri Jul 10 11:02:37 2009 +0200
-| |  summary:     correct load.link.in  or un test
-| |
-o |  changeset:   1686:ae67b591599d
-| |  user:        hecht
-| |  date:        Fri Jul 10 10:53:56 2009 +0200
-| |  summary:     coorect ff-c++ on win3é
-| |
-o |  changeset:   1685:f384c5351ff5
-| |  user:        hecht
-| |  date:        Fri Jul 10 10:19:05 2009 +0200
-| |  summary:     correct ff-c++ of windows case and cygwin
-| |
-o |  changeset:   1684:321b323db9a5
-| |  user:        hecht
-| |  date:        Fri Jul 10 09:36:21 2009 +0200
-| |  summary:     add BEM.epd and launchff.cpp ( a wrapper for windows)
-| |
-o |  changeset:   1683:d2dee6881044
-| |  user:        hecht
-| |  date:        Thu Jul 09 18:31:39 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1682:b4e586ac5a72
-| |  user:        hecht
-| |  date:        Thu Jul 09 17:50:43 2009 +0200
-| |  summary:     add -wait parameter for window launchff++  wrapper
-| |
-o |  changeset:   1681:38744c349358
-| |  user:        hecht
-| |  date:        Thu Jul 09 17:49:50 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1680:c75e3e2fa17e
-| |  user:        morice
-| |  date:        Wed Jul 08 17:58:43 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1679:807c14a16f98
-| |  user:        morice
-| |  date:        Wed Jul 08 17:22:08 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1678:05f5547c5d1d
-| |  user:        morice
-| |  date:        Wed Jul 08 16:55:41 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1677:1e5e278eedaa
-| |  user:        morice
-| |  date:        Wed Jul 08 14:36:26 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1676:8d2f6a01f018
-| |  user:        hecht
-| |  date:        Tue Jul 07 09:07:24 2009 +0200
-| |  summary:     correct mpi version
-| |
-o |  changeset:   1675:df7b6dab61b1
-| |  user:        hecht
-| |  date:        Mon Jul 06 16:33:34 2009 +0200
-| |  summary:     add mpi tools (in test) and correct buyild matrix interplation
-| |
-o |  changeset:   1674:63f2ef1d3223
-| |  user:        morice
-| |  date:        Thu Jul 02 18:11:49 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1673:d0503b06c6db
-| |  user:        hecht
-| |  date:        Tue Jun 30 21:06:38 2009 +0200
-| |  summary:     correct PlotStream io in case of array with check.
-| |
-o |  changeset:   1672:9a2c7fd9711d
-| |  user:        hecht
-| |  date:        Mon Jun 29 18:45:51 2009 +0200
-| |  summary:     change crimon-freefem++.zip in crimson-freefem++.zip
-| |
-o |  changeset:   1671:68133db4e985
-| |  user:        hecht
-| |  date:        Mon Jun 29 16:01:42 2009 +0200
-| |  summary:     p	ss to version 3.4
-| |
-o |  changeset:   1670:eda4376bbd73
-| |  user:        hecht
-| |  date:        Tue Jun 23 18:13:40 2009 +0200
-| |  summary:     change ffglut to bee more safe (version)
-| |
-o |  changeset:   1669:2c7d0aa50098
-| |  user:        hecht
-| |  date:        Thu Jun 18 09:45:06 2009 +0200
-| |  summary:     correct include  hpd -> idp
-| |
-o |  changeset:   1668:1e5e630dddd5
-| |  user:        hecht
-| |  date:        Tue Jun 16 14:42:59 2009 +0200
-| |  summary:     coorect bug on window
-| |
-o |  changeset:   1667:9a28c7cf6052
-| |  user:        morice
-| |  date:        Tue Jun 16 11:57:25 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1666:d17316a654b9
-| |  user:        hecht
-| |  date:        Tue Jun 16 11:08:06 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1665:e2de216ad22c
-| |  user:        hecht
-| |  date:        Tue Jun 16 11:07:49 2009 +0200
-| |  summary:     add examples++-3d/lac-leman-v4.msh  in the distrib
-| |
-o |  changeset:   1664:2e25f004c497
-| |  user:        hecht
-| |  date:        Tue Jun 16 10:36:46 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1663:c047ea6fb673
-| |  user:        hecht
-| |  date:        Tue Jun 16 10:30:42 2009 +0200
-| |  summary:     before the next version
-| |
-o |  changeset:   1662:2932f81e8687
-| |  user:        hecht
-| |  date:        Tue Jun 16 10:25:33 2009 +0200
-| |  summary:     coorect idp  file  in mortar exemple
-| |
-o |  changeset:   1661:822b5c8b04a1
-| |  user:        hecht
-| |  date:        Mon Jun 15 22:36:55 2009 +0200
-| |  summary:     correct bug in makefile
-| |
-o |  changeset:   1660:51a37d2faf4a
-| |  user:        morice
-| |  date:        Mon Jun 15 18:16:49 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1659:bcb8a1242d1b
-| |  user:        hecht
-| |  date:        Fri Jun 12 23:09:42 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1658:83e491da131a
-| |  user:        hecht
-| |  date:        Mon Jun 08 13:42:52 2009 +0200
-| |  summary:     do small correct  in  2 member:
-| |
-o |  changeset:   1657:2caaa85b26e3
-| |  user:        morice
-| |  date:        Mon Jun 08 12:48:34 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1656:19a76fdcdba5
-| |  user:        morice
-| |  date:        Mon Jun 08 12:45:41 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1655:9805b179ac69
-| |  user:        morice
-| |  date:        Mon Jun 08 12:35:10 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1654:b33eb490c839
-| |  user:        morice
-| |  date:        Mon Jun 08 12:03:12 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1653:45466a37654f
-| |  user:        hecht
-| |  date:        Mon Jun 08 11:16:23 2009 +0200
-| |  summary:     add Egde03d and RT03d finite element , correct mistake in
-| |
-o |  changeset:   1652:a3e88f63360c
-| |  user:        morice
-| |  date:        Fri Jun 05 14:27:05 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1651:e0a2e8d5cfd2
-| |  user:        hecht
-| |  date:        Thu Jun 04 12:56:41 2009 +0200
-| |  summary:     to avec good makefiel
-| |
-o |  changeset:   1650:7c00e01ad51b
-| |  user:        hecht
-| |  date:        Thu Jun 04 09:58:56 2009 +0200
-| |  summary:     correct Dxwriter tools
-| |
-o |  changeset:   1649:0ad3748de454
-| |  user:        hecht
-| |  date:        Thu Jun 04 09:37:14 2009 +0200
-| |  summary:     add file
-| |
-o |  changeset:   1648:a1494782af5b
-| |  user:        hecht
-| |  date:        Thu Jun 04 08:35:49 2009 +0200
-| |  summary:     add RT0 in 3D .  5 first test)
-| |
-o |  changeset:   1647:88a17753d10d
-| |  user:        hecht
-| |  date:        Wed Jun 03 23:23:51 2009 +0200
-| |  summary:     try to  put RT03d>  => correct lot of bug in the finite element (vectoriql)
-| |
-o |  changeset:   1646:229d1df51b18
-| |  user:        atenekeng
-| |  date:        Tue Jun 02 23:40:49 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1645:442c0aac83f2
-| |  user:        atenekeng
-| |  date:        Tue Jun 02 23:33:38 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1644:b6bbb2eb44d0
-| |  user:        atenekeng
-| |  date:        Tue Jun 02 23:27:30 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1643:0831c6a1027f
-| |  user:        atenekeng
-| |  date:        Tue Jun 02 23:22:36 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1642:a459d624d2f7
-| |  user:        atenekeng
-| |  date:        Tue Jun 02 23:12:44 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1641:fc0bd0023280
-| |  user:        hecht
-| |  date:        Tue Jun 02 15:40:01 2009 +0200
-| |  summary:     begin of RT0 in 3D.
-| |
-o |  changeset:   1640:00f642dd30c1
-| |  user:        hecht
-| |  date:        Mon Jun 01 18:29:48 2009 +0200
-| |  summary:     add tool to build surfqce mesh.
-| |
-o |  changeset:   1639:43b260ee40b7
-| |  user:        hecht
-| |  date:        Mon Jun 01 18:28:16 2009 +0200
-| |  summary:     V 3.3-1 1 juin 2009
-| |
-o |  changeset:   1638:dbd423d4d000
-| |  user:        hecht
-| |  date:        Fri May 29 13:35:03 2009 +0200
-| |  summary:     reove unused files
-| |
-o |  changeset:   1637:f7079ea8eb23
-| |  user:        hecht
-| |  date:        Fri May 29 13:32:54 2009 +0200
-| |  summary:     add change solver problem on return arry and meshes in function.
-| |
-o |  changeset:   1636:9d7dbf3295c1
-| |  user:        hecht
-| |  date:        Thu May 28 18:33:25 2009 +0200
-| |  summary:     begin of clean real array in function.
-| |
-o |  changeset:   1635:cf621a076ad3
-| |  user:        hecht
-| |  date:        Wed May 27 13:56:54 2009 +0200
-| |  summary:     correct convect 3d..
-| |
-o |  changeset:   1634:a56bc9158f09
-| |  user:        hecht
-| |  date:        Tue May 26 18:05:27 2009 +0200
-| |  summary:     correct -o in find
-| |
-o |  changeset:   1633:81f69e584dfb
-| |  user:        hecht
-| |  date:        Tue May 26 15:52:04 2009 +0200
-| |  summary:     correct msh3.hpp and SuperLU.cpp mesh3 volume is 0 some time
-| |
-o |  changeset:   1632:3c7db6033cce
-| |  user:        hecht
-| |  date:        Tue May 26 15:17:40 2009 +0200
-| |  summary:     add 3d mas lump quadrature furmula (qfV1, qfV2,qfV5 qfV1lump)
-| |
-o |  changeset:   1631:7e03dc459f0e
-| |  user:        hecht
-| |  date:        Mon May 25 11:42:53 2009 +0200
-| |  summary:     version 3.3
-| |
-o |  changeset:   1630:ae1868421420
-| |  user:        atenekeng
-| |  date:        Mon May 18 02:44:56 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1629:69b580f397be
-| |  user:        hecht
-| |  date:        Sun May 17 21:02:40 2009 +0200
-| |  summary:     add -fPIC flags on 64 achitecture
-| |
-o |  changeset:   1628:8ddd25c5ca25
-| |  user:        hecht
-| |  date:        Fri May 15 21:02:32 2009 +0200
-| |  summary:     add 3d eigen value tools
-| |
-o |  changeset:   1627:022e89f77648
-| |  user:        hecht
-| |  date:        Wed May 13 16:11:46 2009 +0200
-| |  summary:     correct   configure.ac and makefile on window for  lapack lib  in
-| |
-o |  changeset:   1626:a97da324c99e
-| |  user:        hecht
-| |  date:        Wed May 13 13:20:28 2009 +0200
-| |  summary:     put coorect for new sparse matrix intercale
-| |
-o |  changeset:   1625:c6cb0b28b7bb
-| |  user:        hecht
-| |  date:        Wed May 13 13:19:09 2009 +0200
-| |  summary:     remove to change in SuperLU.cpp
-| |
-o |  changeset:   1624:0c1099452f82
-| |  user:        hecht
-| |  date:        Wed May 13 13:10:20 2009 +0200
-| |  summary:     put correct
-| |
-o |  changeset:   1623:70718c5b4084
-| |  user:        hecht
-| |  date:        Wed May 13 10:25:44 2009 +0200
-| |  summary:     add oone output
-| |
-o |  changeset:   1622:eb450d4e51f3
-| |  user:        hecht
-| |  date:        Wed May 13 09:46:23 2009 +0200
-| |  summary:     correct the doc (in progress) , coorect the size of text in postscrip driver.
-| |
-o |  changeset:   1621:8d5c2e7a6033
-| |  user:        hecht
-| |  date:        Wed May 13 09:12:05 2009 +0200
-| |  summary:     add fig in doc.
-| |
-o |  changeset:   1620:8f797289de2b
-| |  user:        hecht
-| |  date:        Mon May 11 09:05:58 2009 +0200
-| |  summary:     add   pgm   figure exemple file
-| |
-o |  changeset:   1619:18f8c66246c7
-| |  user:        hecht
-| |  date:        Mon May 11 09:05:29 2009 +0200
-| |  summary:     add tool to read ppm and pgm  image file see  ppm2rnm.edp example
-| |
-o |  changeset:   1618:08c9e444113a
-| |  user:        hecht
-| |  date:        Mon May 11 09:03:08 2009 +0200
-| |  summary:     add  tool to set array like in matlab and scilab
-| |
-o |  changeset:   1617:9a32089d27c6
-| |  user:        hecht
-| |  date:        Thu Apr 30 10:07:55 2009 +0200
-| |  summary:     comment change in dump in RNM.hpp
-| |
-o |  changeset:   1616:af2b47c9eec9
-| |  user:        hecht
-| |  date:        Thu Apr 30 09:52:57 2009 +0200
-| |  summary:     add sort of array and in parallel int array
-| |
-o |  changeset:   1615:d9457f8f8a82
-| |  user:        morice
-| |  date:        Wed Apr 29 18:40:30 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1614:d93e87702112
-| |  user:        morice
-| |  date:        Wed Apr 29 18:37:15 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1613:58344eff0231
-| |  user:        hecht
-| |  date:        Wed Apr 29 09:12:46 2009 +0200
-| |  summary:     add missing file to inv full matrix.
-| |
-o |  changeset:   1612:492aae1c8104
-| |  user:        hecht
-| |  date:        Mon Apr 27 23:30:00 2009 +0200
-| |  summary:     add missing delete
-| |
-o |  changeset:   1611:22b1da7215e8
-| |  user:        hecht
-| |  date:        Mon Apr 27 23:05:26 2009 +0200
-| |  summary:     update iNNOVATIO
-| |
-o |  changeset:   1610:a0cba860253b
-| |  user:        hecht
-| |  date:        Mon Apr 27 23:02:34 2009 +0200
-| |  summary:     update innovation
-| |
-o |  changeset:   1609:4d114f69dcc6
-| |  user:        hecht
-| |  date:        Mon Apr 27 21:56:45 2009 +0200
-| |  summary:     add missing files
-| |
-o |  changeset:   1608:65650e9ec1b0
-| |  user:        hecht
-| |  date:        Mon Apr 27 21:55:44 2009 +0200
-| |  summary:     correct example
-| |
-o |  changeset:   1607:88667b360b31
-| |  user:        hecht
-| |  date:        Mon Apr 27 21:24:59 2009 +0200
-| |  summary:     add perodic FESpace in 3d
-| |
-o |  changeset:   1606:3ef7b85f0698
-| |  user:        morice
-| |  date:        Wed Apr 22 18:06:47 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1605:ee777f6df0eb
-| |  user:        morice
-| |  date:        Wed Apr 22 17:51:29 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1604:2bd5f0930f42
-| |  user:        morice
-| |  date:        Wed Apr 22 11:12:30 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1603:edf35a172e75
-| |  user:        morice
-| |  date:        Tue Apr 21 16:16:10 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1602:95da9106cc83
-| |  user:        morice
-| |  date:        Tue Apr 21 15:33:13 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1601:998fb4969917
-| |  user:        morice
-| |  date:        Tue Apr 21 15:29:16 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1600:87657798c2cb
-| |  user:        morice
-| |  date:        Tue Apr 21 15:09:00 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1599:44156c3a14df
-| |  user:        morice
-| |  date:        Tue Apr 21 13:51:17 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1598:8e33508e3599
-| |  user:        morice
-| |  date:        Tue Apr 21 13:41:11 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1597:664a71a6bf78
-| |  user:        morice
-| |  date:        Mon Apr 20 14:07:04 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1596:b875c74a428e
-| |  user:        morice
-| |  date:        Mon Apr 20 13:17:47 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1595:04341a068ff7
-| |  user:        morice
-| |  date:        Mon Apr 20 13:15:51 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1594:d57fa2584133
-| |  user:        morice
-| |  date:        Mon Apr 20 13:13:39 2009 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1593:1bfe35d03d32
-| |  user:        hecht
-| |  date:        Fri Apr 17 09:29:40 2009 +0200
-| |  summary:     to be sur
-| |
-o |  changeset:   1592:10c357445573
-| |  user:        hecht
-| |  date:        Fri Apr 17 00:50:42 2009 +0200
-| |  summary:     add dump
-| |
-o |  changeset:   1591:915380e22bf9
-| |  user:        hecht
-| |  date:        Fri Apr 17 00:30:10 2009 +0200
-| |  summary:     gros modif dans la gestion des parameters pour le
-| |
-o |  changeset:   1590:465673ac5e9d
-| |  user:        hecht
-| |  date:        Wed Apr 15 19:17:15 2009 +0200
-| |  summary:     correct search of lapack lib
-| |
-o |  changeset:   1589:9e4275fb2706
-| |  user:        hecht
-| |  date:        Wed Apr 15 18:43:46 2009 +0200
-| |  summary:     correct complie of lapack lib  with arpack (buildin in macos)
-| |
-o |  changeset:   1588:f2650d954b5e
-| |  user:        hecht
-| |  date:        Wed Apr 15 18:21:38 2009 +0200
-| |  summary:     do autoreconf
-| |
-o |  changeset:   1587:9ee6ee15818c
-| |  user:        hecht
-| |  date:        Wed Apr 15 18:18:22 2009 +0200
-| |  summary:     coorect --enable-m64   flags compile
-| |
-o |  changeset:   1586:9c12b436f339
-| |  user:        hecht
-| |  date:        Wed Apr 15 18:12:04 2009 +0200
-| |  summary:     correct Makefile-MacOs
-| |
-o |  changeset:   1585:df486d895352
-| |  user:        hecht
-| |  date:        Wed Apr 15 11:15:40 2009 +0200
-| |  summary:     passe to version 3.2
-| |
-o |  changeset:   1584:d0e8b898a63e
-| |  user:        hecht
-| |  date:        Wed Apr 15 11:11:58 2009 +0200
-| |  summary:     do change for 64 bits on macos.
-| |
-o |  changeset:   1583:b43d23573147
-| |  user:        hecht
-| |  date:        Tue Mar 31 13:38:09 2009 +0200
-| |  summary:     add P1b3d
-| |
-o |  changeset:   1582:79f9321ebe42
-| |  user:        morice
-| |  date:        Fri Mar 20 12:18:43 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1581:89bbe7fed648
-| |  user:        morice
-| |  date:        Fri Mar 20 11:25:41 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1580:03b88bc9b368
-| |  user:        morice
-| |  date:        Tue Mar 17 11:16:44 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1579:5b219bb5581f
-| |  user:        morice
-| |  date:        Mon Mar 16 18:16:41 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1578:3bd564aa3f9f
-| |  user:        hecht
-| |  date:        Sat Mar 14 17:27:32 2009 +0100
-| |  summary:     version 3.1-0
-| |
-o |  changeset:   1577:76c7acba2b50
-| |  user:        hecht
-| |  date:        Sat Mar 14 17:12:15 2009 +0100
-| |  summary:     coorect load.link.in  for f77 compile.
-| |
-o |  changeset:   1576:d1c3f8fd5e7a
-| |  user:        morice
-| |  date:        Thu Mar 12 14:32:53 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1575:8b3b4532b68d
-| |  user:        morice
-| |  date:        Thu Mar 12 13:43:36 2009 +0100
-| |  summary:     bug trouver dans Find:
-| |
-o |  changeset:   1574:142b82fe9837
-| |  user:        morice
-| |  date:        Thu Mar 12 13:39:12 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1573:68e386efcdfa
-| |  user:        hecht
-| |  date:        Mon Mar 09 15:00:18 2009 +0100
-| |  summary:     version 3.1  fist step
-| |
-o |  changeset:   1572:41dfdbb8dfa0
-| |  user:        hecht
-| |  date:        Thu Mar 05 11:17:23 2009 +0100
-| |  summary:     correct INNOVATION and remove print
-| |
-o |  changeset:   1571:5e26bd093206
-| |  user:        hecht
-| |  date:        Wed Mar 04 11:45:32 2009 +0100
-| |  summary:     correct int2d in 3d.  (error on    transformation   face  to Tet)
-| |
-o |  changeset:   1570:ae36727a4ce3
-| |  user:        hecht
-| |  date:        Mon Mar 02 14:52:15 2009 +0100
-| |  summary:     make version 3.0-6
-| |
-o |  changeset:   1569:758a2e0f2057
-| |  user:        hecht
-| |  date:        Thu Feb 12 16:19:41 2009 +0100
-| |  summary:     correct bmo and extra dump
-| |
-o |  changeset:   1568:13d77a1f83c3
-| |  user:        hecht
-| |  date:        Thu Feb 12 09:04:47 2009 +0100
-| |  summary:     version 3.0-6
-| |
-o |  changeset:   1567:3537e6e5bd56
-| |  user:        hecht
-| |  date:        Thu Feb 12 08:47:20 2009 +0100
-| |  summary:     add required edges in adaptmesh tools.
-| |
-o |  changeset:   1566:0a7a4da722d6
-| |  user:        hecht
-| |  date:        Wed Feb 11 16:12:09 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1565:06a842864cd3
-| |  user:        hecht
-| |  date:        Wed Feb 11 16:11:22 2009 +0100
-| |  summary:     add code for lock boundary mesh in adapt process.  for JYU ...
-| |
-o |  changeset:   1564:ef831f851c3e
-| |  user:        hecht
-| |  date:        Wed Feb 11 13:36:20 2009 +0100
-| |  summary:     add option -nowait for windows.
-| |
-o |  changeset:   1563:8e8c47f158db
-| |  user:        hecht
-| |  date:        Mon Feb 09 09:41:57 2009 +0100
-| |  summary:     add 3d color ....
-| |
-o |  changeset:   1562:9ef4b48c94e5
-| |  user:        hecht
-| |  date:        Fri Feb 06 11:15:24 2009 +0100
-| |  summary:     correct missing tapping
-| |
-o |  changeset:   1561:b1047bd598d2
-| |  user:        hecht
-| |  date:        Fri Feb 06 10:50:16 2009 +0100
-| |  summary:     add a first plot of 3d data witj plot tools.
-| |
-o |  changeset:   1560:ff43f245e2f3
-| |  user:        hecht
-| |  date:        Thu Feb 05 16:29:09 2009 +0100
-| |  summary:     add new file for tet siplit.
-| |
-o |  changeset:   1559:1498e333f6d9
-| |  user:        morice
-| |  date:        Tue Feb 03 17:45:55 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1558:b70b991cd78c
-| |  user:        morice
-| |  date:        Tue Feb 03 15:09:59 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1557:b6672aa52178
-| |  user:        morice
-| |  date:        Tue Feb 03 15:03:02 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1556:e3dd766cd68b
-| |  user:        hecht
-| |  date:        Tue Jan 27 16:11:43 2009 +0100
-| |  summary:     remove last change (bogus)
-| |
-o |  changeset:   1555:4c5377a65671
-| |  user:        hecht
-| |  date:        Tue Jan 27 16:09:04 2009 +0100
-| |  summary:     correct dy(uh) when uh is P13d. (always 0)
-| |
-o |  changeset:   1554:ca9caabbe3bc
-| |  user:        morice
-| |  date:        Fri Jan 23 16:14:30 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1553:018249cdee99
-| |  user:        morice
-| |  date:        Fri Jan 23 16:13:24 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1552:3db53e497a18
-| |  user:        hecht
-| |  date:        Wed Jan 21 11:04:10 2009 +0100
-| |  summary:     correct bin-win32 install exe
-| |
-o |  changeset:   1551:7a0f31302d16
-| |  user:        hecht
-| |  date:        Wed Jan 21 10:56:45 2009 +0100
-| |  summary:     correct install bin-win32
-| |
-o |  changeset:   1550:91eefe9e3612
-| |  user:        hecht
-| |  date:        Wed Jan 21 10:13:06 2009 +0100
-| |  summary:     remove crazy file
-| |
-o |  changeset:   1549:b6835240f938
-| |  user:        hecht
-| |  date:        Tue Jan 20 20:56:59 2009 +0100
-| |  summary:     correct the install on under  windows / cygwin
-| |
-o |  changeset:   1548:ae5d95f70891
-| |  user:        hecht
-| |  date:        Sun Jan 18 19:25:03 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1547:c5083029fcff
-| |  user:        hecht
-| |  date:        Sun Jan 18 17:21:33 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1546:9dc587c45dff
-| |  user:        hecht
-| |  date:        Fri Jan 16 23:02:59 2009 +0100
-| |  summary:     correct ffglut.cpp
-| |
-o |  changeset:   1545:a0e928ee7675
-| |  user:        morice
-| |  date:        Fri Jan 16 11:38:05 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1544:2ccf8785babb
-| |  user:        morice
-| |  date:        Fri Jan 16 10:54:55 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1543:6d0a2e03c885
-| |  user:        morice
-| |  date:        Fri Jan 16 10:53:39 2009 +0100
-| |  summary:     ajout de savesurfacemesh
-| |
-o |  changeset:   1542:dfed132f264e
-| |  user:        hecht
-| |  date:        Thu Jan 15 12:45:37 2009 +0100
-| |  summary:     pass to version 3.0-5, correct array of 3d finite element function
-| |
-o |  changeset:   1541:bb42989cee29
-| |  user:        hecht
-| |  date:        Mon Jan 12 00:12:58 2009 +0100
-| |  summary:     add dx  witer and test salalo80 at gmail.com
-| |
-o |  changeset:   1540:350a96823dc1
-| |  user:        hecht
-| |  date:        Sat Jan 10 22:26:33 2009 +0100
-| |  summary:     pass to version 3.0-5
-| |
-o |  changeset:   1539:0bac5193dd77
-| |  user:        morice
-| |  date:        Thu Jan 08 10:41:21 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1538:bb5d8553df2c
-| |  user:        hecht
-| |  date:        Wed Jan 07 17:21:59 2009 +0100
-| |  summary:     add new comment file
-| |
-o |  changeset:   1537:e6bc0b8eb690
-| |  user:        morice
-| |  date:        Wed Jan 07 12:00:25 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1536:bbe299dedeb9
-| |  user:        hecht
-| |  date:        Wed Jan 07 09:55:41 2009 +0100
-| |  summary:     correct window message in ffglut
-| |
-o |  changeset:   1535:df5a030a7a05
-| |  user:        hecht
-| |  date:        Wed Jan 07 08:48:03 2009 +0100
-| |  summary:     correct 3d view setting
-| |
-o |  changeset:   1534:172df02611b6
-| |  user:        hecht
-| |  date:        Tue Jan 06 23:22:29 2009 +0100
-| |  summary:     coorect Pvue3
-| |
-o |  changeset:   1533:76f34874cc73
-| |  user:        hecht
-| |  date:        Tue Jan 06 23:15:13 2009 +0100
-| |  summary:     add 3d plot
-| |
-o |  changeset:   1532:0f8e1829074d
-| |  user:        hecht
-| |  date:        Tue Jan 06 20:30:40 2009 +0100
-| |  summary:     correct
-| |
-o |  changeset:   1531:5f9834701ea2
-| |  user:        morice
-| |  date:        Tue Jan 06 14:14:35 2009 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1530:2a6f1aec0d48
-| |  user:        hecht
-| |  date:        Mon Jan 05 18:20:15 2009 +0100
-| |  summary:     correct download/tetgen/Makefile more portable
-| |
-o |  changeset:   1529:52ee5604e8c2
-| |  user:        hecht
-| |  date:        Mon Jan 05 13:26:47 2009 +0100
-| |  summary:     correct int2d in 3d, makefiles fo tetgen and pb with $(DESTDIR)
-| |
-o |  changeset:   1528:7356da4183b8
-| |  user:        hecht
-| |  date:        Mon Jan 05 11:26:43 2009 +0100
-| |  summary:     add test
-| |
-o |  changeset:   1527:2251f3d08b88
-| |  user:        hecht
-| |  date:        Mon Jan 05 11:25:30 2009 +0100
-| |  summary:     correct in2d in 3d  (missing factor 0.5)
-| |
-o |  changeset:   1526:2d4a22506f73
-| |  user:        hecht
-| |  date:        Mon Dec 29 17:34:56 2008 +0100
-| |  summary:     coorect the seach of the include dir
-| |
-o |  changeset:   1525:c67a5f5b9730
-| |  user:        hecht
-| |  date:        Mon Dec 29 17:18:03 2008 +0100
-| |  summary:     remove the clean routine variable after return, to much trouble.
-| |
-o |  changeset:   1524:a52a4003e09e
-| |  user:        hecht
-| |  date:        Sat Dec 27 18:27:41 2008 +0100
-| |  summary:     coorect Laplace3d.edp plot with medit
-| |
-o |  changeset:   1523:f0769f2c0b6a
-| |  user:        hecht
-| |  date:        Sat Dec 27 18:27:18 2008 +0100
-| |  summary:     correct medit.cpp
-| |
-o |  changeset:   1522:5b65b33be28d
-| |  user:        hecht
-| |  date:        Sat Dec 27 17:19:34 2008 +0100
-| |  summary:     update INNOVATION
-| |
-o |  changeset:   1521:0863f21fe19f
-| |  user:        hecht
-| |  date:        Sat Dec 27 17:15:45 2008 +0100
-| |  summary:     do pretty print correction
-| |
-o |  changeset:   1520:9730a238b680
-| |  user:        hecht
-| |  date:        Sat Dec 27 16:48:58 2008 +0100
-| |  summary:     coorect old bug when return of arry
-| |
-o |  changeset:   1519:35ab771c1a8b
-| |  user:        hecht
-| |  date:        Fri Dec 26 22:50:23 2008 +0100
-| |  summary:     correct makefile for dist install (change install-sh script)
-| |
-o |  changeset:   1518:ec10c2fe4fe9
-| |  user:        hecht
-| |  date:        Fri Dec 26 20:31:46 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1517:6896f3fcf127
-| |  user:        hecht
-| |  date:        Fri Dec 26 17:38:24 2008 +0100
-| |  summary:     correct serialeze mesh in 64 mode
-| |
-o |  changeset:   1516:7d5c2a818d42
-| |  user:        hecht
-| |  date:        Fri Dec 26 17:32:10 2008 +0100
-| |  summary:     correct serial in 64 bits mode
-| |
-o |  changeset:   1515:5d564e4fe7c2
-| |  user:        hecht
-| |  date:        Fri Dec 26 17:23:18 2008 +0100
-| |  summary:     try to correct
-| |
-o |  changeset:   1514:2d379f3e299d
-| |  user:        hecht
-| |  date:        Fri Dec 26 17:07:27 2008 +0100
-| |  summary:     correct write string
-| |
-o |  changeset:   1513:ae9e13d7244a
-| |  user:        hecht
-| |  date:        Fri Dec 26 17:06:12 2008 +0100
-| |  summary:     correct write / read string
-| |
-o |  changeset:   1512:86738eb65d94
-| |  user:        hecht
-| |  date:        Fri Dec 26 16:51:33 2008 +0100
-| |  summary:     correct Serialize Mesh  chang long in long long
-| |
-o |  changeset:   1511:09a0e9e181ef
-| |  user:        hecht
-| |  date:        Fri Dec 26 16:23:31 2008 +0100
-| |  summary:     correct build of ff-c++ in src/bin-win32/Makefile.am
-| |
-o |  changeset:   1510:736a461db53e
-| |  user:        hecht
-| |  date:        Fri Dec 26 16:06:40 2008 +0100
-| |  summary:     now load.lik is bliud from Makefile and load.link.in
-| |
-o |  changeset:   1509:28dbac93aec5
-| |  user:        hecht
-| |  date:        Fri Dec 26 16:01:48 2008 +0100
-| |  summary:     correct graphics of curve
-| |
-o |  changeset:   1508:cb901fc6fca0
-| |  user:        hecht
-| |  date:        Thu Dec 18 10:01:05 2008 +0100
-| |  summary:     correct Makefile and graphoc stuff
-| |
-o |  changeset:   1507:0407685463a7
-| |  user:        hecht
-| |  date:        Wed Dec 17 23:52:44 2008 +0100
-| |  summary:     correct ffglut for zooming y -> y-height ????
-| |
-o |  changeset:   1506:503c8ccb098a
-| |  user:        hecht
-| |  date:        Tue Dec 16 23:04:47 2008 +0100
-| |  summary:     coorect makefile for install
-| |
-o |  changeset:   1505:10afda2c8acd
-| |  user:        hecht
-| |  date:        Tue Dec 16 20:26:47 2008 +0100
-| |  summary:     add UMPAck solver
-| |
-o |  changeset:   1504:20c5e5ffc8c4
-| |  user:        hecht
-| |  date:        Tue Dec 16 20:24:46 2008 +0100
-| |  summary:     change the umpack matrice solver
-| |
-o |  changeset:   1503:26bc830cccc5
-| |  user:        hecht
-| |  date:        Tue Dec 16 17:48:59 2008 +0100
-| |  summary:     correct makefiles
-| |
-o |  changeset:   1502:9a693aa2371a
-| |  user:        morice
-| |  date:        Tue Dec 16 12:07:56 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1501:93ed40d6a6e6
-| |  user:        hecht
-| |  date:        Fri Dec 12 15:30:04 2008 +0100
-| |  summary:     change ../statu.... in.statu (for install on macos)
-| |
-o |  changeset:   1500:aca91a335b08
-| |  user:        hecht
-| |  date:        Fri Dec 12 15:18:03 2008 +0100
-| |  summary:     correct configure?ac of ubutu build package
-| |
-o |  changeset:   1499:27e5aef742b2
-| |  user:        hecht
-| |  date:        Fri Dec 12 15:16:22 2008 +0100
-| |  summary:     correct missunderstanding of usage of strchr ( return 0  if the search fail).
-| |
-o |  changeset:   1498:7299590b0a3c
-| |  user:        hecht
-| |  date:        Fri Dec 12 13:42:50 2008 +0100
-| |  summary:     correct the arpach driver , (pas mal.. FH)
-| |
-o |  changeset:   1497:84171470d151
-| |  user:        hecht
-| |  date:        Fri Dec 12 00:30:14 2008 +0100
-| |  summary:     add the mode in eignevalue like in arpack
-| |
-o |  changeset:   1496:7d7daf75c3ac
-| |  user:        hecht
-| |  date:        Wed Dec 10 10:31:24 2008 +0100
-| |  summary:     last chnage before version  3.0-2
-| |
-o |  changeset:   1495:fe9d0abe1c54
-| |  user:        hecht
-| |  date:        Wed Dec 10 10:21:01 2008 +0100
-| |  summary:     coorect for win32
-| |
-o |  changeset:   1494:4d73b3a20b0c
-| |  user:        hecht
-| |  date:        Wed Dec 10 09:47:46 2008 +0100
-| |  summary:     correct conflict with basename (-> baseName)
-| |
-o |  changeset:   1493:0f58bb952ae8
-| |  user:        hecht
-| |  date:        Wed Dec 10 08:45:20 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1492:ca8c350f70e4
-| |  user:        hecht
-| |  date:        Wed Dec 10 08:37:56 2008 +0100
-| |  summary:     add ff++.hpp include file to simplify life.
-| |
-o |  changeset:   1491:5101e82dafe6
-| |  user:        hecht
-| |  date:        Wed Dec 10 00:22:58 2008 +0100
-| |  summary:     correct miss * in pointer
-| |
-o |  changeset:   1490:a673c97e0d53
-| |  user:        hecht
-| |  date:        Tue Dec 09 23:56:09 2008 +0100
-| |  summary:     coorect stuff for loadpath on macos.
-| |
-o |  changeset:   1489:8ec039547530
-| |  user:        hecht
-| |  date:        Tue Dec 09 18:09:20 2008 +0100
-| |  summary:     coorect install on macos
-| |
-o |  changeset:   1488:a7374bf14c69
-| |  user:        hecht
-| |  date:        Tue Dec 09 17:03:50 2008 +0100
-| |  summary:     change == in = miss tapping
-| |
-o |  changeset:   1487:e45dff48bbd8
-| |  user:        hecht
-| |  date:        Tue Dec 09 16:59:37 2008 +0100
-| |  summary:     coorect include dir for install
-| |
-o |  changeset:   1486:3402eeb91b14
-| |  user:        hecht
-| |  date:        Tue Dec 09 16:43:38 2008 +0100
-| |  summary:     stablization of install process
-| |
-o |  changeset:   1485:357c63d481f1
-| |  user:        hecht
-| |  date:        Tue Dec 09 16:24:58 2008 +0100
-| |  summary:     correct on windows to build file in local dir
-| |
-o |  changeset:   1484:1d6688c93330
-| |  user:        morice
-| |  date:        Tue Dec 09 16:06:48 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1483:beb24a04490c
-| |  user:        hecht
-| |  date:        Tue Dec 09 15:05:48 2008 +0100
-| |  summary:     next
-| |
-o |  changeset:   1482:77eb855e58a3
-| |  user:        hecht
-| |  date:        Tue Dec 09 15:03:46 2008 +0100
-| |  summary:     correct binary read on stdin with medit.
-| |
-o |  changeset:   1481:d7db611022fb
-| |  user:        hecht
-| |  date:        Mon Dec 08 22:55:47 2008 +0100
-| |  summary:     coorect makefile remove dependance with ff-c++
-| |
-o |  changeset:   1480:be591602d2fe
-| |  user:        hecht
-| |  date:        Mon Dec 08 22:17:14 2008 +0100
-| |  summary:     corect pb when plot of const function
-| |
-o |  changeset:   1479:51ae281c82c2
-| |  user:        hecht
-| |  date:        Mon Dec 08 22:02:19 2008 +0100
-| |  summary:     corret freefem++ args -fglut trap du to mistake in getprog-unix.hpp
-| |
-o |  changeset:   1478:5adb19ceadd5
-| |  user:        hecht
-| |  date:        Mon Dec 08 16:23:50 2008 +0100
-| |  summary:     correct install dir of freefem++ include, load file.
-| |
-o |  changeset:   1477:7cc876365ccc
-| |  user:        hecht
-| |  date:        Sun Dec 07 23:54:44 2008 +0100
-| |  summary:     pass tversion 3.0-2
-| |
-o |  changeset:   1476:8f0c0241434e
-| |  user:        hecht
-| |  date:        Sun Dec 07 23:52:08 2008 +0100
-| |  summary:     coorect win32 end of prog add a wiat et save the logs
-| |
-o |  changeset:   1475:deeabce583a3
-| |  user:        hecht
-| |  date:        Sun Dec 07 23:04:26 2008 +0100
-| |  summary:     cooret of save window console???
-| |
-o |  changeset:   1474:7a964fb9cc9f
-| |  user:        hecht
-| |  date:        Sun Dec 07 22:51:31 2008 +0100
-| |  summary:     coorect end freefem, try to save consle text
-| |
-o |  changeset:   1473:94e5bfadd2e9
-| |  user:        hecht
-| |  date:        Sat Dec 06 23:24:37 2008 +0100
-| |  summary:     coorect window version add  save console at end job
-| |
-o |  changeset:   1472:b072e947c473
-| |  user:        hecht
-| |  date:        Thu Dec 04 23:31:41 2008 +0100
-| |  summary:     coorect 3d exampel
-| |
-o |  changeset:   1471:cfe19aab6e91
-| |  user:        hecht
-| |  date:        Thu Dec 04 23:07:04 2008 +0100
-| |  summary:     change medit in ffmedit (the freefem++ version of medit)
-| |
-o |  changeset:   1470:e3003c8118ec
-| |  user:        hecht
-| |  date:        Thu Dec 04 22:08:28 2008 +0100
-| |  summary:     correct ..
-| |
-o |  changeset:   1469:94c6f5128de0
-| |  user:        hecht
-| |  date:        Thu Dec 04 21:55:00 2008 +0100
-| |  summary:     add BLASLIB on SuperLu link
-| |
-o |  changeset:   1468:8296e5850e9b
-| |  user:        hecht
-| |  date:        Thu Dec 04 21:28:48 2008 +0100
-| |  summary:     add no compile on pure win32
-| |
-o |  changeset:   1467:2ba1cc1df0ce
-| |  user:        hecht
-| |  date:        Thu Dec 04 18:13:09 2008 +0100
-| |  summary:     coorect Makefile
-| |
-o |  changeset:   1466:beadf0e06de0
-| |  user:        hecht
-| |  date:        Thu Dec 04 18:07:41 2008 +0100
-| |  summary:     correct Makefile
-| |
-o |  changeset:   1465:338221666d53
-| |  user:        hecht
-| |  date:        Thu Dec 04 17:49:24 2008 +0100
-| |  summary:     coorect makefile
-| |
-o |  changeset:   1464:7b0eb03791c7
-| |  user:        hecht
-| |  date:        Thu Dec 04 17:35:58 2008 +0100
-| |  summary:     correct pb unzip
-| |
-o |  changeset:   1463:604e870e1a68
-| |  user:        hecht
-| |  date:        Thu Dec 04 17:31:14 2008 +0100
-| |  summary:     coorect Makefile for window
-| |
-o |  changeset:   1462:e78f4ba9d558
-| |  user:        hecht
-| |  date:        Thu Dec 04 16:19:27 2008 +0100
-| |  summary:     correct Install-MacOS v3
-| |
-o |  changeset:   1461:16b7e168e0af
-| |  user:        hecht
-| |  date:        Thu Dec 04 16:14:18 2008 +0100
-| |  summary:     correct of v3
-| |
-o |  changeset:   1460:719b338b6647
-| |  user:        hecht
-| |  date:        Wed Dec 03 23:39:47 2008 +0100
-| |  summary:     correct makefile for load compilation
-| |
-o |  changeset:   1459:1078ad4956af
-| |  user:        hecht
-| |  date:        Tue Dec 02 11:19:25 2008 +0100
-| |  summary:     correct build medit (compit.date)
-| |
-o |  changeset:   1458:5ff7097a0422
-| |  user:        hecht
-| |  date:        Mon Dec 01 22:14:26 2008 +0100
-| |  summary:     correct ffglut.cpp
-| |
-o |  changeset:   1457:275696a1143d
-| |  user:        hecht
-| |  date:        Sun Nov 30 22:01:37 2008 +0100
-| |  summary:     change SuperLU.cpp -> SuperLu.cpp
-| |
-o |  changeset:   1456:60ee6e9fa734
-| |  user:        hecht
-| |  date:        Sun Nov 30 22:00:31 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1455:4638f02095af
-| |  user:        hecht
-| |  date:        Sun Nov 30 21:43:24 2008 +0100
-| |  summary:     correct bmo.cpp on cygwin
-| |
-o |  changeset:   1454:5680cb4fc599
-| |  user:        hecht
-| |  date:        Sun Nov 30 21:26:42 2008 +0100
-| |  summary:     correct bmo rand generator for win32
-| |
-o |  changeset:   1453:b813c4de5ff9
-| |  user:        hecht
-| |  date:        Sat Nov 29 22:38:28 2008 +0100
-| |  summary:     change rindex -> strrchr under win32
-| |
-o |  changeset:   1452:62b7a73e0883
-| |  user:        hecht
-| |  date:        Sat Nov 29 21:49:18 2008 +0100
-| |  summary:     correct the doc
-| |
-o |  changeset:   1451:3cedfc02647b
-| |  user:        hecht
-| |  date:        Sat Nov 29 21:45:16 2008 +0100
-| |  summary:     Upgrade the doc
-| |
-o |  changeset:   1450:0f2d69e72651
-| |  user:        hecht
-| |  date:        Sat Nov 29 19:20:30 2008 +0100
-| |  summary:     add
-| |
-o |  changeset:   1449:f9d27572c59e
-| |  user:        hecht
-| |  date:        Sat Nov 29 19:14:43 2008 +0100
-| |  summary:     add configure --disable-dependency-tracking  for universal build (macos)
-| |
-o |  changeset:   1448:5972ee9487be
-| |  user:        hecht
-| |  date:        Sat Nov 29 19:02:26 2008 +0100
-| |  summary:     ok a not to bad version
-| |
-o |  changeset:   1447:feed975f6576
-| |  user:        hecht
-| |  date:        Sat Nov 29 18:24:07 2008 +0100
-| |  summary:     correct load facily (test if multy load, and load only one time)
-| |
-o |  changeset:   1446:3880a683b418
-| |  user:        hecht
-| |  date:        Sat Nov 29 18:17:37 2008 +0100
-| |  summary:     correct load example
-| |
-o |  changeset:   1445:c4c1e3ee80a3
-| |  user:        hecht
-| |  date:        Sat Nov 29 17:39:46 2008 +0100
-| |  summary:     change bmo.cpp -> lgbmo.cpp
-| |
-o |  changeset:   1444:ae1862b180e5
-| |  user:        hecht
-| |  date:        Sat Nov 29 17:34:17 2008 +0100
-| |  summary:     add bmo stuff)
-| |
-o |  changeset:   1443:2607ddbf9df2
-| |  user:        hecht
-| |  date:        Sat Nov 29 16:47:49 2008 +0100
-| |  summary:     remove medit lauching when no graphic
-| |
-o |  changeset:   1442:7ff31fce3f84
-| |  user:        hecht
-| |  date:        Sat Nov 29 16:36:48 2008 +0100
-| |  summary:     recorrect
-| |
-o |  changeset:   1441:bb346316ad4a
-| |  user:        hecht
-| |  date:        Sat Nov 29 16:32:00 2008 +0100
-| |  summary:     rebuld regtests.edp
-| |
-o |  changeset:   1440:c10cf4df8949
-| |  user:        hecht
-| |  date:        Sat Nov 29 16:25:31 2008 +0100
-| |  summary:     remove glumesh.edp form regtest
-| |
-o |  changeset:   1439:d0f1c7e9c376
-| |  user:        hecht
-| |  date:        Sat Nov 29 16:05:24 2008 +0100
-| |  summary:     do graphic only on mpirank==0
-| |
-o |  changeset:   1438:eee4429533f7
-| |  user:        hecht
-| |  date:        Sat Nov 29 15:58:42 2008 +0100
-| |  summary:     correct bug in eigenvalue part.
-| |
-o |  changeset:   1437:0a0f8d8930f9
-| |  user:        morice
-| |  date:        Fri Nov 28 12:12:32 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1436:e4c7ffca9ab1
-| |  user:        morice
-| |  date:        Fri Nov 28 12:11:03 2008 +0100
-| |  summary:     Transformation Matrice Morse (stockage ligne) en CCS(compressed column storage)
-| |
-o |  changeset:   1435:45be17df8622
-| |  user:        morice
-| |  date:        Fri Nov 28 11:43:19 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1434:fd52925b5f2a
-| |  user:        hecht
-| |  date:        Fri Nov 28 10:17:32 2008 +0100
-| |  summary:     miss tappin SuperLU.cpp  -> SuperLu.cpp
-| |
-o |  changeset:   1433:acf7ea000d8a
-| |  user:        hecht
-| |  date:        Fri Nov 28 08:09:14 2008 +0100
-| |  summary:     correct 3d exemples
-| |
-o |  changeset:   1432:b0289a360bb3
-| |  user:        hecht
-| |  date:        Wed Nov 26 20:17:04 2008 +0100
-| |  summary:     correct tetgen
-| |
-o |  changeset:   1431:ba4c8e8b1a47
-| |  user:        hecht
-| |  date:        Wed Nov 26 19:51:10 2008 +0100
-| |  summary:     correct missing link pb (tetgen.cpp include msh3.cpp with out int.
-| |
-o |  changeset:   1430:d973280bc7af
-| |  user:        morice
-| |  date:        Wed Nov 26 16:26:31 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1429:5f00f74d83cd
-| |  user:        hecht
-| |  date:        Tue Nov 25 23:03:41 2008 +0100
-| |  summary:     a last touch before the version...
-| |
-o |  changeset:   1428:198f6558aa4d
-| |  user:        hecht
-| |  date:        Tue Nov 25 21:41:51 2008 +0100
-| |  summary:     correct auto compilation of ffw3, superlu, tetgen in cas au enable-download
-| |
-o |  changeset:   1427:f0e86c3e6d85
-| |  user:        hecht
-| |  date:        Tue Nov 25 18:38:00 2008 +0100
-| |  summary:     coorect script for freefem++ app
-| |
-o |  changeset:   1426:9b1df463725b
-| |  user:        hecht
-| |  date:        Tue Nov 25 18:22:54 2008 +0100
-| |  summary:     coorect install macos
-| |
-o |  changeset:   1425:3c52c2253fb7
-| |  user:        hecht
-| |  date:        Tue Nov 25 17:27:14 2008 +0100
-| |  summary:     try to finalise version 3.0-1
-| |
-o |  changeset:   1424:6d9de1c4a05d
-| |  user:        hecht
-| |  date:        Tue Nov 25 17:09:49 2008 +0100
-| |  summary:     next
-| |
-o |  changeset:   1423:42713d97f36f
-| |  user:        hecht
-| |  date:        Tue Nov 25 16:49:48 2008 +0100
-| |  summary:     correct load examples  change popoe.cpp in medit.cpp
-| |
-o |  changeset:   1422:779acd0cfbe2
-| |  user:        hecht
-| |  date:        Tue Nov 25 14:16:39 2008 +0100
-| |  summary:     add missing file
-| |
-o |  changeset:   1421:e70b14304b98
-| |  user:        hecht
-| |  date:        Tue Nov 25 01:05:08 2008 +0100
-| |  summary:     coorect mistake in use of ffglut (remove if FreeFem++-xxx )
-| |
-o |  changeset:   1420:0d19f82c7039
-| |  user:        hecht
-| |  date:        Mon Nov 24 23:18:25 2008 +0100
-| |  summary:     add stuff to save window buff.
-| |
-o |  changeset:   1419:f9ae484334fc
-| |  user:        hecht
-| |  date:        Mon Nov 24 22:46:20 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1418:9650773d46e0
-| |  user:        hecht
-| |  date:        Mon Nov 24 21:31:56 2008 +0100
-| |  summary:     correct layer.edp
-| |
-o |  changeset:   1417:ec0d0e8459b0
-| |  user:        hecht
-| |  date:        Mon Nov 24 20:49:58 2008 +0100
-| |  summary:     coorect glumesh2d load (now in freefem++)
-| |
-o |  changeset:   1416:d4c3c0aa5fd8
-| |  user:        hecht
-| |  date:        Mon Nov 24 20:20:15 2008 +0100
-| |  summary:     update to 3.0_1 testing
-| |
-o |  changeset:   1415:a29e50390efd
-| |  user:        hecht
-| |  date:        Mon Nov 24 20:10:17 2008 +0100
-| |  summary:     past to version 3.0-1
-| |
-o |  changeset:   1414:8ffccb723fd7
-| |  user:        hecht
-| |  date:        Mon Nov 24 17:22:44 2008 +0100
-| |  summary:     correct FreeFem++
-| |
-o |  changeset:   1413:cb84d704cd68
-| |  user:        hecht
-| |  date:        Mon Nov 24 17:08:38 2008 +0100
-| |  summary:     correct of missing io
-| |
-o |  changeset:   1412:ca6fdf19f43a
-| |  user:        hecht
-| |  date:        Mon Nov 24 14:47:12 2008 +0100
-| |  summary:     coorec tmiss tapping
-| |
-o |  changeset:   1411:bf601c202065
-| |  user:        hecht
-| |  date:        Mon Nov 24 14:45:02 2008 +0100
-| |  summary:     add window stuff
-| |
-o |  changeset:   1410:069a9f4b35f8
-| |  user:        hecht
-| |  date:        Mon Nov 24 14:22:26 2008 +0100
-| |  summary:     correct sing flags with PCrgraph.cpp
-| |
-o |  changeset:   1409:2eff1dc91fa8
-| |  user:        hecht
-| |  date:        Mon Nov 24 13:58:45 2008 +0100
-| |  summary:     correct miss tapping
-| |
-o |  changeset:   1408:567bb820c141
-| |  user:        hecht
-| |  date:        Mon Nov 24 13:44:40 2008 +0100
-| |  summary:     add @LIBSNOCONSOLE@ to link freefem++ on windows
-| |
-o |  changeset:   1407:a592c340fa42
-| |  user:        hecht
-| |  date:        Mon Nov 24 10:15:57 2008 +0100
-| |  summary:     yntaxe err.  )) -> ) line 51
-| |
-o |  changeset:   1406:9456f62f1675
-| |  user:        hecht
-| |  date:        Mon Nov 24 10:09:54 2008 +0100
-| |  summary:     do the final (may be ) on no graphics
-| |
-o |  changeset:   1405:d33cd9480a19
-| |  user:        hecht
-| |  date:        Sun Nov 23 23:24:42 2008 +0100
-| |  summary:     remove -mwindows flag
-| |
-o |  changeset:   1404:92d820fc3689
-| |  user:        hecht
-| |  date:        Sun Nov 23 22:56:24 2008 +0100
-| |  summary:     try to have good version of ffglut
-| |
-o |  changeset:   1403:fd3446efd662
-| |  user:        hecht
-| |  date:        Sun Nov 23 22:23:51 2008 +0100
-| |  summary:     correct for win32 api
-| |
-o |  changeset:   1402:cd1e9c3a65f2
-| |  user:        hecht
-| |  date:        Sun Nov 23 16:40:45 2008 +0100
-| |  summary:     crrech ff_glut lib under win32
-| |
-o |  changeset:   1401:eaf758e3a489
-| |  user:        hecht
-| |  date:        Sun Nov 23 16:32:33 2008 +0100
-| |  summary:     change glut libs under win32 (no cygwin)
-| |
-o |  changeset:   1400:854085e2d35f
-| |  user:        hecht
-| |  date:        Sun Nov 23 16:21:00 2008 +0100
-| |  summary:     add new file for win32 comile
-| |
-o |  changeset:   1399:95336c8e2c44
-| |  user:        hecht
-| |  date:        Sun Nov 23 15:36:58 2008 +0100
-| |  summary:     update for ffglu and windows
-| |
-o |  changeset:   1398:f9100b0bb790
-| |  user:        hecht
-| |  date:        Sun Nov 23 14:54:49 2008 +0100
-| |  summary:     correct of win32
-| |
-o |  changeset:   1397:7d704bab6a59
-| |  user:        hecht
-| |  date:        Sun Nov 23 14:53:06 2008 +0100
-| |  summary:     correct PlotStream.hpp for win32
-| |
-o |  changeset:   1396:d4bab58e76b7
-| |  user:        hecht
-| |  date:        Sun Nov 23 10:11:42 2008 +0100
-| |  summary:     reomve exeption
-| |
-o |  changeset:   1395:7746ed4b6e53
-| |  user:        hecht
-| |  date:        Sat Nov 22 20:29:26 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1394:76b21f8a6f07
-| |  user:        hecht
-| |  date:        Sat Nov 22 18:16:09 2008 +0100
-| |  summary:     correct Makefile.am
-| |
-o |  changeset:   1393:28088ce8937e
-| |  user:        hecht
-| |  date:        Sat Nov 22 18:15:41 2008 +0100
-| |  summary:     add threads interface of windows
-| |
-o |  changeset:   1392:302846277f78
-| |  user:        hecht
-| |  date:        Thu Nov 20 14:05:20 2008 +0100
-| |  summary:     correct configure.ac fo ffglut  compie with pthread
-| |
-o |  changeset:   1391:04a9b160e8c4
-| |  user:        hecht
-| |  date:        Thu Nov 20 13:28:38 2008 +0100
-| |  summary:     correct int -> GLint in wiewport array type
-| |
-o |  changeset:   1390:5b0dea51e3ac
-| |  user:        hecht
-| |  date:        Wed Nov 19 14:40:29 2008 +0100
-| |  summary:     crrect build pkg dir
-| |
-o |  changeset:   1389:0e6bc0a93bdd
-| |  user:        hecht
-| |  date:        Wed Nov 19 14:38:27 2008 +0100
-| |  summary:     add super bluid lib
-| |
-o |  changeset:   1388:f4ea619db3e9
-| |  user:        hecht
-| |  date:        Wed Nov 19 11:55:19 2008 +0100
-| |  summary:     correct of the download/tetgen/Makefile makefile.
-| |
-o |  changeset:   1387:3b6ce28f34f8
-| |  user:        hecht
-| |  date:        Tue Nov 18 17:38:31 2008 +0100
-| |  summary:     add missig file
-| |
-o |  changeset:   1386:08adb5c34633
-| |  user:        hecht
-| |  date:        Sun Nov 16 16:40:00 2008 +0100
-| |  summary:     try to put all download in same directory download/pkg
-| |
-o |  changeset:   1385:0f9c81225b28
-| |  user:        hecht
-| |  date:        Sun Nov 16 12:39:46 2008 +0100
-| |  summary:     add package you ubuntu
-| |
-o |  changeset:   1384:2f8474dc4698
-| |  user:        hecht
-| |  date:        Sun Nov 16 11:51:10 2008 +0100
-| |  summary:     correct the sieze of array to store eigen item (add +1)
-| |
-o |  changeset:   1383:b7546bc2390c
-| |  user:        hecht
-| |  date:        Sun Nov 16 11:09:58 2008 +0100
-| |  summary:     remove uninitialiez assert.
-| |
-o |  changeset:   1382:ff78c27246d0
-| |  user:        hecht
-| |  date:        Sun Nov 16 10:48:56 2008 +0100
-| |  summary:     coorect libmesh -> libmesh
-| |
-o |  changeset:   1381:552ace2fcfc7
-| |  user:        hecht
-| |  date:        Sun Nov 16 10:23:09 2008 +0100
-| |  summary:     coorect Makefile.am dependence to bluid compil.date
-| |
-o |  changeset:   1380:0caf8178753d
-| |  user:        hecht
-| |  date:        Sun Nov 16 10:02:05 2008 +0100
-| |  summary:     correct ffmedit Makefile.am missing bluid of ompil.date file
-| |
-o |  changeset:   1379:4e8f7f89556a
-| |  user:        hecht
-| |  date:        Sun Nov 16 09:43:24 2008 +0100
-| |  summary:     correct srv/nw/Makefile.am
-| |
-o |  changeset:   1378:9516426752a3
-| |  user:        hecht
-| |  date:        Sun Nov 16 09:33:36 2008 +0100
-| |  summary:     add missing file
-| |
-o |  changeset:   1377:93b754159849
-| |  user:        hecht
-| |  date:        Sun Nov 16 01:06:32 2008 +0100
-| |  summary:     Huge change in the graphic part.
-| |
-o |  changeset:   1376:9f86824cee2c
-| |  user:        morice
-| |  date:        Thu Nov 13 16:43:39 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1375:1589ecf1c4b7
-| |  user:        morice
-| |  date:        Thu Nov 13 16:40:04 2008 +0100
-| |  summary:     Removed file
-| |
-o |  changeset:   1374:32d14aaa8bc1
-| |  user:        morice
-| |  date:        Wed Nov 05 11:15:23 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1373:0781509f872e
-| |  user:        morice
-| |  date:        Tue Nov 04 17:18:35 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1372:1faebc041661
-| |  user:        morice
-| |  date:        Tue Nov 04 17:16:50 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1371:cf940b88989d
-| |  user:        morice
-| |  date:        Thu Oct 30 11:38:03 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1370:472ebd5510b3
-| |  user:        morice
-| |  date:        Thu Oct 30 11:29:15 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1369:884b6e24b73b
-| |  user:        morice
-| |  date:        Wed Oct 29 16:29:20 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1368:71743a70f477
-| |  user:        morice
-| |  date:        Wed Oct 29 15:10:15 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1367:5f666b631f8b
-| |  user:        morice
-| |  date:        Wed Oct 29 14:12:46 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1366:5ac0c0b60644
-| |  user:        morice
-| |  date:        Wed Oct 29 11:24:56 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1365:d236083ebc43
-| |  user:        morice
-| |  date:        Wed Oct 29 11:21:03 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1364:85909104f0c6
-| |  user:        morice
-| |  date:        Wed Oct 29 11:09:45 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1363:5cb1c4d257fd
-| |  user:        morice
-| |  date:        Mon Oct 27 10:09:44 2008 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1362:cf7b0f1fb9da
-| |  user:        hecht
-| |  date:        Mon Oct 20 22:24:33 2008 +0200
-| |  summary:     add medit to freefem++
-| |
-o |  changeset:   1361:41bd8613d841
-| |  user:        hecht
-| |  date:        Mon Oct 20 16:11:57 2008 +0200
-| |  summary:     add medit in ff++
-| |
-o |  changeset:   1360:6e76013fe786
-| |  user:        hecht
-| |  date:        Sun Oct 19 21:59:21 2008 +0200
-| |  summary:     -- correct none sym eigen arpack call
-| |
-o |  changeset:   1359:97fc195ae7e3
-| |  user:        hecht
-| |  date:        Fri Oct 17 10:44:44 2008 +0200
-| |  summary:     coorect memory misstake in profile matrix.
-| |
-o |  changeset:   1358:182ef0dd29d7
-| |  user:        hecht
-| |  date:        Thu Oct 16 23:10:19 2008 +0200
-| |  summary:     correct memory problem with valgrind.
-| |
-o |  changeset:   1357:fceafcd3c68a
-| |  user:        hecht
-| |  date:        Mon Oct 13 15:58:25 2008 +0200
-| |  summary:     correct  low of precision of geom
-| |
-o |  changeset:   1356:a98d4ac7e0c7
-| |  user:        hecht
-| |  date:        Mon Oct 06 16:59:07 2008 +0200
-| |  summary:     load in correct .edp
-| |
-o |  changeset:   1355:4de09c7ef69d
-| |  user:        hecht
-| |  date:        Mon Oct 06 10:04:30 2008 +0200
-| |  summary:     correct 3d. convert
-| |
-o |  changeset:   1354:6fb475c41e45
-| |  user:        hecht
-| |  date:        Mon Oct 06 09:28:36 2008 +0200
-| |  summary:     correct convect 3D
-| |
-o |  changeset:   1353:a31edb97daea
-| |  user:        hecht
-| |  date:        Mon Oct 06 09:26:17 2008 +0200
-| |  summary:     correct convect in 3D.
-| |
-o |  changeset:   1352:c17f71265f73
-| |  user:        morice
-| |  date:        Thu Sep 25 15:00:32 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1351:e2d0255aa3b7
-| |  user:        morice
-| |  date:        Thu Sep 25 14:55:41 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1350:6bad008adbfd
-| |  user:        morice
-| |  date:        Thu Sep 18 11:31:12 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1349:fcdbf4222941
-| |  user:        morice
-| |  date:        Thu Sep 18 11:24:59 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1348:f577647a6ef8
-| |  user:        hecht
-| |  date:        Wed Sep 17 18:25:19 2008 +0200
-| |  summary:     correct PB on win32 version with P102_1.o (bogus) so remve because not used.
-| |
-o |  changeset:   1347:e94555467e80
-| |  user:        hecht
-| |  date:        Thu Sep 04 13:18:21 2008 +0200
-| |  summary:     add NSI3d-carac.edp
-| |
-o |  changeset:   1346:fd5ed1df556b
-| |  user:        hecht
-| |  date:        Wed Aug 27 17:07:31 2008 +0200
-| |  summary:     a fist beta version with 3d convect
-| |
-o |  changeset:   1345:0e28f1046f82
-| |  user:        hecht
-| |  date:        Wed Aug 27 16:13:16 2008 +0200
-| |  summary:     correct in case of more than 2 proc.
-| |
-o |  changeset:   1344:bc6b22ce6c7d
-| |  user:        hecht
-| |  date:        Wed Aug 27 15:28:02 2008 +0200
-| |  summary:     cleanning mpi output
-| |
-o |  changeset:   1343:14964c74521c
-| |  user:        hecht
-| |  date:        Wed Aug 27 15:18:46 2008 +0200
-| |  summary:     same
-| |
-o |  changeset:   1342:3101fb2fa5a9
-| |  user:        hecht
-| |  date:        Wed Aug 27 15:16:55 2008 +0200
-| |  summary:     improve output of  end mpi
-| |
-o |  changeset:   1341:c9b452184dc3
-| |  user:        hecht
-| |  date:        Wed Aug 27 14:50:58 2008 +0200
-| |  summary:     output clening
-| |
-o |  changeset:   1340:5d9c08ee5b5a
-| |  user:        hecht
-| |  date:        Wed Aug 27 14:30:24 2008 +0200
-| |  summary:     correct MPI dump
-| |
-o |  changeset:   1339:761f96cc8fa4
-| |  user:        hecht
-| |  date:        Mon Aug 25 16:18:28 2008 +0200
-| |  summary:     add new test
-| |
-o |  changeset:   1338:96837b9d8490
-| |  user:        hecht
-| |  date:        Mon Aug 25 16:01:19 2008 +0200
-| |  summary:     add meditsol.edp test (bugus)
-| |
-o |  changeset:   1337:631ca7f3b833
-| |  user:        hecht
-| |  date:        Mon Aug 25 15:23:45 2008 +0200
-| |  summary:     correct popen.cpp
-| |
-o |  changeset:   1336:3fae4ab680d1
-| |  user:        hecht
-| |  date:        Mon Aug 25 15:00:35 2008 +0200
-| |  summary:     add popen.cpp of medit link
-| |
-o |  changeset:   1335:9a3735113e93
-| |  user:        hecht
-| |  date:        Mon Aug 25 10:57:43 2008 +0200
-| |  summary:     add convect 3D
-| |
-o |  changeset:   1334:4fd6a0503885
-| |  user:        hecht
-| |  date:        Wed Jul 23 23:00:00 2008 +0200
-| |  summary:     a beta version of 3d version
-| |
-o |  changeset:   1333:634631a624d7
-| |  user:        hecht
-| |  date:        Wed Jul 23 22:11:51 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1332:dd46501bfe35
-| |  user:        hecht
-| |  date:        Wed Jul 23 22:09:31 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1331:5cadbb291dff
-| |  user:        hecht
-| |  date:        Wed Jul 23 14:51:56 2008 +0200
-| |  summary:     correct CXXFLAGS for load.link
-| |
-o |  changeset:   1330:9acc92fffb15
-| |  user:        hecht
-| |  date:        Wed Jul 23 14:07:36 2008 +0200
-| |  summary:     coorect algo.edp
-| |
-o |  changeset:   1329:4f3864fced7f
-| |  user:        hecht
-| |  date:        Wed Jul 23 14:05:48 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1328:593795622f68
-| |  user:        hecht
-| |  date:        Wed Jul 23 13:47:08 2008 +0200
-| |  summary:     add new 3d exemple
-| |
-o |  changeset:   1327:e396a7e86ddf
-| |  user:        hecht
-| |  date:        Wed Jul 23 13:03:58 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1326:4101a19ce39b
-| |  user:        morice
-| |  date:        Wed Jul 23 12:15:13 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1325:8511165a8c1a
-| |  user:        morice
-| |  date:        Wed Jul 23 12:10:59 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1324:a7fbfb69aff9
-| |  user:        hecht
-| |  date:        Mon Jul 07 22:39:14 2008 +0200
-| |  summary:     add big change in pointer cleanning of mesh.
-| |
-o |  changeset:   1323:c1c144d0c93e
-| |  user:        morice
-| |  date:        Fri Jun 27 10:45:42 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1322:72d5d48de380
-| |  user:        hecht
-| |  date:        Fri Jun 27 10:07:39 2008 +0200
-| |  summary:     remove const char   warning
-| |
-o |  changeset:   1321:0350e3b8531b
-| |  user:        hecht
-| |  date:        Fri Jun 27 10:00:34 2008 +0200
-| |  summary:     remove tetgen part
-| |
-o |  changeset:   1320:ae68e0e4759d
-| |  user:        hecht
-| |  date:        Fri Jun 27 09:51:03 2008 +0200
-| |  summary:     correct FQuadTree construction
-| |
-o |  changeset:   1319:dacab2664d74
-| |  user:        hecht
-| |  date:        Fri Jun 27 09:50:21 2008 +0200
-| |  summary:     add constructeur dans FQuadTree
-| |
-o |  changeset:   1318:47569a10b553
-| |  user:        hecht
-| |  date:        Thu Jun 26 17:46:28 2008 +0200
-| |  summary:     correct RdtoZd  fonction
-| |
-o |  changeset:   1317:b286cadc4463
-| |  user:        morice
-| |  date:        Thu Jun 26 16:12:33 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1316:bd0a4bc55b82
-| |  user:        morice
-| |  date:        Thu Jun 26 14:18:52 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1315:353f0557aeeb
-| |  user:        hecht
-| |  date:        Tue Jun 24 13:36:56 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1314:b48bf88426b8
-| |  user:        hecht
-| |  date:        Tue Jun 24 11:48:58 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1313:db5f17893fd7
-| |  user:        hecht
-| |  date:        Sun Jun 22 20:45:48 2008 +0200
-| |  summary:     remove of cout
-| |
-o |  changeset:   1312:d807bb0388ff
-| |  user:        hecht
-| |  date:        Sat Jun 21 14:18:56 2008 +0200
-| |  summary:     add missing logo
-| |
-o |  changeset:   1311:0f16fe410b58
-| |  user:        hecht
-| |  date:        Sat Jun 21 14:17:09 2008 +0200
-| |  summary:     the alpha version. 3.00
-| |
-o |  changeset:   1310:f6455cf8648e
-| |  user:        hecht
-| |  date:        Sat Jun 21 14:05:00 2008 +0200
-| |  summary:     add missing files
-| |
-o |  changeset:   1309:07e1db73daf0
-| |  user:        morice
-| |  date:        Fri Jun 20 16:58:55 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1308:7b7733d0e797
-| |  user:        hecht
-| |  date:        Thu Jun 19 23:37:37 2008 +0200
-| |  summary:     add missing files
-| |
-o |  changeset:   1307:3302a94264c3
-| |  user:        hecht
-| |  date:        Thu Jun 19 23:22:54 2008 +0200
-| |  summary:     correct  examples++-load/Makefile.am  to add dependence to compile glumesh.cpp
-| |
-o |  changeset:   1306:6edc84e14d53
-| |  user:        hecht
-| |  date:        Thu Jun 19 14:21:08 2008 +0200
-| |  summary:     un version pas mal
-| |
-o |  changeset:   1305:173c659a2f6f
-| |  user:        hecht
-| |  date:        Wed Jun 18 13:55:36 2008 +0200
-| |  summary:     add true random function
-| |
-o |  changeset:   1304:3c554295e169
-| |  user:        hecht
-| |  date:        Wed Jun 18 11:17:57 2008 +0200
-| |  summary:     coorect error  between R2 and R3 stuff.
-| |
-o |  changeset:   1303:8345c9dcffd8
-| |  user:        hecht
-| |  date:        Fri Jun 13 12:01:42 2008 +0200
-| |  summary:     coorect missing patch-lapack in arpack
-| |
-o |  changeset:   1302:a8e47b3a6ead
-| |  user:        hecht
-| |  date:        Thu Jun 12 23:30:25 2008 +0200
-| |  summary:     add missing file
-| |
-o |  changeset:   1301:8419ef4b5ea6
-| |  user:        hecht
-| |  date:        Tue Jun 10 22:19:20 2008 +0200
-| |  summary:     remove arpack++ from freefem++
-| |
-o |  changeset:   1300:5f7e9ae6121c
-| |  user:        hecht
-| |  date:        Tue Jun 10 22:17:25 2008 +0200
-| |  summary:     remove arpack++
-| |
-o |  changeset:   1299:47c0d89ac233
-| |  user:        hecht
-| |  date:        Tue Jun 10 22:15:11 2008 +0200
-| |  summary:     remove arpack++
-| |
-o |  changeset:   1298:e2fed9f3b434
-| |  user:        hecht
-| |  date:        Mon Jun 09 18:36:48 2008 +0200
-| |  summary:     correction g++ 4.2
-| |
-o |  changeset:   1297:cde6b903a078
-| |  user:        hecht
-| |  date:        Mon Jun 09 18:36:08 2008 +0200
-| |  summary:     correction of g++ 4.2
-| |
-o |  changeset:   1296:dba2f88087e1
-| |  user:        morice
-| |  date:        Mon Jun 09 14:32:52 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1295:a38a0a05c591
-| |  user:        morice
-| |  date:        Mon Jun 09 14:15:13 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1294:62223cb51036
-| |  user:        hecht
-| |  date:        Wed May 28 21:44:49 2008 +0200
-| |  summary:     a correct in FEproduct
-| |
-o |  changeset:   1293:5725424057d0
-| |  user:        hecht
-| |  date:        Wed May 28 17:18:14 2008 +0200
-| |  summary:     remove dump
-| |
-o |  changeset:   1292:8b52cc829a1e
-| |  user:        hecht
-| |  date:        Wed May 28 17:16:34 2008 +0200
-| |  summary:     the first 3d version running all test
-| |
-o |  changeset:   1291:6677a3cb311b
-| |  user:        hecht
-| |  date:        Mon May 26 17:12:44 2008 +0200
-| |  summary:     add explicit instenciation E_set_fev3
-| |
-o |  changeset:   1290:384cb8fc29ec
-| |  user:        hecht
-| |  date:        Mon May 26 16:59:08 2008 +0200
-| |  summary:     Stokes is working now.
-| |
-o |  changeset:   1289:44bcfe697314
-| |  user:        hecht
-| |  date:        Mon May 26 09:07:56 2008 +0200
-| |  summary:     add STokes in 3d
-| |
-o |  changeset:   1288:e1870d7093b2
-| |  user:        hecht
-| |  date:        Sat May 24 17:05:38 2008 +0200
-| |  summary:     the first Laplace Operator in 3d work in P13d,P23d finite element.
-| |
-o |  changeset:   1287:0601417c00f0
-| |  user:        hecht
-| |  date:        Thu May 22 16:05:13 2008 +0200
-| |  summary:     correct pb in mesure of tet.
-| |
-o |  changeset:   1286:13797127fc40
-| |  user:        hecht
-| |  date:        Wed May 21 12:41:42 2008 +0200
-| |  summary:     correct GTree  Case methode
-| |
-o |  changeset:   1285:25a3f156a803
-| |  user:        morice
-| |  date:        Wed May 21 11:05:22 2008 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1284:12639b380533
-| |  user:        hecht
-| |  date:        Tue May 20 22:05:36 2008 +0200
-| |  summary:     pb case sensitive in include
-| |
-o |  changeset:   1283:264ad3e9df15
-| |  user:        hecht
-| |  date:        Tue May 20 16:44:49 2008 +0200
-| |  summary:     modif for layer meshes.
-| |
-o |  changeset:   1282:eede6e45ca29
-| |  user:        hecht
-| |  date:        Tue May 20 12:12:16 2008 +0200
-| |  summary:     correct  layer
-| |
-o |  changeset:   1281:9e5802e9e6f2
-| |  user:        hecht
-| |  date:        Tue May 20 11:08:56 2008 +0200
-| |  summary:     add 3 files
-| |
-o |  changeset:   1280:25be52991a76
-| |  user:        hecht
-| |  date:        Fri May 16 10:07:35 2008 +0200
-| |  summary:     add int2d on border off 3d mesh
-| |
-o |  changeset:   1279:271a0c10b941
-| |  user:        hecht
-| |  date:        Fri May 16 00:26:03 2008 +0200
-| |  summary:     add PBord methode to compute genericaly integrale on border element.
-| |
-o |  changeset:   1278:bcf7733f66cf
-| |  user:        hecht
-| |  date:        Thu May 15 23:39:14 2008 +0200
-| |  summary:     correct class  Z3 + Save 3d mesh.
-| |
-o |  changeset:   1277:7f3efc97d905
-| |  user:        hecht
-| |  date:        Thu May 15 23:11:21 2008 +0200
-| |  summary:     remove strversionnumber.cpp (build by the makefiel)
-| |
-o |  changeset:   1276:6846c158476b
-| |  user:        hecht
-| |  date:        Thu May 15 23:03:50 2008 +0200
-| |  summary:     correct win32 mistake double def + PB  GQTree R1
-| |
-o |  changeset:   1275:9b461360cca1
-| |  user:        hecht
-| |  date:        Thu May 15 14:52:25 2008 +0200
-| |  summary:     correct missing assert def in src/femlib/QuadratureFormular.cpp
-| |
-o |  changeset:   1274:59f70178b6a3
-| |  user:        hecht
-| |  date:        Thu May 15 14:13:05 2008 +0200
-| |  summary:     correct
-| |
-o |  changeset:   1273:4e1c1f21abc0
-| |  user:        hecht
-| |  date:        Thu May 15 13:31:00 2008 +0200
-| |  summary:     add missing file
-| |
-o |  changeset:   1272:1e7c8947e560
-| |  user:        hecht
-| |  date:        Thu May 15 13:28:57 2008 +0200
-| |  summary:     correct include dir
-| |
-o |  changeset:   1271:20d19853a704
-| |  user:        hecht
-| |  date:        Thu May 15 12:48:33 2008 +0200
-| |  summary:     add missing file
-| |
-o |  changeset:   1270:6375ea25c494
-| |  user:        hecht
-| |  date:        Thu May 15 12:05:19 2008 +0200
-| |  summary:     a fist 3d version, with PB on boundaru contion.
-| |
-o |  changeset:   1269:93f976abeabc
-| |  user:        hecht
-| |  date:        Thu May 15 00:47:02 2008 +0200
-| |  summary:     3d next step
-| |
-o |  changeset:   1268:60d306545870
-| |  user:        hecht
-| |  date:        Wed May 14 14:48:25 2008 +0200
-| |  summary:     3d continuing
-| |
-o |  changeset:   1267:051a2b0b8339
-| |  user:        hecht
-| |  date:        Wed May 07 16:12:02 2008 +0200
-| |  summary:     a first 3d version ..
-| |
-o |  changeset:   1266:a11672848900
-| |  user:        hecht
-| |  date:        Tue Apr 29 22:19:00 2008 +0200
-| |  summary:     add file
-| |
-o |  changeset:   1265:259dcc851d31
-| |  user:        hecht
-| |  date:        Tue Apr 29 22:01:24 2008 +0200
-| |  summary:     correct examples++-load
-| |
-o |  changeset:   1264:53db1907af65
-| |  user:        hecht
-| |  date:        Tue Apr 29 21:05:36 2008 +0200
-| |  summary:     pass to version 2.25 (last version before 3.0)
-| |
-o |  changeset:   1263:ec6a9046af52
-| |  tag:         release_2_24_4
-| |  user:        hecht
-| |  date:        Wed Apr 23 12:18:12 2008 +0200
-| |  summary:     correct missing code in DG of term in linear form
-| |
-o |  changeset:   1262:e6648830647f
-| |  user:        hecht
-| |  date:        Fri Apr 18 08:26:34 2008 +0200
-| |  summary:     see innovation + correzction in doc
-| |
-o |  changeset:   1261:59b6014ebe00
-| |  user:        hecht
-| |  date:        Fri Apr 11 16:52:51 2008 +0200
-| |  summary:     add formal operator .* and ./ on array []
-| |
-o |  changeset:   1260:ef82bf406677
-| |  user:        hecht
-| |  date:        Fri Apr 11 16:14:11 2008 +0200
-| |  summary:     correct lex.cpp for parameter macro  comma between [].
-| |
-o |  changeset:   1259:94fb8bee70ab
-| |  user:        hecht
-| |  date:        Wed Apr 09 15:46:19 2008 +0200
-| |  summary:     correct eigenvalue, (undo remove  1 line)
-| |
-o |  changeset:   1258:05b9c0c843e5
-| |  user:        hecht
-| |  date:        Wed Apr 09 14:20:41 2008 +0200
-| |  summary:     ad resid= vector in eigen value (see arpack doc)
-| |
-o |  changeset:   1257:d32b839daca5
-| |  user:        hecht
-| |  date:        Wed Apr 09 10:03:09 2008 +0200
-| |  summary:     correct err 21 trp in mshptg (pile trop petit)
-| |
-o |  changeset:   1256:3cdb4d96732c
-| |  user:        hecht
-| |  date:        Wed Apr 09 09:24:39 2008 +0200
-| |  summary:     coorect missing trap in case of errror in msgtpg
-| |
-o |  changeset:   1255:40aba1424fd5
-| |  user:        hecht
-| |  date:        Tue Apr 01 12:05:59 2008 +0200
-| |  summary:     add Bob Gustafson coorect in the doc.
-| |
-o |  changeset:   1254:99c4f39ceb54
-| |  user:        hecht
-| |  date:        Thu Mar 27 14:17:50 2008 +0100
-| |  summary:     correct confire.ac build FLIBS (suite)
-| |
-o |  changeset:   1253:7952d7e59157
-| |  user:        hecht
-| |  date:        Thu Mar 27 12:17:40 2008 +0100
-| |  summary:     misa a jour INNOVATION
-| |
-o |  changeset:   1252:686b9984089a
-| |  user:        hecht
-| |  date:        Thu Mar 27 12:14:26 2008 +0100
-| |  summary:     correct configre.ac to check FLIBS and test the value of FLIBS and X11_LIBS
-| |
-o |  changeset:   1251:7a218e8eb4e4
-| |  user:        hecht
-| |  date:        Fri Feb 22 18:10:51 2008 +0100
-| |  summary:     add missing file
-| |
-o |  changeset:   1250:3f6f96956582
-| |  user:        hecht
-| |  date:        Fri Feb 22 17:49:19 2008 +0100
-| |  summary:     pass to 2.24.1 and  correct buildmesh trap in case of degenerated border.
-| |
-o |  changeset:   1249:466c6cf70d4e
-| |  user:        hecht
-| |  date:        Tue Feb 19 21:00:35 2008 +0100
-| |  summary:     correct periodic condition limite to 1 edge.
-| |
-o |  changeset:   1248:292de6acfd0c
-| |  user:        hecht
-| |  date:        Fri Feb 15 11:16:44 2008 +0100
-| |  summary:     correct include.tar.gz
-| |
-o |  changeset:   1247:f1ac94ae30f0
-| |  user:        hecht
-| |  date:        Thu Feb 14 23:08:44 2008 +0100
-| |  summary:     add missing file R[123].hpp in Makefile.am for dist
-| |
-o |  changeset:   1246:5db85e01658c
-| |  user:        hecht
-| |  date:        Thu Feb 14 14:44:20 2008 +0100
-| |  summary:     rebuild include.tar.gz
-| |
-o |  changeset:   1245:6f7beaf98f55
-| |  user:        hecht
-| |  date:        Thu Feb 14 14:33:59 2008 +0100
-| |  summary:     v 2.24
-| |
-o |  changeset:   1244:71fc0f351404
-| |  user:        hecht
-| |  date:        Thu Feb 07 15:15:32 2008 +0100
-| |  summary:     add script to download medit on windows
-| |
-o |  changeset:   1243:37f9085ca0af
-| |  user:        hecht
-| |  date:        Mon Feb 04 15:07:38 2008 +0100
-| |  summary:     add lazst modification in the doc.
-| |
-o |  changeset:   1242:1d53bd6f9e96
-| |  user:        hecht
-| |  date:        Fri Feb 01 22:09:10 2008 +0100
-| |  summary:     add Th=triangule(xx,yy);
-| |
-o |  changeset:   1241:c1f45746fb19
-| |  user:        hecht
-| |  date:        Tue Jan 29 23:29:12 2008 +0100
-| |  summary:     add info   INNOVATION file
-| |
-o |  changeset:   1240:e1d2110881df
-| |  user:        hecht
-| |  date:        Tue Jan 29 23:20:52 2008 +0100
-| |  summary:     correct rare bug in bamg (missing initialisation variable edges[].adj
-| |
-o |  changeset:   1239:2d981f5a74aa
-| |  user:        hecht
-| |  date:        Thu Jan 24 09:26:32 2008 +0100
-| |  summary:     correct assert fail in case of no UMFPACK in make check
-| |
-o |  changeset:   1238:355795395a28
-| |  user:        hecht
-| |  date:        Wed Jan 23 11:04:16 2008 +0100
-| |  summary:     add mortar (Neuman to Dirichlet )  example in scalar and parallel version
-| |
-o |  changeset:   1237:7132e4a552e2
-| |  user:        hecht
-| |  date:        Tue Jan 22 17:23:05 2008 +0100
-| |  summary:     add vectorial operator ( a ? b : c)  on array where b and c can be scalar
-| |
-o |  changeset:   1236:35c531d0eda6
-| |  user:        hecht
-| |  date:        Wed Jan 16 12:37:04 2008 +0100
-| |  summary:     correct mpi (receive  is now synchrone  and send is asychrone)
-| |
-o |  changeset:   1235:ccbffa0edbc1
-| |  user:        hecht
-| |  date:        Fri Jan 11 10:59:18 2008 +0100
-| |  summary:     nothing
-| |
-o |  changeset:   1234:4a5c97ce6af0
-| |  user:        hecht
-| |  date:        Wed Jan 09 22:33:15 2008 +0100
-| |  summary:     correct README of debian and cnfigure.ac of checking umfpack lib.
-| |
-o |  changeset:   1233:6dc9e9cff6b7
-| |  user:        hecht
-| |  date:        Sat Jan 05 16:50:32 2008 +0100
-| |  summary:     correct Makefile to build universal executable file  on MacOS
-| |
-o |  changeset:   1232:5e33a386cfea
-| |  user:        hecht
-| |  date:        Wed Dec 26 17:30:04 2007 +0100
-| |  summary:     cvs ranlib and ar  in umfpack compilation process of universal file on apple.
-| |
-o |  changeset:   1231:67239ae99bc8
-| |  user:        hecht
-| |  date:        Wed Dec 26 16:44:28 2007 +0100
-| |  summary:     Make big change un configure.ac and makefiel.am to build universal binarie file on apple (ppc and i386)
-| |
-o |  changeset:   1230:42ff4f594013
-| |  user:        hecht
-| |  date:        Thu Dec 20 13:11:42 2007 +0100
-| |  summary:     correct freefem++-doc
-| |
-o |  changeset:   1229:46601bd22684
-| |  user:        hecht
-| |  date:        Tue Dec 18 18:35:55 2007 +0100
-| |  summary:     missing file
-| |
-o |  changeset:   1228:c55ffbf8c297
-| |  user:        hecht
-| |  date:        Tue Dec 18 18:19:04 2007 +0100
-| |  summary:     change ref value  correct elastycity.
-| |
-o |  changeset:   1227:4264a1078ace
-| |  user:        hecht
-| |  date:        Tue Dec 18 18:04:09 2007 +0100
-| |  summary:     just change in UFconfig_mk.m4 for freebsd for comment
-| |
-o |  changeset:   1226:82ca7c0795f4
-| |  user:        hecht
-| |  date:        Tue Dec 18 16:43:55 2007 +0100
-| |  summary:     see innovation correct bug in function with string argument
-| |
-o |  changeset:   1225:30b829eb80a6
-| |  user:        hecht
-| |  date:        Tue Dec 11 21:18:52 2007 +0100
-| |  summary:     type correct Pcrgraph
-| |
-o |  changeset:   1224:f93b6dc20752
-| |  user:        hecht
-| |  date:        Fri Nov 30 13:54:29 2007 +0100
-| |  summary:     correct   error on mpi version
-| |
-o |  changeset:   1223:6b813cebfc7e
-| |  user:        hecht
-| |  date:        Thu Nov 29 12:20:33 2007 +0100
-| |  summary:     suite
-| |
-o |  changeset:   1222:b31f36430d73
-| |  user:        hecht
-| |  date:        Thu Nov 29 12:18:20 2007 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1221:5a4cf32a8ce0
-| |  user:        hecht
-| |  date:        Thu Nov 29 12:15:25 2007 +0100
-| |  summary:     next
-| |
-o |  changeset:   1220:013e64381c12
-| |  user:        hecht
-| |  date:        Thu Nov 29 12:11:42 2007 +0100
-| |  summary:     correct missing preprocessing  variable
-| |
-o |  changeset:   1219:16f1a0466850
-| |  user:        hecht
-| |  date:        Thu Nov 29 07:42:05 2007 +0100
-| |  summary:     correct configure.ac for umfpack (sometime missng a library)
-| |
-o |  changeset:   1218:8c9df5beb3a7
-| |  user:        hecht
-| |  date:        Tue Nov 20 16:49:01 2007 +0100
-| |  summary:     correct missing tapping error in test build drawbdmesh on windows.
-| |
-o |  changeset:   1217:8855b0228166
-| |  user:        hecht
-| |  date:        Tue Nov 20 16:13:38 2007 +0100
-| |  summary:     correct bamg on windows missing drawbdmesh.exe
-| |
-o |  changeset:   1216:d6d35bd4d912
-| |  user:        hecht
-| |  date:        Tue Nov 20 15:38:21 2007 +0100
-| |  summary:     coorect   missing exe extension on bamg program in confure.ac
-| |
-o |  changeset:   1215:5140ecde974b
-| |  user:        hecht
-| |  date:        Mon Nov 19 21:40:06 2007 +0100
-| |  summary:     correct mpi for macos leopard,
-| |
-o |  changeset:   1214:c958ea8751f6
-| |  user:        hecht
-| |  date:        Mon Nov 19 18:13:44 2007 +0100
-| |  summary:     correct MPI configure.ac
-| |
-o |  changeset:   1213:5971ef36e8b0
-| |  user:        hecht
-| |  date:        Mon Nov 19 14:41:30 2007 +0100
-| |  summary:     continuing
-| |
-o |  changeset:   1212:1d04be51cbd3
-| |  user:        hecht
-| |  date:        Mon Nov 19 14:40:00 2007 +0100
-| |  summary:     missing mpiprog
-| |
-o |  changeset:   1211:87b998a26081
-| |  user:        hecht
-| |  date:        Mon Nov 19 14:25:04 2007 +0100
-| |  summary:     correct configure.ac missing FreeFem++ with X11
-| |
-o |  changeset:   1210:8b75110cb5a3
-| |  user:        hecht
-| |  date:        Mon Nov 19 14:17:36 2007 +0100
-| |  summary:     correct configure.ac without x11
-| |
-o |  changeset:   1209:311d084c2046
-| |  user:        hecht
-| |  date:        Sun Nov 18 13:20:22 2007 +0100
-| |  summary:     correct  documentation for new edition
-| |
-o |  changeset:   1208:24706bfcaeff
-| |  user:        hecht
-| |  date:        Tue Nov 13 16:40:14 2007 +0100
-| |  summary:     correct doc,
-| |
-o |  changeset:   1207:3d6e666c6d16
-| |  user:        hecht
-| |  date:        Wed Oct 24 22:17:06 2007 +0200
-| |  summary:     see INNOVATION file
-| |
-o |  changeset:   1206:7165e6427c0e
-| |  user:        hecht
-| |  date:        Mon Oct 22 18:17:22 2007 +0200
-| |  summary:     add format + - , trace and det of array
-| |
-o |  changeset:   1205:4389ca545f46
-| |  user:        hecht
-| |  date:        Tue Oct 02 17:55:05 2007 +0200
-| |  summary:     correct missing parameter SolveGCPrecon and SolveGCDiag
-| |
-o |  changeset:   1204:7c01e8973cec
-| |  user:        hecht
-| |  date:        Tue Oct 02 16:49:37 2007 +0200
-| |  summary:     correct miss-spelling
-| |
-o |  changeset:   1203:78037197ef80
-| |  user:        hecht
-| |  date:        Tue Oct 02 16:07:26 2007 +0200
-| |  summary:     -  add in download automatic generation of f2c and fort77 to get a free  fortran compiler
-| |
-o |  changeset:   1202:45e43ae71094
-| |  user:        hecht
-| |  date:        Sun Sep 30 17:45:11 2007 +0200
-| |  summary:     Add  sparse solver in documentation
-| |
-o |  changeset:   1201:05897868c18c
-| |  user:        hecht
-| |  date:        Thu Sep 20 21:53:50 2007 +0200
-| |  summary:     add SuperSolevr
-| |
-o |  changeset:   1200:9f9f13a8f113
-| |  user:        hecht
-| |  date:        Sun Sep 09 21:17:01 2007 +0200
-| |  summary:     add f2d in case of no fortran
-| |
-o |  changeset:   1199:61b84c52d78d
-| |  user:        hecht
-| |  date:        Fri Sep 07 17:09:59 2007 +0200
-| |  summary:     add f2c download
-| |
-o |  changeset:   1198:04efc3f5f54b
-| |  user:        hecht
-| |  date:        Fri Sep 07 00:13:17 2007 +0200
-| |  summary:     recorrect operator += Virtual matrix operator (introduction in august)
-| |
-o |  changeset:   1197:ff3f4337d5e3
-| |  user:        hecht
-| |  date:        Thu Sep 06 16:23:51 2007 +0200
-| |  summary:     correct SuperLU and UMFPACK driver + add comparaison
-| |
-o |  changeset:   1196:8ae57860389a
-| |  user:        hecht
-| |  date:        Thu Sep 06 16:02:24 2007 +0200
-| |  summary:     add missing files
-| |
-o |  changeset:   1195:647ecb3eea6f
-| |  user:        hecht
-| |  date:        Thu Sep 06 15:58:49 2007 +0200
-| |  summary:     correct 2 def defaulttoGMRES
-| |
-o |  changeset:   1194:18a530f69d84
-| |  user:        hecht
-| |  date:        Thu Sep 06 15:14:13 2007 +0200
-| |  summary:     correct tool to add other sparse (morse) linear solver with dynamic load
-| |
-o |  changeset:   1193:b90d965d48fd
-| |  user:        hecht
-| |  date:        Wed Sep 05 23:27:44 2007 +0200
-| |  summary:     add set sparce solver (morse)
-| |
-o |  changeset:   1192:4ce83180909c
-| |  user:        hecht
-| |  date:        Wed Sep 05 20:15:55 2007 +0200
-| |  summary:     correct complex part of superLU
-| |
-o |  changeset:   1191:041538d4cb5e
-| |  user:        hecht
-| |  date:        Wed Sep 05 18:03:29 2007 +0200
-| |  summary:     Add tools to change Sparce Linear Solver
-| |
-o |  changeset:   1190:6f6d00a9fca5
-| |  user:        hecht
-| |  date:        Tue Aug 28 21:57:58 2007 +0200
-| |  summary:     add N,M in class VirtualMatrix, to correct probleme in RNM class
-| |
-o |  changeset:   1189:a5a12103ca64
-| |  user:        hecht
-| |  date:        Tue Aug 28 17:16:21 2007 +0200
-| |  summary:     add missing oiperator in array:
-| |
-o |  changeset:   1188:92165ee42a24
-| |  user:        hecht
-| |  date:        Fri Aug 24 09:12:38 2007 +0200
-| |  summary:     update doc comtinuing
-| |
-o |  changeset:   1187:da3adb2cfcd8
-| |  user:        hecht
-| |  date:        Fri Aug 24 08:27:32 2007 +0200
-| |  summary:     update the doc.
-| |
-o |  changeset:   1186:c5b4f3e3c65d
-| |  user:        hecht
-| |  date:        Mon Aug 20 21:29:52 2007 +0200
-| |  summary:     add missing file
-| |
-o |  changeset:   1185:866ce6820edc
-| |  user:        hecht
-| |  date:        Mon Aug 20 21:28:18 2007 +0200
-| |  summary:     correct mean and jump operator in interpolation
-| |
-o |  changeset:   1184:ed49097a6267
-| |  user:        hecht
-| |  date:        Mon Aug 20 20:07:51 2007 +0200
-| |  summary:     upgrade INNOVATION
-| |
-o |  changeset:   1183:341e9039538a
-| |  user:        hecht
-| |  date:        Mon Aug 20 18:07:07 2007 +0200
-| |  summary:     correct,  problem of automatic ptr managenemt in plot::operator()
-| |
-o |  changeset:   1182:d10dd6069cd6
-| |  user:        hecht
-| |  date:        Sun Aug 19 22:05:05 2007 +0200
-| |  summary:     pass to version 2.19.
-| |
-o |  changeset:   1181:df0e5e08baf6
-| |  user:        hecht
-| |  date:        Tue Aug 07 22:05:59 2007 +0200
-| |  summary:     correct cin on windows and and type on bogus buildmesh.
-| |
-o |  changeset:   1180:72d9b455a3a7
-| |  user:        hecht
-| |  date:        Thu Jul 19 19:22:48 2007 +0200
-| |  summary:     correct AdaptResidualErrorIndicator and download/Makefile.am to
-| |
-o |  changeset:   1179:a0266c67c331
-| |  user:        hecht
-| |  date:        Thu Jul 19 13:19:01 2007 +0200
-| |  summary:     add missing compile file in example++-load
-| |
-o |  changeset:   1178:82f8d3d94641
-| |  user:        hecht
-| |  date:        Thu Jul 19 11:41:48 2007 +0200
-| |  summary:     see INNOVATION file, past version 2.18
-| |
-o |  changeset:   1177:df947a9d2fbc
-| |  user:        hecht
-| |  date:        Mon Jul 16 14:47:18 2007 +0200
-| |  summary:     add quantile
-| |
-o |  changeset:   1176:eb553aa35dea
-| |  user:        hecht
-| |  date:        Fri Jul 13 17:33:23 2007 +0200
-| |  summary:     add code  to sort  array
-| |
-o |  changeset:   1175:35694b19dc26
-| |  user:        hecht
-| |  date:        Fri Jun 29 22:21:50 2007 +0200
-| |  summary:     xcode projet
-| |
-o |  changeset:   1174:7ad52446d9f9
-| |  user:        hecht
-| |  date:        Thu Jun 28 22:12:20 2007 +0200
-| |  summary:     correct compile error with gcc 3.2.2  lgmat.cpp
-| |
-o |  changeset:   1173:868c291e09df
-| |  user:        hecht
-| |  date:        Thu Jun 21 07:58:39 2007 +0200
-| |  summary:     correct ../fflib/environment.hpp:41:24: warning: no newline at end of file
-| |
-o |  changeset:   1172:542424ec6260
-| |  user:        hecht
-| |  date:        Wed Jun 20 22:42:21 2007 +0200
-| |  summary:     correct bilapMorley.edp add missing term in var. formulation.
-| |
-o |  changeset:   1171:3b9e9a1daea3
-| |  user:        hecht
-| |  date:        Mon Jun 18 22:58:10 2007 +0200
-| |  summary:     set 2.17-2
-| |
-o |  changeset:   1170:0ea82558902f
-| |  user:        hecht
-| |  date:        Mon Jun 18 22:42:38 2007 +0200
-| |  summary:     add mesh example
-| |
-o |  changeset:   1169:17bd8f713142
-| |  user:        hecht
-| |  date:        Mon Jun 18 22:20:25 2007 +0200
-| |  summary:     correct old bug in bamg, in case of bogus boundary (auto crossing)
-| |
-o |  changeset:   1168:33fc210a3294
-| |  user:        hecht
-| |  date:        Fri Jun 15 13:39:12 2007 +0200
-| |  summary:     clean the example
-| |
-o |  changeset:   1167:d1c701a50c9b
-| |  user:        hecht
-| |  date:        Fri Jun 15 11:02:46 2007 +0200
-| |  summary:     correct FreeFem++-Cocoa to add option  -v 0
-| |
-o |  changeset:   1166:730dc114f01f
-| |  user:        hecht
-| |  date:        Fri Jun 15 10:01:07 2007 +0200
-| |  summary:     add missing files
-| |
-o |  changeset:   1165:ed08ef696a78
-| |  user:        hecht
-| |  date:        Fri Jun 15 09:33:06 2007 +0200
-| |  summary:     end of 2.17-1  modif
-| |
-o |  changeset:   1164:2b725188838d
-| |  user:        hecht
-| |  date:        Thu Jun 14 23:03:54 2007 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1163:26214451b1ab
-| |  user:        hecht
-| |  date:        Thu Jun 14 22:35:37 2007 +0200
-| |  summary:     next
-| |
-o |  changeset:   1162:fcc2dbd3a9ce
-| |  user:        hecht
-| |  date:        Thu Jun 14 21:49:13 2007 +0200
-| |  summary:     add -v xx on pc version
-| |
-o |  changeset:   1161:463a69ad8896
-| |  user:        hecht
-| |  date:        Thu Jun 14 11:54:03 2007 +0200
-| |  summary:     suite
-| |
-o |  changeset:   1160:5484bd790c1e
-| |  user:        hecht
-| |  date:        Thu Jun 14 10:27:06 2007 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1159:9e4f6868ccd9
-| |  user:        hecht
-| |  date:        Thu Jun 14 09:51:10 2007 +0200
-| |  summary:     clear output when verbosity = 0
-| |
-o |  changeset:   1158:1584e449a412
-| |  user:        hecht
-| |  date:        Mon Jun 11 15:37:51 2007 +0200
-| |  summary:     correct automatique choose of color in plot of arrow
-| |
-o |  changeset:   1157:45091926fd64
-| |  user:        hecht
-| |  date:        Sat Jun 09 12:15:24 2007 +0200
-| |  summary:     add boundary= ...  flag in plot fonction.
-| |
-o |  changeset:   1156:233789981ccc
-| |  user:        hecht
-| |  date:        Thu Jun 07 12:16:52 2007 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1155:fc6ca727714b
-| |  user:        hecht
-| |  date:        Thu Jun 07 12:15:23 2007 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1154:730ea632f37b
-| |  user:        hecht
-| |  date:        Thu Jun 07 11:52:53 2007 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1153:b2e2ef7ef138
-| |  user:        hecht
-| |  date:        Thu Jun 07 10:53:13 2007 +0200
-| |  summary:     correct mistake in tgamma call
-| |
-o |  changeset:   1152:aee96893dd95
-| |  user:        hecht
-| |  date:        Thu Jun 07 10:37:29 2007 +0200
-| |  summary:     correct missing update
-| |
-o |  changeset:   1151:22b1fb44a1fd
-| |  user:        hecht
-| |  date:        Thu Jun 07 08:17:18 2007 +0200
-| |  summary:     add bessel function   j0, j1, jn, y0, y1, yn -- bessel functions of first and second kind
-| |
-o |  changeset:   1150:c506c2721bc1
-| |  user:        hecht
-| |  date:        Tue Jun 05 18:02:43 2007 +0200
-| |  summary:     same for complex eigen value
-| |
-o |  changeset:   1149:0f0ac1c8239d
-| |  user:        hecht
-| |  date:        Tue Jun 05 17:44:32 2007 +0200
-| |  summary:     add rawvector= in eigenvector
-| |
-o |  changeset:   1148:4bc4aa832c8e
-| |  user:        hecht
-| |  date:        Mon Jun 04 23:03:52 2007 +0200
-| |  summary:     correct qforder= automatic choose in quadature formular in computation of integrale
-| |
-o |  changeset:   1147:f83647e00352
-| |  user:        hecht
-| |  date:        Wed May 16 00:21:37 2007 +0200
-| |  summary:     just add missing files
-| |
-o |  changeset:   1146:d26722df3ff7
-| |  user:        hecht
-| |  date:        Wed May 16 00:09:46 2007 +0200
-| |  summary:     correct  Makefile.am for  examples++-load/include  missing file
-| |
-o |  changeset:   1145:816c2b7c8609
-| |  user:        hecht
-| |  date:        Tue May 15 23:48:22 2007 +0200
-| |  summary:     do autoreconf
-| |
-o |  changeset:   1144:ec60d212a134
-| |  user:        hecht
-| |  date:        Tue May 15 22:01:55 2007 +0200
-| |  summary:     coorect mistake with libcblas
-| |
-o |  changeset:   1143:d110d5bbf588
-| |  user:        hecht
-| |  date:        Thu May 10 12:05:39 2007 +0200
-| |  summary:     correct very old bug in meshptg in case aligne point
-| |
-o |  changeset:   1142:be336c51a337
-| |  user:        hecht
-| |  date:        Thu May 03 10:36:34 2007 +0200
-| |  summary:     correct   Makefile.am dans examples++-load
-| |
-o |  changeset:   1141:c00cb936f998
-| |  user:        hecht
-| |  date:        Wed May 02 17:29:06 2007 +0200
-| |  summary:     - Add read sparce matrix form a file
-| |
-o |  changeset:   1140:f4d3b4252673
-| |  user:        hecht
-| |  date:        Wed Apr 25 09:28:12 2007 +0200
-| |  summary:     coorect splitmesh next step
-| |
-o |  changeset:   1139:650460b31c24
-| |  user:        hecht
-| |  date:        Tue Apr 24 22:20:08 2007 +0200
-| |  summary:     coorect meshsplit function
-| |
-o |  changeset:   1138:d4553b50a958
-| |  user:        hecht
-| |  date:        Tue Apr 24 17:18:50 2007 +0200
-| |  summary:     correct  the variable ff_testideprog="testhighlight${EXEEXT}"
-| |
-o |  changeset:   1137:2a10ec7ebf4a
-| |  user:        hecht
-| |  date:        Mon Apr 23 17:28:50 2007 +0200
-| |  summary:     remove  dump for debbuging in fem.cpp ( mesh() constructor  call splitmesh function)
-| |
-o |  changeset:   1136:db9bb253016b
-| |  user:        hecht
-| |  date:        Sat Apr 21 11:31:01 2007 +0200
-| |  summary:     correct miss speeling and fig ref/label
-| |
-o |  changeset:   1135:ba3a8c4bb929
-| |  user:        hecht
-| |  date:        Fri Apr 20 17:18:59 2007 +0200
-| |  summary:     remove  all compilation in ide dir if --without-fltk  configure flags is set.
-| |
-o |  changeset:   1134:627db69ed2c1
-| |  user:        hecht
-| |  date:        Fri Apr 20 16:01:30 2007 +0200
-| |  summary:     correct error when writing mesh, in case of different region (sub-domain)
-| |
-o |  changeset:   1133:b53c912f5521
-| |  user:        hecht
-| |  date:        Fri Apr 20 14:56:06 2007 +0200
-| |  summary:     do autoreconf
-| |
-o |  changeset:   1132:f7b143c68235
-| |  user:        hecht
-| |  date:        Fri Apr 20 14:54:29 2007 +0200
-| |  summary:     - correct mshptg.cpp  (add swap) , this is used in case of
-| |
-o |  changeset:   1131:8e5261645b5c
-| |  user:        hecht
-| |  date:        Wed Apr 18 12:01:45 2007 +0200
-| |  summary:     correct ligne pof Sun  SS -S vss in fem.cpp
-| |
-o |  changeset:   1130:0b47aaa265ed
-| |  user:        hecht
-| |  date:        Tue Apr 17 22:34:58 2007 +0200
-| |  summary:     same next
-| |
-o |  changeset:   1129:8abeb822514a
-| |  user:        hecht
-| |  date:        Tue Apr 17 22:27:49 2007 +0200
-| |  summary:     same continuing
-| |
-o |  changeset:   1128:b06140d1d045
-| |  user:        hecht
-| |  date:        Tue Apr 17 22:12:49 2007 +0200
-| |  summary:     correct fltk configure process on windows
-| |
-o |  changeset:   1127:bad3e707f5df
-| |  user:        hecht
-| |  date:        Tue Apr 17 21:47:31 2007 +0200
-| |  summary:     coorect mistake on  window akefile+ change fltk dowload install dir
-| |
-o |  changeset:   1126:84e2eb1e36b5
-| |  user:        hecht
-| |  date:        Tue Apr 17 12:52:28 2007 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1125:e25d8911cc1e
-| |  user:        hecht
-| |  date:        Tue Apr 17 12:51:00 2007 +0200
-| |  summary:     add file
-| |
-o |  changeset:   1124:8cf70de5de34
-| |  user:        hecht
-| |  date:        Tue Apr 17 12:08:26 2007 +0200
-| |  summary:     remove umfpack directory  form src
-| |
-o |  changeset:   1123:86e4e6640342
-| |  user:        hecht
-| |  date:        Fri Apr 06 17:42:55 2007 +0200
-| |  summary:     correct regularity, suite.
-| |
-o |  changeset:   1122:27f01e4f3b4e
-| |  user:        hecht
-| |  date:        Fri Apr 06 14:53:20 2007 +0200
-| |  summary:     regularity mistake, suite.
-| |
-o |  changeset:   1121:ad34308e20bc
-| |  user:        hecht
-| |  date:        Fri Apr 06 13:18:37 2007 +0200
-| |  summary:     correct impressin of mesh regularity
-| |
-o |  changeset:   1120:f1de13b4c5b0
-| |  user:        hecht
-| |  date:        Wed Apr 04 21:20:31 2007 +0200
-| |  summary:     go to version 2.15-1, see innovation file
-| |
-o |  changeset:   1119:436c75d9b870
-| |  user:        hecht
-| |  date:        Mon Apr 02 11:45:11 2007 +0200
-| |  summary:     correct examples++-tutorial/sparse-matrix.edp
-| |
-o |  changeset:   1118:3619a30b94c4
-| |  user:        hecht
-| |  date:        Mon Apr 02 11:36:31 2007 +0200
-| |  summary:     correct splitmesh with intenals bourdary
-| |
-o |  changeset:   1117:30af445f8cdb
-| |  user:        hecht
-| |  date:        Sun Mar 25 11:41:56 2007 +0200
-| |  summary:     correct bug in vectorial operation   (a+3.14*b)
-| |
-o |  changeset:   1116:89cb2da6046d
-| |  user:        hecht
-| |  date:        Thu Mar 22 12:01:50 2007 +0100
-| |  summary:     Correct  integration problem in varf of int1d(Th) .. u_Th1 .. v_Th2 ..
-| |
-o |  changeset:   1115:7f0e033977ed
-| |  user:        hecht
-| |  date:        Sun Mar 11 21:22:17 2007 +0100
-| |  summary:     correct licence hearder.
-| |
-o |  changeset:   1114:70758153bd21
-| |  user:        hecht
-| |  date:        Fri Mar 09 23:10:39 2007 +0100
-| |  summary:     correct missing speeling in  configure.ac  mpi++.h -> mpi++.h for mpich.1.2
-| |
-o |  changeset:   1113:fc8765cc14d9
-| |  user:        hecht
-| |  date:        Wed Mar 07 13:51:33 2007 +0100
-| |  summary:     see INNOVATION for detail.
-| |
-o |  changeset:   1112:52b479bdedc2
-| |  user:        hecht
-| |  date:        Wed Feb 14 21:00:18 2007 +0100
-| |  summary:     correct mistake in bluid matrice from  varf with  3 meshes
-| |
-o |  changeset:   1111:724be807f3f5
-| |  user:        hecht
-| |  date:        Sun Feb 04 12:19:57 2007 +0100
-| |  summary:     add scalar term in block matrix as 1x1 sub matrix.
-| |
-o |  changeset:   1110:c84d01a8cf8c
-| |  user:        hecht
-| |  date:        Sat Feb 03 15:17:19 2007 +0100
-| |  summary:     do autoreconf
-| |
-o |  changeset:   1109:1e4907ffb59e
-| |  user:        hecht
-| |  date:        Sat Feb 03 14:25:28 2007 +0100
-| |  summary:     pass to version 2.13  and
-| |
-o |  changeset:   1108:421db81aaa4c
-| |  user:        hecht
-| |  date:        Wed Jan 24 14:01:39 2007 +0100
-| |  summary:     correct  mistake in function
-| |
-o |  changeset:   1107:78da8acfecb9
-| |  user:        hecht
-| |  date:        Mon Jan 15 14:13:11 2007 +0100
-| |  summary:     correct when return a local new pointeur in freefem++ function
-| |
-o |  changeset:   1106:0a1b0afe3ade
-| |  user:        hecht
-| |  date:        Wed Jan 10 13:12:16 2007 +0100
-| |  summary:     add comment
-| |
-o |  changeset:   1105:07b62b54ccf4
-| |  user:        hecht
-| |  date:        Wed Jan 10 11:59:48 2007 +0100
-| |  summary:     pass to 2-12 et correct mistake in no square block matrix
-| |
-o |  changeset:   1104:6c1fa2e746bc
-| |  user:        hecht
-| |  date:        Fri Dec 22 13:33:09 2006 +0100
-| |  summary:     coorect missing spell in configure.ac  (ff_libs => ff_flibs) (fortran libs)
-| |
-o |  changeset:   1103:561eab096a22
-| |  user:        hecht
-| |  date:        Sun Dec 17 09:36:46 2006 +0100
-| |  summary:     change PPC in PP_C in problem.cpp, because PPC macro is defined
-| |
-o |  changeset:   1102:f87ec3ed5e67
-| |  user:        hecht
-| |  date:        Fri Dec 01 21:03:37 2006 +0100
-| |  summary:     coorect LaplaceRT.edp
-| |
-o |  changeset:   1101:e7de74fdbf14
-| |  user:        hecht
-| |  date:        Thu Nov 30 14:48:47 2006 +0100
-| |  summary:     correct dependance in  examples++-load/Makefile.am
-| |
-o |  changeset:   1100:ec4fde559d08
-| |  user:        hecht
-| |  date:        Thu Nov 30 14:45:17 2006 +0100
-| |  summary:     correct build matrices from varf with different mesh in case for mortar mesh.
-| |
-o |  changeset:   1099:77648a46d003
-| |  user:        hecht
-| |  date:        Tue Nov 28 13:53:02 2006 +0100
-| |  summary:     correct bug in interpolation  fespace Wf(Th,[RT0,P0]) function
-| |
-o |  changeset:   1098:7d480ffab837
-| |  user:        hecht
-| |  date:        Fri Nov 10 22:09:21 2006 +0100
-| |  summary:     I correct the problem in arpack (computation of eigen value) under i383 processor.
-| |
-o |  changeset:   1097:593603d24fae
-| |  user:        hecht
-| |  date:        Mon Nov 06 13:55:03 2006 +0100
-| |  summary:     correct -Wall continuing
-| |
-o |  changeset:   1096:07cd72f527a2
-| |  user:        hecht
-| |  date:        Mon Nov 06 09:55:57 2006 +0100
-| |  summary:     correct all -Wall warning,  to try to solve probleme in eigen value computation
-| |
-o |  changeset:   1095:be438995d8e4
-| |  tag:         release_2_10_2_before_Wall
-| |  user:        hecht
-| |  date:        Thu Oct 26 15:36:16 2006 +0200
-| |  summary:     remove debug  dump
-| |
-o |  changeset:   1094:b591f599d49c
-| |  user:        hecht
-| |  date:        Thu Oct 26 14:17:41 2006 +0200
-| |  summary:     correct mistake in configure
-| |
-o |  changeset:   1093:d6b64e445a74
-| |  user:        hecht
-| |  date:        Thu Oct 26 14:09:30 2006 +0200
-| |  summary:     correct error in lapack of arpack  (remove div  by 0)
-| |
-o |  changeset:   1092:3e64d9ef3137
-| |  user:        hecht
-| |  date:        Tue Oct 24 21:22:19 2006 +0200
-| |  summary:     add flags -with-lapack in configure
-| |
-o |  changeset:   1091:3b882c3a5cbc
-| |  user:        hecht
-| |  date:        Fri Oct 20 11:26:41 2006 +0200
-| |  summary:     add HIDDEN PARAMETER to fortran route with character parameters
-| |
-o |  changeset:   1090:15d919e17d54
-| |  user:        hecht
-| |  date:        Thu Oct 19 15:53:21 2006 +0200
-| |  summary:     coorect 70 in 70.
-| |
-o |  changeset:   1089:72ba19f26d06
-| |  user:        hecht
-| |  date:        Thu Oct 19 15:13:18 2006 +0200
-| |  summary:     misa a jour de README_CVS
-| |
-o |  changeset:   1088:7c13736478ae
-| |  user:        hecht
-| |  date:        Wed Oct 18 21:39:17 2006 +0200
-| |  summary:     ATTENTION le serveur CVS a change
-| |
-o |  changeset:   1087:69aece617a96
-| |  user:        hecht
-| |  date:        Wed Oct 18 21:28:11 2006 +0200
-| |  summary:     correct configure.ac for MacOs compile
-| |
-o |  changeset:   1086:c0904d3ddd12
-| |  user:        hecht
-| |  date:        Wed Oct 11 18:23:32 2006 +0200
-| |  summary:     change version 2.10-1
-| |
-o |  changeset:   1085:bfc0a8074e1e
-| |  user:        hecht
-| |  date:        Tue Oct 10 20:48:02 2006 +0200
-| |  summary:     add modif in the doc
-| |
-o |  changeset:   1084:388005cc5029
-| |  user:        hecht
-| |  date:        Tue Oct 10 17:42:15 2006 +0200
-| |  summary:     QF continuing
-| |
-o |  changeset:   1083:7276e657cb50
-| |  user:        hecht
-| |  date:        Tue Oct 10 17:35:27 2006 +0200
-| |  summary:     add QF gauss Legendre  4 and 5 points
-| |
-o |  changeset:   1082:b23f3adc267f
-| |  user:        hecht
-| |  date:        Fri Sep 29 22:30:15 2006 +0200
-| |  summary:     change in all source file the LGPL flags. (FH)
-| |
-o |  changeset:   1081:f945df94b59a
-| |  user:        hecht
-| |  date:        Wed Sep 20 10:23:07 2006 +0200
-| |  summary:     correct tool with crimson editor under Windows
-| |
-o |  changeset:   1080:586e679e834b
-| |  user:        hecht
-| |  date:        Wed Sep 20 10:19:13 2006 +0200
-| |  summary:     coorect comment on crimson editor
-| |
-o |  changeset:   1079:ee0cfa566d11
-| |  user:        hecht
-| |  date:        Tue Sep 19 22:08:51 2006 +0200
-| |  summary:     bluid HISTORY files
-| |
-o |  changeset:   1078:b224a55c4a5c
-| |  user:        hecht
-| |  date:        Tue Sep 19 21:36:43 2006 +0200
-| |  summary:     correct openmpi trouble (async communication)
-| |
-o |  changeset:   1077:11c495eb71a5
-| |  user:        hecht
-| |  date:        Tue Sep 19 17:07:07 2006 +0200
-| |  summary:     update INNIVATION
-| |
-o |  changeset:   1076:a03f49afc8f3
-| |  user:        hecht
-| |  date:        Tue Sep 19 16:24:13 2006 +0200
-| |  summary:     change include.tar.gz file
-| |
-o |  changeset:   1075:0c543fd2904e
-| |  user:        hecht
-| |  date:        Tue Sep 19 16:02:29 2006 +0200
-| |  summary:     add format output routine
-| |
-o |  changeset:   1074:5f55497120c9
-| |  user:        hecht
-| |  date:        Tue Sep 19 11:47:20 2006 +0200
-| |  summary:     correct configure.ac
-| |
-o |  changeset:   1073:e174a3df647c
-| |  user:        hecht
-| |  date:        Mon Sep 18 17:41:24 2006 +0200
-| |  summary:     change under  windows OS  the installed files
-| |
-o |  changeset:   1072:3c866007d12c
-| |  user:        hecht
-| |  date:        Fri Jul 21 18:35:12 2006 +0200
-| |  summary:     passe to version  2.8-2
-| |
-o |  changeset:   1071:11a7f799060e
-| |  user:        hecht
-| |  date:        Fri Jul 21 17:02:18 2006 +0200
-| |  summary:     correct bug with mpi (MPICH-2)
-| |
-o |  changeset:   1070:67582bf9db8d
-| |  user:        hecht
-| |  date:        Fri Jun 30 11:16:30 2006 +0200
-| |  summary:     add print in arpack error
-| |
-o |  changeset:   1069:9d5182230173
-| |  user:        hecht
-| |  date:        Wed Jun 28 18:01:28 2006 +0200
-| |  summary:     add missing file in make dist process
-| |
-o |  changeset:   1068:7ac9ef62d6ea
-| |  user:        hecht
-| |  date:        Wed Jun 28 17:50:29 2006 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   1067:7a7da3aac6d0
-| |  user:        hecht
-| |  date:        Wed Jun 28 17:49:40 2006 +0200
-| |  summary:     add missing file
-| |
-o |  changeset:   1066:e8c85aa01607
-| |  user:        hecht
-| |  date:        Wed Jun 28 17:46:39 2006 +0200
-| |  summary:     add tool to remove cadna in ./configure -without-cadna
-| |
-o |  changeset:   1065:1cdc9b656cbd
-| |  user:        hecht
-| |  date:        Tue Jun 27 23:24:41 2006 +0200
-| |  summary:     do  correction for  openmpi but the
-| |
-o |  changeset:   1064:2a1df2d56b69
-| |  user:        hecht
-| |  date:        Tue Jun 27 23:14:28 2006 +0200
-| |  summary:     version 2.6-1
-| |
-o |  changeset:   1063:83aaaf11d8e4
-| |  user:        hecht
-| |  date:        Fri Jun 16 16:04:45 2006 +0200
-| |  summary:     correct doc netx step.
-| |
-o |  changeset:   1062:c9d7a4cbb447
-| |  user:        hecht
-| |  date:        Fri Jun 16 13:49:56 2006 +0200
-| |  summary:     coorect lame.edp in chap 3 of the doc.
-| |
-o |  changeset:   1061:63490a1bc9e2
-| |  user:        hecht
-| |  date:        Mon Jun 12 21:15:22 2006 +0200
-| |  summary:     add correction from  christophe.trophime at grenoble.cnrs.fr
-| |
-o |  changeset:   1060:56035a847644
-| |  user:        hecht
-| |  date:        Thu Jun 01 09:28:29 2006 +0200
-| |  summary:     add h flag to: Don't write symlinks as symlinks; write the data of the files
-| |
-o |  changeset:   1059:c34152d230f8
-| |  user:        hecht
-| |  date:        Tue May 30 15:37:52 2006 +0200
-| |  summary:     correct OpenGL flag under MacOS configure.ac
-| |
-o |  changeset:   1058:fa234b7279ba
-| |  user:        hecht
-| |  date:        Fri May 26 16:57:12 2006 +0200
-| |  summary:     correct FLIBS in configure.ac
-| |
-o |  changeset:   1057:9f5e47d47b0b
-| |  user:        hecht
-| |  date:        Wed May 24 22:25:02 2006 +0200
-| |  summary:     correct configure.ac
-| |
-o |  changeset:   1056:ee44b7d37064
-| |  user:        hecht
-| |  date:        Fri May 19 19:53:09 2006 +0200
-| |  summary:     cleanning FLIBS configure variable in case of g77
-| |
-o |  changeset:   1055:7d8c1d27e6a5
-| |  user:        hecht
-| |  date:        Thu May 18 16:48:17 2006 +0200
-| |  summary:     correct small error for New macOS install
-| |
-o |  changeset:   1054:d3077251497e
-| |  user:        hecht
-| |  date:        Thu May 18 14:04:09 2006 +0200
-| |  summary:     correct for lam mpi
-| |
-o |  changeset:   1053:a5ae3f5ad14a
-| |  user:        hecht
-| |  date:        Thu May 18 13:59:15 2006 +0200
-| |  summary:     add missing file
-| |
-o |  changeset:   1052:271e5d7d4887
-| |  user:        hecht
-| |  date:        Thu May 18 13:57:25 2006 +0200
-| |  summary:     correct INNOVATION
-| |
-o |  changeset:   1051:689c1b6bc221
-| |  user:        hecht
-| |  date:        Thu May 18 13:51:17 2006 +0200
-| |  summary:     Correct bug in case of vectorial problem with same FE space.
-| |
-o |  changeset:   1050:2d93d1eb482c
-| |  user:        hecht
-| |  date:        Wed May 17 15:35:19 2006 +0200
-| |  summary:     add missing file in distribution
-| |
-o |  changeset:   1049:a35c824f162c
-| |  user:        hecht
-| |  date:        Tue May 16 15:09:18 2006 +0200
-| |  summary:     remove missing speel in configure.ac
-| |
-o |  changeset:   1048:31194b511eee
-| |  user:        hecht
-| |  date:        Tue May 16 15:00:12 2006 +0200
-| |  summary:     try to correct X11 link problem on Linux 64bits architecture
-| |
-o |  changeset:   1047:669f743b8424
-| |  user:        hecht
-| |  date:        Mon May 15 20:01:01 2006 +0200
-| |  summary:     correct pb on 64bits achitecture in file src/fflib/AnyType.hpp
-| |
-o |  changeset:   1046:5c045c7b0278
-| |  user:        hecht
-| |  date:        Fri May 05 22:55:05 2006 +0200
-| |  summary:     do correction geometric data base with RequiredEdge.
-| |
-o |  changeset:   1045:240f50061d02
-| |  user:        hecht
-| |  date:        Wed Apr 26 14:15:13 2006 +0200
-| |  summary:     correct configure.ac :
-| |
-o |  changeset:   1044:68823e1bad2c
-| |  user:        hecht
-| |  date:        Sat Apr 15 18:05:11 2006 +0200
-| |  summary:     correct missing spellibg  line 920
-| |
-o |  changeset:   1043:a57bd667419c
-| |  user:        hecht
-| |  date:        Sat Apr 15 12:00:58 2006 +0200
-| |  summary:     correct probele when compioling with g++ 3.2
-| |
-o |  changeset:   1042:6d6e6646b914
-| |  user:        hecht
-| |  date:        Thu Apr 13 18:36:42 2006 +0200
-| |  summary:     correct the mpi version for macos lam mpi
-| |
-o |  changeset:   1041:4c5e3347dc7a
-| |  user:        hecht
-| |  date:        Thu Apr 13 13:39:58 2006 +0200
-| |  summary:     pass to version 2.7 and correct missing file in mpi Makefile.am
-| |
-o |  changeset:   1040:b08ffa6fe703
-| |  user:        hecht
-| |  date:        Thu Apr 13 10:27:20 2006 +0200
-| |  summary:     coorect misstake in rc/femlib/FESpace.cpp
-| |
-o |  changeset:   1039:2cad75a9fee1
-| |  user:        hecht
-| |  date:        Thu Apr 13 08:37:40 2006 +0200
-| |  summary:     correct trouble  in Boundary condition  when we mixte some
-| |
-o |  changeset:   1038:9c495e402881
-| |  user:        hecht
-| |  date:        Wed Apr 12 14:03:02 2006 +0200
-| |  summary:     remove check suffix .edp to be compatible with drawbdmesh.exe
-| |
-o |  changeset:   1037:e763b1a14153
-| |  user:        hecht
-| |  date:        Wed Apr 12 12:59:38 2006 +0200
-| |  summary:     add line un INNOTAVION
-| |
-o |  changeset:   1036:56eae42c7434
-| |  user:        hecht
-| |  date:        Wed Apr 12 11:31:03 2006 +0200
-| |  summary:     add bamg example an correct problem beetween bamg and freefem graphic
-| |
-o |  changeset:   1035:5a7b04e99f63
-| |  user:        hecht
-| |  date:        Wed Apr 12 07:38:59 2006 +0200
-| |  summary:     correct load.link under windows with new list of .dll files.
-| |
-o |  changeset:   1034:9b67a868ae97
-| |  user:        hecht
-| |  date:        Tue Apr 11 23:26:57 2006 +0200
-| |  summary:     correct load.link script (change list of ff++ dll)
-| |
-o |  changeset:   1033:705dfea6c6f4
-| |  user:        hecht
-| |  date:        Tue Apr 11 22:06:44 2006 +0200
-| |  summary:     Now the all.edp of tutorial run under winder (very hard word). FH
-| |
-o |  changeset:   1032:2baa47074ee1
-| |  user:        hecht
-| |  date:        Tue Apr 11 21:57:50 2006 +0200
-| |  summary:     correct bug under window in Mesh:Find (very rare)
-| |
-o |  changeset:   1031:6c3bf2dfe726
-| |  user:        hecht
-| |  date:        Tue Apr 11 13:52:41 2006 +0200
-| |  summary:     change for window free/delete pair
-| |
-o |  changeset:   1030:3c1196a7980c
-| |  user:        hecht
-| |  date:        Tue Apr 11 10:46:39 2006 +0200
-| |  summary:     the new version of the dll file begin to work on windows (no trap in alloction)
-| |
-o |  changeset:   1029:4e24126f9014
-| |  user:        hecht
-| |  date:        Mon Apr 10 22:53:34 2006 +0200
-| |  summary:     next.
-| |
-o |  changeset:   1028:a15790716999
-| |  user:        hecht
-| |  date:        Mon Apr 10 22:51:52 2006 +0200
-| |  summary:     dur dur Windows, 
-| |
-o |  changeset:   1027:254d30ab0f69
-| |  user:        hecht
-| |  date:        Mon Apr 10 06:59:46 2006 +0200
-| |  summary:     continuing malloc/free for window
-| |
-o |  changeset:   1026:a5c82bb112b0
-| |  user:        hecht
-| |  date:        Sun Apr 09 22:19:13 2006 +0200
-| |  summary:     suite??
-| |
-o |  changeset:   1025:5a8765108bc6
-| |  user:        hecht
-| |  date:        Sun Apr 09 21:50:04 2006 +0200
-| |  summary:     suite, ..
-| |
-o |  changeset:   1024:ef63561dbb98
-| |  user:        hecht
-| |  date:        Sun Apr 09 20:56:27 2006 +0200
-| |  summary:     in progress malloc/free ??
-| |
-o |  changeset:   1023:7c8d3752a8c5
-| |  user:        hecht
-| |  date:        Sun Apr 09 20:38:50 2006 +0200
-| |  summary:     try find pair of malloc /free for windows .dll
-| |
-o |  changeset:   1022:d0b18f8d6670
-| |  user:        hecht
-| |  date:        Sun Apr 09 18:13:49 2006 +0200
-| |  summary:     make change for  windows dll because the pair malloc and free
-| |
-o |  changeset:   1021:d76874c0f85f
-| |  user:        hecht
-| |  date:        Fri Apr 07 08:38:09 2006 +0200
-| |  summary:     correct missing delete pointeur in a=vmass(0,Vh); where vmass in a varf
-| |
-o |  changeset:   1020:02ee34e0fedd
-| |  user:        hecht
-| |  date:        Fri Apr 07 08:35:18 2006 +0200
-| |  summary:     CheckPtr add flag when deleting  after cleanning
-| |
-o |  changeset:   1019:f22016768b22
-| |  user:        hecht
-| |  date:        Thu Apr 06 18:19:09 2006 +0200
-| |  summary:     remove impression
-| |
-o |  changeset:   1018:eea8603b5314
-| |  user:        hecht
-| |  date:        Thu Apr 06 16:59:16 2006 +0200
-| |  summary:     add cfloat include
-| |
-o |  changeset:   1017:c31a741e4f51
-| |  user:        hecht
-| |  date:        Thu Apr 06 16:53:29 2006 +0200
-| |  summary:     add missing include climits in src/femlib/fem.cpp
-| |
-o |  changeset:   1016:c8c3fd920434
-| |  user:        hecht
-| |  date:        Thu Apr 06 16:49:04 2006 +0200
-| |  summary:     correct mistake in interpolation procedure, (in Mesh::Find methode)
-| |
-o |  changeset:   1015:20172ab21d1e
-| |  user:        hecht
-| |  date:        Tue Apr 04 23:31:14 2006 +0200
-| |  summary:     correct bug in freeboundary;edp (trap on  windows some time )
-| |
-o |  changeset:   1014:d2487f969c54
-| |  user:        hecht
-| |  date:        Tue Apr 04 11:25:56 2006 +0200
-| |  summary:     coorect consistance beetween movmesh and checkmovemesh
-| |
-o |  changeset:   1013:a8b6b14521b4
-| |  user:        hecht
-| |  date:        Tue Apr 04 09:11:39 2006 +0200
-| |  summary:     add CR  at end of file src/fflib/ffstack.hpp
-| |
-o |  changeset:   1012:4f0626a95678
-| |  user:        hecht
-| |  date:        Mon Apr 03 22:39:59 2006 +0200
-| |  summary:     correct misspelling
-| |
-o |  changeset:   1011:a4f1420b9b02
-| |  user:        hecht
-| |  date:        Mon Apr 03 22:11:53 2006 +0200
-| |  summary:     pass to 2.5-1
-| |
-o |  changeset:   1010:dd65ef6ffe6a
-| |  user:        hecht
-| |  date:        Mon Apr 03 22:09:30 2006 +0200
-| |  summary:     correct randon error on window
-| |
-o |  changeset:   1009:17557d78d867
-| |  user:        hecht
-| |  date:        Sun Apr 02 21:59:22 2006 +0200
-| |  summary:     add bamg.exe, cvmsh2.exe and drawbdmesh.exe in  Inno setup package
-| |
-o |  changeset:   1008:3c9f1d10e3fa
-| |  user:        hecht
-| |  date:        Sun Apr 02 21:53:41 2006 +0200
-| |  summary:     and bamg and string_def.o files
-| |
-o |  changeset:   1007:41d7de398a7a
-| |  user:        hecht
-| |  date:        Sat Apr 01 17:41:34 2006 +0200
-| |  summary:     add new example  AdaptResidualErrorIndicator in the doc
-| |
-o |  changeset:   1006:33c7dcaed492
-| |  user:        hecht
-| |  date:        Fri Mar 31 23:15:22 2006 +0200
-| |  summary:     add ResidualErrorIndicor example
-| |
-o |  changeset:   1005:c50260b490c6
-| |  user:        hecht
-| |  date:        Fri Mar 31 20:41:41 2006 +0200
-| |  summary:     add 2 files
-| |
-o |  changeset:   1004:0a924b0705c0
-| |  user:        hecht
-| |  date:        Fri Mar 31 18:26:21 2006 +0200
-| |  summary:     add string method and correct bug une string parameter.
-| |
-o |  changeset:   1003:6d7e5f19e5d2
-| |  user:        hecht
-| |  date:        Thu Mar 30 08:50:11 2006 +0200
-| |  summary:     some optimization on new auto free ptr.
-| |
-o |  changeset:   1002:ccabf7cb7fc8
-| |  user:        hecht
-| |  date:        Wed Mar 29 19:29:33 2006 +0200
-| |  summary:     add missing clear language ptr in while and for loops.
-| |
-o |  changeset:   1001:b6f1f5a20727
-| |  user:        hecht
-| |  date:        Wed Mar 29 14:49:33 2006 +0200
-| |  summary:     pass to version 2.5-0
-| |
-o |  changeset:   1000:05c49f7d003b
-| |  user:        hecht
-| |  date:        Wed Mar 29 14:47:52 2006 +0200
-| |  summary:     *  add automatic gestion of free language pointeur to correct
-| |
-o |  changeset:   999:fc85bf0ec864
-| |  tag:         release_2_4_3
-| |  user:        hecht
-| |  date:        Mon Mar 27 23:21:48 2006 +0200
-| |  summary:     add mode for mo text editor on MacOs see the freefem++-doc.pdf for full detail
-| |
-o |  changeset:   998:2fc2e01af985
-| |  user:        hecht
-| |  date:        Mon Mar 27 22:34:13 2006 +0200
-| |  summary:     add freefem++  mode for mi editor on macos http://www.mimikaki.net/en/
-| |
-o |  changeset:   997:a7c4994c838c
-| |  user:        hecht
-| |  date:        Mon Mar 27 21:25:40 2006 +0200
-| |  summary:     * add lot missing vectorial operation with sub array
-| |
-o |  changeset:   996:2a1d5b8a2972
-| |  user:        hecht
-| |  date:        Mon Mar 20 18:10:38 2006 +0100
-| |  summary:     add init of array with a linear form.
-| |
-o |  changeset:   995:8286c03feec4
-| |  user:        hecht
-| |  date:        Fri Mar 17 23:18:34 2006 +0100
-| |  summary:     add missing operator on sub array (type KN_<R>)
-| |
-o |  changeset:   994:4d77a303b202
-| |  user:        hecht
-| |  date:        Fri Mar 17 10:45:16 2006 +0100
-| |  summary:     add new operator on complex array to get real or imag part
-| |
-o |  changeset:   993:a10bc8411406
-| |  user:        hecht
-| |  date:        Fri Mar 17 07:36:20 2006 +0100
-| |  summary:     add   x=exp(y);  when x,y are array  for exp;log,sin,tan , ....
-| |
-o |  changeset:   992:2900e40c201d
-| |  user:        hecht
-| |  date:        Thu Mar 16 11:40:10 2006 +0100
-| |  summary:     add new kind on interplate matrix
-| |
-o |  changeset:   991:45069205c1fe
-| |  user:        hecht
-| |  date:        Mon Mar 13 14:40:55 2006 +0100
-| |  summary:     correct freefem-doc.tex until page 29 example 6.
-| |
-o |  changeset:   990:83997a02688c
-| |  user:        hecht
-| |  date:        Sun Mar 12 12:10:39 2006 +0100
-| |  summary:     do autoreconf
-| |
-o |  changeset:   989:29e852c9228c
-| |  user:        hecht
-| |  date:        Sun Mar 12 10:47:07 2006 +0100
-| |  summary:     change version number
-| |
-o |  changeset:   988:248eeefa3fb8
-| |  user:        hecht
-| |  date:        Sat Mar 11 18:47:41 2006 +0100
-| |  summary:     array of matrix work now.
-| |
-o |  changeset:   987:88eabcc9bac4
-| |  user:        hecht
-| |  date:        Sat Mar 11 09:45:02 2006 +0100
-| |  summary:     correct error in build array of sparce matrix.
-| |
-o |  changeset:   986:28000cfb291d
-| |  user:        hecht
-| |  date:        Fri Mar 10 18:35:23 2006 +0100
-| |  summary:     pl with matrix arry -> remove
-| |
-o |  changeset:   985:c4d7606f1b7c
-| |  user:        hecht
-| |  date:        Fri Mar 10 17:46:28 2006 +0100
-| |  summary:     make big change in the DOC with O. Kavian
-| |
-o |  changeset:   984:0c0790f9714e
-| |  user:        hecht
-| |  date:        Tue Mar 07 20:10:30 2006 +0100
-| |  summary:     tag release_2_4
-| |
-o |  changeset:   983:260fea6042e2
-| |  tag:         release_2_4
-| |  user:        hecht
-| |  date:        Tue Mar 07 20:05:46 2006 +0100
-| |  summary:     pass to  to version 2.4.0
-| |
-o |  changeset:   982:1063ba890e3c
-| |  user:        hecht
-| |  date:        Tue Mar 07 17:49:56 2006 +0100
-| |  summary:     same as previous commit (just on the top dir)
-| |
-o |  changeset:   981:14a915d04752
-| |  user:        hecht
-| |  date:        Tue Mar 07 17:48:47 2006 +0100
-| |  summary:     add new operator outer product, change the doc, ....
-| |
-o |  changeset:   980:796f9d95bf8a
-| |  user:        hecht
-| |  date:        Fri Mar 03 23:29:06 2006 +0100
-| |  summary:     add matric operator like in matlab  mat(I,J) where I,J are
-| |
-o |  changeset:   979:06e185f16d44
-| |  user:        hecht
-| |  date:        Fri Mar 03 13:21:39 2006 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   978:c3cf679cbfe9
-| |  user:        hecht
-| |  date:        Fri Mar 03 13:15:15 2006 +0100
-| |  summary:     add an exemple with 1D lagrange multiplier.
-| |
-o |  changeset:   977:bbe075e51532
-| |  user:        hecht
-| |  date:        Wed Mar 01 23:15:55 2006 +0100
-| |  summary:     add out product of 2 vectors  to build full matrix
-| |
-o |  changeset:   976:049d52a39d27
-| |  user:        lehyaric
-| |  date:        Tue Feb 28 10:18:03 2006 +0100
-| |  summary:     Debian packaging for version 2.3-2
-| |
-o |  changeset:   975:b0579ae35da0
-| |  user:        hecht
-| |  date:        Wed Feb 22 18:12:33 2006 +0100
-| |  summary:     correct exec on PC
-| |
-o |  changeset:   974:1a6c2c83fa7a
-| |  user:        hecht
-| |  date:        Tue Feb 21 15:08:22 2006 +0100
-| |  summary:     tag release_2_3_2
-| |
-o |  changeset:   973:5036f8596f19
-| |  tag:         release_2_3_2
-| |  user:        hecht
-| |  date:        Mon Feb 20 18:15:56 2006 +0100
-| |  summary:     Correct missing sub domain problem when
-| |
-o |  changeset:   972:2d1acc85e77e
-| |  user:        lehyaric
-| |  date:        Fri Feb 10 10:41:17 2006 +0100
-| |  summary:     Improved "make clean", which did not seem to be cleaning correctly anymore.
-| |
-o |  changeset:   971:4a048322f1ac
-| |  user:        hecht
-| |  date:        Thu Feb 09 16:32:06 2006 +0100
-| |  summary:     add configure examples un README files
-| |
-o |  changeset:   970:8853516f2694
-| |  user:        hecht
-| |  date:        Thu Feb 09 15:11:50 2006 +0100
-| |  summary:     correct miss spelling, and error in configure.ac
-| |
-o |  changeset:   969:d3384dd2cf15
-| |  user:        hecht
-| |  date:        Tue Feb 07 21:32:36 2006 +0100
-| |  summary:     reglage in the doc,
-| |
-o |  changeset:   968:5512562ea7e2
-| |  user:        hecht
-| |  date:        Tue Feb 07 20:25:58 2006 +0100
-| |  summary:     add new example
-| |
-o |  changeset:   967:87d1748924cd
-| |  user:        hecht
-| |  date:        Tue Feb 07 20:25:25 2006 +0100
-| |  summary:     Correct missing free   memory in case of  exception in problem.
-| |
-o |  changeset:   966:d72debe05e74
-| |  user:        hecht
-| |  date:        Fri Feb 03 16:18:46 2006 +0100
-| |  summary:     add exception in freefem++ language, the first test is working
-| |
-o |  changeset:   965:646090715f8a
-| |  user:        hecht
-| |  date:        Fri Jan 27 22:47:48 2006 +0100
-| |  summary:     add conf flag in README_WINDOWS
-| |
-o |  changeset:   964:c396c1d7a8ff
-| |  user:        hecht
-| |  date:        Fri Jan 27 22:33:41 2006 +0100
-| |  summary:     correct missing bluid of  lapack in ARPACK if no lapack
-| |
-o |  changeset:   963:09bf146e6970
-| |  user:        hecht
-| |  date:        Fri Jan 27 21:07:55 2006 +0100
-| |  summary:     correct missing include and link order under pure win32 architecture.
-| |
-o |  changeset:   962:8167e2ba058c
-| |  user:        hecht
-| |  date:        Fri Jan 27 18:24:30 2006 +0100
-| |  summary:     correct PB optim on G4
-| |
-o |  changeset:   961:10303c0ceeac
-| |  user:        hecht
-| |  date:        Fri Jan 27 16:43:49 2006 +0100
-| |  summary:     correct PB optim on G5
-| |
-o |  changeset:   960:f0af0d499a0e
-| |  user:        hecht
-| |  date:        Fri Jan 27 15:59:08 2006 +0100
-| |  summary:     correct pb in configure to find wget or curl for download
-| |
-o |  changeset:   959:27b51c168d7d
-| |  user:        hecht
-| |  date:        Fri Jan 27 13:57:18 2006 +0100
-| |  summary:     remove highlight test is no ide
-| |
-o |  changeset:   958:7a51becb5c7c
-| |  user:        hecht
-| |  date:        Fri Jan 27 11:33:28 2006 +0100
-| |  summary:     correct pb in installing apple version (zcat -> gunzip -c)
-| |
-o |  changeset:   957:f8c6b851cd72
-| |  user:        hecht
-| |  date:        Fri Jan 27 10:58:21 2006 +0100
-| |  summary:     take account of mac intel
-| |
-o |  changeset:   956:a3ac2888e73b
-| |  user:        hecht
-| |  date:        Thu Jan 26 10:16:47 2006 +0100
-| |  summary:     add comment in configure.ac
-| |
-o |  changeset:   955:5b4eee4361a3
-| |  user:        hecht
-| |  date:        Mon Jan 23 22:13:34 2006 +0100
-| |  summary:     correct small problem in configure.ac to build freefem on mac intel
-| |
-o |  changeset:   954:2b768b55bef2
-| |  user:        hecht
-| |  date:        Wed Jan 11 22:22:32 2006 +0100
-| |  summary:     correct xcode projet + warning
-| |
-o |  changeset:   953:892542425842
-| |  user:        hecht
-| |  date:        Wed Jan 11 21:13:09 2006 +0100
-| |  summary:     add xcode 2.2 build project for macos (see README_XCODE)
-| |
-o |  changeset:   952:a3feaa34b941
-| |  user:        hecht
-| |  date:        Mon Jan 09 15:42:41 2006 +0100
-| |  summary:     small correct to use xcode of macos and to build bamg shell command
-| |
-o |  changeset:   951:a4bcb6afa861
-| |  user:        lehyaric
-| |  date:        Fri Jan 06 11:28:38 2006 +0100
-| |  summary:     Changed ARPACK library reference for static compiling
-| |
-o |  changeset:   950:f4a233463d32
-| |  user:        lehyaric
-| |  date:        Fri Jan 06 10:51:44 2006 +0100
-| |  summary:     Changed Debian packages documentation format from PS to PDF to reflect
-| |
-o |  changeset:   949:1ae1db6e007a
-| |  user:        hecht
-| |  date:        Fri Jan 06 10:00:32 2006 +0100
-| |  summary:     add building of bamg and cvsmsh2 command
-| |
-o |  changeset:   948:2203e08d58df
-| |  user:        hecht
-| |  date:        Thu Jan 05 15:43:34 2006 +0100
-| |  summary:     merging the source of bamg and the the bamg freefem++ part
-| |
-o |  changeset:   947:a9d0713b4381
-| |  user:        hecht
-| |  date:        Wed Jan 04 11:37:34 2006 +0100
-| |  summary:     add read bamg geometry file with buildmesh function.
-| |
-o |  changeset:   946:51f2fa717070
-| |  user:        hecht
-| |  date:        Wed Jan 04 11:27:06 2006 +0100
-| |  summary:     add build mesh from bamg geometry
-| |
-o |  changeset:   945:71e91a1c79b1
-| |  user:        lehyaric
-| |  date:        Wed Jan 04 10:18:26 2006 +0100
-| |  summary:     New Debian package.
-| |
-o |  changeset:   944:24ff5d45228e
-| |  user:        hecht
-| |  date:        Fri Dec 30 21:13:41 2005 +0100
-| |  summary:     add forget file distribution
-| |
-o |  changeset:   943:23e9c0f0a896
-| |  user:        hecht
-| |  date:        Fri Dec 30 15:37:14 2005 +0100
-| |  summary:     correct pb under Windows change environment to ffenvironment (Global variable)
-| |
-o |  changeset:   942:d3e15f0496c5
-| |  user:        hecht
-| |  date:        Fri Dec 30 12:23:06 2005 +0100
-| |  summary:     pb global.cpp
-| |
-o |  changeset:   941:893de561be72
-| |  user:        hecht
-| |  date:        Fri Dec 30 12:02:47 2005 +0100
-| |  summary:     correct compile error
-| |
-o |  changeset:   940:8e45bd25850f
-| |  user:        hecht
-| |  date:        Fri Dec 30 11:53:15 2005 +0100
-| |  summary:     correct pb uneder Windows with environment, put the def in Global.cpp
-| |
-o |  changeset:   939:fe79bc21aee6
-| |  user:        hecht
-| |  date:        Fri Dec 30 10:57:24 2005 +0100
-| |  summary:     The search directory of  load and include seems ok.
-| |
-o |  changeset:   938:dd01c3dcc4cf
-| |  user:        hecht
-| |  date:        Fri Dec 30 08:34:34 2005 +0100
-| |  summary:     correct environment.cpp under Windows (Pure) and add to bin-win32/Makefile
-| |
-o |  changeset:   937:6eaa175ac89e
-| |  user:        hecht
-| |  date:        Thu Dec 29 17:30:49 2005 +0100
-| |  summary:     add 3 environments varialbe FF_VERBOSITY, FF_INCLUDEPATH, FF_LOADPATH
-| |
-o |  changeset:   936:ab89a4c85ef9
-| |  user:        hecht
-| |  date:        Thu Dec 29 08:00:51 2005 +0100
-| |  summary:     reman NSP1BR.edp in NSP2BRP0.edp
-| |
-o |  changeset:   935:a0a4be528978
-| |  user:        hecht
-| |  date:        Thu Dec 29 07:59:09 2005 +0100
-| |  summary:     correct load.link (return compile compile error).
-| |
-o |  changeset:   934:299e4f9ebabb
-| |  user:        hecht
-| |  date:        Thu Dec 29 07:46:23 2005 +0100
-| |  summary:     add missing files
-| |
-o |  changeset:   933:f07b38bd1772
-| |  user:        hecht
-| |  date:        Wed Dec 28 15:00:04 2005 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   932:ae8b837389cf
-| |  user:        hecht
-| |  date:        Wed Dec 28 14:49:11 2005 +0100
-| |  summary:     I make a huge cleanning in the figure of the DOC
-| |
-o |  changeset:   931:8f09f074b924
-| |  user:        hecht
-| |  date:        Tue Dec 27 22:26:40 2005 +0100
-| |  summary:     correct the example++-load test
-| |
-o |  changeset:   930:6406dda79272
-| |  user:        hecht
-| |  date:        Tue Dec 27 17:32:25 2005 +0100
-| |  summary:     Add two new finite element in examples++-load and change the doc
-| |
-o |  changeset:   929:52e7e6fc6a98
-| |  user:        hecht
-| |  date:        Tue Dec 27 07:54:01 2005 +0100
-| |  summary:     add new Finite Element Bernardi-Raugel for Stokes or Navier-Stokes
-| |
-o |  changeset:   928:4668e8f2bf42
-| |  user:        hecht
-| |  date:        Mon Dec 26 17:28:50 2005 +0100
-| |  summary:     Correct problem in boundary edge (lossing label numbers)  in adapated mesh, savemesh,
-| |
-o |  changeset:   927:b64cea081b9c
-| |  user:        lehyaric
-| |  date:        Tue Dec 13 13:44:58 2005 +0100
-| |  summary:     Added first support for Doxygen documentation. Inline comments still need
-| |
-o |  changeset:   926:16d64c61d6ed
-| |  user:        lehyaric
-| |  date:        Mon Dec 12 16:46:01 2005 +0100
-| |  summary:     Changed --with-suffix configuration in configure.ac to avoid adding
-| |
-o |  changeset:   925:6b38eb0bdbfb
-| |  user:        hecht
-| |  date:        Fri Dec 09 15:09:43 2005 +0100
-| |  summary:     do autoreconf
-| |
-o |  changeset:   924:93ba5ee1504b
-| |  user:        hecht
-| |  date:        Fri Dec 09 15:08:02 2005 +0100
-| |  summary:     correct CCFLAGS in umfpack for test
-| |
-o |  changeset:   923:7b3b757e62c9
-| |  user:        hecht
-| |  date:        Fri Dec 09 11:34:49 2005 +0100
-| |  summary:     add number of parameter in OneOperator class to 10
-| |
-o |  changeset:   922:aebb631a6aa3
-| |  user:        lehyaric
-| |  date:        Fri Dec 09 10:20:36 2005 +0100
-| |  summary:     <cr> symbols still showed in the Cygwin (not Mingw) version. This is now
-| |
-o |  changeset:   921:db9963c894a5
-| |  user:        hecht
-| |  date:        Fri Dec 09 09:36:19 2005 +0100
-| |  summary:     add missing files in DOPC dist
-| |
-o |  changeset:   920:16437453406f
-| |  user:        lehyaric
-| |  date:        Thu Dec 08 16:56:36 2005 +0100
-| |  summary:     New Debian package version 2.1-1.
-| |
-o |  changeset:   919:c838c9300480
-| |  user:        lehyaric
-| |  date:        Thu Dec 08 10:01:47 2005 +0100
-| |  summary:     Removed option --disable-tagging from configure.ac since @TAGGINGDEPEND@
-| |
-o |  changeset:   918:13204148cc8d
-| |  user:        hecht
-| |  date:        Thu Dec 08 07:59:02 2005 +0100
-| |  summary:     correct LIBRARY problem for umfpack Demo
-| |
-o |  changeset:   917:302b77b19c5c
-| |  user:        hecht
-| |  date:        Wed Dec 07 21:40:02 2005 +0100
-| |  summary:     * correct mistake in quadarture formule in integral computation (nota
-| |
-o |  changeset:   916:1280844b35e8
-| |  user:        hecht
-| |  date:        Wed Dec 07 17:43:37 2005 +0100
-| |  summary:     correct problem in umfpack with cblas
-| |
-o |  changeset:   915:e89bd0a8d2d1
-| |  user:        hecht
-| |  date:        Tue Dec 06 22:10:33 2005 +0100
-| |  summary:     correct mistake in cblas on configure.ac
-| |
-o |  changeset:   914:3383a8fb2e59
-| |  user:        hecht
-| |  date:        Tue Dec 06 16:56:31 2005 +0100
-| |  summary:     add new file
-| |
-o |  changeset:   913:34d33d0493a1
-| |  user:        hecht
-| |  date:        Tue Dec 06 16:55:19 2005 +0100
-| |  summary:     Use umfpack 4.4, and correct some mistake in configure.ac
-| |
-o |  changeset:   912:834165e44b24
-| |  user:        lehyaric
-| |  date:        Tue Dec 06 12:18:56 2005 +0100
-| |  summary:     Now compiles with gcc (GCC) 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)
-| |
-o |  changeset:   911:239106833256
-| |  user:        hecht
-| |  date:        Fri Dec 02 11:02:00 2005 +0100
-| |  summary:     Add the generation of an error if you try to set a solver on none square matrix,
-| |
-o |  changeset:   910:589d0d1b27de
-| |  user:        hecht
-| |  date:        Wed Nov 30 13:18:19 2005 +0100
-| |  summary:     /tmp/cvsBIs12d
-| |
-o |  changeset:   909:8ea662ae978c
-| |  user:        lehyaric
-| |  date:        Tue Nov 29 11:45:03 2005 +0100
-| |  summary:     Now dlopen() works even when ARPACK is downloaded
-| |
-o |  changeset:   908:4e7335506261
-| |  user:        hecht
-| |  date:        Mon Nov 28 16:28:25 2005 +0100
-| |  summary:     add optimization of  a*b expression if a ou b is zero.
-| |
-o |  changeset:   907:88031075ba05
-| |  user:        hecht
-| |  date:        Wed Nov 23 22:02:27 2005 +0100
-| |  summary:     add roland correction in the doc.
-| |
-o |  changeset:   906:c8d1e446dddd
-| |  user:        lehyaric
-| |  date:        Wed Nov 23 10:40:26 2005 +0100
-| |  summary:     Added examples++-chapt3/all.edp into cleanregen.sh
-| |
-o |  changeset:   905:3db52fd808f9
-| |  user:        hecht
-| |  date:        Tue Nov 22 16:34:11 2005 +0100
-| |  summary:     correct problem in algo and Newtow exemple (forgot 1/2 and 2) coef
-| |
-o |  changeset:   904:788c50b38101
-| |  user:        lehyaric
-| |  date:        Tue Nov 22 10:10:30 2005 +0100
-| |  summary:     Arbitrary "wget" commands and parameters can be defined through the
-| |
-o |  changeset:   903:ff51ba4da75e
-| |  user:        hecht
-| |  date:        Sat Nov 19 21:53:41 2005 +0100
-| |  summary:     I just try autoreconf on my new mac.
-| |
-o |  changeset:   902:4a6864be0e52
-| |  user:        hecht
-| |  date:        Sat Nov 19 21:46:32 2005 +0100
-| |  summary:     remove the wrong BlackShocle.edp example
-| |
-o |  changeset:   901:aafe6f18031a
-| |  user:        hecht
-| |  date:        Wed Nov 16 11:56:55 2005 +0100
-| |  summary:     correct the following trouble
-| |
-o |  changeset:   900:2998977bc121
-| |  user:        hecht
-| |  date:        Mon Nov 14 22:00:41 2005 +0100
-| |  summary:     correct probleme when resize of full matrix, before the coef of the matrix
-| |
-o |  changeset:   899:79398b5c2b4c
-| |  user:        lehyaric
-| |  date:        Wed Nov 09 15:13:15 2005 +0100
-| |  summary:     New Debian packaging
-| |
-o |  changeset:   898:af9a5fae5106
-| |  user:        lehyaric
-| |  date:        Wed Nov 09 15:11:45 2005 +0100
-| |  summary:     Changed Debian dependency from libfltk1.1c102 to libfltk1.1
-| |
-o |  changeset:   897:a87ee751e538
-| |  user:        hecht
-| |  date:        Tue Nov 08 11:26:28 2005 +0100
-| |  summary:     change  in  grammar lg.y  misplaced  ternary operator
-| |
-o |  changeset:   896:6c6798e0e726
-| |  user:        hecht
-| |  date:        Sun Nov 06 20:36:35 2005 +0100
-| |  summary:     uodate INNOVATION file
-| |
-o |  changeset:   895:e0176cafeeca
-| |  user:        hecht
-| |  date:        Sun Nov 06 20:26:24 2005 +0100
-| |  summary:     change the tolerance value un mshptg form  2^-15 to 2^-30 if the computation in long long
-| |
-o |  changeset:   894:76b1f65a3b90
-| |  user:        hecht
-| |  date:        Wed Nov 02 22:29:12 2005 +0100
-| |  summary:     add files
-| |
-o |  changeset:   893:04dd48fbf3d6
-| |  user:        hecht
-| |  date:        Wed Nov 02 22:06:12 2005 +0100
-| |  summary:     addinf missing files
-| |
-o |  changeset:   892:b32338c130bd
-| |  user:        hecht
-| |  date:        Wed Nov 02 22:04:13 2005 +0100
-| |  summary:     correct small mistake in the doc
-| |
-o |  changeset:   891:af006f72e7b8
-| |  user:        lehyaric
-| |  date:        Wed Nov 02 10:46:14 2005 +0100
-| |  summary:     New Debian packages
-| |
-o |  changeset:   890:a3a685d549f6
-| |  user:        hecht
-| |  date:        Tue Nov 01 17:52:59 2005 +0100
-| |  summary:     correct windows install file and load.link under windows
-| |
-o |  changeset:   889:991fc4be5f2b
-| |  user:        hecht
-| |  date:        Tue Nov 01 17:08:57 2005 +0100
-| |  summary:     correct problem in array operator /=
-| |
-o |  changeset:   888:c32a725f21b6
-| |  user:        hecht
-| |  date:        Tue Nov 01 16:55:32 2005 +0100
-| |  summary:     correct src/bin-win32 Makefile.am
-| |
-o |  changeset:   887:3ef99e3bd6ae
-| |  user:        hecht
-| |  date:        Tue Nov 01 14:14:07 2005 +0100
-| |  summary:     split AFunction3.cpp in 3 files array_{long,real,double}.cpp
-| |
-o |  changeset:   886:92f491c4331f
-| |  user:        hecht
-| |  date:        Mon Oct 31 22:34:02 2005 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   885:d8267da311f1
-| |  user:        hecht
-| |  date:        Mon Oct 31 17:45:53 2005 +0100
-| |  summary:     - Correction de bug UMFPACK resolution complex problem
-| |
-o |  changeset:   884:6c4e84a1a8ac
-| |  user:        hecht
-| |  date:        Sun Oct 30 17:26:35 2005 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   883:0028bacc3e62
-| |  user:        hecht
-| |  date:        Sun Oct 30 17:06:33 2005 +0100
-| |  summary:     correct problem in eigen value computation
-| |
-o |  changeset:   882:706ef465f936
-| |  user:        lehyaric
-| |  date:        Thu Oct 27 19:09:00 2005 +0200
-| |  summary:     Change MPI package name to keep up with Debian Unstable
-| |
-o |  changeset:   881:72a8fd466c6f
-| |  user:        lehyaric
-| |  date:        Thu Oct 27 18:22:43 2005 +0200
-| |  summary:     Places examples++-other last because it contains speed tests which
-| |
-o |  changeset:   880:0dde809ed55f
-| |  user:        lehyaric
-| |  date:        Thu Oct 27 17:51:19 2005 +0200
-| |  summary:     - Improved the way configure finds libXxf86vm.a
-| |
-o |  changeset:   879:c085ef504236
-| |  user:        hecht
-| |  date:        Fri Oct 21 18:18:09 2005 +0200
-| |  summary:     Try to correct problem in win32 version
-| |
-o |  changeset:   878:aa56fd6dc7ba
-| |  user:        hecht
-| |  date:        Fri Oct 21 17:27:42 2005 +0200
-| |  summary:     add .edp file in example++-eigen dir
-| |
-o |  changeset:   877:d45005b94b3d
-| |  user:        lehyaric
-| |  date:        Thu Oct 20 16:22:05 2005 +0200
-| |  summary:     Compiling with the Cygwin DLL is now OK again
-| |
-o |  changeset:   876:6f055a07e3c3
-| |  user:        lehyaric
-| |  date:        Thu Oct 20 15:46:22 2005 +0200
-| |  summary:     configure.ac now dynamically checks for libXxf86vm.a
-| |
-o |  changeset:   875:32d5c81f8e05
-| |  user:        lehyaric
-| |  date:        Thu Oct 20 11:56:16 2005 +0200
-| |  summary:     New manual included in Debian packages
-| |
-o |  changeset:   874:c4f11df6192f
-| |  user:        hecht
-| |  date:        Wed Oct 19 16:05:20 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   873:ba8e3a039026
-| |  user:        hecht
-| |  date:        Wed Oct 19 16:01:24 2005 +0200
-| |  summary:     correct doc file in Mac vercion
-| |
-o |  changeset:   872:97c5169b06d6
-| |  user:        hecht
-| |  date:        Wed Oct 19 15:27:56 2005 +0200
-| |  summary:     add link on Desktop to example
-| |
-o |  changeset:   871:ee0c20283445
-| |  user:        lehyaric
-| |  date:        Wed Oct 19 15:23:03 2005 +0200
-| |  summary:     HISTORY update
-| |
-o |  changeset:   870:87b7436af068
-| |  user:        lehyaric
-| |  date:        Wed Oct 19 15:22:56 2005 +0200
-| |  summary:     Packaging version 2.
-| |
-o |  changeset:   869:3663c2fee3a6
-| |  user:        hecht
-| |  date:        Wed Oct 19 14:31:19 2005 +0200
-| |  summary:     correct misspelling in previous  modif
-| |
-o |  changeset:   868:0bd5255c4bd5
-| |  user:        hecht
-| |  date:        Wed Oct 19 14:20:39 2005 +0200
-| |  summary:     coorect PB LogoUMPC
-| |
-o |  changeset:   867:2e63a3e9ca9e
-| |  user:        hecht
-| |  date:        Wed Oct 19 14:14:17 2005 +0200
-| |  summary:     correct overflow in elem mat when assembling  skyline matrix
-| |
-o |  changeset:   866:adc2ee0d01fe
-| |  user:        hecht
-| |  date:        Tue Oct 18 17:27:16 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   865:5373ad791840
-| |  user:        hecht
-| |  date:        Tue Oct 18 13:41:20 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   864:d801079ba411
-| |  user:        hecht
-| |  date:        Tue Oct 18 13:29:44 2005 +0200
-| |  summary:     add .cpp in load.link command in example++-load/Makefile.am
-| |
-o |  changeset:   863:0bb65f785e1f
-| |  user:        hecht
-| |  date:        Tue Oct 18 13:14:21 2005 +0200
-| |  summary:     correct return type probleme LinearCG
-| |
-o |  changeset:   862:af063a43f41d
-| |  user:        hecht
-| |  date:        Tue Oct 18 11:56:38 2005 +0200
-| |  summary:     correct same problem when passing array as argument.
-| |
-o |  changeset:   861:15a2ea7f7e31
-| |  user:        pironnea
-| |  date:        Mon Oct 17 09:54:27 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   860:c484b5dfde1d
-| |  user:        hecht
-| |  date:        Mon Oct 17 07:26:43 2005 +0200
-| |  summary:     DOC upgrading
-| |
-o |  changeset:   859:c0e097480736
-| |  user:        hecht
-| |  date:        Sun Oct 16 19:48:40 2005 +0200
-| |  summary:     correct small listake in window version
-| |
-o |  changeset:   858:053d6a1895bd
-| |  user:        hecht
-| |  date:        Sat Oct 15 16:28:49 2005 +0200
-| |  summary:     in configure in case off --enable_download don't locat to find an arpack library
-| |
-o |  changeset:   857:46f7d68bc496
-| |  user:        hecht
-| |  date:        Fri Oct 14 11:52:34 2005 +0200
-| |  summary:     doc book continuing
-| |
-o |  changeset:   856:12c305f56de6
-| |  user:        hecht
-| |  date:        Thu Oct 13 16:23:46 2005 +0200
-| |  summary:     change the title page of the doc for publishing
-| |
-o |  changeset:   855:d3e62fa2a587
-| |  user:        pironnea
-| |  date:        Thu Oct 13 11:48:28 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   854:5313bf2fd39a
-| |  user:        pironnea
-| |  date:        Thu Oct 13 11:34:36 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   853:128f45f7d2c2
-| |  user:        hecht
-| |  date:        Wed Oct 12 22:22:47 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   852:221e441ef33a
-| |  user:        hecht
-| |  date:        Wed Oct 12 21:20:57 2005 +0200
-| |  summary:     add forgotten  files
-| |
-o |  changeset:   851:47f4d245d855
-| |  user:        hecht
-| |  date:        Wed Oct 12 21:09:23 2005 +0200
-| |  summary:     update HISTORY
-| |
-o |  changeset:   850:0a5d2156274e
-| |  user:        hecht
-| |  date:        Wed Oct 12 21:08:29 2005 +0200
-| |  summary:     Add makefile to build automaticaly the FreeFem++ version with dll
-| |
-o |  changeset:   849:09368a95147b
-| |  user:        pironnea
-| |  date:        Wed Oct 12 18:20:27 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   848:9b451b2bff88
-| |  user:        hecht
-| |  date:        Wed Oct 12 17:50:50 2005 +0200
-| |  summary:     coorect freefem++doc.tex
-| |
-o |  changeset:   847:60473c6ec0a3
-| |  user:        hecht
-| |  date:        Wed Oct 12 16:09:25 2005 +0200
-| |  summary:     just add mising eps file
-| |
-o |  changeset:   846:7053f50276e4
-| |  user:        hecht
-| |  date:        Wed Oct 12 15:42:06 2005 +0200
-| |  summary:     do correct in the manual, make big change in the dynamic load, see the maunal
-| |
-o |  changeset:   845:3cb796a22b5d
-| |  user:        hecht
-| |  date:        Tue Oct 04 20:31:41 2005 +0200
-| |  summary:     correct small mistake in load.cpp i -> j
-| |
-o |  changeset:   844:2a1740f12cd1
-| |  user:        hecht
-| |  date:        Tue Oct 04 18:17:48 2005 +0200
-| |  summary:     change the version number to build new window version.
-| |
-o |  changeset:   843:1d5169284e4c
-| |  user:        hecht
-| |  date:        Tue Oct 04 17:26:58 2005 +0200
-| |  summary:     correct overflow integer array in elementary martix
-| |
-o |  changeset:   842:cd2ddded3fe8
-| |  user:        hecht
-| |  date:        Tue Oct 04 11:44:01 2005 +0200
-| |  summary:     correct small proble in load.cpp
-| |
-o |  changeset:   841:83c6f67e8571
-| |  user:        hecht
-| |  date:        Tue Sep 27 22:35:41 2005 +0200
-| |  summary:     correct load.cpp to change suffix and prefix
-| |
-o |  changeset:   840:86a63de90bd6
-| |  user:        hecht
-| |  date:        Mon Sep 26 18:03:57 2005 +0200
-| |  summary:     small correction for buildng the Window version
-| |
-o |  changeset:   839:8d1d0e79e8f2
-| |  user:        hecht
-| |  date:        Mon Sep 26 14:42:40 2005 +0200
-| |  summary:     add bin-win32 dir to bluid  win32 executable with .dll files
-| |
-o |  changeset:   838:478cefc531be
-| |  user:        hecht
-| |  date:        Fri Sep 23 17:11:31 2005 +0200
-| |  summary:     version 1.48-1
-| |
-o |  changeset:   837:00683068609c
-| |  user:        lehyaric
-| |  date:        Thu Sep 22 12:01:49 2005 +0200
-| |  summary:     FreeFem++ works on Linux (Debian Testing) thanks to the following
-| |
-o |  changeset:   836:3c745b9c0391
-| |  user:        hecht
-| |  date:        Wed Sep 21 21:04:58 2005 +0200
-| |  summary:     correct bug in  set array of array to array of reverse
-| |
-o |  changeset:   835:d08a7fe8d64b
-| |  user:        lehyaric
-| |  date:        Wed Sep 21 14:52:28 2005 +0200
-| |  summary:     Added new examples++-chapt3 directory to Windows distribution
-| |
-o |  changeset:   834:37968b5d3aa4
-| |  user:        hecht
-| |  date:        Fri Sep 09 15:27:40 2005 +0200
-| |  summary:     change the reconstruction of strversionnumber.cpp
-| |
-o |  changeset:   833:5ed4006dc572
-| |  user:        hecht
-| |  date:        Fri Sep 09 15:19:14 2005 +0200
-| |  summary:     create ref.edp file (empty today)
-| |
-o |  changeset:   832:541c3f59571d
-| |  user:        hecht
-| |  date:        Fri Sep 09 15:17:10 2005 +0200
-| |  summary:     add examples++-chapt3  stuff
-| |
-o |  changeset:   831:d0b4babe44bc
-| |  user:        hecht
-| |  date:        Fri Sep 09 14:30:50 2005 +0200
-| |  summary:     add new include file
-| |
-o |  changeset:   830:ec7cf2a5bb56
-| |  user:        hecht
-| |  date:        Fri Sep 09 13:45:37 2005 +0200
-| |  summary:     correct missing .esp file in Makefile.am
-| |
-o |  changeset:   829:385fa7cb90cf
-| |  user:        hecht
-| |  date:        Fri Sep 09 13:27:16 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   828:17e148260e7d
-| |  user:        hecht
-| |  date:        Fri Sep 09 13:25:55 2005 +0200
-| |  summary:     add threehsv.eps file
-| |
-o |  changeset:   827:561442bc79b4
-| |  user:        hecht
-| |  date:        Wed Aug 31 15:53:14 2005 +0200
-| |  summary:     add new arithmetic if expression   ( (a ? b : c) like in c++
-| |
-o |  changeset:   826:908ddb527637
-| |  user:        hecht
-| |  date:        Tue Aug 30 16:56:27 2005 +0200
-| |  summary:     correct unmissing print in case of  verbosity = 0 .
-| |
-o |  changeset:   825:0a55e1d02298
-| |  user:        hecht
-| |  date:        Tue Aug 30 14:58:44 2005 +0200
-| |  summary:     correct color in window version
-| |
-o |  changeset:   824:f54ced8e4821
-| |  user:        hecht
-| |  date:        Tue Aug 30 13:36:53 2005 +0200
-| |  summary:     Add tool to change the color table of plot:
-| |
-o |  changeset:   823:95d85c693298
-| |  user:        hecht
-| |  date:        Thu Aug 25 14:23:19 2005 +0200
-| |  summary:     add new freefem++ documentation freefem++doc.pdf ( from O. Pironneau)
-| |
-o |  changeset:   822:6ac1c6bfc617
-| |  user:        lehyaric
-| |  date:        Fri Jul 15 14:11:49 2005 +0200
-| |  summary:     Removed "restricted" option from FreeFem++-cs (the Web service does
-| |
-o |  changeset:   821:8508a9315ab1
-| |  user:        lehyaric
-| |  date:        Wed Jul 13 13:40:51 2005 +0200
-| |  summary:     Removed references to undefined class "TheSubFMortars"
-| |
-o |  changeset:   820:546ff9fb4445
-| |  user:        hecht
-| |  date:        Wed Jul 13 12:10:21 2005 +0200
-| |  summary:     OK, we can make dll under window.   first test
-| |
-o |  changeset:   819:4f9e6ba028ac
-| |  user:        hecht
-| |  date:        Tue Jul 12 11:22:20 2005 +0200
-| |  summary:     Big modif to buil .dll under window ( it's hard)
-| |
-o |  changeset:   818:5e1096ec1eb9
-| |  user:        hecht
-| |  date:        Thu Jul 07 09:50:47 2005 +0200
-| |  summary:     find a new bug in cas if we declare new variable after a break, continue or a return
-| |
-o |  changeset:   817:e03e5f78e5fe
-| |  user:        hecht
-| |  date:        Tue Jul 05 16:24:31 2005 +0200
-| |  summary:     correct problem in meshsplit function in case of final mesh with hole and
-| |
-o |  changeset:   816:5fc7ff0dcbe0
-| |  user:        hecht
-| |  date:        Tue Jul 05 13:11:24 2005 +0200
-| |  summary:     change version to 1.47-3
-| |
-o |  changeset:   815:f62d00cabf0e
-| |  user:        lehyaric
-| |  date:        Tue Jul 05 11:48:44 2005 +0200
-| |  summary:     Tuning scripts for Debian amd64 packaging
-| |
-o |  changeset:   814:e74d584065c5
-| |  user:        lehyaric
-| |  date:        Mon Jul 04 17:29:41 2005 +0200
-| |  summary:     Re-enables PDF and PS documentation in Windows packaging after finding the
-| |
-o |  changeset:   813:e9430e4f4bac
-| |  user:        lehyaric
-| |  date:        Mon Jul 04 16:42:49 2005 +0200
-| |  summary:     Removed wrong dynamic linking option bug from configure.ac
-| |
-o |  changeset:   812:edd3b1cd9f6d
-| |  user:        lehyaric
-| |  date:        Mon Jul 04 16:26:14 2005 +0200
-| |  summary:     Added "-fPIC" in compilation options for 64 bit Linux
-| |
-o |  changeset:   811:e5e1da1b1bfe
-| |  user:        hecht
-| |  date:        Mon Jul 04 15:55:23 2005 +0200
-| |  summary:     correct problem in antype castting under window
-| |
-o |  changeset:   810:1cb5cd176bfb
-| |  user:        lehyaric
-| |  date:        Mon Jul 04 14:57:26 2005 +0200
-| |  summary:     Removed documentation from Windows executable package because PDF and PS
-| |
-o |  changeset:   809:b91b4cb1848d
-| |  user:        lehyaric
-| |  date:        Mon Jul 04 13:59:34 2005 +0200
-| |  summary:     Changed Debian package dependency from "arpack++" to "libarpack++2-dev"
-| |
-o |  changeset:   808:152b0171eb45
-| |  user:        lehyaric
-| |  date:        Mon Jul 04 13:30:16 2005 +0200
-| |  summary:     Changing packaging procedure to include new FreeFem++-cs binaries
-| |
-o |  changeset:   807:e18fc97ba94a
-| |  user:        lehyaric
-| |  date:        Mon Jul 04 13:28:59 2005 +0200
-| |  summary:     Changing packaging procedure to include FreeFem++-cs binaries.
-| |
-o |  changeset:   806:6e6d817fee3d
-| |  user:        lehyaric
-| |  date:        Fri Jul 01 17:04:59 2005 +0200
-| |  summary:     Added 64bit debian package (amd64)
-| |
-o |  changeset:   805:bf4bd6f52606
-| |  user:        lehyaric
-| |  date:        Fri Jul 01 15:21:40 2005 +0200
-| |  summary:     Changed makefile to be able to run the Debian packaging procedure.
-| |
-o |  changeset:   804:13a708e99d11
-| |  user:        lehyaric
-| |  date:        Fri Jul 01 14:23:32 2005 +0200
-| |  summary:     Minor modifications in 'clean' goal.
-| |
-o |  changeset:   803:3973b9916156
-| |  user:        lehyaric
-| |  date:        Fri Jul 01 12:08:40 2005 +0200
-| |  summary:     New package (1.47-2) currently being built
-| |
-o |  changeset:   802:93740702390d
-| |  user:        lehyaric
-| |  date:        Fri Jul 01 11:59:51 2005 +0200
-| |  summary:     Building a new package
-| |
-o |  changeset:   801:507bab956933
-| |  user:        hecht
-| |  date:        Fri Jul 01 11:43:15 2005 +0200
-| |  summary:     correct problem with splitmesh with internal boundary
-| |
-o |  changeset:   800:d450da38d40c
-| |  user:        lehyaric
-| |  date:        Fri Jul 01 10:57:28 2005 +0200
-| |  summary:     Test examples++-tutorial/freeboundary-weak also disabled from regression
-| |
-o |  changeset:   799:447f53a0dbac
-| |  user:        lehyaric
-| |  date:        Fri Jul 01 10:34:10 2005 +0200
-| |  summary:     Disabling example examples++-tutorial/freeboundary.edp from regression tests
-| |
-o |  changeset:   798:5b0c1d07bccd
-| |  user:        lehyaric
-| |  date:        Thu Jun 30 12:22:20 2005 +0200
-| |  summary:     Configuration procedure updated with new Cygin/Mingw parameters
-| |
-o |  changeset:   797:93549d7d0176
-| |  user:        lehyaric
-| |  date:        Thu Jun 30 12:08:30 2005 +0200
-| |  summary:     Standard libraries locations have changed under Cygwin/Mingw
-| |
-o |  changeset:   796:8a5fb70aa981
-| |  user:        hecht
-| |  date:        Thu Jun 30 08:10:30 2005 +0200
-| |  summary:     add FE-medit.edp example to show  plot of FE a basis function (FH)
-| |
-o |  changeset:   795:bfa6725fe254
-| |  user:        hecht
-| |  date:        Wed Jun 29 21:40:48 2005 +0200
-| |  summary:     Add a new finite element P0edge to build new error indicator
-| |
-o |  changeset:   794:907fe04bf4f0
-| |  user:        lehyaric
-| |  date:        Wed Jun 29 15:00:05 2005 +0200
-| |  summary:     configure.ac now checks whether flex is compatible with bison. Otherwise
-| |
-o |  changeset:   793:4058e691fedf
-| |  user:        lehyaric
-| |  date:        Wed Jun 29 13:59:35 2005 +0200
-| |  summary:     Added some comments inside lex files about producing bison-compatible lexers
-| |
-o |  changeset:   792:62d20e3691fe
-| |  user:        lehyaric
-| |  date:        Wed Jun 29 11:57:36 2005 +0200
-| |  summary:     Options bison-bridge and bison-locations are not recognized undef cygwin
-| |
-o |  changeset:   791:ca53d6b490fb
-| |  user:        lehyaric
-| |  date:        Wed Jun 29 11:52:45 2005 +0200
-| |  summary:     At the moment, FreeFem++ does not compile under Cygwin because of problems
-| |
-o |  changeset:   790:a78f87e4a2f0
-| |  user:        lehyaric
-| |  date:        Wed Jun 29 10:10:33 2005 +0200
-| |  summary:     Added a new configure option "--disable-tagging" to speed up
-| |
-o |  changeset:   789:f4101f1de341
-| |  user:        hecht
-| |  date:        Tue Jun 28 11:44:33 2005 +0200
-| |  summary:     add instruction to copy sub array in array
-| |
-o |  changeset:   788:a0c72c4364df
-| |  user:        lehyaric
-| |  date:        Tue Jun 28 11:27:01 2005 +0200
-| |  summary:     Color-coding in FreeFem++-cs now colors multi-line comments (/*
-| |
-o |  changeset:   787:d9dae2e4a837
-| |  user:        lehyaric
-| |  date:        Tue Jun 28 11:07:36 2005 +0200
-| |  summary:     FreeFem++-cs no longer crashes under Windows when loading a second EDP program
-| |
-o |  changeset:   786:07e403bc9c4d
-| |  user:        hecht
-| |  date:        Tue Jun 28 10:23:24 2005 +0200
-| |  summary:     correct trouble in block matrix with transpiose sub matrix
-| |
-o |  changeset:   785:77dc6490a932
-| |  user:        hecht
-| |  date:        Mon Jun 27 16:23:51 2005 +0200
-| |  summary:     add tools to build bock matrices like
-| |
-o |  changeset:   784:a8b2df79833e
-| |  user:        hecht
-| |  date:        Thu Jun 23 13:27:55 2005 +0200
-| |  summary:     to add Highlighting Patterns for nedit editor of .edp file., do
-| |
-o |  changeset:   783:8801d1801347
-| |  user:        hecht
-| |  date:        Sun Jun 19 21:09:11 2005 +0200
-| |  summary:     Add way to bluid matrix with varf on different meshes.
-| |
-o |  changeset:   782:96d9ef496911
-| |  user:        hecht
-| |  date:        Fri Jun 10 16:33:43 2005 +0200
-| |  summary:     coorect error  in add
-| |
-o |  changeset:   781:bbebd79e4d3d
-| |  user:        hecht
-| |  date:        Fri Jun 10 16:23:11 2005 +0200
-| |  summary:     correct some spelling error
-| |
-o |  changeset:   780:51598cdf173d
-| |  user:        hecht
-| |  date:        Thu Jun 09 15:48:48 2005 +0200
-| |  summary:     add computation of eigen value for complex matrix
-| |
-o |  changeset:   779:5a11859ad82a
-| |  user:        hecht
-| |  date:        Thu Jun 02 15:56:06 2005 +0200
-| |  summary:     correct une function name in Pcrgraph.cpp
-| |
-o |  changeset:   778:60033de30615
-| |  user:        hecht
-| |  date:        Thu Jun 02 15:02:09 2005 +0200
-| |  summary:     try to build a dll file  continuing.
-| |
-o |  changeset:   777:3a9aa1ef97c4
-| |  user:        hecht
-| |  date:        Thu Jun 02 13:58:02 2005 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   776:ed24b0f0f4df
-| |  user:        hecht
-| |  date:        Thu Jun 02 13:56:57 2005 +0200
-| |  summary:     correct doible name (CodeAlloc.cpp)  in fflib/Makefile.am
-| |
-o |  changeset:   775:615a4b420050
-| |  user:        hecht
-| |  date:        Thu Jun 02 13:54:33 2005 +0200
-| |  summary:     continuing solve problem to make a dll file  of freefem
-| |
-o |  changeset:   774:4cca7ee6dfc1
-| |  user:        hecht
-| |  date:        Wed Jun 01 22:52:42 2005 +0200
-| |  summary:     Do big modification in rgraph.hpp:
-| |
-o |  changeset:   773:200f008bc381
-| |  user:        hecht
-| |  date:        Thu May 12 11:16:59 2005 +0200
-| |  summary:     correct  problem of  CFMessagePort: bootstrap_register()
-| |
-o |  changeset:   772:6f30a07c0403
-| |  user:        hecht
-| |  date:        Wed May 11 15:17:06 2005 +0200
-| |  summary:     cosmetic change in PC version
-| |
-o |  changeset:   771:12b8179f350f
-| |  user:        hecht
-| |  date:        Wed May 11 11:21:00 2005 +0200
-| |  summary:     correct problem in acoptim.m4 (g++-4 and -fast optim flags)
-| |
-o |  changeset:   770:5864a10636d1
-| |  user:        hecht
-| |  date:        Wed May 11 10:09:40 2005 +0200
-| |  summary:     add CXX and CC setting  in fltk  configure parameters
-| |
-o |  changeset:   769:d9d6bd29c106
-| |  user:        hecht
-| |  date:        Tue May 10 21:19:18 2005 +0200
-| |  summary:     add include <errno.hpp> in some ide files  (FH)
-| |
-o |  changeset:   768:de52b6df4ea1
-| |  user:        hecht
-| |  date:        Wed May 04 22:29:42 2005 +0200
-| |  summary:     add  examples++tutorial/xyf file in window distribution
-| |
-o |  changeset:   767:ec5efeca8fb4
-| |  user:        hecht
-| |  date:        Wed May 04 22:04:25 2005 +0200
-| |  summary:     add aile.msh in window distribution
-| |
-o |  changeset:   766:b753e46694a8
-| |  user:        hecht
-| |  date:        Wed May 04 21:59:52 2005 +0200
-| |  summary:     correct  line endding in aile.msh file (make as unix file)
-| |
-o |  changeset:   765:054a01ff942d
-| |  user:        hecht
-| |  date:        Wed May 04 21:13:44 2005 +0200
-| |  summary:     correct DOC/Makefile.am
-| |
-o |  changeset:   764:62ed86008444
-| |  user:        hecht
-| |  date:        Wed May 04 21:01:05 2005 +0200
-| |  summary:     correct the DOC directory and do autoreconf
-| |
-o |  changeset:   763:00dacf8de9d8
-| |  user:        hecht
-| |  date:        Wed May 04 19:56:36 2005 +0200
-| |  summary:     clean the DOC directory to build manual-full and
-| |
-o |  changeset:   762:4d0d7644df80
-| |  user:        hecht
-| |  date:        Wed May 04 14:26:02 2005 +0200
-| |  summary:     rebuil all.edp in examples++-tutorial (to remove ref to bug.edp)
-| |
-o |  changeset:   761:810491481429
-| |  user:        hecht
-| |  date:        Wed May 04 13:09:15 2005 +0200
-| |  summary:     do autoreconf to rebuild Makefile.in files
-| |
-o |  changeset:   760:8aca6e010f53
-| |  user:        hecht
-| |  date:        Wed May 04 13:06:48 2005 +0200
-| |  summary:     add  10^10 and  10.^10 operator (due to error in sphere   .edp)
-| |
-o |  changeset:   759:70c5c7c03926
-| |  user:        hecht
-| |  date:        Tue May 03 16:25:39 2005 +0200
-| |  summary:     remove pascal in "\p  "  macos version
-| |
-o |  changeset:   758:ec2b000b022c
-| |  user:        hecht
-| |  date:        Tue May 03 15:12:06 2005 +0200
-| |  summary:     try to compile with de idm compiler xlc++
-| |
-o |  changeset:   757:379de2f9fa7d
-| |  user:        hecht
-| |  date:        Mon May 02 10:57:59 2005 +0200
-| |  summary:     do correction for g++-4.0
-| |
-o |  changeset:   756:fdaaafdd2726
-| |  user:        hecht
-| |  date:        Wed Apr 27 14:23:44 2005 +0200
-| |  summary:     do correction for g++ version 4.0  (new apple compiler on Tiger)
-| |
-o |  changeset:   755:f90afd98be49
-| |  user:        lehyaric
-| |  date:        Fri Apr 22 11:58:39 2005 +0200
-| |  summary:     Debug checks are ok on Debian Testing
-| |
-o |  changeset:   754:25358d1c2fac
-| |  user:        hecht
-| |  date:        Sun Apr 17 18:44:03 2005 +0200
-| |  summary:     add page to explain how to bluid weak form with Robin / Neumann coundary condition
-| |
-o |  changeset:   753:5dec2ffefbd4
-| |  user:        hecht
-| |  date:        Sat Apr 16 21:36:09 2005 +0200
-| |  summary:     add tool to solve variationnal inequality
-| |
-o |  changeset:   752:95a33493c392
-| |  user:        hecht
-| |  date:        Fri Apr 15 22:06:03 2005 +0200
-| |  summary:     add tools to solve variationnal inequality
-| |
-o |  changeset:   751:b9a7054a3c47
-| |  user:        lehyaric
-| |  date:        Wed Apr 13 11:58:49 2005 +0200
-| |  summary:     IDE compiles again under MingW (an include file was missing)
-| |
-o |  changeset:   750:3cba4b225729
-| |  user:        hecht
-| |  date:        Tue Apr 12 18:37:37 2005 +0200
-| |  summary:     add Modification Kohji Ohtsuka in a manual
-| |
-o |  changeset:   749:1097a5ea6a9b
-| |  user:        hecht
-| |  date:        Tue Apr 12 12:07:29 2005 +0200
-| |  summary:     add flags to build unionkjack mesh on square
-| |
-o |  changeset:   748:80ebe655fe59
-| |  user:        lehyaric
-| |  date:        Tue Apr 05 15:08:18 2005 +0200
-| |  summary:     FreeFem+-ide compiles on MacOS X
-| |
-o |  changeset:   747:dd5a71e36e2b
-| |  user:        lehyaric
-| |  date:        Tue Apr 05 14:33:49 2005 +0200
-| |  summary:     First version of FreeFem++-ide without sockets compiles under Linux
-| |
-o |  changeset:   746:74899325800e
-| |  user:        hecht
-| |  date:        Wed Mar 30 11:38:14 2005 +0200
-| |  summary:     correct name of example  blakschol.edp in BlackSchole.edp
-| |
-o |  changeset:   745:d4ef47df5261
-| |  user:        lehyaric
-| |  date:        Wed Mar 30 11:02:34 2005 +0200
-| |  summary:     Not regenerating HISTORY if not in a CVS working area
-| |
-o |  changeset:   744:8f628e467da3
-| |  user:        hecht
-| |  date:        Wed Mar 30 10:42:49 2005 +0200
-| |  summary:     correct some mistake in Makefile.am (in: examples++-load/, src/ide/)
-| |
-o |  changeset:   743:9ead41b56331
-| |  user:        hecht
-| |  date:        Wed Mar 30 09:31:27 2005 +0200
-| |  summary:     adding 2 new files for allocation (forgot in previous commit)
-| |
-o |  changeset:   742:5bed47d8b18c
-| |  user:        hecht
-| |  date:        Tue Mar 29 23:13:16 2005 +0200
-| |  summary:     Big change in code generation alloc  (work in progress)
-| |
-o |  changeset:   741:24711fe2923e
-| |  user:        hecht
-| |  date:        Fri Mar 25 17:59:22 2005 +0100
-| |  summary:     correct bug in trunc function:
-| |
-o |  changeset:   740:73864219f12e
-| |  user:        lehyaric
-| |  date:        Fri Mar 25 14:54:25 2005 +0100
-| |  summary:     Compiling ok on Linux
-| |
-o |  changeset:   739:a76f21b1ab1e
-| |  user:        lehyaric
-| |  date:        Fri Mar 25 12:37:07 2005 +0100
-| |  summary:     Client and server merged into one unique executable to make sure that the client can find its server program, even through symbolic links.
-| |
-o |  changeset:   738:1bbb4cafbb9b
-| |  user:        lehyaric
-| |  date:        Thu Mar 17 14:15:31 2005 +0100
-| |  summary:     Included src/lglib/lg.tab.?pp in cleanregen.sh
-| |
-o |  changeset:   737:8d7e1b3ebe28
-| |  user:        lehyaric
-| |  date:        Thu Mar 17 14:13:42 2005 +0100
-| |  summary:     Replaced sem_getvalue() with a separate counter on MacOSX.
-| |
-o |  changeset:   736:a92e3f968ecc
-| |  user:        hecht
-| |  date:        Wed Mar 16 22:28:55 2005 +0100
-| |  summary:     add tool to get number of mesh triangle  contening a point (x,y)
-| |
-o |  changeset:   735:31983afb5ba0
-| |  user:        hecht
-| |  date:        Wed Mar 16 15:37:32 2005 +0100
-| |  summary:     correct prototype of StrVersionNumber in macrgraf
-| |
-o |  changeset:   734:f1c10c96352d
-| |  user:        lehyaric
-| |  date:        Wed Mar 16 15:05:14 2005 +0100
-| |  summary:     Updates to the no-F77 no-C configuration
-| |
-o |  changeset:   733:c6b1f76c3c5f
-| |  user:        lehyaric
-| |  date:        Wed Mar 16 14:41:57 2005 +0100
-| |  summary:     Fortran and C compilers are now optional (if they are missing,
-| |
-o |  changeset:   732:e6c08627d1d6
-| |  user:        hecht
-| |  date:        Wed Mar 16 12:08:00 2005 +0100
-| |  summary:     correct error in prototype of StrVersionNumber and
-| |
-o |  changeset:   731:8f0890d47a88
-| |  user:        hecht
-| |  date:        Sun Mar 13 16:32:09 2005 +0100
-| |  summary:     correct compilation problem in RNM (resize) with g++3.4 (add this->)
-| |
-o |  changeset:   730:52c5da835984
-| |  user:        lehyaric
-| |  date:        Wed Mar 02 11:50:19 2005 +0100
-| |  summary:     Correcting compilation problem on RedHat
-| |
-o |  changeset:   729:d2dfa98a26fd
-| |  user:        lehyaric
-| |  date:        Wed Mar 02 11:29:12 2005 +0100
-| |  summary:     New packaging including FreeFem++-cs features: fast graphics, grammar highlighting, error-line display
-| |
-o |  changeset:   728:4125f650c69b
-| |  user:        lehyaric
-| |  date:        Wed Mar 02 11:22:00 2005 +0100
-| |  summary:     FreeFem++-cs MinGW bug corrected: does not crash anymore when reading a file name from the command line
-| |
-o |  changeset:   727:59c2e9b5f8a2
-| |  user:        lehyaric
-| |  date:        Tue Mar 01 16:06:32 2005 +0100
-| |  summary:     Removed unnecessary #includes
-| |
-o |  changeset:   726:b476e6a9aa5a
-| |  user:        lehyaric
-| |  date:        Tue Mar 01 14:21:52 2005 +0100
-| |  summary:     Segmentation violation error while loading a file from the command line in FreeFem++-cs. Debugging in progress.
-| |
-o |  changeset:   725:73070a97038f
-| |  user:        lehyaric
-| |  date:        Mon Feb 28 11:40:10 2005 +0100
-| |  summary:     Now compiling fine on MinGW
-| |
-o |  changeset:   724:9ad116514e1c
-| |  user:        lehyaric
-| |  date:        Fri Feb 25 16:14:13 2005 +0100
-| |  summary:     FreeFem++-cs: compile-time or runtime errors are now highlighted in the
-| |
-o |  changeset:   723:a963794aad0d
-| |  user:        lehyaric
-| |  date:        Fri Feb 25 13:10:25 2005 +0100
-| |  summary:     More coherency checks in configure.ac for a correct MPI installation.
-| |
-o |  changeset:   722:5b390b867211
-| |  user:        lehyaric
-| |  date:        Fri Feb 25 10:50:26 2005 +0100
-| |  summary:     Added new "resize" reserved word into the highlighting grammar.
-| |
-o |  changeset:   721:fb36b11fd57c
-| |  user:        hecht
-| |  date:        Thu Feb 24 21:27:23 2005 +0100
-| |  summary:     correct the documentation
-| |
-o |  changeset:   720:b8fb25f14bbb
-| |  user:        hecht
-| |  date:        Thu Feb 24 20:44:20 2005 +0100
-| |  summary:     correct  mistake in return type in complex mean and jump new function (FH)
-| |
-o |  changeset:   719:347d7fdaf605
-| |  user:        hecht
-| |  date:        Thu Feb 24 15:33:21 2005 +0100
-| |  summary:     resize of array and matrices, continuing
-| |
-o |  changeset:   718:05352247ee60
-| |  user:        hecht
-| |  date:        Thu Feb 24 15:32:36 2005 +0100
-| |  summary:     add resize of int,real and complex array or matrices, exemple:
-| |
-o |  changeset:   717:237af51c2d16
-| |  user:        hecht
-| |  date:        Thu Feb 24 09:44:21 2005 +0100
-| |  summary:     correct bug  in array of complex FE function like
-| |
-o |  changeset:   716:0b0233d67ebb
-| |  user:        lehyaric
-| |  date:        Wed Feb 23 15:51:03 2005 +0100
-| |  summary:     Highlighting test procedure not ready for regression tests yet: disabled
-| |
-o |  changeset:   715:d6cd82cad75c
-| |  user:        lehyaric
-| |  date:        Wed Feb 23 15:22:05 2005 +0100
-| |  summary:     "testhighlight" regression tests now work up to (but not including) array.edp
-| |
-o |  changeset:   714:fb6575626cdc
-| |  user:        lehyaric
-| |  date:        Wed Feb 23 14:50:49 2005 +0100
-| |  summary:     Added highlighting grammar files into CVS, in case the compiling environment
-| |
-o |  changeset:   713:81e3198dfed6
-| |  user:        lehyaric
-| |  date:        Wed Feb 23 13:44:31 2005 +0100
-| |  summary:     The HISTORY file is now created from CVS logs thanks to "cvs2cl".
-| |
-o |  changeset:   712:349dc15fb839
-| |  user:        lehyaric
-| |  date:        Wed Feb 23 12:45:15 2005 +0100
-| |  summary:     FreeFem++-cs: grammar-driven syntax highlighting works on
-| |
-o |  changeset:   711:8871b1b4c0bb
-| |  user:        hecht
-| |  date:        Wed Feb 23 10:49:35 2005 +0100
-| |  summary:     add jump and mean of complex function.
-| |
-o |  changeset:   710:c7e0c39689ca
-| |  user:        lehyaric
-| |  date:        Fri Feb 18 20:13:24 2005 +0100
-| |  summary:     FreeFem++-cs syntax highlighting is now highlights keywords based on their
-| |
-o |  changeset:   709:6b9cc14429a3
-| |  user:        hecht
-| |  date:        Fri Feb 18 18:00:08 2005 +0100
-| |  summary:     ajoute d'un test d'erreur
-| |
-o |  changeset:   708:c442c6ae9737
-| |  user:        lehyaric
-| |  date:        Thu Feb 17 16:02:34 2005 +0100
-| |  summary:     Added new developments
-| |
-o |  changeset:   707:051b3deb6ac4
-| |  user:        lehyaric
-| |  date:        Thu Feb 17 15:05:22 2005 +0100
-| |  summary:     Compiles on MacOS X.
-| |
-o |  changeset:   706:b93878dc57dd
-| |  user:        lehyaric
-| |  date:        Thu Feb 17 14:27:03 2005 +0100
-| |  summary:     First working version of syntax highlighting through grammar file in
-| |
-o |  changeset:   705:ed842e9da7aa
-| |  user:        hecht
-| |  date:        Wed Feb 16 18:13:38 2005 +0100
-| |  summary:     3D continuing +  truc
-| |
-o |  changeset:   704:9b85196f1bca
-| |  user:        lehyaric
-| |  date:        Wed Feb 16 13:44:24 2005 +0100
-| |  summary:     Socket buffering is now limited to avoid random communication errors.
-| |
-o |  changeset:   703:ca5e14fc546c
-| |  user:        lehyaric
-| |  date:        Mon Feb 14 17:22:24 2005 +0100
-| |  summary:     Socket communication between client and server in FreeFem++-cs has been
-| |
-o |  changeset:   702:caeeecdd92b9
-| |  user:        hecht
-| |  date:        Fri Feb 11 22:20:32 2005 +0100
-| |  summary:     complet DOC
-| |
-o |  changeset:   701:10f42008bce2
-| |  user:        hecht
-| |  date:        Fri Feb 11 18:00:16 2005 +0100
-| |  summary:     add 2 new quadrature formular qf7pT and qf9pT with respectively 15 and 21 points
-| |
-o |  changeset:   700:c2f60527abb5
-| |  user:        hecht
-| |  date:        Tue Feb 08 17:26:15 2005 +0100
-| |  summary:     add 3D stuff in quadtree
-| |
-o |  changeset:   699:42115bed3c70
-| |  user:        lehyaric
-| |  date:        Tue Feb 08 16:52:02 2005 +0100
-| |  summary:     Updated TODO list for FreeFem++-cs
-| |
-o |  changeset:   698:1cbe06a20efc
-| |  user:        lehyaric
-| |  date:        Tue Feb 08 16:18:08 2005 +0100
-| |  summary:     Dynamic loading is now disabled if dlopen() does not link properly
-| |
-o |  changeset:   697:b17a41e40e1b
-| |  user:        hecht
-| |  date:        Tue Feb 08 15:18:51 2005 +0100
-| |  summary:     add  buildmesh example with nbvx=  named parameter
-| |
-o |  changeset:   696:662cf549f14b
-| |  user:        lehyaric
-| |  date:        Tue Feb 08 14:23:24 2005 +0100
-| |  summary:     New Debian package
-| |
-o |  changeset:   695:ef360bad2ed9
-| |  user:        lehyaric
-| |  date:        Fri Feb 04 16:47:21 2005 +0100
-| |  summary:     Now checks that FLTK is compiled with threads before accepting it.
-| |
-o |  changeset:   694:3b58d5c49afb
-| |  user:        lehyaric
-| |  date:        Fri Feb 04 16:24:44 2005 +0100
-| |  summary:     Patchs de configuration proposés par Thierry Thomas pour FreeBSD intégrés.
-| |
-o |  changeset:   693:9af00658c499
-| |  user:        hecht
-| |  date:        Fri Feb 04 15:30:49 2005 +0100
-| |  summary:     beginning of  3D version
-| |
-o |  changeset:   692:3dd198f1df06
-| |  user:        lehyaric
-| |  date:        Tue Feb 01 16:49:04 2005 +0100
-| |  summary:     New script to remove generated files (in order to prevent CVS conflicts)
-| |
-o |  changeset:   691:7a29cfe029e6
-| |  user:        lehyaric
-| |  date:        Tue Feb 01 16:04:54 2005 +0100
-| |  summary:     FreeFem++-cs compiling and running on Windows with fully blocking sockets
-| |
-o |  changeset:   690:2fabec51e87c
-| |  user:        lehyaric
-| |  date:        Tue Feb 01 14:38:02 2005 +0100
-| |  summary:     FreeFem++-cs works with fully-blocking sockets on Linux.
-| |
-o |  changeset:   689:f0ac462be8a7
-| |  user:        lehyaric
-| |  date:        Tue Feb 01 12:20:38 2005 +0100
-| |  summary:     Reverting FreeFem++-cs to blocking IO because of Microsoft Windows problems
-| |
-o |  changeset:   688:010fbaa0c385
-| |  user:        lehyaric
-| |  date:        Mon Jan 31 15:21:05 2005 +0100
-| |  summary:     New version number in makefiles.
-| |
-o |  changeset:   687:f06a10e19b98
-| |  user:        lehyaric
-| |  date:        Mon Jan 31 15:17:51 2005 +0100
-| |  summary:     Default version number now includes package number.
-| |
-o |  changeset:   686:c9b8132a2529
-| |  user:        lehyaric
-| |  date:        Mon Jan 31 14:07:13 2005 +0100
-| |  summary:     Problem with busy waiting under Windows solved.
-| |
-o |  changeset:   685:da3d8c2394e2
-| |  user:        hecht
-| |  date:        Sat Jan 29 09:56:58 2005 +0100
-| |  summary:     correct some compile error with g++ 3.4
-| |
-o |  changeset:   684:4082bdc8cf45
-| |  user:        lehyaric
-| |  date:        Fri Jan 28 13:27:49 2005 +0100
-| |  summary:     Windows packaging for new improved socket implementation
-| |
-o |  changeset:   683:b94d16aa1620
-| |  user:        lehyaric
-| |  date:        Fri Jan 28 11:28:07 2005 +0100
-| |  summary:     Still trying to resolve discrepancies between Linux and Windows sockets.
-| |
-o |  changeset:   682:d572b516a5ff
-| |  user:        hecht
-| |  date:        Thu Jan 27 19:01:24 2005 +0100
-| |  summary:     correct ; placement in if ...
-| |
-o |  changeset:   681:e67edeab0092
-| |  user:        hecht
-| |  date:        Thu Jan 27 18:30:17 2005 +0100
-| |  summary:     pour mettre les makefile.in ok
-| |
-o |  changeset:   680:e48d92cee32c
-| |  user:        hecht
-| |  date:        Thu Jan 27 18:15:48 2005 +0100
-| |  summary:     mac install continuing
-| |
-o |  changeset:   679:6a216a159e0c
-| |  user:        hecht
-| |  date:        Thu Jan 27 18:14:20 2005 +0100
-| |  summary:     mac install continuing
-| |
-o |  changeset:   678:915751728e29
-| |  user:        hecht
-| |  date:        Thu Jan 27 18:07:16 2005 +0100
-| |  summary:     continuing coorect of macos application installation
-| |
-o |  changeset:   677:69466588b4f3
-| |  user:        lehyaric
-| |  date:        Thu Jan 27 17:16:54 2005 +0100
-| |  summary:     Reorganising socket communication in FreeFem++-cs because of instabilities
-| |
-o |  changeset:   676:132579c00f77
-| |  user:        lehyaric
-| |  date:        Thu Jan 27 10:59:01 2005 +0100
-| |  summary:     Drag'n'drop works with Mozilla Firefox for Windows.
-| |
-o |  changeset:   675:f7b2a8606369
-| |  user:        hecht
-| |  date:        Wed Jan 26 23:34:28 2005 +0100
-| |  summary:     add .app.tgz of macos application
-| |
-o |  changeset:   674:25c49da9166e
-| |  user:        hecht
-| |  date:        Wed Jan 26 23:31:21 2005 +0100
-| |  summary:     correct pb dvi pdf in manual.tex
-| |
-o |  changeset:   673:d0c77c71561b
-| |  user:        hecht
-| |  date:        Wed Jan 26 23:25:09 2005 +0100
-| |  summary:     correct stuff in dist generation
-| |
-o |  changeset:   672:7df608534c4b
-| |  user:        hecht
-| |  date:        Wed Jan 26 23:22:59 2005 +0100
-| |  summary:     correct problem dvi and pdf chose
-| |
-o |  changeset:   671:29bf3dda976d
-| |  user:        hecht
-| |  date:        Wed Jan 26 17:50:13 2005 +0100
-| |  summary:     coorect macos X application)
-| |
-o |  changeset:   670:0e3142ee3a33
-| |  user:        lehyaric
-| |  date:        Wed Jan 26 13:58:41 2005 +0100
-| |  summary:     In configure.ac, PACKAGE_VERSION is already used by autoconf, so we
-| |
-o |  changeset:   669:9cc276a2e325
-| |  user:        hecht
-| |  date:        Mon Jan 24 11:28:11 2005 +0100
-| |  summary:     add  named parameter nbtx=..  in buildmesh  function to change the default
-| |
-o |  changeset:   668:537fe1f99bce
-| |  user:        hecht
-| |  date:        Thu Jan 20 20:10:32 2005 +0100
-| |  summary:     Correct a segfault if second derivative of test function exist in
-| |
-o |  changeset:   667:28c10d87f954
-| |  user:        hecht
-| |  date:        Thu Jan 20 10:39:37 2005 +0100
-| |  summary:     correct parameter passing () in macro argument
-| |
-o |  changeset:   666:1fe91a34d57d
-| |  user:        hecht
-| |  date:        Mon Jan 10 22:19:58 2005 +0100
-| |  summary:     change c i C in speedtest.sh to get Cholesky cpu time
-| |
-o |  changeset:   665:83ad7c4f24b2
-| |  user:        hecht
-| |  date:        Mon Jan 10 14:03:31 2005 +0100
-| |  summary:     add forgotten file .pdf
-| |
-o |  changeset:   664:7e72fe09da35
-| |  user:        hecht
-| |  date:        Mon Jan 10 12:07:32 2005 +0100
-| |  summary:     window problem continue
-| |
-o |  changeset:   663:b54ebd871dac
-| |  user:        hecht
-| |  date:        Mon Jan 10 10:41:17 2005 +0100
-| |  summary:     correct ????  configure.ac under window
-| |
-o |  changeset:   662:f9abd9543d11
-| |  user:        hecht
-| |  date:        Fri Jan 07 17:05:48 2005 +0100
-| |  summary:     correct expand string in macro
-| |
-o |  changeset:   661:cb5b6ce9fa18
-| |  user:        hecht
-| |  date:        Fri Jan 07 15:55:01 2005 +0100
-| |  summary:     add config.h.in
-| |
-o |  changeset:   660:71ef61f93962
-| |  user:        lehyaric
-| |  date:        Fri Jan 07 12:25:23 2005 +0100
-| |  summary:     Cosmetic change
-| |
-o |  changeset:   659:1454bcfaa242
-| |  user:        hecht
-| |  date:        Fri Jan 07 11:50:08 2005 +0100
-| |  summary:     correct initialisation in solve in case of un set variable
-| |
-o |  changeset:   658:944f60fe0af4
-| |  user:        hecht
-| |  date:        Thu Jan 06 21:58:33 2005 +0100
-| |  summary:     rewrite the macro generation tool to be more to suppress some bug
-| |
-o |  changeset:   657:27abad54b320
-| |  user:        hecht
-| |  date:        Wed Jan 05 23:10:20 2005 +0100
-| |  summary:     update HISTORY file
-| |
-o |  changeset:   656:4de99db8c363
-| |  user:        hecht
-| |  date:        Wed Jan 05 21:50:59 2005 +0100
-| |  summary:     correct segmentation violation  error if
-| |
-o |  changeset:   655:6a65a4351cc6
-| |  user:        hecht
-| |  date:        Tue Jan 04 16:58:02 2005 +0100
-| |  summary:     continuing       int1d(Th,3,qfe=qf1pElump)(
-| |
-o |  changeset:   654:bb8f41ed79bf
-| |  user:        hecht
-| |  date:        Tue Jan 04 16:45:19 2005 +0100
-| |  summary:     add qf1pElump   new quadrature formular in int1d() ...
-| |
-o |  changeset:   653:75e427064019
-| |  user:        hecht
-| |  date:        Wed Dec 29 11:16:11 2004 +0100
-| |  summary:     add concat operator in macro generation #
-| |
-o |  changeset:   652:8dfd9dc97215
-| |  user:        hecht
-| |  date:        Tue Dec 21 18:24:43 2004 +0100
-| |  summary:     add mkff-html.pl file to update the web page.
-| |
-o |  changeset:   651:be477b2a559c
-| |  user:        lehyaric
-| |  date:        Fri Dec 17 17:22:52 2004 +0100
-| |  summary:     Windows package including correction for Mingw -mthreads bug
-| |
-o |  changeset:   650:eb12e1fe86d0
-| |  user:        lehyaric
-| |  date:        Fri Dec 17 15:40:30 2004 +0100
-| |  summary:     Bug solved: Random crashes in Windows GUI
-| |
-o |  changeset:   649:8b2c0dc489c5
-| |  user:        lehyaric
-| |  date:        Fri Dec 17 11:17:27 2004 +0100
-| |  summary:     Change naming conventions in package numbering
-| |
-o |  changeset:   648:2e4307b2394c
-| |  user:        lehyaric
-| |  date:        Thu Dec 16 10:30:07 2004 +0100
-| |  summary:     Added files to "clean-gen" goal
-| |
-o |  changeset:   647:aeba339ce574
-| |  user:        lehyaric
-| |  date:        Thu Dec 16 10:21:45 2004 +0100
-| |  summary:     Added goal "clean-gen" to clean generated files which are included in the
-| |
-o |  changeset:   646:59b4aded663b
-| |  user:        lehyaric
-| |  date:        Wed Dec 15 17:42:56 2004 +0100
-| |  summary:     Postscript output in FreeFem++-cs corrected.
-| |
-o |  changeset:   645:576d59fb636f
-| |  tag:         release_1_44
-| |  user:        hecht
-| |  date:        Sat Dec 11 15:25:14 2004 +0100
-| |  summary:     add one examples and load ide/makefile.in  file
-| |
-o |  changeset:   644:587836032d0c
-| |  user:        hecht
-| |  date:        Tue Dec 07 17:26:16 2004 +0100
-| |  summary:     put manual-full.pdf and remove manual-full.ps.gz in dist files
-| |
-o |  changeset:   643:5915ca34cea8
-| |  user:        hecht
-| |  date:        Tue Dec 07 17:19:47 2004 +0100
-| |  summary:     adding change
-| |
-o |  changeset:   642:272bdb376315
-| |  user:        hecht
-| |  date:        Tue Dec 07 16:47:49 2004 +0100
-| |  summary:     correct missing file in dist target in ide/Makefile.am
-| |
-o |  changeset:   641:943560ba14cb
-| |  user:        hecht
-| |  date:        Tue Dec 07 15:46:54 2004 +0100
-| |  summary:     add pdfsync.sty
-| |
-o |  changeset:   640:574e16fa4580
-| |  user:        hecht
-| |  date:        Tue Dec 07 15:46:54 2004 +0100
-| |  summary:     add pdfsync.sty
-| |
-o |  changeset:   639:40a0aa5074d2
-| |  user:        hecht
-| |  date:        Tue Dec 07 14:40:55 2004 +0100
-| |  summary:     correct bug in LinearGC
-| |
-o |  changeset:   638:ce9d4f35ccbe
-| |  user:        hecht
-| |  date:        Tue Dec 07 14:40:55 2004 +0100
-| |  summary:     correct bug in LinearGC
-| |
-o |  changeset:   637:5e92e098a84c
-| |  user:        hecht
-| |  date:        Tue Dec 07 14:40:55 2004 +0100
-| |  summary:     correct bug in LinearGC
-| |
-o |  changeset:   636:c503ab82d448
-| |  user:        hecht
-| |  date:        Tue Dec 07 14:40:55 2004 +0100
-| |  summary:     correct bug in LinearGC
-| |
-o |  changeset:   635:df1fe243e312
-| |  user:        hecht
-| |  date:        Tue Dec 07 14:40:55 2004 +0100
-| |  summary:     correct bug in LinearGC
-| |
-o |  changeset:   634:5992289e53d9
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   633:bac8aeda8d02
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   632:16ec15ff429e
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   631:5b20a0a70ed3
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   630:6d565e845748
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   629:8c4834a72c8d
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   628:3a567543a457
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   627:1e538d357736
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   626:14c9bd5aa671
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   625:d3e8ab784f54
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   624:078931338411
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   623:6989fe9dcf00
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   622:5850f2541f28
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   621:c1b6502dda0e
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   620:d42824334848
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   619:e3fb8b67aedd
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   618:5231ac489b29
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   617:1ffe14f7e205
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   616:e0e061f7cc0f
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   615:b02e93ab648f
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   614:3826ba342268
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   613:bfe77a690f22
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   612:8a623501ed79
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   611:5eb3d7779ba5
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   610:47890a9320f0
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   609:09fa91db7015
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   608:958a113e64f8
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   607:2550dc877a9e
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   606:0a9e0d2f235a
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   605:5a1f44c2fed5
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   604:fc0a897c0231
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   603:5270118bb4b3
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   602:b8f75296d692
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   601:6405ed03c906
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   600:66d5401897b2
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   599:646706f655fb
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   598:209e45a646c0
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   597:90fd37db4500
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   596:ea886dc74445
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   595:f30855db023a
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   594:01cbb9cc6471
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   593:db32e3dcb9e6
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   592:d2c95b00caa9
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   591:5dd5a8b892c5
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   590:b530f0e60945
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   589:aace165d8a5b
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   588:e7c461ccdd5e
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   587:c43a94efd8d0
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   586:04ca3feeb78f
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   585:0ff5c636ce04
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   584:301f2066aa9e
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   583:5a12dc4f399c
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   582:b7adf373f4fc
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   581:504550d55b8a
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   580:891870d5e48e
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   579:f7ba38e32a59
-| |  user:        lehyaric
-| |  date:        Mon Dec 06 16:17:29 2004 +0100
-| |  summary:     "make dist" does not try and include BLAS source files any more
-| |
-o |  changeset:   578:131067ca69b4
-| |  user:        lehyaric
-| |  date:        Fri Dec 03 15:27:32 2004 +0100
-| |  summary:     Include kernel and libc versions in linux static package name
-| |
-o |  changeset:   577:950a1b1dc850
-| |  user:        lehyaric
-| |  date:        Fri Dec 03 15:27:32 2004 +0100
-| |  summary:     Include kernel and libc versions in linux static package name
-| |
-o |  changeset:   576:dd814ba4d987
-| |  user:        lehyaric
-| |  date:        Fri Dec 03 11:48:53 2004 +0100
-| |  summary:     Wording change
-| |
-o |  changeset:   575:698d11505ca5
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 13:51:32 2004 +0100
-| |  summary:     New package for Windows done
-| |
-o |  changeset:   574:eda5ab893d90
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 13:51:32 2004 +0100
-| |  summary:     New package for Windows done
-| |
-o |  changeset:   573:655782a256ca
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 13:51:32 2004 +0100
-| |  summary:     New package for Windows done
-| |
-o |  changeset:   572:7fe59ebb535e
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 13:26:30 2004 +0100
-| |  summary:     Changed reference value for regression tests
-| |
-o |  changeset:   571:1e0b5bb8a88a
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 13:26:30 2004 +0100
-| |  summary:     Changed reference value for regression tests
-| |
-o |  changeset:   570:28917d41479d
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 13:26:30 2004 +0100
-| |  summary:     Changed reference value for regression tests
-| |
-o |  changeset:   569:f4933536ffc4
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 12:34:13 2004 +0100
-| |  summary:     Regression tests suite was not running. Corrected.
-| |
-o |  changeset:   568:e9f9444f4eec
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 12:34:13 2004 +0100
-| |  summary:     Regression tests suite was not running. Corrected.
-| |
-o |  changeset:   567:5c4ed3b5dd9d
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 12:34:13 2004 +0100
-| |  summary:     Regression tests suite was not running. Corrected.
-| |
-o |  changeset:   566:d8c0ddc9c049
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 12:24:17 2004 +0100
-| |  summary:     FreeFem++-cs works on MacOSX (uses named semaphores)
-| |
-o |  changeset:   565:9ab9aa52b004
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 11:40:45 2004 +0100
-| |  summary:     X11 shared libraries dependencies removed on Mac OS X
-| |
-o |  changeset:   564:a878e8d06b91
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 11:40:45 2004 +0100
-| |  summary:     X11 shared libraries dependencies removed on Mac OS X
-| |
-o |  changeset:   563:fcce285846eb
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 10:12:21 2004 +0100
-| |  summary:     Added FreeFem++-cs to visual regression tests
-| |
-o |  changeset:   562:d740179bde14
-| |  user:        lehyaric
-| |  date:        Thu Dec 02 10:12:21 2004 +0100
-| |  summary:     Added FreeFem++-cs to visual regression tests
-| |
-o |  changeset:   561:26808676972f
-| |  user:        lehyaric
-| |  date:        Wed Dec 01 18:10:45 2004 +0100
-| |  summary:     - Tuned regression tests in examples++-tutorial (convect-apt.edp case)
-| |
-o |  changeset:   560:83c213085ce7
-| |  user:        lehyaric
-| |  date:        Wed Dec 01 18:10:45 2004 +0100
-| |  summary:     - Tuned regression tests in examples++-tutorial (convect-apt.edp case)
-| |
-o |  changeset:   559:053dbd4ba446
-| |  user:        lehyaric
-| |  date:        Wed Dec 01 18:10:45 2004 +0100
-| |  summary:     - Tuned regression tests in examples++-tutorial (convect-apt.edp case)
-| |
-o |  changeset:   558:8139a67a3970
-| |  user:        lehyaric
-| |  date:        Wed Dec 01 18:10:45 2004 +0100
-| |  summary:     - Tuned regression tests in examples++-tutorial (convect-apt.edp case)
-| |
-o |  changeset:   557:9f492b691c47
-| |  user:        lehyaric
-| |  date:        Wed Dec 01 18:10:45 2004 +0100
-| |  summary:     - Tuned regression tests in examples++-tutorial (convect-apt.edp case)
-| |
-o |  changeset:   556:2ab99a6f771a
-| |  user:        hecht
-| |  date:        Tue Nov 30 22:00:45 2004 +0100
-| |  summary:     remove operation g - A*x -b ; => bug in opt version
-| |
-o |  changeset:   555:b9e70adbbe36
-| |  user:        lehyaric
-| |  date:        Tue Nov 30 17:18:15 2004 +0100
-| |  summary:     Application icons now work on Windows
-| |
-o |  changeset:   554:8fc116e186d6
-| |  user:        hecht
-| |  date:        Tue Nov 30 17:08:59 2004 +0100
-| |  summary:     change 1 un 1. du to complex varf (ambiguity)
-| |
-o |  changeset:   553:8838777e7a31
-| |  user:        hecht
-| |  date:        Tue Nov 30 17:00:57 2004 +0100
-| |  summary:     correct small compile error
-| |
-o |  changeset:   552:c187b5186fe1
-| |  user:        lehyaric
-| |  date:        Tue Nov 30 13:43:12 2004 +0100
-| |  summary:     Added X-Windows icon to FreeFem++-cs
-| |
-o |  changeset:   551:b157b8570234
-| |  user:        hecht
-| |  date:        Mon Nov 29 22:23:28 2004 +0100
-| |  summary:     Correction dans matrixinterpole
-| |
-o |  changeset:   550:cb5e794dd229
-| |  user:        hecht
-| |  date:        Mon Nov 29 22:23:28 2004 +0100
-| |  summary:     Correction dans matrixinterpole
-| |
-o |  changeset:   549:f3c219716b61
-| |  user:        hecht
-| |  date:        Mon Nov 29 22:23:28 2004 +0100
-| |  summary:     Correction dans matrixinterpole
-| |
-o |  changeset:   548:38b6ad03bc0a
-| |  user:        hecht
-| |  date:        Mon Nov 29 22:23:28 2004 +0100
-| |  summary:     Correction dans matrixinterpole
-| |
-o |  changeset:   547:aaa46419f2f2
-| |  user:        hecht
-| |  date:        Mon Nov 29 22:23:28 2004 +0100
-| |  summary:     Correction dans matrixinterpole
-| |
-o |  changeset:   546:a1b12d942392
-| |  user:        lehyaric
-| |  date:        Fri Nov 26 16:54:09 2004 +0100
-| |  summary:     New debian package (1.44-8)
-| |
-o |  changeset:   545:5afcd79492c7
-| |  user:        lehyaric
-| |  date:        Fri Nov 26 16:52:47 2004 +0100
-| |  summary:     Remove -mpich version from Debian packages since mpich Debian unstable
-| |
-o |  changeset:   544:decd403ecbfc
-| |  user:        lehyaric
-| |  date:        Fri Nov 26 15:18:49 2004 +0100
-| |  summary:     Windows packaging modified to improve icons management
-| |
-o |  changeset:   543:2bd172a33dc9
-| |  user:        lehyaric
-| |  date:        Fri Nov 26 15:18:49 2004 +0100
-| |  summary:     Windows packaging modified to improve icons management
-| |
-o |  changeset:   542:a204e168b37a
-| |  user:        lehyaric
-| |  date:        Fri Nov 26 11:15:21 2004 +0100
-| |  summary:     Including FreeFem++-cs in the Windows packaging
-| |
-o |  changeset:   541:4392d747f871
-| |  user:        lehyaric
-| |  date:        Thu Nov 25 16:25:05 2004 +0100
-| |  summary:     FreeFem++-cs compiles on Windows _without_ Cygwin
-| |
-o |  changeset:   540:16055790185c
-| |  user:        lehyaric
-| |  date:        Thu Nov 25 10:35:48 2004 +0100
-| |  summary:     Recompiled on Linux (Debian unstable).
-| |
-o |  changeset:   539:c9b0bf01408e
-| |  user:        lehyaric
-| |  date:        Wed Nov 24 14:46:42 2004 +0100
-| |  summary:     FreeFem++-cs currently being compiled without Cygwin (because of license problems)
-| |
-o |  changeset:   538:434fa9c44e79
-| |  user:        lehyaric
-| |  date:        Wed Nov 24 14:46:42 2004 +0100
-| |  summary:     FreeFem++-cs currently being compiled without Cygwin (because of license problems)
-| |
-o |  changeset:   537:052a46e28339
-| |  user:        lehyaric
-| |  date:        Tue Nov 23 16:51:22 2004 +0100
-| |  summary:     We need cygwin1.dll for FreeFem++-cs
-| |
-o |  changeset:   536:e51479949d96
-| |  user:        lehyaric
-| |  date:        Tue Nov 23 16:39:56 2004 +0100
-| |  summary:     FreeFem++-cs works on Windows
-| |
-o |  changeset:   535:c842a897de0b
-| |  user:        lehyaric
-| |  date:        Tue Nov 23 11:06:29 2004 +0100
-| |  summary:     Cosmetic changes
-| |
-o |  changeset:   534:e1be96666c98
-| |  user:        lehyaric
-| |  date:        Mon Nov 22 17:00:15 2004 +0100
-| |  summary:     New binary package for Linux, containing static executables (configure option
-| |
-o |  changeset:   533:c5565ad73ac7
-| |  user:        lehyaric
-| |  date:        Mon Nov 22 17:00:15 2004 +0100
-| |  summary:     New binary package for Linux, containing static executables (configure option
-| |
-o |  changeset:   532:2366c7044750
-| |  user:        lehyaric
-| |  date:        Mon Nov 22 17:00:15 2004 +0100
-| |  summary:     New binary package for Linux, containing static executables (configure option
-| |
-o |  changeset:   531:c4392eca0236
-| |  user:        lehyaric
-| |  date:        Mon Nov 22 15:09:18 2004 +0100
-| |  summary:     New Linux binary package
-| |
-o |  changeset:   530:537a21528272
-| |  user:        lehyaric
-| |  date:        Mon Nov 22 14:11:11 2004 +0100
-| |  summary:     Added new configure option --enable-static to have no shared library
-| |
-o |  changeset:   529:13717f3277b3
-| |  user:        lehyaric
-| |  date:        Mon Nov 22 14:11:11 2004 +0100
-| |  summary:     Added new configure option --enable-static to have no shared library
-| |
-o |  changeset:   528:7960aa03c7c8
-| |  user:        lehyaric
-| |  date:        Mon Nov 22 14:11:11 2004 +0100
-| |  summary:     Added new configure option --enable-static to have no shared library
-| |
-o |  changeset:   527:84887e26fa7d
-| |  user:        lehyaric
-| |  date:        Fri Nov 19 15:41:21 2004 +0100
-| |  summary:     Renamed MPI Debian package from -mpi to -mpich to reflect the fact that
-| |
-o |  changeset:   526:271f7c1e38d5
-| |  user:        lehyaric
-| |  date:        Fri Nov 19 15:41:21 2004 +0100
-| |  summary:     Renamed MPI Debian package from -mpi to -mpich to reflect the fact that
-| |
-o |  changeset:   525:48e68d852cb9
-| |  user:        lehyaric
-| |  date:        Fri Nov 19 12:29:07 2004 +0100
-| |  summary:     Added rules to create a Debian package with mpich
-| |
-o |  changeset:   524:824d648c04a3
-| |  user:        lehyaric
-| |  date:        Fri Nov 19 12:29:07 2004 +0100
-| |  summary:     Added rules to create a Debian package with mpich
-| |
-o |  changeset:   523:a5edb3078853
-| |  user:        lehyaric
-| |  date:        Fri Nov 19 10:57:49 2004 +0100
-| |  summary:     More precise build dependencies for Debian package
-| |
-o |  changeset:   522:59f57df9fae0
-| |  user:        lehyaric
-| |  date:        Thu Nov 18 11:05:11 2004 +0100
-| |  summary:     Added profiling option for configure.ac
-| |
-o |  changeset:   521:316f11a303d2
-| |  user:        lehyaric
-| |  date:        Thu Nov 18 11:03:39 2004 +0100
-| |  summary:     Added possibility to create separate packages for Debian testing and unstable.
-| |
-o |  changeset:   520:f0095131b64f
-| |  user:        lehyaric
-| |  date:        Thu Nov 18 11:03:39 2004 +0100
-| |  summary:     Added possibility to create separate packages for Debian testing and unstable.
-| |
-o |  changeset:   519:718ca74c8d16
-| |  user:        lehyaric
-| |  date:        Thu Nov 18 11:03:39 2004 +0100
-| |  summary:     Added possibility to create separate packages for Debian testing and unstable.
-| |
-o |  changeset:   518:9d89d076190d
-| |  user:        lehyaric
-| |  date:        Wed Nov 17 15:37:02 2004 +0100
-| |  summary:     Default Debian package set to -x11
-| |
-o |  changeset:   517:bdf44e6aba20
-| |  user:        lehyaric
-| |  date:        Wed Nov 17 14:28:50 2004 +0100
-| |  summary:     Updated IDE TODO list
-| |
-o |  changeset:   516:517c1471cf2e
-| |  user:        lehyaric
-| |  date:        Wed Nov 17 12:13:22 2004 +0100
-| |  summary:     Debian package (unstable) for FreeFem++ is ready
-| |
-o |  changeset:   515:eaeb26d2dac2
-| |  user:        lehyaric
-| |  date:        Wed Nov 17 12:13:22 2004 +0100
-| |  summary:     Debian package (unstable) for FreeFem++ is ready
-| |
-o |  changeset:   514:721ef4ae9791
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 17:18:16 2004 +0100
-| |  summary:     Debian packages curently being built. Not fully operational yet.
-| |
-o |  changeset:   513:48d1d0bda2c4
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:39:50 2004 +0100
-| |  summary:     Makes doc up-to-date with IDE.
-| |
-o |  changeset:   512:8ab392a78e7a
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   511:37b96d6a550d
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   510:e9b15663d36a
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   509:210bc8bca680
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   508:580ba532e342
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   507:edb464296e7d
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   506:ada7b140218e
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   505:fafcb50f4e5b
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   504:bcc41dd3fa8d
-| |  user:        lehyaric
-| |  date:        Tue Nov 16 15:21:14 2004 +0100
-| |  summary:     Changed macro LONG_LONG to BAMG_LONG_LONG to avoid any interference with MPI.
-| |
-o |  changeset:   503:afbb5a9e4183
-| |  user:        hecht
-| |  date:        Tue Nov 16 09:25:12 2004 +0100
-| |  summary:     correct problem in integration of complex valued function
-| |
-o |  changeset:   502:2b8521a98d74
-| |  user:        lehyaric
-| |  date:        Mon Nov 15 15:50:42 2004 +0100
-| |  summary:     A paragraph about FreeFem++-cs has been added in the documentation.
-| |
-o |  changeset:   501:12cd26fb848f
-| |  user:        lehyaric
-| |  date:        Mon Nov 15 15:50:42 2004 +0100
-| |  summary:     A paragraph about FreeFem++-cs has been added in the documentation.
-| |
-o |  changeset:   500:892e3010d175
-| |  user:        lehyaric
-| |  date:        Mon Nov 15 15:50:42 2004 +0100
-| |  summary:     A paragraph about FreeFem++-cs has been added in the documentation.
-| |
-o |  changeset:   499:e32593c3ce18
-| |  user:        lehyaric
-| |  date:        Mon Nov 15 13:56:11 2004 +0100
-| |  summary:     FreeFem++-cs compiles on Cedre (Red-Hat Enterprise)
-| |
-o |  changeset:   498:928f4a1766a4
-| |  user:        lehyaric
-| |  date:        Mon Nov 15 10:27:44 2004 +0100
-| |  summary:     Added TODO list for client/server IDE.
-| |
-o |  changeset:   497:ea21be00cbe5
-| |  user:        hecht
-| |  date:        Mon Nov 15 09:56:56 2004 +0100
-| |  summary:     orthographe in manual-full
-| |
-o |  changeset:   496:74b4301aac83
-| |  user:        hecht
-| |  date:        Fri Nov 12 08:31:27 2004 +0100
-| |  summary:     cadna intergration  continuing.
-| |
-o |  changeset:   495:0be17e76a91f
-| |  user:        hecht
-| |  date:        Fri Nov 12 08:31:26 2004 +0100
-| |  summary:     cadna intergration  continuing.
-| |
-o |  changeset:   494:a3d87f2b073c
-| |  user:        hecht
-| |  date:        Fri Nov 12 08:31:26 2004 +0100
-| |  summary:     cadna intergration  continuing.
-| |
-o |  changeset:   493:e43f5465f202
-| |  user:        hecht
-| |  date:        Fri Nov 12 08:31:26 2004 +0100
-| |  summary:     cadna intergration  continuing.
-| |
-o |  changeset:   492:30be56d8661d
-| |  user:        lehyaric
-| |  date:        Thu Nov 11 19:45:49 2004 +0100
-| |  summary:     Progressively debugging the IDE and making it usable.
-| |
-o |  changeset:   491:e2c6e9ede5d9
-| |  user:        lehyaric
-| |  date:        Wed Nov 10 20:12:16 2004 +0100
-| |  summary:     Some corrections for Cygwin configuration of the IDE.
-| |
-o |  changeset:   490:eb18a25a60ea
-| |  user:        lehyaric
-| |  date:        Wed Nov 10 12:38:16 2004 +0100
-| |  summary:     Integrating Windows+Cygwin changes back into Linux.
-| |
-o |  changeset:   489:11ff79651895
-| |  user:        lehyaric
-| |  date:        Wed Nov 10 10:48:49 2004 +0100
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   488:62a7ee053207
-| |  user:        lehyaric
-| |  date:        Tue Nov 09 16:54:04 2004 +0100
-| |  summary:     There was a problem with downloaded BLAS source: it was included in
-| |
-o |  changeset:   487:5d76a60fb602
-| |  user:        hecht
-| |  date:        Tue Nov 09 16:23:12 2004 +0100
-| |  summary:     add interface with cadna
-| |
-o |  changeset:   486:17496d99e45f
-| |  user:        lehyaric
-| |  date:        Tue Nov 09 15:47:10 2004 +0100
-| |  summary:     Windows version of FreeFem++ client/server IDE currently being
-| |
-o |  changeset:   485:6290d8ecd8c1
-| |  user:        lehyaric
-| |  date:        Tue Nov 09 15:47:10 2004 +0100
-| |  summary:     Windows version of FreeFem++ client/server IDE currently being
-| |
-o |  changeset:   484:f926e0479ac8
-| |  user:        lehyaric
-| |  date:        Tue Nov 09 15:47:10 2004 +0100
-| |  summary:     Windows version of FreeFem++ client/server IDE currently being
-| |
-o |  changeset:   483:6d4dfaef560c
-| |  user:        lehyaric
-| |  date:        Mon Nov 08 17:21:45 2004 +0100
-| |  summary:     FreeFem++ compiles on MacOSX. But it has not been tested yet.
-| |
-o |  changeset:   482:a7750c9f311e
-| |  user:        lehyaric
-| |  date:        Mon Nov 08 17:21:45 2004 +0100
-| |  summary:     FreeFem++ compiles on MacOSX. But it has not been tested yet.
-| |
-o |  changeset:   481:fb4eebbf4886
-| |  user:        lehyaric
-| |  date:        Mon Nov 08 15:02:28 2004 +0100
-| |  summary:     First stable version for the Integrated Development Environment
-| |
-o |  changeset:   480:3c1e6d4bc2a2
-| |  user:        lehyaric
-| |  date:        Mon Nov 08 15:02:28 2004 +0100
-| |  summary:     First stable version for the Integrated Development Environment
-| |
-o |  changeset:   479:6a6dfeccf617
-| |  user:        lehyaric
-| |  date:        Mon Nov 08 15:02:28 2004 +0100
-| |  summary:     First stable version for the Integrated Development Environment
-| |
-o |  changeset:   478:fca74d661274
-| |  user:        lehyaric
-| |  date:        Mon Nov 08 15:02:28 2004 +0100
-| |  summary:     First stable version for the Integrated Development Environment
-| |
-o |  changeset:   477:6f5f852316f2
-| |  user:        lehyaric
-| |  date:        Mon Nov 08 15:02:28 2004 +0100
-| |  summary:     First stable version for the Integrated Development Environment
-| |
-o |  changeset:   476:2a9e2f6e8da4
-| |  user:        hecht
-| |  date:        Fri Nov 05 20:58:24 2004 +0100
-| |  summary:     coorect bug in FreeFem++.app the plist file was wrong.x
-| |
-o |  changeset:   475:2130890a279c
-| |  user:        hecht
-| |  date:        Fri Nov 05 20:58:24 2004 +0100
-| |  summary:     coorect bug in FreeFem++.app the plist file was wrong.x
-| |
-o |  changeset:   474:15a22358864b
-| |  user:        hecht
-| |  date:        Fri Nov 05 17:22:45 2004 +0100
-| |  summary:     rm ./FreeFem++.app/Contents/Resources/Contents/Info.plist
-| |
-o |  changeset:   473:78d50e8ca9b3
-| |  user:        hecht
-| |  date:        Fri Nov 05 15:01:51 2004 +0100
-| |  summary:     add install www files
-| |
-o |  changeset:   472:deb301bad9ed
-| |  user:        hecht
-| |  date:        Fri Nov 05 15:01:51 2004 +0100
-| |  summary:     add install www files
-| |
-o |  changeset:   471:d329085d2ad9
-| |  user:        hecht
-| |  date:        Fri Nov 05 15:01:51 2004 +0100
-| |  summary:     add install www files
-| |
-o |  changeset:   470:b469c835a383
-| |  user:        hecht
-| |  date:        Thu Nov 04 11:05:46 2004 +0100
-| |  summary:     small modif  for the look
-| |
-o |  changeset:   469:ab1f51259bd0
-| |  user:        hecht
-| |  date:        Thu Nov 04 10:38:27 2004 +0100
-| |  summary:     corret small problem in LinearCG LinearGMRES
-| |
-o |  changeset:   468:1acbc778abf2
-| |  user:        hecht
-| |  date:        Thu Nov 04 10:38:27 2004 +0100
-| |  summary:     corret small problem in LinearCG LinearGMRES
-| |
-o |  changeset:   467:0ab12962b0fd
-| |  user:        hecht
-| |  date:        Thu Nov 04 10:38:27 2004 +0100
-| |  summary:     corret small problem in LinearCG LinearGMRES
-| |
-o |  changeset:   466:f7e922b5c47b
-| |  user:        hecht
-| |  date:        Thu Nov 04 10:38:27 2004 +0100
-| |  summary:     corret small problem in LinearCG LinearGMRES
-| |
-o |  changeset:   465:7538f84816f9
-| |  user:        hecht
-| |  date:        Thu Nov 04 10:38:27 2004 +0100
-| |  summary:     corret small problem in LinearCG LinearGMRES
-| |
-o |  changeset:   464:c7ebd094ec65
-| |  user:        hecht
-| |  date:        Mon Nov 01 17:05:20 2004 +0100
-| |  summary:     continuing regtest
-| |
-o |  changeset:   463:11e517877eef
-| |  user:        hecht
-| |  date:        Mon Nov 01 17:00:51 2004 +0100
-| |  summary:     correct stability of regtest
-| |
-o |  changeset:   462:dd06f300568d
-| |  user:        hecht
-| |  date:        Mon Nov 01 16:29:42 2004 +0100
-| |  summary:     correct regtest in examples++
-| |
-o |  changeset:   461:1683f7035054
-| |  user:        hecht
-| |  date:        Mon Nov 01 15:22:16 2004 +0100
-| |  summary:     correct sensibility problem in regtest value
-| |
-o |  changeset:   460:390f8dccddda
-| |  user:        hecht
-| |  date:        Mon Nov 01 15:22:16 2004 +0100
-| |  summary:     correct sensibility problem in regtest value
-| |
-o |  changeset:   459:3267ae14952a
-| |  user:        hecht
-| |  date:        Mon Nov 01 14:34:06 2004 +0100
-| |  summary:     beginning  of 1.44 version
-| |
-o |  changeset:   458:2e4939dc785d
-| |  tag:         release_1_43
-| |  user:        hecht
-| |  date:        Sun Oct 31 21:45:57 2004 +0100
-| |  summary:     correct probleme in periodic adapted mesh.
-| |
-o |  changeset:   457:207421f2a7e8
-| |  user:        hecht
-| |  date:        Sun Oct 31 21:45:57 2004 +0100
-| |  summary:     correct probleme in periodic adapted mesh.
-| |
-o |  changeset:   456:200a55791940
-| |  user:        hecht
-| |  date:        Fri Oct 22 22:53:17 2004 +0200
-| |  summary:     correct the sparce-cmatrix.edp problem (bug in copy construct of
-| |
-o |  changeset:   455:7e279b9438e3
-| |  user:        hecht
-| |  date:        Fri Oct 22 22:53:17 2004 +0200
-| |  summary:     correct the sparce-cmatrix.edp problem (bug in copy construct of
-| |
-o |  changeset:   454:d6da0ddeb280
-| |  user:        hecht
-| |  date:        Fri Oct 22 22:13:10 2004 +0200
-| |  summary:     correct plus in copy of real matrix to complex Z
-| |
-o |  changeset:   453:b8318a5e063d
-| |  user:        hecht
-| |  date:        Fri Oct 22 20:55:10 2004 +0200
-| |  summary:     try correct probleme with sparce_cmatrix.edp on hydre
-| |
-o |  changeset:   452:ee654e2bf51f
-| |  user:        hecht
-| |  date:        Fri Oct 22 17:40:01 2004 +0200
-| |  summary:     track a bug in complex matrix
-| |
-o |  changeset:   451:1ec19015b7a7
-| |  user:        hecht
-| |  date:        Fri Oct 22 13:17:13 2004 +0200
-| |  summary:     correct spelling in Makefile.am
-| |
-o |  changeset:   450:81af913867db
-| |  user:        hecht
-| |  date:        Fri Oct 22 13:13:57 2004 +0200
-| |  summary:     correct missing file in dist TARGET
-| |
-o |  changeset:   449:4ebc66387841
-| |  user:        hecht
-| |  date:        Thu Oct 21 23:30:26 2004 +0200
-| |  summary:     correct LD_LIBRARY_PATH in regtests.sh
-| |
-o |  changeset:   448:ae67b79318c9
-| |  user:        hecht
-| |  date:        Thu Oct 21 19:53:59 2004 +0200
-| |  summary:     correct compilation probleme with g++-3.4
-| |
-o |  changeset:   447:210d3e06f92d
-| |  user:        hecht
-| |  date:        Thu Oct 21 11:04:46 2004 +0200
-| |  summary:     olve pb of case in filename if figure dir
-| |
-o |  changeset:   446:b5fa749a5bc9
-| |  user:        hecht
-| |  date:        Thu Oct 21 11:04:46 2004 +0200
-| |  summary:     olve pb of case in filename if figure dir
-| |
-o |  changeset:   445:76207b73fd90
-| |  user:        hecht
-| |  date:        Thu Oct 21 11:04:46 2004 +0200
-| |  summary:     olve pb of case in filename if figure dir
-| |
-o |  changeset:   444:bd6dac9e9094
-| |  user:        hecht
-| |  date:        Thu Oct 21 10:51:25 2004 +0200
-| |  summary:     add info in README_CVS  update -d
-| |
-o |  changeset:   443:3454b8d74eb1
-| |  user:        hecht
-| |  date:        Thu Oct 21 10:47:18 2004 +0200
-| |  summary:     full manual continuing
-| |
-o |  changeset:   442:425302deea0d
-| |  user:        hecht
-| |  date:        Thu Oct 21 10:37:25 2004 +0200
-| |  summary:     change  default manual to manual-full
-| |
-o |  changeset:   441:930731f1e671
-| |  user:        hecht
-| |  date:        Thu Oct 21 09:56:57 2004 +0200
-| |  summary:     add forgetted file
-| |
-o |  changeset:   440:90b421243e49
-| |  user:        hecht
-| |  date:        Thu Oct 21 09:55:46 2004 +0200
-| |  summary:     correct ps generation n tag
-| |
-o |  changeset:   439:054a6408443f
-| |  user:        hecht
-| |  date:        Thu Oct 21 08:26:40 2004 +0200
-| |  summary:     correct problem AssembleVarForm compile with -O3 in hydre
-| |
-o |  changeset:   438:10d97062e606
-| |  user:        lehyaric
-| |  date:        Wed Oct 20 17:26:48 2004 +0200
-| |  summary:     Updates for building debian packages.
-| |
-o |  changeset:   437:6b4d454f052c
-| |  user:        hecht
-| |  date:        Wed Oct 20 13:52:12 2004 +0200
-| |  summary:     correct print in UMFPack driver
-| |
-o |  changeset:   436:5d7b015d6b6a
-| |  user:        hecht
-| |  date:        Wed Oct 20 12:01:16 2004 +0200
-| |  summary:     add inquire of FE space connectivite (see HISTRY file)
-| |
-o |  changeset:   435:77ee9f17989a
-| |  user:        hecht
-| |  date:        Wed Oct 20 12:01:16 2004 +0200
-| |  summary:     add inquire of FE space connectivite (see HISTRY file)
-| |
-o |  changeset:   434:645fa4d8d41e
-| |  user:        hecht
-| |  date:        Wed Oct 20 12:01:16 2004 +0200
-| |  summary:     add inquire of FE space connectivite (see HISTRY file)
-| |
-o |  changeset:   433:fe1cf8c01674
-| |  user:        hecht
-| |  date:        Tue Oct 19 23:31:24 2004 +0200
-| |  summary:     correct bug in UMFPACK driver
-| |
-o |  changeset:   432:db150de11f10
-| |  user:        hecht
-| |  date:        Tue Oct 19 23:31:24 2004 +0200
-| |  summary:     correct bug in UMFPACK driver
-| |
-o |  changeset:   431:086194a0bc97
-| |  user:        hecht
-| |  date:        Tue Oct 19 23:31:24 2004 +0200
-| |  summary:     correct bug in UMFPACK driver
-| |
-o |  changeset:   430:143a3895671e
-| |  user:        hecht
-| |  date:        Tue Oct 19 23:31:24 2004 +0200
-| |  summary:     correct bug in UMFPACK driver
-| |
-o |  changeset:   429:68b5cd5a87d4
-| |  user:        hecht
-| |  date:        Tue Oct 19 23:31:24 2004 +0200
-| |  summary:     correct bug in UMFPACK driver
-| |
-o |  changeset:   428:8e95b761bae5
-| |  user:        hecht
-| |  date:        Wed Oct 13 21:49:56 2004 +0200
-| |  summary:     correct line numbering probleme (lose the first line)
-| |
-o |  changeset:   427:25a98f711d0b
-| |  user:        hecht
-| |  date:        Wed Oct 13 21:49:56 2004 +0200
-| |  summary:     correct line numbering probleme (lose the first line)
-| |
-o |  changeset:   426:144820ccdbd5
-| |  user:        hecht
-| |  date:        Wed Oct 13 18:12:27 2004 +0200
-| |  summary:     remove accent in GC routine
-| |
-o |  changeset:   425:1732ce8c01d8
-| |  user:        hecht
-| |  date:        Wed Oct 13 18:12:27 2004 +0200
-| |  summary:     remove accent in GC routine
-| |
-o |  changeset:   424:1b5098389948
-| |  user:        hecht
-| |  date:        Tue Oct 12 21:38:18 2004 +0200
-| |  summary:     reput previous version (wrong test)
-| |
-o |  changeset:   423:5638a3f80a88
-| |  user:        hecht
-| |  date:        Tue Oct 12 20:59:32 2004 +0200
-| |  summary:     correct probleme in A*x for full matrix
-| |
-o |  changeset:   422:94c1cfab9672
-| |  user:        hecht
-| |  date:        Tue Oct 12 07:28:35 2004 +0200
-| |  summary:     add file src/fflib/lgmat.cpp
-| |
-o |  changeset:   421:e63cf99645a9
-| |  user:        hecht
-| |  date:        Mon Oct 11 21:31:47 2004 +0200
-| |  summary:     complex pde , FE complex function, add complex matrix , first test is
-| |
-o |  changeset:   420:9cab4d0aa69c
-| |  user:        hecht
-| |  date:        Mon Oct 11 21:31:47 2004 +0200
-| |  summary:     complex pde , FE complex function, add complex matrix , first test is
-| |
-o |  changeset:   419:515fd7b96b9f
-| |  user:        hecht
-| |  date:        Mon Oct 11 21:31:47 2004 +0200
-| |  summary:     complex pde , FE complex function, add complex matrix , first test is
-| |
-o |  changeset:   418:79b744606bae
-| |  user:        hecht
-| |  date:        Mon Oct 11 21:31:47 2004 +0200
-| |  summary:     complex pde , FE complex function, add complex matrix , first test is
-| |
-o |  changeset:   417:5bd8386dcd01
-| |  user:        hecht
-| |  date:        Mon Oct 11 21:31:47 2004 +0200
-| |  summary:     complex pde , FE complex function, add complex matrix , first test is
-| |
-o |  changeset:   416:97e71f66af70
-| |  user:        hecht
-| |  date:        Fri Oct 08 18:39:13 2004 +0200
-| |  summary:     complex matrix continuing
-| |
-o |  changeset:   415:f137b9a8fc5c
-| |  user:        hecht
-| |  date:        Fri Oct 08 18:39:13 2004 +0200
-| |  summary:     complex matrix continuing
-| |
-o |  changeset:   414:ebfebb1ac5fc
-| |  user:        hecht
-| |  date:        Fri Oct 08 18:39:13 2004 +0200
-| |  summary:     complex matrix continuing
-| |
-o |  changeset:   413:04eb8a6f2984
-| |  user:        hecht
-| |  date:        Fri Oct 08 18:39:13 2004 +0200
-| |  summary:     complex matrix continuing
-| |
-o |  changeset:   412:a22c9b627343
-| |  user:        hecht
-| |  date:        Wed Oct 06 22:24:56 2004 +0200
-| |  summary:     add a pde complex example
-| |
-o |  changeset:   411:a4b5781ae40c
-| |  user:        hecht
-| |  date:        Wed Oct 06 22:22:05 2004 +0200
-| |  summary:     pde complex , continuing:   first test is now working
-| |
-o |  changeset:   410:bcac253cb61b
-| |  user:        hecht
-| |  date:        Wed Oct 06 22:22:05 2004 +0200
-| |  summary:     pde complex , continuing:   first test is now working
-| |
-o |  changeset:   409:8979601bdc85
-| |  user:        hecht
-| |  date:        Tue Oct 05 21:29:04 2004 +0200
-| |  summary:     complex pde probleme   ( first test) no validation
-| |
-o |  changeset:   408:256c59f10590
-| |  user:        hecht
-| |  date:        Tue Oct 05 21:29:04 2004 +0200
-| |  summary:     complex pde probleme   ( first test) no validation
-| |
-o |  changeset:   407:7d2cf3182e76
-| |  user:        hecht
-| |  date:        Tue Oct 05 21:29:04 2004 +0200
-| |  summary:     complex pde probleme   ( first test) no validation
-| |
-o |  changeset:   406:e95d0ba6b7e3
-| |  user:        hecht
-| |  date:        Tue Oct 05 21:29:04 2004 +0200
-| |  summary:     complex pde probleme   ( first test) no validation
-| |
-o |  changeset:   405:70e5cbe6ea2d
-| |  user:        hecht
-| |  date:        Tue Oct 05 21:29:04 2004 +0200
-| |  summary:     complex pde probleme   ( first test) no validation
-| |
-o |  changeset:   404:44a92d96dedf
-| |  user:        hecht
-| |  date:        Tue Oct 05 21:29:04 2004 +0200
-| |  summary:     complex pde probleme   ( first test) no validation
-| |
-o |  changeset:   403:d6f723e155cb
-| |  user:        hecht
-| |  date:        Tue Oct 05 21:29:04 2004 +0200
-| |  summary:     complex pde probleme   ( first test) no validation
-| |
-o |  changeset:   402:3c4ce746b967
-| |  user:        lehyaric
-| |  date:        Tue Oct 05 15:30:13 2004 +0200
-| |  summary:     Added reduced compilation goal "quick" for development purposes.
-| |
-o |  changeset:   401:b2003bc088ca
-| |  user:        hecht
-| |  date:        Mon Oct 04 10:22:29 2004 +0200
-| |  summary:     add complex edp (continued)
-| |
-o |  changeset:   400:397c36b4b309
-| |  user:        hecht
-| |  date:        Thu Sep 30 14:50:25 2004 +0200
-| |  summary:     add complex FE function
-| |
-o |  changeset:   399:887c12889698
-| |  user:        hecht
-| |  date:        Thu Sep 30 14:50:25 2004 +0200
-| |  summary:     add complex FE function
-| |
-o |  changeset:   398:2f52a8427674
-| |  user:        hecht
-| |  date:        Thu Sep 30 14:50:25 2004 +0200
-| |  summary:     add complex FE function
-| |
-o |  changeset:   397:e83e3edd173f
-| |  user:        hecht
-| |  date:        Thu Sep 30 14:50:25 2004 +0200
-| |  summary:     add complex FE function
-| |
-o |  changeset:   396:a5d848d61a8c
-| |  user:        hecht
-| |  date:        Thu Sep 30 14:50:25 2004 +0200
-| |  summary:     add complex FE function
-| |
-o |  changeset:   395:54aee94d12a5
-| |  user:        hecht
-| |  date:        Thu Sep 30 14:50:25 2004 +0200
-| |  summary:     add complex FE function
-| |
-o |  changeset:   394:82ccf1be8da9
-| |  user:        hecht
-| |  date:        Thu Sep 30 14:50:25 2004 +0200
-| |  summary:     add complex FE function
-| |
-o |  changeset:   393:8057e10dedca
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:41 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   392:6af43ced4bae
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:41 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   391:567799ab94cb
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:41 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   390:abb85c03c031
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:41 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   389:fe223eb326cd
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:40 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   388:4ca7990a291d
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:40 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   387:933bb1d0a477
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:40 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   386:5a2434bfc31b
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:40 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   385:72b317a18586
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:40 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   384:01a48ef68149
-| |  user:        hecht
-| |  date:        Tue Sep 28 10:58:40 2004 +0200
-| |  summary:     add new manual call manual-full
-| |
-o |  changeset:   383:dc00fa274e76
-| |  user:        lehyaric
-| |  date:        Fri Sep 17 17:29:29 2004 +0200
-| |  summary:     More information about CVS commands.
-| |
-o |  changeset:   382:3d5b35158b27
-| |  user:        lehyaric
-| |  date:        Fri Sep 17 16:55:03 2004 +0200
-| |  summary:     Regression tests pass with reduced optimization options on PowerPC G5, fast
-| |
-o |  changeset:   381:fc7c2126f5c4
-| |  user:        lehyaric
-| |  date:        Fri Sep 17 16:13:25 2004 +0200
-| |  summary:     Regression tests pass again on Macintosh PPC (generic mode).
-| |
-o |  changeset:   380:6735dad5752c
-| |  user:        lehyaric
-| |  date:        Fri Sep 17 15:14:21 2004 +0200
-| |  summary:     Make regression tests work again on Macintosh PowerPC (debug mode).
-| |
-o |  changeset:   379:1f9b0349c49d
-| |  user:        lehyaric
-| |  date:        Fri Sep 17 15:14:21 2004 +0200
-| |  summary:     Make regression tests work again on Macintosh PowerPC (debug mode).
-| |
-o |  changeset:   378:ff90d81ab89d
-| |  user:        lehyaric
-| |  date:        Fri Sep 17 15:14:21 2004 +0200
-| |  summary:     Make regression tests work again on Macintosh PowerPC (debug mode).
-| |
-o |  changeset:   377:f7482dd869e3
-| |  user:        lehyaric
-| |  date:        Fri Sep 17 15:14:21 2004 +0200
-| |  summary:     Make regression tests work again on Macintosh PowerPC (debug mode).
-| |
-o |  changeset:   376:bfab63278f19
-| |  user:        lehyaric
-| |  date:        Thu Sep 16 17:24:11 2004 +0200
-| |  summary:     Still trying to find appropriate optimization options for PowerPC G5
-| |
-o |  changeset:   375:0507c2ba4f1e
-| |  user:        lehyaric
-| |  date:        Thu Sep 16 10:43:46 2004 +0200
-| |  summary:     G5 optimization options reverted to G4 because of segmentation fault
-| |
-o |  changeset:   374:cd70efe472da
-| |  user:        hecht
-| |  date:        Wed Sep 15 21:50:30 2004 +0200
-| |  summary:     split AFunction.cpp in 2 files  and remove optim option on ppc G5
-| |
-o |  changeset:   373:5da1312b3ef9
-| |  user:        hecht
-| |  date:        Wed Sep 15 21:50:30 2004 +0200
-| |  summary:     split AFunction.cpp in 2 files  and remove optim option on ppc G5
-| |
-o |  changeset:   372:72e9cd4aa1b8
-| |  user:        hecht
-| |  date:        Wed Sep 15 21:50:30 2004 +0200
-| |  summary:     split AFunction.cpp in 2 files  and remove optim option on ppc G5
-| |
-o |  changeset:   371:1ad31634c74e
-| |  user:        hecht
-| |  date:        Tue Sep 14 14:28:57 2004 +0200
-| |  summary:     correct pb set var CXX  in load.sh call in exampelle++-Makefile.am
-| |
-o |  changeset:   370:8483d008a226
-| |  user:        lehyaric
-| |  date:        Tue Sep 14 13:51:23 2004 +0200
-| |  summary:     Enables load.link work even when $CXX is not defined.
-| |
-o |  changeset:   369:3b19cf768802
-| |  user:        lehyaric
-| |  date:        Tue Sep 14 11:39:15 2004 +0200
-| |  summary:     Corrected bug preventing examples++-tutorial/regtests.m4 from being
-| |
-o |  changeset:   368:fe3f3906e950
-| |  user:        lehyaric
-| |  date:        Tue Sep 14 11:20:40 2004 +0200
-| |  summary:     More updates for FreeBSD compilation
-| |
-o |  changeset:   367:c4a119ca5c9a
-| |  user:        lehyaric
-| |  date:        Mon Sep 13 16:05:19 2004 +0200
-| |  summary:     Modification proposée par Thierry Thomas pour FreeBSD
-| |
-o |  changeset:   366:8493ed2b0f1e
-| |  user:        hecht
-| |  date:        Mon Sep 13 15:33:27 2004 +0200
-| |  summary:     correct plist version
-| |
-o |  changeset:   365:18b4482e75b8
-| |  user:        hecht
-| |  date:        Mon Sep 13 15:33:27 2004 +0200
-| |  summary:     correct plist version
-| |
-o |  changeset:   364:afb03f91b7e1
-| |  user:        hecht
-| |  date:        Mon Sep 13 15:27:09 2004 +0200
-| |  summary:     C++ encapsulte cblas.h in src/femlib/MatriceCreuse_tpl.hpp for freebsd OS
-| |
-o |  changeset:   363:613c6ccc0c5f
-| |  user:        hecht
-| |  date:        Tue Sep 07 17:43:34 2004 +0200
-| |  summary:     corret of window install
-| |
-o |  changeset:   362:8540f099b3ce
-| |  user:        hecht
-| |  date:        Tue Sep 07 16:47:58 2004 +0200
-| |  summary:     add file for MacOS application
-| |
-o |  changeset:   361:7dae94479be9
-| |  user:        lehyaric
-| |  date:        Tue Sep 07 10:37:27 2004 +0200
-| |  summary:     Regression tests in examples++ directory re-implemented using regtests.m4
-| |
-o |  changeset:   360:2d87ce153e15
-| |  user:        lehyaric
-| |  date:        Tue Sep 07 10:37:27 2004 +0200
-| |  summary:     Regression tests in examples++ directory re-implemented using regtests.m4
-| |
-o |  changeset:   359:2784c4a0bd47
-| |  user:        hecht
-| |  date:        Tue Sep 07 09:45:39 2004 +0200
-| |  summary:     correct with-blas=....  tags
-| |
-o |  changeset:   358:cf165daa0d0f
-| |  user:        hecht
-| |  date:        Tue Sep 07 09:36:07 2004 +0200
-| |  summary:     add if previous download of blas reuse it
-| |
-o |  changeset:   357:3eb4c46dcfe9
-| |  user:        hecht
-| |  date:        Tue Sep 07 09:36:07 2004 +0200
-| |  summary:     add if previous download of blas reuse it
-| |
-o |  changeset:   356:76b709dff400
-| |  user:        hecht
-| |  date:        Tue Sep 07 09:36:07 2004 +0200
-| |  summary:     add if previous download of blas reuse it
-| |
-o |  changeset:   355:5e3635850187
-| |  user:        hecht
-| |  date:        Tue Sep 07 09:36:07 2004 +0200
-| |  summary:     add if previous download of blas reuse it
-| |
-o |  changeset:   354:31bc7672aa7c
-| |  user:        hecht
-| |  date:        Tue Sep 07 09:36:07 2004 +0200
-| |  summary:     add if previous download of blas reuse it
-| |
-o |  changeset:   353:bd84364412fe
-| |  user:        hecht
-| |  date:        Mon Sep 06 16:03:02 2004 +0200
-| |  summary:     add missing file regtest.m4 in dist make target in examples++-tutorial
-| |
-o |  changeset:   352:fca5bc988b28
-| |  user:        hecht
-| |  date:        Mon Sep 06 14:00:11 2004 +0200
-| |  summary:     Add  -enable-generic_blas Download generic blas (implie --enable-download)
-| |
-o |  changeset:   351:44f079ca1e54
-| |  user:        hecht
-| |  date:        Fri Sep 03 10:45:06 2004 +0200
-| |  summary:     empty SOURCESS variable in download/blas/Makefile.am  because
-| |
-o |  changeset:   350:1e46b370a8e8
-| |  user:        hecht
-| |  date:        Thu Sep 02 16:04:15 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   349:aa868ed8a653
-| |  user:        hecht
-| |  date:        Thu Sep 02 16:04:15 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   348:ea558c405714
-| |  user:        hecht
-| |  date:        Thu Sep 02 16:04:15 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   347:e93fad9806ee
-| |  user:        hecht
-| |  date:        Thu Sep 02 16:04:15 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   346:699d36073a62
-| |  user:        hecht
-| |  date:        Wed Sep 01 13:51:05 2004 +0200
-| |  summary:     correct string[string] undelete pointer
-| |
-o |  changeset:   345:3630bf06e805
-| |  user:        hecht
-| |  date:        Wed Sep 01 13:51:05 2004 +0200
-| |  summary:     correct string[string] undelete pointer
-| |
-o |  changeset:   344:1f080b312de7
-| |  user:        hecht
-| |  date:        Wed Sep 01 13:51:05 2004 +0200
-| |  summary:     correct string[string] undelete pointer
-| |
-o |  changeset:   343:2207149cc212
-| |  user:        hecht
-| |  date:        Wed Sep 01 09:33:21 2004 +0200
-| |  summary:     expand macro problem , suite (et fin?)
-| |
-o |  changeset:   342:7f3e2e94c5dd
-| |  user:        hecht
-| |  date:        Wed Sep 01 09:33:21 2004 +0200
-| |  summary:     expand macro problem , suite (et fin?)
-| |
-o |  changeset:   341:5155e427a87d
-| |  user:        hecht
-| |  date:        Wed Sep 01 07:41:07 2004 +0200
-| |  summary:     correct pb in macro generation (not finish)
-| |
-o |  changeset:   340:c43b8c2be26a
-| |  user:        hecht
-| |  date:        Tue Aug 31 17:35:35 2004 +0200
-| |  summary:     correct  bug in macro expansion
-| |
-o |  changeset:   339:ffcff5636f12
-| |  user:        hecht
-| |  date:        Mon Aug 30 17:10:10 2004 +0200
-| |  summary:     remove blas call on MacOS 9
-| |
-o |  changeset:   338:531a39f19f63
-| |  user:        hecht
-| |  date:        Mon Aug 30 15:56:07 2004 +0200
-| |  summary:     add blas call  in choleski and LU solver
-| |
-o |  changeset:   337:4fbef75b9c75
-| |  user:        hecht
-| |  date:        Mon Aug 30 15:56:07 2004 +0200
-| |  summary:     add blas call  in choleski and LU solver
-| |
-o |  changeset:   336:411e79c1f3d1
-| |  user:        hecht
-| |  date:        Mon Aug 30 15:56:07 2004 +0200
-| |  summary:     add blas call  in choleski and LU solver
-| |
-o |  changeset:   335:db4ae64b21ff
-| |  user:        hecht
-| |  date:        Mon Aug 30 14:13:24 2004 +0200
-| |  summary:     add blas in choleski
-| |
-o |  changeset:   334:a2136058155e
-| |  user:        hecht
-| |  date:        Mon Aug 30 14:13:24 2004 +0200
-| |  summary:     add blas in choleski
-| |
-o |  changeset:   333:3026860a14e7
-| |  user:        hecht
-| |  date:        Mon Aug 30 14:13:24 2004 +0200
-| |  summary:     add blas in choleski
-| |
-o |  changeset:   332:adae49e68467
-| |  user:        hecht
-| |  date:        Mon Aug 30 14:03:27 2004 +0200
-| |  summary:     correct mpi/Makefile.am for compilation with g++-3.4
-| |
-o |  changeset:   331:d25cf7233e27
-| |  user:        hecht
-| |  date:        Mon Aug 30 13:40:48 2004 +0200
-| |  summary:     correction to by compatible wiath g++-3.4
-| |
-o |  changeset:   330:2053e59afe11
-| |  user:        hecht
-| |  date:        Mon Aug 30 13:40:48 2004 +0200
-| |  summary:     correction to by compatible wiath g++-3.4
-| |
-o |  changeset:   329:de5ee8de0427
-| |  user:        hecht
-| |  date:        Fri Aug 27 17:42:26 2004 +0200
-| |  summary:     correct g++-3.4 compilation probleme
-| |
-o |  changeset:   328:5a1f1387f099
-| |  user:        hecht
-| |  date:        Thu Aug 26 16:51:56 2004 +0200
-| |  summary:     optimize cpu times on choleski and crout
-| |
-o |  changeset:   327:c28bfd60ba97
-| |  user:        hecht
-| |  date:        Thu Aug 26 15:04:49 2004 +0200
-| |  summary:     correct divide by zero in plot
-| |
-o |  changeset:   326:82e0b4315486
-| |  user:        hecht
-| |  date:        Thu Aug 26 15:04:49 2004 +0200
-| |  summary:     correct divide by zero in plot
-| |
-o |  changeset:   325:cf3cb8ac4aff
-| |  user:        hecht
-| |  date:        Thu Aug 26 15:04:49 2004 +0200
-| |  summary:     correct divide by zero in plot
-| |
-o |  changeset:   324:03ff6dc560d5
-| |  user:        hecht
-| |  date:        Thu Aug 26 15:04:49 2004 +0200
-| |  summary:     correct divide by zero in plot
-| |
-o |  changeset:   323:1a52cee5c2df
-| |  user:        hecht
-| |  date:        Thu Aug 26 15:04:49 2004 +0200
-| |  summary:     correct divide by zero in plot
-| |
-o |  changeset:   322:0aa1b06eb0ef
-| |  user:        lehyaric
-| |  date:        Fri Jul 16 14:40:18 2004 +0200
-| |  summary:     Windows package for Version 1.41 complete.
-| |
-o |  changeset:   321:1fe712bb592c
-| |  user:        lehyaric
-| |  date:        Fri Jul 16 14:40:18 2004 +0200
-| |  summary:     Windows package for Version 1.41 complete.
-| |
-o |  changeset:   320:def90fb6ed3d
-| |  user:        lehyaric
-| |  date:        Fri Jul 16 14:40:18 2004 +0200
-| |  summary:     Windows package for Version 1.41 complete.
-| |
-o |  changeset:   319:bf9d235a46b3
-| |  user:        lehyaric
-| |  date:        Fri Jul 16 14:40:18 2004 +0200
-| |  summary:     Windows package for Version 1.41 complete.
-| |
-o |  changeset:   318:85f578ad260e
-| |  user:        lehyaric
-| |  date:        Fri Jul 16 14:40:18 2004 +0200
-| |  summary:     Windows package for Version 1.41 complete.
-| |
-o |  changeset:   317:6628af52db2b
-| |  user:        lehyaric
-| |  date:        Thu Jul 15 10:32:08 2004 +0200
-| |  summary:     Regression tests ok on an Athlon 1.2 GHz.
-| |
-o |  changeset:   316:53712bc8f199
-| |  user:        lehyaric
-| |  date:        Tue Jul 13 14:20:36 2004 +0200
-| |  summary:     Regression tests pass on cygwin.
-| |
-o |  changeset:   315:8ea214d54ae7
-| |  user:        lehyaric
-| |  date:        Tue Jul 13 11:13:06 2004 +0200
-| |  summary:     Small comment change.
-| |
-o |  changeset:   314:64a1e1e70dac
-| |  user:        lehyaric
-| |  date:        Tue Jul 13 11:12:29 2004 +0200
-| |  summary:     Downloaded generic BLAS now work on cedre (redhat, pentium 4).
-| |
-o |  changeset:   313:1faecf8849ea
-| |  user:        lehyaric
-| |  date:        Tue Jul 13 11:12:29 2004 +0200
-| |  summary:     Downloaded generic BLAS now work on cedre (redhat, pentium 4).
-| |
-o |  changeset:   312:d2475c116bac
-| |  user:        lehyaric
-| |  date:        Tue Jul 13 11:01:50 2004 +0200
-| |  summary:     Optimized BLAS replaced with generic BLAS for generic compilation.
-| |
-o |  changeset:   311:9d99b39cf9d4
-| |  user:        lehyaric
-| |  date:        Tue Jul 13 10:29:57 2004 +0200
-| |  summary:     Duplicates xerbla.f when downloading generic blas.
-| |
-o |  changeset:   310:71ed69bf1371
-| |  user:        lehyaric
-| |  date:        Mon Jul 12 17:38:15 2004 +0200
-| |  summary:     Uses generic BLAS for generic compilation, because it is faster to compile
-| |
-o |  changeset:   309:4223a25835b8
-| |  user:        lehyaric
-| |  date:        Mon Jul 12 17:38:15 2004 +0200
-| |  summary:     Uses generic BLAS for generic compilation, because it is faster to compile
-| |
-o |  changeset:   308:b9a134a6f6e2
-| |  user:        lehyaric
-| |  date:        Fri Jul 09 18:10:16 2004 +0200
-| |  summary:     New script to upload Debian packages.
-| |
-o |  changeset:   307:db4e0b9fb8e6
-| |  user:        lehyaric
-| |  date:        Fri Jul 09 18:10:16 2004 +0200
-| |  summary:     New script to upload Debian packages.
-| |
-o |  changeset:   306:fcea44571ff4
-| |  user:        darrasse
-| |  date:        Fri Jul 09 16:52:17 2004 +0200
-| |  summary:     Mise à jour de la liste des auteurs
-| |
-o |  changeset:   305:a518d55630cf
-| |  user:        lehyaric
-| |  date:        Fri Jul 09 10:04:55 2004 +0200
-| |  summary:     Binary ATLAS download disabled for the moment.
-| |
-o |  changeset:   304:e8c7b5754d95
-| |  user:        hecht
-| |  date:        Thu Jul 08 15:31:42 2004 +0200
-| |  summary:     install-www in progress
-| |
-o |  changeset:   303:7af6fdba37a9
-| |  user:        lehyaric
-| |  date:        Thu Jul 08 15:22:13 2004 +0200
-| |  summary:     The precompiled ATLAS library is now correctly downloaded and uncompressed,
-| |
-o |  changeset:   302:193850ffeebf
-| |  user:        lehyaric
-| |  date:        Thu Jul 08 15:22:13 2004 +0200
-| |  summary:     The precompiled ATLAS library is now correctly downloaded and uncompressed,
-| |
-o |  changeset:   301:1a7ea2e9e383
-| |  user:        lehyaric
-| |  date:        Thu Jul 08 15:22:13 2004 +0200
-| |  summary:     The precompiled ATLAS library is now correctly downloaded and uncompressed,
-| |
-o |  changeset:   300:470d4053c3da
-| |  user:        hecht
-| |  date:        Thu Jul 08 15:21:08 2004 +0200
-| |  summary:     correct install-www
-| |
-o |  changeset:   299:7cd6515116e5
-| |  user:        lehyaric
-| |  date:        Thu Jul 08 13:15:48 2004 +0200
-| |  summary:     Reference values for regression tests with and without UMFPACK merged.
-| |
-o |  changeset:   298:fcf594999fd7
-| |  user:        lehyaric
-| |  date:        Thu Jul 08 13:15:48 2004 +0200
-| |  summary:     Reference values for regression tests with and without UMFPACK merged.
-| |
-o |  changeset:   297:3dce3e57c22a
-| |  user:        lehyaric
-| |  date:        Thu Jul 08 13:15:48 2004 +0200
-| |  summary:     Reference values for regression tests with and without UMFPACK merged.
-| |
-o |  changeset:   296:b5573d38d3fd
-| |  user:        lehyaric
-| |  date:        Thu Jul 08 12:02:10 2004 +0200
-| |  summary:     Option to download a precompiled version of ATLAS programmed in, but not
-| |
-o |  changeset:   295:fefc602af266
-| |  user:        lehyaric
-| |  date:        Thu Jul 08 10:44:43 2004 +0200
-| |  summary:     Debian binary packages created, but not tested yet.
-| |
-o |  changeset:   294:2269542083d4
-| |  user:        lehyaric
-| |  date:        Wed Jul 07 17:42:54 2004 +0200
-| |  summary:     Debian packaging in progress.
-| |
-o |  changeset:   293:5fa437bd58d9
-| |  user:        lehyaric
-| |  date:        Wed Jul 07 17:42:54 2004 +0200
-| |  summary:     Debian packaging in progress.
-| |
-o |  changeset:   292:3c887a990870
-| |  user:        hecht
-| |  date:        Wed Jul 07 16:25:04 2004 +0200
-| |  summary:     correction on macosX version
-| |
-o |  changeset:   291:a2af1c655832
-| |  user:        hecht
-| |  date:        Wed Jul 07 16:25:04 2004 +0200
-| |  summary:     correction on macosX version
-| |
-o |  changeset:   290:e6ecf315812d
-| |  user:        hecht
-| |  date:        Wed Jul 07 16:25:04 2004 +0200
-| |  summary:     correction on macosX version
-| |
-o |  changeset:   289:c51cd2b05332
-| |  user:        hecht
-| |  date:        Wed Jul 07 15:56:15 2004 +0200
-| |  summary:     correct pb in freefem++.app on macosX
-| |
-o |  changeset:   288:e142da063d15
-| |  user:        hecht
-| |  date:        Wed Jul 07 15:13:27 2004 +0200
-| |  summary:     correct install-www script
-| |
-o |  changeset:   287:ab379a17cf2e
-| |  user:        hecht
-| |  date:        Wed Jul 07 14:40:01 2004 +0200
-| |  summary:     add native9 make target for Mac9 version
-| |
-o |  changeset:   286:6aaa1a3f395f
-| |  user:        hecht
-| |  date:        Wed Jul 07 14:29:05 2004 +0200
-| |  summary:     correct pb in MACOSX version and instal-www file
-| |
-o |  changeset:   285:28ea7398dafd
-| |  user:        hecht
-| |  date:        Wed Jul 07 14:24:10 2004 +0200
-| |  summary:     correct path of FreeFem++-CoCoa file in install
-| |
-o |  changeset:   284:8609cad81843
-| |  user:        hecht
-| |  date:        Wed Jul 07 14:05:51 2004 +0200
-| |  summary:     Add COPYRIGHT file
-| |
-o |  changeset:   283:1525c53ec559
-| |  user:        hecht
-| |  date:        Wed Jul 07 13:58:17 2004 +0200
-| |  summary:     Add INSTALL-MacOS file
-| |
-o |  changeset:   282:94e900430e00
-| |  user:        lehyaric
-| |  date:        Wed Jul 07 12:51:55 2004 +0200
-| |  summary:     Debian packaging in progress.
-| |
-o |  changeset:   281:f5220090d815
-| |  user:        lehyaric
-| |  date:        Wed Jul 07 12:51:55 2004 +0200
-| |  summary:     Debian packaging in progress.
-| |
-o |  changeset:   280:421a0c5540ec
-| |  user:        hecht
-| |  date:        Wed Jul 07 12:41:05 2004 +0200
-| |  summary:     mal change in epsilon for regtest (on idared)
-| |
-o |  changeset:   279:0f1c9dc9f21f
-| |  user:        hecht
-| |  date:        Wed Jul 07 12:09:31 2004 +0200
-| |  summary:     correct pb in m4 parameter for building  regtests.edp
-| |
-o |  changeset:   278:669fb7802b66
-| |  user:        hecht
-| |  date:        Wed Jul 07 11:32:55 2004 +0200
-| |  summary:     add install-www to set web server
-| |
-o |  changeset:   277:ce3021db6c88
-| |  tag:         release_1_41_before_packaging
-| |  user:        lehyaric
-| |  date:        Mon Jul 05 14:38:47 2004 +0200
-| |  summary:     Remove debugging information
-| |
-o |  changeset:   276:7a4a883326b9
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 16:13:29 2004 +0200
-| |  summary:     Improvements on regression tests on Idared, but still a segmentation fault
-| |
-o |  changeset:   275:82325608c7fa
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 16:04:09 2004 +0200
-| |  summary:     All regression tests ok on Cedre.
-| |
-o |  changeset:   274:9f94970bb44b
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 16:04:09 2004 +0200
-| |  summary:     All regression tests ok on Cedre.
-| |
-o |  changeset:   273:2d7625db8ce9
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 16:04:09 2004 +0200
-| |  summary:     All regression tests ok on Cedre.
-| |
-o |  changeset:   272:7be0ae88c080
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 15:33:45 2004 +0200
-| |  summary:     All regression tests ok on Hydre.
-| |
-o |  changeset:   271:df58e4bd4eda
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 15:33:45 2004 +0200
-| |  summary:     All regression tests ok on Hydre.
-| |
-o |  changeset:   270:0757f6282056
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 15:33:45 2004 +0200
-| |  summary:     All regression tests ok on Hydre.
-| |
-o |  changeset:   269:bd99d82ae56e
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 15:33:45 2004 +0200
-| |  summary:     All regression tests ok on Hydre.
-| |
-o |  changeset:   268:2e6c9c4611a5
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 14:26:01 2004 +0200
-| |  summary:     More updates to make parallel regression tests work.
-| |
-o |  changeset:   267:43dffe189376
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 14:26:01 2004 +0200
-| |  summary:     More updates to make parallel regression tests work.
-| |
-o |  changeset:   266:2934f663b1f6
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 14:26:01 2004 +0200
-| |  summary:     More updates to make parallel regression tests work.
-| |
-o |  changeset:   265:03a2012d998f
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 14:18:33 2004 +0200
-| |  summary:     Correcting some problems with parallel regressions tests.
-| |
-o |  changeset:   264:5659084d9b60
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 14:15:43 2004 +0200
-| |  summary:     Separate set of reference values when UMFPACK is not available.
-| |
-o |  changeset:   263:be8728bf6836
-| |  user:        lehyaric
-| |  date:        Thu Jul 01 13:21:41 2004 +0200
-| |  summary:     More tests on the parallel version (FreeFem++-mpi)
-| |
-o |  changeset:   262:d6eeb2d1500d
-| |  user:        lehyaric
-| |  date:        Wed Jun 30 15:47:51 2004 +0200
-| |  summary:     Regression tests installed in examples++-tutorial, with a separate file
-| |
-o |  changeset:   261:2b2296d0b03d
-| |  user:        lehyaric
-| |  date:        Wed Jun 30 14:29:48 2004 +0200
-| |  summary:     New file configure.param containing configure parameters.
-| |
-o |  changeset:   260:74d8cc71c4ba
-| |  user:        lehyaric
-| |  date:        Wed Jun 30 10:47:20 2004 +0200
-| |  summary:     Describes how to compile FreeFem++ on Windows.
-| |
-o |  changeset:   259:f5b3a2abcf03
-| |  user:        lehyaric
-| |  date:        Wed Jun 30 10:45:28 2004 +0200
-| |  summary:     Because of the way return codes are handled inside shell pipe "|" commands,
-| |
-o |  changeset:   258:dc3cf3b8e5f1
-| |  user:        lehyaric
-| |  date:        Tue Jun 29 18:41:14 2004 +0200
-| |  summary:     More upgrades to make the source tar file compilable on most architectures.
-| |
-o |  changeset:   257:93336381edc4
-| |  user:        lehyaric
-| |  date:        Tue Jun 29 18:41:14 2004 +0200
-| |  summary:     More upgrades to make the source tar file compilable on most architectures.
-| |
-o |  changeset:   256:e511f057ffa7
-| |  user:        lehyaric
-| |  date:        Tue Jun 29 18:41:14 2004 +0200
-| |  summary:     More upgrades to make the source tar file compilable on most architectures.
-| |
-o |  changeset:   255:3be4e4e86327
-| |  user:        lehyaric
-| |  date:        Tue Jun 29 18:41:14 2004 +0200
-| |  summary:     More upgrades to make the source tar file compilable on most architectures.
-| |
-o |  changeset:   254:3a93a6f5e3fb
-| |  user:        lehyaric
-| |  date:        Tue Jun 29 18:41:14 2004 +0200
-| |  summary:     More upgrades to make the source tar file compilable on most architectures.
-| |
-o |  changeset:   253:413fa728d595
-| |  user:        lehyaric
-| |  date:        Tue Jun 29 18:41:14 2004 +0200
-| |  summary:     More upgrades to make the source tar file compilable on most architectures.
-| |
-o |  changeset:   252:95739d9cec9c
-| |  user:        hecht
-| |  date:        Mon Jun 28 22:02:09 2004 +0200
-| |  summary:     correct double echo in macro expansion
-| |
-o |  changeset:   251:c787dfc0af48
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   250:fbad8a94c9fe
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   249:23513d2a05c2
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   248:b46fb2019dd4
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   247:cceac60d1b66
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   246:bbba443f4309
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   245:33d98ebd3407
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   244:7ebb82020029
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   243:cb7d05e66ca1
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   242:ce4ed3033dda
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   241:ccf83b55c405
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   240:c880a524e281
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 19:26:56 2004 +0200
-| |  summary:     .tar.gz packages currently being tested and improved. Testing architectures
-| |
-o |  changeset:   239:491d91e180a6
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   238:1a92d214e4e9
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   237:18d9f46d6956
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   236:6dbd1f92fe78
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   235:9f6dc3d57397
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   234:c4b6d34b9c58
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   233:15448ffdb476
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   232:ad9b66078f50
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   231:244e10acad9f
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   230:a061edaca896
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   229:5f042d9e08c1
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   228:51b52fdc0699
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   227:9cf12e9fcc6a
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   226:b39368025dc3
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 12:36:53 2004 +0200
-| |  summary:     Gathering all regression check in one location (regtests.edp) to let
-| |
-o |  changeset:   225:8be6dcc104ac
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 11:07:54 2004 +0200
-| |  summary:     Cleaning and improving the MacOS version.
-| |
-o |  changeset:   224:e98a86d4e84a
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 11:07:54 2004 +0200
-| |  summary:     Cleaning and improving the MacOS version.
-| |
-o |  changeset:   223:4fe29fbcb591
-| |  user:        lehyaric
-| |  date:        Mon Jun 28 11:07:53 2004 +0200
-| |  summary:     Cleaning and improving the MacOS version.
-| |
-o |  changeset:   222:11ea2dc80fda
-| |  user:        hecht
-| |  date:        Mon Jun 28 09:41:41 2004 +0200
-| |  summary:     small correct
-| |
-o |  changeset:   221:803825852848
-| |  user:        hecht
-| |  date:        Mon Jun 28 09:33:07 2004 +0200
-| |  summary:     FH correct pb in file name
-| |
-o |  changeset:   220:49f933c9d7c5
-| |  user:        hecht
-| |  date:        Mon Jun 28 09:29:04 2004 +0200
-| |  summary:     Correct small thing in DOC and add losed figure
-| |
-o |  changeset:   219:b0b3f7597046
-| |  user:        hecht
-| |  date:        Mon Jun 28 09:29:04 2004 +0200
-| |  summary:     Correct small thing in DOC and add losed figure
-| |
-o |  changeset:   218:260856bae4be
-| |  user:        hecht
-| |  date:        Mon Jun 28 09:29:04 2004 +0200
-| |  summary:     Correct small thing in DOC and add losed figure
-| |
-o |  changeset:   217:d8ebe140a004
-| |  user:        hecht
-| |  date:        Sun Jun 27 17:18:35 2004 +0200
-| |  summary:     FH modif .plist file for MacOS application
-| |
-o |  changeset:   216:274201b08277
-| |  user:        hecht
-| |  date:        Sun Jun 27 17:18:35 2004 +0200
-| |  summary:     FH modif .plist file for MacOS application
-| |
-o |  changeset:   215:b34523490134
-| |  user:        hecht
-| |  date:        Sun Jun 27 17:18:35 2004 +0200
-| |  summary:     FH modif .plist file for MacOS application
-| |
-o |  changeset:   214:1abaf5e80c5b
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 18:39:04 2004 +0200
-| |  summary:     Added a new scheme for checking numerical results in each example
-| |
-o |  changeset:   213:d345132caf0d
-| |  user:        hecht
-| |  date:        Fri Jun 25 18:31:20 2004 +0200
-| |  summary:     FH: add bug example
-| |
-o |  changeset:   212:ed255a0ab2b9
-| |  user:        hecht
-| |  date:        Fri Jun 25 18:30:14 2004 +0200
-| |  summary:     FH:  compile FLAG optimization  on MACOS
-| |
-o |  changeset:   211:952ea771ea45
-| |  user:        hecht
-| |  date:        Fri Jun 25 17:54:02 2004 +0200
-| |  summary:     FH: correct the -fast compilation flag  on MACOS (remove -malign-natural)
-| |
-o |  changeset:   210:ee742b18566c
-| |  user:        hecht
-| |  date:        Fri Jun 25 17:54:02 2004 +0200
-| |  summary:     FH: correct the -fast compilation flag  on MACOS (remove -malign-natural)
-| |
-o |  changeset:   209:566f15d34ead
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 17:30:51 2004 +0200
-| |  summary:     Making "make visualcheck" work.
-| |
-o |  changeset:   208:830668a369ab
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 15:46:10 2004 +0200
-| |  summary:     POSIX system calls times() and sysconf() are not defined in Mingw system
-| |
-o |  changeset:   207:5f265a041999
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 14:18:35 2004 +0200
-| |  summary:     Displays test output as well as recording it during regression tests.
-| |
-o |  changeset:   206:2a8140e574cd
-| |  user:        hecht
-| |  date:        Fri Jun 25 14:13:56 2004 +0200
-| |  summary:     add a forgottent  & in toString  Complex)
-| |
-o |  changeset:   205:1a8af1b6cc4e
-| |  user:        hecht
-| |  date:        Fri Jun 25 14:04:48 2004 +0200
-| |  summary:     change toString to remove problem of optimisation flag -fast on MacOS
-| |
-o |  changeset:   204:cdda0f23627e
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 13:53:20 2004 +0200
-| |  summary:     Avoids the gcc option "-rdynamic" (used for dlopen()) on MacOS.
-| |
-o |  changeset:   203:50b0a79472d0
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 13:42:27 2004 +0200
-| |  summary:     Still more corrections to make regtests.sh work.
-| |
-o |  changeset:   202:7350e7f03cb7
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 12:21:00 2004 +0200
-| |  summary:     Corrected bug where FreeFem++ command was not correctly constructed
-| |
-o |  changeset:   201:1a97c5f8dae3
-| |  user:        hecht
-| |  date:        Fri Jun 25 12:17:20 2004 +0200
-| |  summary:     add periodic adaptmesh  stuff
-| |
-o |  changeset:   200:bf6116bf6e14
-| |  user:        hecht
-| |  date:        Fri Jun 25 12:17:20 2004 +0200
-| |  summary:     add periodic adaptmesh  stuff
-| |
-o |  changeset:   199:f9a372018d4d
-| |  user:        hecht
-| |  date:        Fri Jun 25 12:17:20 2004 +0200
-| |  summary:     add periodic adaptmesh  stuff
-| |
-o |  changeset:   198:173890d6cffd
-| |  user:        hecht
-| |  date:        Fri Jun 25 12:17:20 2004 +0200
-| |  summary:     add periodic adaptmesh  stuff
-| |
-o |  changeset:   197:1ea692423a96
-| |  user:        hecht
-| |  date:        Fri Jun 25 12:17:20 2004 +0200
-| |  summary:     add periodic adaptmesh  stuff
-| |
-o |  changeset:   196:eafde84d3182
-| |  user:        hecht
-| |  date:        Fri Jun 25 12:17:20 2004 +0200
-| |  summary:     add periodic adaptmesh  stuff
-| |
-o |  changeset:   195:36fad8e658ca
-| |  user:        hecht
-| |  date:        Fri Jun 25 12:17:20 2004 +0200
-| |  summary:     add periodic adaptmesh  stuff
-| |
-o |  changeset:   194:84be95355842
-| |  user:        hecht
-| |  date:        Fri Jun 25 12:17:20 2004 +0200
-| |  summary:     add periodic adaptmesh  stuff
-| |
-o |  changeset:   193:cc913a248488
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 12:12:19 2004 +0200
-| |  summary:     Corrected bug where file examples++-other/speedtest.out was not updated
-| |
-o |  changeset:   192:5eb924283df1
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 11:55:15 2004 +0200
-| |  summary:     Replaced all occurrences of regtests.pl with regtests.sh
-| |
-o |  changeset:   191:5f334f30cf3d
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 11:05:41 2004 +0200
-| |  summary:     Correcting the definition of VersionFreeFemDate and VersionFreeFempp
-| |
-o |  changeset:   190:46b1668643d5
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 10:59:16 2004 +0200
-| |  summary:     More documentation for config-version.h generation.
-| |
-o |  changeset:   189:63d0c3f29db0
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 10:55:37 2004 +0200
-| |  summary:     - Restructuring the regression tests suite to run all non windowed tests
-| |
-o |  changeset:   188:05d5f79cdebc
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 10:55:37 2004 +0200
-| |  summary:     - Restructuring the regression tests suite to run all non windowed tests
-| |
-o |  changeset:   187:dd9823784d74
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 10:55:37 2004 +0200
-| |  summary:     - Restructuring the regression tests suite to run all non windowed tests
-| |
-o |  changeset:   186:28349aab8571
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 10:55:37 2004 +0200
-| |  summary:     - Restructuring the regression tests suite to run all non windowed tests
-| |
-o |  changeset:   185:18a8cf3b1821
-| |  user:        lehyaric
-| |  date:        Fri Jun 25 10:55:37 2004 +0200
-| |  summary:     - Restructuring the regression tests suite to run all non windowed tests
-| |
-o |  changeset:   184:4f7f186b636b
-| |  user:        darrasse
-| |  date:        Thu Jun 24 18:09:06 2004 +0200
-| |  summary:     Ajout du packet freefem++-doc contenant la documentation
-| |
-o |  changeset:   183:e7ca62ae4d11
-| |  user:        darrasse
-| |  date:        Thu Jun 24 18:09:06 2004 +0200
-| |  summary:     Ajout du packet freefem++-doc contenant la documentation
-| |
-o |  changeset:   182:0e82b2a232ce
-| |  user:        darrasse
-| |  date:        Thu Jun 24 18:09:06 2004 +0200
-| |  summary:     Ajout du packet freefem++-doc contenant la documentation
-| |
-o |  changeset:   181:66f445bf7317
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 17:08:22 2004 +0200
-| |  summary:     Some commands (like make speedtest and doc) are more thoroughly documented.
-| |
-o |  changeset:   180:c2c2f1bc0b5d
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 16:49:17 2004 +0200
-| |  summary:     Give a value to LD_LIBRARY_PATH for the examples++-load regression tests.
-| |
-o |  changeset:   179:b4d6436c35bf
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 16:05:39 2004 +0200
-| |  summary:     Regression tests for the parallel version are ok.
-| |
-o |  changeset:   178:089de7eb3548
-| |  user:        darrasse
-| |  date:        Thu Jun 24 14:44:46 2004 +0200
-| |  summary:     Changement de priorité des alternatives. x11 est prioritaire à glx.
-| |
-o |  changeset:   177:6b4f77f9d655
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 13:50:15 2004 +0200
-| |  summary:     examples++-load now works on Cedre (Red Hat), with debug options.
-| |
-o |  changeset:   176:13a795a47cb0
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 13:50:15 2004 +0200
-| |  summary:     examples++-load now works on Cedre (Red Hat), with debug options.
-| |
-o |  changeset:   175:fe0ca2334cad
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 12:27:06 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   174:50971f3da918
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 12:27:06 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   173:e5c1f7c7ce17
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 11:52:52 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   172:1d1b041dabfc
-| |  user:        darrasse
-| |  date:        Thu Jun 24 11:48:27 2004 +0200
-| |  summary:     Ajout de plusieurs this-> pour la compilation avec g++-3.4
-| |
-o |  changeset:   171:04867a5d5213
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 10:44:31 2004 +0200
-| |  summary:     GLX version was not compiled on MacOS X. Corrected.
-| |
-o |  changeset:   170:7e35f0a71ca8
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 09:46:04 2004 +0200
-| |  summary:     examples++-load is being worked on. It still poses problems.
-| |
-o |  changeset:   169:9ac236b0dd89
-| |  user:        lehyaric
-| |  date:        Thu Jun 24 09:46:04 2004 +0200
-| |  summary:     examples++-load is being worked on. It still poses problems.
-| |
-o |  changeset:   168:579a83fef807
-| |  user:        hecht
-| |  date:        Thu Jun 24 08:09:48 2004 +0200
-| |  summary:     modif to bee  compatible with  g++ 3.4
-| |
-o |  changeset:   167:530be6b2021c
-| |  user:        darrasse
-| |  date:        Thu Jun 24 04:12:48 2004 +0200
-| |  summary:     Nouvel ajout de this-> pour la compilation avec g++-3.4
-| |
-o |  changeset:   166:91dcaa97dd82
-| |  user:        darrasse
-| |  date:        Thu Jun 24 03:37:52 2004 +0200
-| |  summary:     Ajout de quelques this-> pour la compilation avec g++ 3.4
-| |
-o |  changeset:   165:f80016364270
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:16:48 2004 +0200
-| |  summary:     Ajout d'une page man générique, obligatoire pour Debian.
-| |
-o |  changeset:   164:8861a5960357
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   163:c6f04faebb32
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   162:2eae0e0f0869
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   161:34d7f2a2a9f1
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   160:a94d47551f62
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   159:704f142ac8a6
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   158:462a19c6fd35
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   157:14490711226c
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   156:ecd8d9f031c5
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   155:39009c82f388
-| |  user:        darrasse
-| |  date:        Thu Jun 24 02:12:43 2004 +0200
-| |  summary:     Insertion du dossier debian contenant les fichiers nécessaires pour la
-| |
-o |  changeset:   154:4c9e9eaee438
-| |  user:        lehyaric
-| |  date:        Wed Jun 23 17:05:33 2004 +0200
-| |  summary:     The regression tests have been checked up to examples++-load not included
-| |
-o |  changeset:   153:cd34c9818fdd
-| |  user:        lehyaric
-| |  date:        Wed Jun 23 15:47:48 2004 +0200
-| |  summary:     Problem with AGL on MasOSX solved: it was not selected for compilation
-| |
-o |  changeset:   152:56ce98e3dd00
-| |  user:        lehyaric
-| |  date:        Wed Jun 23 14:04:06 2004 +0200
-| |  summary:     Regression tests are currently being checked.
-| |
-o |  changeset:   151:0629efd36bdf
-| |  user:        lehyaric
-| |  date:        Wed Jun 23 14:04:06 2004 +0200
-| |  summary:     Regression tests are currently being checked.
-| |
-o |  changeset:   150:d74e4f965d34
-| |  user:        lehyaric
-| |  date:        Wed Jun 23 14:04:06 2004 +0200
-| |  summary:     Regression tests are currently being checked.
-| |
-o |  changeset:   149:ef13ddf7a19d
-| |  user:        lehyaric
-| |  date:        Wed Jun 23 11:36:17 2004 +0200
-| |  summary:     Mise à jour de la configuration de UMFPACK
-| |
-o |  changeset:   148:8c35b9bd5a21
-| |  user:        lehyaric
-| |  date:        Tue Jun 22 18:44:09 2004 +0200
-| |  summary:     Bug preventing the separate compilation of src/fflib/lex.cpp corrected.
-| |
-o |  changeset:   147:b83c3d850f19
-| |  user:        lehyaric
-| |  date:        Tue Jun 22 18:25:26 2004 +0200
-| |  summary:     New 'speedtest' goal to run FreeFem++-nw on examples++-other/lap3-cpu.edp
-| |
-o |  changeset:   146:b4100d9e3db7
-| |  user:        lehyaric
-| |  date:        Tue Jun 22 17:12:59 2004 +0200
-| |  summary:     Optimization ok on PowerPC G5 (Idared)
-| |
-o |  changeset:   145:9f310e0c592f
-| |  user:        lehyaric
-| |  date:        Tue Jun 22 15:38:05 2004 +0200
-| |  summary:     Optimized version ok on cedre (Intel Xeon + gcc + Red Hat Linux)
-| |
-o |  changeset:   144:5835fb842952
-| |  user:        lehyaric
-| |  date:        Tue Jun 22 15:38:05 2004 +0200
-| |  summary:     Optimized version ok on cedre (Intel Xeon + gcc + Red Hat Linux)
-| |
-o |  changeset:   143:3228d62729ed
-| |  user:        lehyaric
-| |  date:        Tue Jun 22 15:38:05 2004 +0200
-| |  summary:     Optimized version ok on cedre (Intel Xeon + gcc + Red Hat Linux)
-| |
-o |  changeset:   142:5a7bc526e492
-| |  user:        darrasse
-| |  date:        Tue Jun 22 15:32:22 2004 +0200
-| |  summary:     correction de la détection de UMFPACK
-| |
-o |  changeset:   141:668587ef4273
-| |  user:        lehyaric
-| |  date:        Tue Jun 22 12:05:59 2004 +0200
-| |  summary:     Correction minime de l'explication de --enable-debug.
-| |
-o |  changeset:   140:76886e6c7a58
-| |  user:        lehyaric
-| |  date:        Mon Jun 21 17:06:16 2004 +0200
-| |  summary:     Optimization ok on Debian/Testing.
-| |
-o |  changeset:   139:06ec58be4aa1
-| |  user:        hecht
-| |  date:        Mon Jun 21 16:56:55 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   138:93b07446f4c5
-| |  user:        hecht
-| |  date:        Mon Jun 21 16:49:06 2004 +0200
-| |  summary:     le fichier fflib/lg.tab.hpp est dans de dir lglib et genere par bison
-| |
-o |  changeset:   137:ba2a49602ec0
-| |  user:        lehyaric
-| |  date:        Mon Jun 21 16:24:54 2004 +0200
-| |  summary:     Parallel version modified to use downloaded UMFPACK if available.
-| |
-o |  changeset:   136:7dd82d676d0d
-| |  user:        lehyaric
-| |  date:        Mon Jun 21 15:53:15 2004 +0200
-| |  summary:     Some corrections for the "generic" optimization mode.
-| |
-o |  changeset:   135:154e95f0efb4
-| |  user:        lehyaric
-| |  date:        Mon Jun 21 15:31:16 2004 +0200
-| |  summary:     Hardware-dependant optimization options currently being selected.
-| |
-o |  changeset:   134:2fc65e06c099
-| |  user:        hecht
-| |  date:        Mon Jun 21 11:08:16 2004 +0200
-| |  summary:     add example of test the optimised version
-| |
-o |  changeset:   133:41b3e409ce8d
-| |  user:        hecht
-| |  date:        Mon Jun 21 11:08:16 2004 +0200
-| |  summary:     add example of test the optimised version
-| |
-o |  changeset:   132:aa3b6d5dea5a
-| |  user:        hecht
-| |  date:        Mon Jun 21 11:08:16 2004 +0200
-| |  summary:     add example of test the optimised version
-| |
-o |  changeset:   131:ee15f9879bb0
-| |  user:        lehyaric
-| |  date:        Sun Jun 20 19:58:38 2004 +0200
-| |  summary:     Optimiztion for Pentium III added.
-| |
-o |  changeset:   130:07ffea2fef49
-| |  user:        lehyaric
-| |  date:        Sun Jun 20 19:30:28 2004 +0200
-| |  summary:     Configuration of compiler optimization flags still being developed.
-| |
-o |  changeset:   129:5e6217c43c12
-| |  user:        lehyaric
-| |  date:        Sun Jun 20 13:26:50 2004 +0200
-| |  summary:     acmacros.m4 and acoptim.m4 will centralize all the necessary treatments
-| |
-o |  changeset:   128:49ecc5ec76f1
-| |  user:        hecht
-| |  date:        Sat Jun 19 14:23:20 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   127:27909cc2efe4
-| |  user:        hecht
-| |  date:        Fri Jun 18 17:50:43 2004 +0200
-| |  summary:     add modif compilation avec gcc 3.4
-| |
-o |  changeset:   126:eb38cdcad258
-| |  user:        lehyaric
-| |  date:        Fri Jun 18 10:31:16 2004 +0200
-| |  summary:     Documentation proofreading ok up to §3.6 included
-| |
-o |  changeset:   125:eebea7c8bada
-| |  user:        lehyaric
-| |  date:        Thu Jun 17 14:34:49 2004 +0200
-| |  summary:     - Documentation proofreading ok up to §3.6 included
-| |
-o |  changeset:   124:de5ab079f924
-| |  user:        lehyaric
-| |  date:        Wed Jun 16 14:47:48 2004 +0200
-| |  summary:     - Removing emacs backup files
-| |
-o |  changeset:   123:f8b658a60f71
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:36:50 2004 +0200
-| |  summary:     add projet codewarrior dans la base CVS en mode Binaire
-| |
-o |  changeset:   122:4365bece55ed
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:35:38 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   121:b1c8e1f1fbfa
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:32:24 2004 +0200
-| |  summary:     correction of string argument in macro processing
-| |
-o |  changeset:   120:e8a577e435c5
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:32:24 2004 +0200
-| |  summary:     correction of string argument in macro processing
-| |
-o |  changeset:   119:2b3e676ae747
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:32:24 2004 +0200
-| |  summary:     correction of string argument in macro processing
-| |
-o |  changeset:   118:3c790a15669c
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:32:24 2004 +0200
-| |  summary:     correction of string argument in macro processing
-| |
-o |  changeset:   117:4223b571b7a2
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:32:24 2004 +0200
-| |  summary:     correction of string argument in macro processing
-| |
-o |  changeset:   116:6d4f0efd7290
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:32:24 2004 +0200
-| |  summary:     correction of string argument in macro processing
-| |
-o |  changeset:   115:8830c3e6a420
-| |  user:        hecht
-| |  date:        Wed Jun 16 14:25:41 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   114:15154662ef97
-| |  user:        lehyaric
-| |  date:        Tue Jun 15 12:08:37 2004 +0200
-| |  summary:     Proofreading ok up to §2.3 included.
-| |
-o |  changeset:   113:f3859d20ff80
-| |  user:        lehyaric
-| |  date:        Thu Jun 10 10:16:17 2004 +0200
-| |  summary:     - Relecture Anglais documentation: chapitre I ok.
-| |
-o |  changeset:   112:5dfaf78878eb
-| |  user:        lehyaric
-| |  date:        Thu Jun 10 10:16:17 2004 +0200
-| |  summary:     - Relecture Anglais documentation: chapitre I ok.
-| |
-o |  changeset:   111:d602db40f9df
-| |  user:        lehyaric
-| |  date:        Thu Jun 10 10:16:17 2004 +0200
-| |  summary:     - Relecture Anglais documentation: chapitre I ok.
-| |
-o |  changeset:   110:85d80f2e6265
-| |  user:        lehyaric
-| |  date:        Wed Jun 09 10:09:10 2004 +0200
-| |  summary:     More help on CVS and automake.
-| |
-o |  changeset:   109:66de63c37bce
-| |  user:        lehyaric
-| |  date:        Tue Jun 08 16:10:19 2004 +0200
-| |  summary:     Relecture anglais doc arrivé au § 1.3
-| |
-o |  changeset:   108:93fa37e6dc7e
-| |  user:        lehyaric
-| |  date:        Mon Jun 07 16:34:17 2004 +0200
-| |  summary:     Première relecture des fichiers README et associés.
-| |
-o |  changeset:   107:828ba65d9130
-| |  user:        lehyaric
-| |  date:        Mon Jun 07 16:34:17 2004 +0200
-| |  summary:     Première relecture des fichiers README et associés.
-| |
-o |  changeset:   106:d76a5467a2c6
-| |  user:        lehyaric
-| |  date:        Mon Jun 07 16:34:17 2004 +0200
-| |  summary:     Première relecture des fichiers README et associés.
-| |
-o |  changeset:   105:b58a786980f6
-| |  user:        lehyaric
-| |  date:        Mon Jun 07 16:34:17 2004 +0200
-| |  summary:     Première relecture des fichiers README et associés.
-| |
-o |  changeset:   104:83b96ae3f863
-| |  user:        lehyaric
-| |  date:        Mon Jun 07 16:34:17 2004 +0200
-| |  summary:     Première relecture des fichiers README et associés.
-| |
-o |  changeset:   103:23de4ddd9d39
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   102:99d43ca61439
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   101:ab16a232f526
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   100:c59fb66f9425
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   99:0bfd80be1c8c
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   98:a12e2d2e0631
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   97:3874c0fba853
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   96:502d1784ed2e
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   95:4dcb9aa0c74e
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   94:37cfd09bf134
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   93:e648a1bfdd58
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   92:dae695622eac
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   91:27cd79875601
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   90:c8bda48c4105
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   89:eb18bcf09a34
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   88:a820a6c27662
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   87:2658627dd95d
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   86:2eb5adcc8f3b
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   85:5c4c5a9817fa
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   84:d7c50a038a79
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   83:e0934bf79429
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   82:60ee4abf02ca
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   81:2bfb83f8a44d
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   80:1b42fd3b13ff
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   79:dfbcaf6116ec
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   78:c990f2f011b2
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   77:2522953f44a9
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   76:d6250e981cf3
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   75:b1d17073cf16
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   74:d524e9ab1f96
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   73:c34a8b43dbb8
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   72:266eeb6a5ad6
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   71:3039d27ef299
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   70:425fc26308ae
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   69:958cf52ec0ae
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   68:7f82309eca0d
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   67:5056a0adbdc9
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   66:db1bcf6b5777
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   65:bb600795df63
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   64:f81592709735
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:25 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   63:2a6417d3e573
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   62:f25428415d3c
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   61:49f2a29fb46e
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   60:c69b6f268006
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   59:9e03261e3434
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   58:1ec7cc14da21
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   57:19c0a9c331c9
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   56:13019879f42e
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   55:c9fab124321e
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   54:a0ae934447f2
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   53:2c37fdc607e9
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   52:fbd4411abda7
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   51:0f97c8037b88
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   50:104bb1f450ad
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   49:23d20c1baebb
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   48:62334abc40ee
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   47:d8836d2bd9f6
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   46:c42f18e39eb4
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   45:5343bcf3d526
-| |  user:        lehyaric
-| |  date:        Fri Jun 04 16:06:24 2004 +0200
-| |  summary:     Les modifications faites dans la branche "alh-autoconf" sont réintégrées
-| |
-o |  changeset:   44:3572cd801d80
-| |  user:        hecht
-| |  date:        Fri Jun 04 15:22:02 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   43:7baa4c3c41ef
-| |  user:        hecht
-| |  date:        Fri Jun 04 15:22:02 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   42:68e784364499
-| |  user:        hecht
-| |  date:        Wed May 26 22:22:36 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   41:db5375fde77a
-| |  user:        hecht
-| |  date:        Wed May 26 22:00:26 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   40:399fdf624955
-| |  user:        hecht
-| |  date:        Wed May 26 21:58:43 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   39:00b51a05f198
-| |  user:        lehyaric
-| |  date:        Wed May 26 11:10:01 2004 +0200
-| |  summary:     manual.tex est réinitialisé à sa version 1.6, car les modifications
-| |
-o |  changeset:   38:4f307cbfc41a
-| |  user:        hecht
-| |  date:        Tue May 25 13:51:07 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   37:9c04976869b2
-| |  user:        ly
-| |  date:        Tue May 25 12:31:17 2004 +0200
-| |  summary:     Chaque exemple a ete reecrit dans un fichier tex separe, et inclus dans le
-| |
-o |  changeset:   36:00d12a962282
-| |  user:        ly
-| |  date:        Tue May 25 12:31:17 2004 +0200
-| |  summary:     Chaque exemple a ete reecrit dans un fichier tex separe, et inclus dans le
-| |
-o |  changeset:   35:e67f5d108cb8
-| |  user:        ly
-| |  date:        Tue May 25 12:31:17 2004 +0200
-| |  summary:     Chaque exemple a ete reecrit dans un fichier tex separe, et inclus dans le
-| |
-o |  changeset:   34:fcaf81e18093
-| |  user:        ly
-| |  date:        Tue May 25 12:31:17 2004 +0200
-| |  summary:     Chaque exemple a ete reecrit dans un fichier tex separe, et inclus dans le
-| |
-o |  changeset:   33:6e952764275e
-| |  user:        ly
-| |  date:        Tue May 25 12:31:17 2004 +0200
-| |  summary:     Chaque exemple a ete reecrit dans un fichier tex separe, et inclus dans le
-| |
-o |  changeset:   32:7d38e62303a8
-| |  user:        lehyaric
-| |  date:        Fri May 14 15:46:33 2004 +0200
-| |  summary:     Début de la relecture de l'anglais de la doc.
-| |
-o |  changeset:   31:25279b0696ab
-| |  user:        lehyaric
-| |  date:        Fri May 14 10:58:43 2004 +0200
-| |  summary:     manual.pdf and manual.ps.gz are automaticalle regenerated, so they should
-| |
-o |  changeset:   30:86ccde355d34
-| |  user:        lehyaric
-| |  date:        Fri May 14 10:43:34 2004 +0200
-| |  summary:     Récupération des Makefiles (depuis l'archive de la version 1.40) qui
-| |
-o |  changeset:   29:63564e1a54d8
-| |  user:        lehyaric
-| |  date:        Thu May 13 14:07:13 2004 +0200
-| |  summary:     Séparation d'une branche spéciale pour les essais de autoconf.
-| |
-o |  changeset:   28:0e192a3be805
-| |  user:        lehyaric
-| |  date:        Thu May 13 14:00:37 2004 +0200
-| |  summary:     Intégration de Autoconf et Automake dans la procédure de build en cours.
-| |
-o |  changeset:   27:33eb5379f1b1
-| |  user:        lehyaric
-| |  date:        Thu May 13 09:54:49 2004 +0200
-| |  summary:     Ajout progressif de tous les fichiers à ignorer.
-| |
-o |  changeset:   26:c5f6979dfddd
-| |  user:        hecht
-| |  date:        Wed May 12 21:32:42 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   25:4bf5a81958af
-| |  user:        lehyaric
-| |  date:        Wed May 12 14:34:39 2004 +0200
-| |  summary:     Fichier regénéré à la compilation
-| |
-o |  changeset:   24:343d50721685
-| |  user:        ly
-| |  date:        Wed May 12 13:21:45 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   23:86eda52226a7
-| |  user:        ly
-| |  date:        Wed May 12 13:21:44 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   22:4aa14c3200dc
-| |  user:        hecht
-| |  date:        Wed May 12 12:10:56 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   21:52c723e3b5d2
-| |  user:        hecht
-| |  date:        Wed May 12 12:10:56 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   20:df833d6233c6
-| |  user:        hecht
-| |  date:        Wed May 12 12:10:56 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   19:a4fb91c7bf52
-| |  user:        hecht
-| |  date:        Wed May 12 12:06:10 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   18:67575fb8c75b
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   17:416a46105dbb
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   16:857518acb793
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   15:ab21c2321e56
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   14:861633b13870
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   13:e92228f45751
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   12:e311b6dcae4a
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   11:7485d6e98966
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   10:c54fd00d722d
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   9:aed0c05275f3
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   8:e322689b6e92
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:31 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   7:ef03e67b3e10
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:30 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   6:d46f9d0308fb
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:30 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   5:cf149a2e8fec
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:30 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   4:f449141657dd
-| |  user:        hecht
-| |  date:        Wed May 12 11:35:30 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   3:f22e3359ec26
-| |  user:        ly
-| |  date:        Tue May 11 17:37:36 2004 +0200
-| |  summary:     *** empty log message ***
-| |
-o |  changeset:   2:fa41e8fddceb
-| |  user:        lehyaric
-| |  date:        Mon Apr 26 12:08:47 2004 +0200
-| |  summary:     Mise à jour de la documentation enregistrée dans CVS à partir de la
-| |
-o |  changeset:   1:1fcb4737d85b
-|/   user:        lehyaric
-|    date:        Mon Apr 26 12:08:46 2004 +0200
-|    summary:     Mise à jour de la documentation enregistrée dans CVS à partir de la
-|
-o  changeset:   0:6d28b8993874
-   tag:         FREEFEM_1_38
-   user:        lehyaric
-   date:        Mon Apr 26 11:58:47 2004 +0200
-   summary:     Initial revision
-
diff --git a/INNOVATION.orig b/INNOVATION.orig
deleted file mode 100644
index 54d8848..0000000
--- a/INNOVATION.orig
+++ /dev/null
@@ -1,1217 +0,0 @@
-<<<<<<< HEAD
-version 3.34-1 
- - correct lot of mistake for simple compilation of 
-    hpddm interface ..
- - add no mandatory lib for petsc 
-      write the WHERE-LIBRARY search lib in awk (more simple ) 
- version 3.24
- - configure : 6/02/ 2015
-    correct mpi for  sgi uv computer
-    find gsl lib 
-    add find petsc (in progress) 
-    add missing file in distrubuteion
- -  correct for compilation with g++-4.9.1 -std=c++11 ( without downlaod)
- - add hd5 interface  (13/01/2015) 
-    Thank to Mathieu Cloirec CINES - http://www.cines.fr
-   voir example iohd5-beam-2d.edp	    iohd5-beam-3d.edp
- - add find of libgsl  in configure script 
- - correct pb of memory leak in case 
-   matrix A = ...; in loop ( this occur in lot of case, tanks to P. Jolivet )
-   correct small memory leak in use of routine due to debugstack. 
- - correct bug in periodic condition in case common dof with periodic.  
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
- - correct big bug in memory gestion of sparse matrix
- version 3.32 
- - correct of problem of plugin and mpi,
-    build all dynamics lib with and without mpi, 
-    the mpi version is install  dir lib/mpi 
- - correct of plugin MUMPS.cpp for complex value. 
- - add vectorial operator a/v  and v/a where a est scalar and v vector like real[int], ...   
- version 3.31-3 (rev 3053:4e164226411d 12 Aug 2014) 
- - correct the problem of size of arrow in 2d plot 
-  version  3.31-2 (rev 3052, 11 july 2014) 
- - correct stop test function in LinearGC (for zuqi.tang at inria.fr)
-  build tar.gz distribution (rev 3050) 
-  build version MacOs 3.31-1
- - correct bug put in DG formulation (rev 3044)
-   jump, mean , was wrong from Sun Jun 29 22:39:20 2014 +0200 rev 3028
-  version  3.31-1 (rev 3042, 10 july 2014) 
- - function to put your stop test in LinearGC and NLGC
-   the prototype is 
-    func  bool stop(int iter,real[int] u,real[int] g)	;
-    	  {    return g.linfty < 1e-5 || iter > 15;}
-    LinearCG(DJ,u,eps=1.e-15,nbiter=20,precon=matId,verbosity=50,stop=stop);
-    
-
- - add functionnal  interface  to arpack (Eingen Value) 
-
-    func real[int] FA(real[int] & u) { real[int] Au=A^-1*u;return Au;}
-    func real[int] FB(real[int] & u) { real[int] Au=B*u;return Au;}
-    int k=EigenValue(n,FA,FB,sym=true,sigma=sigma,value=ev,vector=eV,tol=1e-10,maxit=0,ncv=0);
-
-  see examples++-eigen/LapEigenValueFunc.edp for a true example
-
-
-version 3.31  (rev 3037, 1 july 2014)
- - re-add tan function for complex number  
- - correct a big mistake in LinearGMRES , the resulat are complity wrong,
-   correct also the algo.edp
- -  add sqr functon of O. Pironneau
- - correct update of mercurial depot (rev 3034, 1 july 2014)
- - correct misstake  in examples++-3d/MeshSurface.idp 
-   about   computation metric in function build surface  Sphere mesh
-   and add a function to build Ellipsoide surface mesh 
-  func mesh3 Ellipsoide (real RX,real RY, real RZ,real h,int L,int orientation)
- - correct a bug the DG with periodic boundary condition with only one 
-   layer of element.  
- - add pluging "bfstream" to write and read in binary file (long, double, complex<double> and array)
-   see bfstream.edp for an example. 
-version 3.30-1 may/2014 ( hg rev: 3017)
- - add levelset integral on 3d case ( on levelset and under level set) 
- - correct problem with Ipopt / lapack configure ...
- - add BEC plugin of Bose-Enstein Optimisation
- - standardisation movemesh3 -> movemesh ( same parameter of 2d version )	
- - correct jump in basic integrale to be compatible with varf definition
-    jump is not zero on boundary, it is - boundary value ..
-    fespace Ph(Th,P0);u= 1;int1d(Th)( jump(u) ) = - length border . 
- 
-version 3.30. ( for windows hg  rev : 3013)
- - add binary ios:mode constant, to open file in binary mode under window
-    to solve pb of seekg under windows  
- - add multy border april 23 2014 , (hg rev : 3004)
-    syntaxe example:  
-  // i is the index of the the multy index 
-  // the number of sub border is given by teh size if the array to set the number of seg on the border ..
-  // so for multy border the  number of seg of the border , must be  in int[int] array 
-  real[int] RC=[ 0.1, 0.05, 0.05, 0.1],
-            XC= [0.2,0.8,0.2,0.8],
-            YC= [0.2,0.8,0.8,0.2];
-  int[int]  NC=[-10,-11,-12,13]; 
-
-  border bb(t=0,1;i) 
-  {
-  //  cout << " i = " << i << endl; 
-    int ii = (i+1)%4; real t1 = 1-t;
-    x = xx[i]*t1 + xx[ii]*t;
-    y =  yy[i]*t1 + yy[ii]*t;
-    label = 0; ; 
-  }
-  border cc(t=0,2*pi;i) 
-{
-	x = RC[i]*cos(t)+XC[i];
-	y = RC[i]*sin(t)+YC[i];
-	label = i+1; 
-}
-  int[int] nn=[4,4,5,7];
-  plot(bb(nn),cc(NC),wait=1);
-  mesh th= buildmesh(bb(nn)+cc(NC)) ; 
-  plot(th,wait=1); 
-  
- - add ltime() (rev 2982)  function returns the value of time in seconds 
-       since 0 hours, 0 minutes, 0 seconds, January 1, 1970, (int) 
- - add new macro tool  like in C  (rev 2980)
-    FILE,LINE,Stringification() to get line number and edp filename,
-    add quote to a parameter after macro generation … 
-    Like in 
-    cout << "in " << FILE << " line " << LINE << "    -- '" 
-         << Stringification( "zzz" aa  () {} +  /* */  bb cc) << "'" << endl;
-  add new int2d on levelset  in 3d  (int test)
-  add basic  func mesh3 Cube(int nx,int ny,int nz) in cube.idp file.
-version 3.29  (hg rev 2973)
-  - add int storagetotal(); and int storageused(); function 
-     to get static of malloc ( memory storage usage)
-   
-  - correct problem of region evalution in jump and mean function 
-version 3.28  ( merge with freefem++-cs tool)
-  - add download/getall perl script to download all related soft
-  - add  int1d on isoline for matrix ...
-  
-version 3.27 
- - correct bug in display of P1b finite element in 3d 
-   error in SplitMesh<R3>  function  (Thank to O. Pironneau) 
- - add  AddLayers(Th,suppi[],sizeoverlaps,unssd[]);
- - add  tool to trunc to get element numbering for Thn to Tho 
-    int[int] In2o(1),Io2n(1); 
-    Tho =  trunc(Tho, x<0, new2old=In2o, old2new=Io2n);
- - add restrict function for get dof numbering old to new
-    fespace Vnh(Thn,Pk), Voh(Tho,Pk);
-    int[int] n2o=restrict(Vnh,Voh,n2ok);     
- - correct mistake in gsl interface random number (9/1/14)
-     missing all random  distribution ..
- - add interface  with gsl random number generation in test .. 
- - correct pb of compilation under window (mingw32/msys) 
-6/1/14 (ALH)
- - Creating documentation hyperlinks (in emacs orgtime and in Doxygen format)
- - New script build/orgindex and file index.org list all hyperlinks in the FF source in Emacs org-mode format
- - Set all hyperlinks to relative paths to make sure that they work from any location
- - Separate download script for all third-party software [[file:download/getall]] (request from FH)
- - created common makefile goals in [[file:download/common.mak]] for all downloaded packages (request from FH)
-   - changed [[file:download/arpack/Makefile.am]] to make use of [[file:download/common.mak]]
-   - done for [[file:download/blas/Makefile.am]] as well
- - added option --enable-mkl-mlt in [[file:configure.ac::enable_mkl_mlt]] to allow FF to be linked with the
-   multithreaded MKL when an external library requires it (request from Atsushi Suzuki)
-version 3.26-3  09/12/2013 
-   correct problem with openblas need pthread lib 
-01/12/13
-    install dowload lib 
-    update lapack interface in examples.
-    add WHERE_LIBRARY-file in install 
-    change the order of seach lib with   WHERE_LIBRARY-download 
-       WHERE_LIBRARY-config        WHERE_LIBRARY
-    remove all relative in WHERE_LIBRARY-config
-    correct of superlu compile problem
-13/11/203  Pass to version 3.26 ...
-  - correct pb of ambiguity with new complex lib 
-31/10/2013  compilation on MacOS 10.9 with compile of xcode 5.0.1 
-  - correct the pipe.cpp to compile with clang-500.2.79 
-  - remove of warning message genrate by clang++ -std=c++11 (version clang-500.2.79)
-  - correct also compilation problem 
-  - correct error in case of block matrix with block of 0 row or 0 column. 
-21/10/2013 (ALH)
- - umfpack configuration cleanup (request from Fred)
- - blas configuration cleanup (request from Cico)
-   - configuration option --enable-generic-blas has no effect anymore, removed
-   - Atlas compilation directives have no effect anymore, removed
-   - Moved OpenBLAS compilation from FFCS source tree to FF source tree
- - Added configure option --disable-system-fftw to skip any default FFTW library installed on the system
- - Changed location of lapack WHERE-library setup in [[file:configure.ac::WHERE_lapack]] to insure that it is always
-   defined (request from Fred)
- - changed FFCS Fortran MPI configuration for MPICH2
- - split DOC makefiles into Makefile.am and figs.mak to suppress automake warnings about portability
- - moved build/download script from FFCS to FF before reorganizing FF downloads (request from FH)
-10/9/2013 (ALH)
- - Corrected pastix compilation for FFCS on MacOS 10.6
- - Removed dependency from lg.ypp to lg.tab.?pp in [[file:src/lglib/Makefile.am::lg.tab.?pp]] to avoid automatically
-   generated conflicts
-05/09/2013 put version .tar.gz on the web 
-  - correct makefile wget in pastis and superludist  
-  - correct compile of load example :  paradiso, gsl automaticaly 
- - add AutoGeneratedFile.tar.gz  a file contening all 
-    file build by autoreconf in case of non automake tools (1.13)
- - add missing file in dist or in mercurial distribution
- - correct download of scotch un curl 
- - correct problem in a*[b,c, ... ]' in case of complex value   
-5/9/2013 (ALH)
- - force Umfpack build to run sequentially (parallel make crashes with "pipe from processes is a directory"?)
- - pARMS download URL changed to http://www-users.cs.umn.edu/~saad/software/pARMS/pARMS_2.2.php (thanks Fred)
- - corrected download/mumps parallel compilation (WHERE was not built properly)
- - Removed all Mercurial-tracked files from .hgignore
- - added options --with-[package]-include= and --with-[package]-ldflags= to avoid downloading existing packages
- - Parallelized MUMPS compilation in download/mumps (and mumps-seq)
- - Applied a patch from Fred for compiling SuiteSparse on Slackware64-14.0
- - Added configuration option --enable-hypre (disabled by default, contrary to other tools)
- - Deactivate FFTW download when a local version is found (request from Helmut Jarausch)
-10/7/2013  (version 3.25)
- - remove of Makefile.in configure for the hg distrubion 
-    use :  autoreconf -i  # too build Makefile.in 
-         before to configure 
-         need automake version 1.13 ... 
- - merge FFCS (ALH) version and  ff++ version (FH) of freefem++ programs
- - remove all automake file form the hg data base
- 
- - add new parameter to ffglut for demo of freefem++ 
-    ffglut  [-nv|-v|-vv|-vvv] [-wait 0.5] [-g 512x300+10+10] [-t title] [file]
-    all number can be change the wait is in second 0 is default value nowait bewteew plot
-    -g 512x300+10+10 is the geometry of the  graphic window
-    -t the title of the windows 
-26/6/2013 (ALH)
- - created a build/ subdirectory for build tools
- - enabled parallel make ("make -j")
- - created a separate file (acmpi.m4) for complex MPI configuration options
- - added configuration option --enable-ffcs to make the FF source compatible with FFCS
- - backported all current FreeFem++ patches for FreeFem++-cs into the FreeFem++
- - started main doxygen page mainpage.dox
-9/06/2013
- - correct extract function of mesh Lo Sala <salalo80 at gmail.com>
- - correct int2d on levelset  see example intlevelset.edp 
- - correct automake TESTING part (in progress) 
- - correct typo on the doc with .*= ./=  operator
- - correct bug in RT0 3d , code in the construction of the DOF.
-   the bug is all dof on border  face of same elemnt have same dof number.
-   thank to Laurent Bernard <laurent.bernard at lgep.supelec.fr> 
-version 3.23
- - do cleanning in version remove x11, glx, std : freefem++
-   clean compile option for clang and clang++ compiler 
-
- - add flags to remove internal boundary in 2d,3d in function change 
-     rmInternalEdges=1
- - correct glumesh in case of no mesh in 2d
-version 3.22
- - add multi windows graphics ; WindowIndex=0 in plot function
-   add new event in graphic windows 
-     * to set/unset  default graphics stat to previoux plot 
- - add getenv, setenv , unsetenv function in shell plugins for gestion of environnemnt variable for 
-   openmp. 
- - correct pb un trunc for 3d mesh with too flat element (sliver) , and cleanning code .
- - correct bug in gestion off outsite flag is 3d in case of bute force (searchMethod>0) 
-version 3.21-1 
- - correct bug  a=b' ; of full matrix 
- - bug in assert on 3d mesh of huge dimension with periodic condition.
- - correct build Delaunay 3d mesh of set of point. 
-   see examples++-load/convexehull3d.edp
-version 3.21 frev 2013
- - n, resize in array of finite element function ... 
-     see edp  array.edp file 
- - correct pb of compilation of Ipopt with clang++ -std=c++11
- - correct une NSCahouetChabart.epd examples , and correct un doc. 
-    this is a complete rewritting. FH. 12/02/2013.
- - correct in change function the "flabel=" parameter in 2d and 3d 
-version 3.20-3
-  - add master= in solver of MUMPS interface to set the master mpirank 
-        <0 => distributed matrix. 
-  - correct problem in label generation in freeyams (18/01/2013)
-     all label border was set on 1  before. 
-version 3.20-2
-  - add MUMPS parallel version (in test)
-  - add paradiso seq solver ..
-version 3.20
- - correct isoline plug in case of sadlle point
- - change the compilation tools under windows gcc 4/7 + freeglut / ...)
- - change the compile tools on mac pass to clang++
- - compile ok of c++11  compiler
- - add formal tools on array [] or matrix [[],[],]  for elasitic problem. 
-   let A a formal array 
-   if A is matrix 2x2 or 3x3 : trace(A) , det(A) ,    Cofactor(A) ; 
-    A:A  = sum_ij A_ij * A_ij 
-    2*A,   A*2 // muliplication by a scalar 
-
- -add integration on levelset line (in test) 
- 
-version 3.19-2
- - correct pb of C in/output in pluging (in test) 
- - correct bugs  mshmet pluging in case of double eigen value in eigen
- - correct typo poblem (string size) when a change the default
-    window size in postscrip in version 3.19-1 to have more 
-    precise postscript plot
-version 3.19-1
- - add tool to create Quadrature formlar 1d,2d,3d with 
-   plugind: load "qf11to25"
-   real[int,int] tab1(np,2),tab2(np,3),tab3(np,4);
-   QF1 qfe1(norder,tab1);// 1d
-   QF2 qfe1(norder,tab2);// 2D
-   QF3 qfe1(norder,tab3);// 3D
-   where tab(0,i) = weigth , tab(j,i) =  j coord, norder  order of the
-     quadrature 
-   see examples++-load/LaplaceP4.edp for example 
- - correct download auto compile of
-    mmg3d, mshmet, scotch, ...
-version 3.19 (20 april 2012) 
- - scotch partionner interface see scotch.edp in examples++-load
- - add isNaN(x),  isInf(x), IsNormal(x)  function to check floating point
-      of real value x, see ISO C99. 
- - add function : NaN() and  NaN("") to build NaN real number (double in C) . 
- - correct error in macro with operator ./=  and .*= 
- - add Ipopt doc (thanks to Sylvain  Auliac)
- - add Ipopt interface (thanks to Sylvain  Auliac)
- - correct 3d trunc bug in case of internal boundary
-      thank to Yoshihiro Tomita <tomita.yoshihiro at gmail.com>. 
-  - add new type of array , array of array
-    see taboftab:edp in  examples++-tuturial
-    real[int] a;  
-    real[int,int][int] m(10);
-    real[int][int] v(10);
-   not well tested.
-version 3.18-2
- - add plugins with sequentiel  mumps without mpi 
- - add conversion of re and im part of complex sparse matrix
-   A = C.im; 
-   A = C.re; 
-version 3.18-1
- - correct Typo error in example 
- - add generation of error in case of periodic boundary condition 
-   non scalar problem. 
- - add tools for adaptation of P2 and P3 finite elements with metrics
-   see APk-AdaptEpsDeltaPk.edp APk-FreeFemQA.edp	 APk-MetricPk.edp
-    APk-ExplicitPkTest.edp	       APk-LaplaceDirac.edp
-
- - New example in in Chapter 3 Navier Stokes Newton NSNewton.edp
- - add cod to build matrix and vector form varf in 3d in case of
-      different meshes (in test )
- - correct NSprojection.edp chap3 example (PB in out flow BC.) 
- - correct compile of mmg3d v4 plugins (small change un distrib archive) 
-v 3.18 (11/01/2012)
- - rewrite the isoline-P1 plugins (new name isoline.{dll,so,dylib} )
-     see example Leman-mesh.edp and isoline.edp in 
-     examples++-load directory 
- - correct bug in cas of resize of array with 2 index (full matrix)
- - correct assert in MPI  in gather and scatter
- - correct bug in case of return  in loop for or while. 
- - correct a=int2d(Th,l)(1) in case simple expression  when l is a  array.
- - build a pkg under macos for distribution .
-v 3.17  (17/11/2011) 
- - correct PB of pugins: MUMPS, parmetis, metis, mmg34, mshmet 
- - the new load interface  (for more safe IO)
- - build mpi for windows with msmpi ( begin) 
-    memory error after end .. 
- - remove add by default $LIB_MPI in ff-c++ 
- - change the way add thing in freefem++ in case of  dynamics load 
-   to be  compatible   plugin with freefem++cs  ( solve pb with
-     cin,cout, cerr in  dll may be..).
-   LOADINIT(Init); // where init is a class 
-or do 
-   addingInitFunct FFinit(100,ffinit,"MUMPS_FreeFem"); // where ffinit the init function ...
-v 3.16-1
- - cmaes interface in scalar and MPI case  (thank to S. Auliac)
-    see doc and examples : cmaes-mpi-VarIneq.edp , cmaes--VarIneq.edp
- - add NLopt interface (thank to S. Auliac)
-v 3.16 
-  technical stuff: 
-  - correct auto load of mumps
-  - add tool to do automatic load or static load (for testing)
-    see MUMPS_*cpp example 
-v 3.15 
-  - correct all examples++  load and 3d rebuilde the all.edp 
-    and test this examples. 
-  - correct version old bug when full matrix (arry)
-    A=A;' is now correct (set and  initialization )
-    and add  A+=A';    A-=A';
-
-  - reput metis 4.0 form netlib ... (pb of compatibilite with other // soft hips)
-v 3.14-1
-  -   change interface with metis 5.0.1 
-  -   Complete writing of mmg3d interface with version 4 of mmg3d
-      le plugin is "mmg3d-v4.0", the parametre are the same have 
-      command line mmg3d , execpt the file name are not given. 
-  -   remove old bug 3D in interpolation P1 operator 
-      correct bug 29/08/2011 (thanks to rychet at fzu.cz)
-      remove wrong bulid of KHat (memory out of bound)
-
-v 3.14 
-  - correct in configure remove the default -O2 -g autoconf value 
-    and add -g in case of --enable-debug 
-  - a very old error in the on() functionnal
-    the bug is with  a vectorial finite element like RT0, .. 
-     the name of vectorial must     be in lexicographic order 
-     so   u1,u2  is ok but v,u is wrong
-    is correct in version 3.14 the 24/08/2011
-
-  - correct trap in check convect-apt.edp  example
-  - add the existance of patch in configure 
-v 3.13-3 ( 30 june 2011 Seville)
-  - correct the Hips interface (not to bad , in test)
-     load "hips_FreeFem"
-     int[int] iparm(1);real[int] dparm(1);
-     HipsDefaults(iparm,dparm);) // set def option 
-     ( limit to 100 Hips active linear system ).
-  - add interface with MUMPS_4.10.0 version  (with automatic download )
-  - add P1dc3d finite element in pluging  "Element_P1dc1" 
-  - correct bug in gibbs renumbering in 1 case veru sample mesh)
-  - correct bug in interpolation operator with periodic BC
-    mesh Th1=square(2,1), Th2=square(2,2);
-    fespace Vh2(Th2, P1),Ph2(Th&,P1,periodic=[[1,x],[3,x]]);//  une couche
-    matrix Jh=interpolate(Vh2,Ph2,op=0,inside=0);
-    Ph2 w=1.;Vh2 wi; wi[]= Jh*w; // wi must be 1, now this ok. 
-v 3.13-1
-   - correct compilation problem on fedora 13 WITH MPI
-v 3.13 (25 may 2011)   
-   - update the finite element list in  documention 
-   - add (load "Element-Mixte")  NEW FINITE ELEMENT 2D
-         TDNSS1    sym matrix 2x2 conforme in $\{H(div div) / div(div s)) \in H^{-1} \}$
-         RT1 and BDM1  conforme in H(div) Raviert Thomas of Degre 1 and Bezzi, Douglas, Marini 
-         RT1 and BDM1ortho   conforme in H(curl) 2 Nedelec Finite Elemeny
-v 3.12-3 
-   - new finite element in 2d for elasticity in test. TD-NSS0 (see these of Astrid Sabine Sinwel)
-      A New Family of Mixed Finite Elements for Elasticity
-   
-   - add matrice matric multy in lapck interface 
-   - add tool to change the region and label number 
-       change(Th,fregion= integer function to set the region number )
-   - nuTriangle now given the tet number in 3D.  
-   - add mpireduce of matrix to build parallele matrix
-v 3.12-1 april/2011 
-      see remove examples++-mpi/chaleur3D-superludist.edp
-   - correct the precond of gmres algo in A^-1 : (29 mars 2011) to build a correct Navier-Stokes 
-   - add cast TypeOfSolver  on int to parametrize the choise of linear solver.
-   - correct intersection of given metrix in adaptmesh (bug introduc in 07/10 verion 3.9 
-     in case of convect-apt  example  
-v 3.12-1 10 10 fevr 2011 
-    - add VTK write for paraview, examples++-load/VTK_writer.cpp		examples++-load/VTK_writer_3d.cpp (see source for moe details) 
-    - put comment in the documentation about negative tgv 
-    - correct pb blacs mkl  (unde with mumps) 
-    - correct mpiReduce for complex and real data.  
-    - add mpiAllReduce(umax,dmaxg,comm,mpiMAX);  where for real umax,dmaxg;
-    - add tag verson 3.12-win32 
-    - add inferface for mpi in win32 architecture (form 32 version)
-v 3.12    17 jan 2011
-    - correct probleme of comm world on SuperLuDist (complex version)
-    - correct medit Makefile.am in case of no compilation of medit ..
-    - correct a lot of MPI parallel solver example 
-        a bug pastix interface ???
-	MUMPS, superludist, hypre , hips works 
-    - correct link proble in hips and hypre under linux
-    - Add thresholdings.cpp	thresholdings.edp in examples++-load to remove to small coef
-       in a matrix . 
-    - Add lots of DDM Schwarz GMRES precondionned with a coarse grid solver por overlapping : 
-      DDM-Schwarz-Lame-2d.edp		DDM-Schwarz-Lap-2dd.edp		DDM-Schwarz-Stokes-2d.edp	
-      DDM-funcs-v2.idp DDM-Schwarz-Lame-3d.edp  			DDM-Schwarz-Lap-3d.edp			
-      DDM-Schwarz-macro.idp
-      I will add the explanation in the doc in the future; 
-      
-
-    - Add a true exemple to buld mesh form a image (lg.pgm) ,  Leman-mesh.edp 
-    - Add New syntaxe in macro generation
-        NewMacro a(i) 
-        EndMacro 
-       with // comment and macro definition, first trik
-     - Add interface with special function  og gls  http://www.gnu.org/software/gsl/
-        the full list is in the example examples++-loal/gsl.edp  
-     
-v 3.11-1     25 dec 2010
-     - Add coarse preconditioner in MPIGMRES[23]d.edp (to be optimal)
-       now the number of iteration is close to 10.  
-     - Show ff++ line number in case of  assertion  in RNM class. 
-     - add Coarse Preconditionner for  MPIGMRES[23]d.edp (Good)
-     - solve bug For MPIGMRES2D.edp  due to interpolation bug in rare case
-       by Add brute force for seach of point in 2d like in 3d in the seach in find ouside 
-       set global variable :  searchMethod=1;  // more safe seach algo (can be expensive in case of lot of ouside point) 
-      -   add hack of ILU precond, if tgv is < 0 then
-        we remove all the line and put 1 on the diag term ..
-v 3.11 9 dec 2010 
-   - update the documentation of 3d adaption process
-     and / correct  freeyams,mshmet, mmg3d  interface and associaded  example
-   - configure is compatible with MKL lib (on gnome)
-   - add quoting argument in macro argument with { } for mpi  plot .. 
-v 3.10-2
-   - try to compile with MKL libs.
-   - correct MPIGMRES[23]d.edp example 
-     add doc on this example.  
-v 3.10-2
- - add operator to inverse permuation to set or initial int[int] array
-   I=J^-1; 
-   if J is a permuation of 0:n-1  then we have :   I[j[i]]=i 
- - correct comment problem of periodic bounary condition in 3D
-    see examples++-3d/periodic-3d.edp
- - correct configure to scotch compilation on gnone (phtread) 
-v 3.10-1
-  - at convection function form formal array to int,real,complex array
-   (resp.     toZarray, toRarray, toCarray)
-  - correct ffrandom.cpp to read /dev/random to get a true random seed
-    srandomdev 
-  - add ff-mpirun script to simplify the launch of FreeFem++-mpi version
-  - correct MPI for MPI icc on gnome 
-  - correct pb of computation of area, lenbord in mesh type in some case .
-  - correct WHERE_LIBRARY-config  for blas find in configure
-  - correct atof 
-v 3.10 
-  - add true Domain Decomposition example in 2d and 3d. 
-      see    MPIGMRES2D.edp	  MPIGMRES3D.edp in MPI  examples 
-  - add mpi Isend/Irevd for complex struct like matix, meshes 
-     for send/recv Huge objet 
-  - add named parameter verbosity= in add GMRES and GC function 
-     for show algo evolution .
-  - add MPIGC dynamic LIB for // GC and GMRES , add fully // scharwz RAS
-     in MPIGMRES2d.edp 
-  - correct  problem of  a=A^-1*b when a, or b is not consecutive array
-   ie. expression like  M(2,:)  
-  - correct problem of Makefile in download  clean,install,WHERE target
-v 3.10 ( 5 oct 2010)
-  - add install of missing MPI  dynamics lib. 
-  add argument  "-cd"  to FreeFem++ command to change  current directory  to edp script directory 
-  - clean configure.ac 
-  - do correction for g++-4.6 compiler (lambda expressions , and trap ..)
-  - add  MPICG  for Parallel Conjugate Gradient for full split matrix
-     see MPICG
-  - correct Makefiles in download ( add WHERE interface) 
-  - remove wait option in medit because the code is wrong , always waiting  now 
-  - correct bug renumbering  of matrix :  B= A(I,J),
-    the last term N,M was force to zero  =+ -> += (line 1885 of file lgmat.cpp) 
-    where N= I.max, M=J.max 
-v 3.9-3
-  - correct compilation of gmm, mumps on linux
-  - add parameter -ne in FreeFem++ commands  to remove edp script print
-  - correct mistake in --enable-m64 or --enable-m32 (suppress the confugure warning)
-  - correct of ff-c++ script if whith space in path (for windows)
-  - add compilation  of gmm library 
-v 3.9-2
-  - correct compilation of mshmet dynamic library
-  - correct pb of compile of superludist ( add CNOFLAGS no optimze CFLAGS)
-  - correction of lib on win32 for freeyams and mmg3d
-  - correction download/Makefile.am to be sure than bin is a directory.
-  - add fftw of win32 
-
-v 3.9-1
-  - correction  mmg3d interface (J Morice) 
-  - correct of mmg3d and freeyams under wind32 (ld problom)
-v 3.9-1  August 2009   (For FreeFem++ days )
-  - correct configure (find lapack lib change $ll_lapack_libs in $ll_lapack_lib)
-  - correct mistake in mpi 
-    add:  gatherv, allgatherv, scatterv, alltoallv   
-        and complex data type in:  allgather, gather, scatter, alltoall, ..
-    correction bug : gather,  scatter
-    correct essai.edp mpi example 
-  - correct problem of compatibility of dynamic lib  with and without MPI 
-     change ff-cc++ to add all MPI libs if MPI version exist. 
-  - correct default  region number in square build mesh function  now 0 , (2 beetween  v3.8 -- 3.9)  
-  - change in all example  reffacexx= in labelxx= ..., etc to be correct with v 3.8 change.
-  - correct a mistake of type  region= parameter in tetgen all functions.  
-  - correct the mpi configure seach tool
-      miss when no full path are given  ( only change in configure.ac) 
-v 3.9  July 2009.
-  - add lots of automatic  compilation of download soffware,
-   
-	tetgen superlu fftw metis yams mshmet 
-	blacs parmetis scalapack scotch superludist MUMPS pastix hypre hips 
-
-        For the link with mmg3d software put the tar.gz archive in .../dowload/pgk directory.
-    add interface with freeyams, mmg3d, mshmet (3d mesh adatation) software,
-    add automatique compilation of // solver with 
-      flags -auto in ff-c++ commands
-        
-
-v 3.8-2
-  - add cast operator from SubString to String 
-  - correct the SubString tools 
-v 3.8
-  - add in change mesh2 tool to make a renumbering of vertex for periodic 3d mesh. 
-     Th= change(Th,renumv=old2new);
-  - correct ' operator do alway in complex case the conj and trans (Hermissian stuff)
-     in  formal array with [ ]' 
-     in  linear comb of complex matrix  
-        now  A + (-1)*A' is zero  is A is hermisian .
-     in varf term  (a*dx(u)*dy(v) )'  <=>  a' dx(u)*dy(v)
-    now you can  [a*dx(v),dy(v)] ' *[a*dx(u),dy(u)] in complex case.. 
-  - plot of complex field  and 3d vector .. 
-  - upgrade the documentation in 3d mesh example
-  - change configure.ac for mpifc, mpif77,  mpicc, ...  
-  - correct  include seach path 
-  - uniformize named parameter  in change, movemesh, in load "msh" , glumesh, ...
-     add synonyme:  
-        refface=  ->   label=
-	reftet=   ->  region= 
-     in buildlayer:
-	labebup=
-	labebdown=
-	labelmib=
-  - writing  schwarz-nm-3d.edp examples
-     - add array of 3d mesh
-     - add  word  volume to get the volume of the current tet element
-     - correct  metis.cpp in 3d case 
-  - correct in fflapack.cpp (example++-load, computation of eigenvalue of complex matrix)
-         -llapack search in configure.ac 
-        and unify fflapack.cpp lapack.cpp are the same file.
-  - add seekp, tellp  method  on ostream type 
-        seekg, teeg   method on istream type
-        see examples++-tutorial/readmesh.edp examples 
-v 3.7-1 13 jan 2010.. 
-  - EqPoisson.edp (SOlve Poison equation in 3d fish)
-  - add possibility to put array  (int[int] )  to set a set of label/region in
-    in integral (int1d,int2d,int3d)   or  "on" key word 
-    example : int[int] l=[1,2,3]  ,  ...  on(l,u=1);
-  - add tool to compile under mingw/msys under windows 32 (freefem++-nw works, 
-  -  add bug (random trap) in bamg in sub domain computation in case of 
-    internal edge in    same region (fist time in 15 years). 
-  -  add bug in varf interpertation in  complex case (miss some convertion)
-  - add build  interpolation matrix in 3d (see examples++-3d/mat_interpole.edp)
-  - correct CFLAGS (add -fFIP) in superlu , umfpack under 64 architecture. 
-v  3.7   8 december 2009 
-   add 3d beam examples examples++-3d/beam.edp 
-   correct install problem due to metis directory
-   add dynamic load interface with newuoa fortran optimizer without derivative
-      see ffnewuoa.edp example ins examples++-load
-   correct problem of free of mesh in case of  gluing meshes
-     Th= Tha+Thb; // now just the ref counter on Th  is decrease
-                  // and  before  Th is delete 
-   add .im, .real method on complex [int,int] matrix array 
-   add  missing  matrix<complex>[int]  type in grammar.
-
-   correct mistake in genertion of file WHERE_LIBRARY-config
-   add  initialization of	scalar variable at zero 
-   add  warning in case of use of	variable with hide freefem++ name
-   add missing file in download version
-
-v 3.6.1 
-    correct  font problem in documetation
-             lot of mistake in examples++-load 
-    add tool to compile all examples 
-    add PICHON stuff for brute force seach point
-    add umpack long interface to by pass the 32bit limits 
-      see UMFPACK64.cpp and LapUmfpack64.edp in examples++-load.
-    add some interface with lapack (inverse of full matrix, 
-       eigenvalue of full matrix) 
-    correct  ::Draw undef ref.  ubuntu 10. (gcc 4.4)
-    correct typo error  image tools
-    see UMPACK64  (code and example in examples++-load)
-v 3.6 (4 nov 2009)
-    change the version of tetgen to 1.4.3 download
-    correct in ffglut max value of arrow
-    add examples of function with stack parameter in 
-       examples++-load/funcTemplate.cpp load facility
-       and 
-       examples++-load/funcTemplate.edp
-    add tools to read .pcm files for optic-flow computation (pcm2rnm.cpp) 
-  	 see http://www.cs.otago.ac.nz/research/vision/Research/OpticalFlow/pcm.html
-     correct bug in GMRES without preconditionner asset error. 
-     correct a rare and ramdomly bug in the interpolation 2d process when the
-      the element 0 touch the boundary
-     correct on versy old bug in bamg in case of internal boundary edge with
-     two extremity  in true boundary (symptome FillHoleInMesh trap).
-   correct operator  subsript a:b:c  operator (in some case the last value was miss) 
-   correct the  ?: operator in case of constant array  
-  - add -enable-m32 floag to build 32bits freefem++ on 64 architecture computer
-  - correct eigenvalue.cpp in case of complex finite element
-v 3.5-2  (28 sept. 2009)
-  - correct install problem under windows (metis.dll do not compile)
-  - correct MacOS install missing /usr/local/lib/ff++/3.xx-yy link 
-v 3.5-1  (24 sept. 2009) not to bad ...
-
-   - add interface to mestis 
-   - correct  display of 3d mesh (with light doday)
-   - add trap in case of mesh with negative volume 
-   - correct bug  in case  3d finite element with constant number of df / node
-     example fespace Vh(Th2,[P1,P1]); or fespace  Wh(Th3,[P0,P0,P0 ])
-
-   - correct problem with tetgen under windows and ubuntu 
-       (remove optimisation during compilation of the library)
-
-   - correct setting array of vectorial finite element Wh 
-     Wh[int] [u,v](10); // array of 10 value
-     u[1] or v[1] 2 componante function for indice  1.
-     [u[2],v[2]] = [1,2]; //  set the function for indice  2. 
-   - correct in matrix size of  matrix B=A(I,J) to I.n x I.m 
-     where I, J are array of int 
-     
-   - add resize of complex sparse matrix 
-   - Add inferface with metis in examples++-load   (metis.cpp, metis.edp)
-v 3.5 (27 aug. 2009)
-  Complet writing to MPI interface, tested with Open MPI 1.2.3 and mpich 2.1 
-      see chapter 10, page 229, of  the freefem++doc.pdf  and 
-      see example++-mpi/essai.edp.    
-
-  correct 
-      operator  a(:)= 1:4; // before change a copy of a and so do nothing
-      string[string] s; 
-      s[i]; // before trap (two delete) 
-v 3.4-2
-  add boundary mesh inqure in 2d and 3d
-  Th.nbe ; // return the number of boundary element 
-  Th.be(k);   // return the boundary element k $\in \{0,...,Th.nbe-1\}$ 
-  Th.be(k)[l];   // return the vertices l $\in \{0,1\}$ of  boundary elmt k 
-  Th.be(k).Element ;   // return the triangle contening the  boundary elmt k 
-  Th.be(k).whoinElement ;   // return the edge/face number of element contening the  boundary elmt k 
-  Th[k].adj(e) ; // return adjacent element to k by edge/face e, and change 
-  // the value of e to the corresponding edge in the adjacent element
-  Th[k] == Th[k].adj(e) // non adjacent element  
-  Th[k] != Th[k].adj(e) // true adjacent element 
-
-  do small change in msh3.cpp  file 
- 
-v 3.4-1
-   rewrite of the mpi interface in vue of use group and comunicator
-     now we only use mpi.h and not mpi++.h
-   add plot of array of mesh and array of finite element functions
-   add new command in ffglut graphic interface
-     n,N,i,I  to change the number of isovalue and to set the min,max value to the
-           graphic
-   add left button motion to zoom , and + alt to translate
-V 3.4
-    add in parallel version mpi send, receive and broadcasr of  3d mesh and matrix ( sparse matrix).
-    build a 3d mpi schwarz example (see example++-mpi/schwarz-3.edp)
-    make a wrapper (launchff++.exe)  to launch freefem++ under windows/OS in the edp file directory. 
-    correct in interpolation matrix ( unset variable in case of same mesh 
-      => missing some term in the matrix) 
-
-V 3.3-3 
-  add missing file in distribution examples++-load/DxWriter.cpp
-V 3.3-2  8 june 2009
-  add   2 new finite element:
-   Edge03d : the Nedelec 3d  Edge finite elements.
-   RT03d : the Raviart-Thomas 3d  finite elements
-   correct the size of anytype for 64 bits architecture.
-   install the new .idp file (include of edp file) in
-   directory idp    
-V 3.3-1 1 june 2009
-  to correct the problem of the destruction of parameter in case: 
-      func real[int]   a2(real[int] a) {a[0]=2; return a;}
-   so now the parameter cast to KN_<double> so  the array is not
-   duplicate like in C++, and the value of the parameter is change. 
-   
-  - simplify the internal (C++)  definition of array now of 2 type
-    KN<> * of variable (left expression)
-    and  KN_<> of   right expression 
-  - correct UnRef<A,B> where B ~ A*
-v 3.3  29 may 2009
-  -  correct some problem in return in function :
-   the following function prototype now work without memory fault. 
-
-    func real[int]   a1(int n)  {real[int] a(n);return a;}
-    func real[int]   a2(real[int] &a) { return a;}
-    real[int] G=[7,8,9];		  
-    func real[int]   a3(real[int] &a) { return G;}
-    func mesh carre(int n) { mesh th=square(n,n);  return th;}
-   (lot of change, warning:  now KN<K> is not a freefem++ internal type). 
-  warning : 
-  -  in int3d flag qfV=  a 3d quadrature formula
-        the 3d quadrature formula are
-         qfV1 , qfV1lump, qfV2 , qfV5  (where the number is the ordre of the quadrature)
-  -  correct sign of the normal in 3d (now the normal is exterior)
-      -------------------------------------------------------------
-  -  correct in adapted mesh the flag splitin2=  (no tested)
-  -  correct the convect operator in 3d 
-  -  add EigenValue tool  for 3d case  May 15, 2009. 
-v 3.2
-  - add tools to set array like in matlab/scilab
-    real[int] a(1:2:10),  def  a to 1,3,.. 10.
-    int[int] I(0:n-1) , set array of size n to 0, .., n-1
-    real[int] b(0.1:0.5:9.99) , set   0.1, 0.6, 1.1,..., 9.6  
-    add :   b.n == (9.99-0.1)/0.5 +1
-  - sort(a,p);  // sort a is and array and p in parallel 
-     where is a integer array same size of a.
-        
-  - add interface with MUMPS  parallel solver (in progress) 
-    http://graal.ens-lyon.fr/MUMPS/
-
-  - rename  movemesh2D3Dsurf in movemesh23 and change named 
-     parameter normal= in orientation=
-
-  - add periodic boundary in condition like in 2d
-    example for a cube with label face numbering 
-      1 :  ( x == xmin)        2 :  ( x == xmax) 
-      3 :  ( y == ymin)        4 :  ( y == ymax) 
-      5 :  ( z == zmin)        6 :  ( z == zmax) 
-     fespace Vh(Th,P2,periodic=[[1,y,z],[2,y,z],[3,x,z],[4,x,z],[5,x,y],[6,x,y]]);
-
-  -  automatic: Finite element name conversion  beetween 2d and 3d
-      old : fespace(Th3,P13d);
-      new : fespace(Th3,P1); 
-  - add complete rewrite of the way  to set parameter of the sparse solver
-    for  parallel solver ( no progress)
-  - add --enable-m64 for 64 bit compilation flags 
-  - correct f2c of  take the -m64 flags 
-  -  build the universal f2c library with 4 architecture ppc i386 ppc64 x86_64
-v 3.1-1
-  - add resize of sparse matrix ( only  morse matrix)
-  - add  new 3d finite element P1b3d   (P1 bulle 3d) 
-  - add  new option in int1d function in case for  build matrix with different meshes
-        mortar=1 ( do not remove integration point if the point is outside of the domain)
-    to make no to bad integration on same curve with different meshes. 
-v 3.1
-  -correct compile  order missing libMesh
-  - add lighting in ffglut (key l) for 3d isovalue 
-v 3.0-6
-  - correct int2d in 3d. bug in   Face -> tet mapping  (PBord method) March 5 2009
-        change the postscript  plot dimension to be in A4 paper.  
-        nuTriangle   given the tet  number in 3d case (5 march 2009)
-        area  given the area of the triangle on 3d border integral. 
-  - add tool to required edge in adaptmesh with label of edges. 
-  - correct  dy(uh) (always 0) for P13d finite element  (27 jan 2009)
-      op==op_dy =>  op==op_dy line 97 P012_3D.cpp
-v 3.0-5 (20 jan 2009)
-  - correct array 3D  FE function +  missing function in 3D (not finish) 
-  - correct the install on under windows / cygwin 
-      add src/Graphics/ff-win32.cpp missing file in tar.gz under windows
-      correct ff-c++  under cygwin compile (fist test) 
-  - automatic compilation of BLAS, suppress the automatic compilation of BLAS atlas (to long) 
-  - ffglut improvement 
-        - now save 10 graphic states and use "p" key to show previous graphic
-	- do automatic z rescale on Z direction the  3d plot 
-v 3.0-4 (05 jan 2009)
-  - correct int2d in 3d case: all this integral was multiply by 2. 
-  - add 3d viewing in plot (in test)
-v 3.0-3 (27 dec 2008)
-  - build a not to bad version 
-  - remove so crazy print 
-  - change the ffglut  io with  freefem++  ( to be more universal independant of the architecture an more universal)
-    - correct ffglut in case of plot of array and when the plot is empty.
-      remark ffglut is not compatible with previous version (sorry)
-    the filename create with option w is ffglut_xxxx.ppm (window dump)
-    correct int2d on 3d mesh3d for Neuman Boundary condition
-v 3.0-2 ( 9 dec 2008)
-  - ff-c++ to dynamic load program (add ff++.hpp file  with all include, may be)
-  - correct the Makefiles et load-link, 
-  - correct ffmedit (binary read /win32)
-  - cosmetic change in ffglut + stabilization
-v 3.0-1 (4 dec 2008)
-  - complete change of the graphic (freefem++ is now the old freefem++-nw ) 
-      - add  medit (a visualisator software by  P. Frey)  inside freefem++
-          with a name ffmedit  
-      - suppress the ide version
-          see page: http://www.ann.jussieu.fr/~lehyaric/ffcs
-      - We put a client-server architecture
-        (freefem++,freefem++-nw)  <->  ffglut
-	- freefem++-nw and freefem++ is now the same file 
-	- ffglut is the visualisator in glut library (run on linux, mac, win32)
-    how to use now: 
-        freefem++  file.dp # by default load ffglut (so ffglut must be in the PATH).
-	freefem++  -glut ffglut-path  file.edp  # change ffglut command
-	freefem++  -fglut saveglutfile  file.edp # save data plot
-	ffglut saveglutfile # plot a data file
-	freefem++ -nw file.edp # freefem++ with  graphics 
-	ffmedit  #  used medit in freefem  
-	
-
-  - now glumesh2D dynamics tool is in freefem++   
-        add operator + beetween meshes with glu
-        examples++-tutorial/glumesh.edp
-        
-  - add 3 meshing tools in msh3.{so,dll,dylib}      	
-	operator + between mesh3
-	add freefem++ function:
-	  movemesh2D3Dsurf movemesh3D buildlayers
-        see:
-    	  examples++-load/buildlayermesh.edp
-	  examples++-load/glumesh3D.edp
-	  examples++-load/refinesphere.edp
-	  examples++-load/tetgenholeregion.edp
-
-	    
-  - add interface with tetgen  3d mesher (tetgen.{so,dll,dylib})
-        add freefem++ function: 
-	  tetgconvexhull tetgtransfo tetg tetgreconstruction
-	see:
-      	  examples++-load/buildlayermesh.edp
-	  examples++-load/refinesphere.edp
-	  examples++-load/tetgencube.edp
-	  examples++-load/tetgenholeregion.edp
-
-  - add interface with medit (medit is now in freefem++ this call
-       ffmedit in medit.{so,dll,dylib}
-       add freefem++ function medit savesol (2d , 3d  medit plot)
-
-  - correct ?: operator with array and real. 
-  - correct memory erreur with  valgrind tool (19 oct 2008)
-       In ~ConstructDataFElement() change counter after free
-       nosym eigen call to neupp missing +1 in size of array 
-  - correct gestion of the counter of ConstructDataFElement class (09/2008)
-       in Valladolid spain. 
-  - add 3D FINITE ELEMENT P0,P1,P2 
-     mesh3 Th("toto.mesh")
-     int3d(Th) , int2d(Th)
-     see examples++-3d/first.edp example
-    
-v 2.25
-  - add tool to change lab in mesh see  glumesh.edp examples++-load 
-v 2.24-4
-  - add missing code in case of DG (jump or average) of test function in
-    linear form
-  - add tools to glu meshes (not well test) see glumesh.edp in load examples.
-  - change definition pour interpolation point for P1dc and P2dc  (P-G)*c+G
-    now all interpolation point are fully inside the triangle 
-v 2.24-3
-  - add option resid= in eigenvalue function (see arpack doc)
-  - add  formal operator  ./  .*  between two  [ a , b , c ] array
-v 2.24-2
-  - correct convect explain in documentation. 
-  - correct configure.ac build FLIBS and add check of FLIBS, X11_LIBS value
-  - correct buildmesh trap when degenerate border is create  by error.
-v 2.24-1
-  - correct periodic condition  in case of one edge 
-  - correct doc file
-v 2.24
-  - bug with border and func
-     this kind of code now works
-       func abc=  a(6) + b(4) + c(4)  ;
-       func def = d(4) + e(4) + f(6);
-       func bbb= abc  + def;
-      plot(bbb); mesh Th=buildmesh(bbb);
-     whare : a,c,b,c,d,e,d are  border. 
-
-  - correct bug in periodic Boundary Condition( find by Alexandre Masserey <masserey at ycoorsystems.com>)
-       mistake in abscisse choose.
-       sometime assert fail (loop).
-     add option to the buildmesh that the boundary is fixe (fixeborder=true)
-     see : examples++-tutorial/periodic4bis.edp   
-  -  and  R1.hpp, R2.hpp, R3.hpp files for the 3d version.  
-v 2.23-2
-  - correct trap in adapdmesh (in mortar-DN-4.edp) in very rare case 
-    du to  intialized   adj  of edges on geometry (very old bug) 
-    in case of multi points.
-  with vebosity=10; you get this message: 
- -- Begin of insertion process 
- bug  2
- Bug double points in 
-....
- Fatal error in the meshgenerator 5
-....
-
-v 2.23-1
-  - correct assert fail in check in case of no UMFPACK
-v 2.23
-  - add new edge finite element (P1 to P5) 
-   in examples++-load/Element_PkEdge.cpp examples++-load/testFE-PkEdge.edp  
-  - preconditionned  mortar example Neuman -> Dirichet in scalar and parallele
-    see examples++-mpi/mortar-DN-4-mpi.edp examples++-tutorial/mortar-DN-4.edp
-  - add vectorial  operator  d=  a ? b : c  where d,a is a array, and b,c can be array or scalar 
-    usefull for boundary condition
-  - correct probleme in mpi recive message
-  - correct load dynamic on MacOs (bug in fortran find library) in configure.ac
-v 2.22-2
-  - small change in configure.ac of find libumfpack on debain systeme
-  - correct checking code in probleme to same the mesh must be unique in problem of solve definition.
-v 2.22-1
-  - make change in Makefile to build universal binary on MacOS
-  - change the README file for compilation on ubuntu Linux.
-v 2.22   (december, 18, 2007)
-  -  correct problem of string argument in function
-  -  correct all elasticity problem (missing sqrt(2) )
-  -  correct save of log file under  Windows XP, ..
-v 2.21   (november, 18, 2007)
-  -  correct documentation for new edition
-  -  correct configure for no X11 and UMFPACK in sparsesuite
-v 2.20-1 (october, 24, 2007)
-  -  correct compilation problem without umfpack
-  -  add  formal operator  for vectorial operator in variationnal form
-        +, -  on  [  ]  array
-        trace operator  matrix like [ [ ... ], .., [... ] ] 
-        take element of an array [ ...][2] 
-v 2.20  (october, 2, 2007)
-  -  add in download automatic generation of f2c and fort77 to get a free  fortran compiler
-	just  go in 
-	(download/f2d;make install)
-  -  add automatic find of libf2c in case of F77=fort77 (driver of f2c) in configure 
-  -  add tools to change the sparse linear solver with load dynamic, see doc and SuperLu example
-     in examles++-load
-v 2.19   (august, 19  2007)
-  - correct buildmesh from geometry file and add nbvx= named parameter
-    to infore the maximal number of verter in a mesh.
-  - add  Th[k].area to get the area of the k-th triangle of Th.
-  - add  Th[k].region to get the region number (label)  of the k-th triangle of Th.
-  - correct string delete in plot of border (mesh.edp)
-  - correct mean and jump in  interpolation operator.
-v 2.18-1 (august, 2007)
-  - correct old bug under Windows: the std input stream  now works (cin) 
-v 2.18  (july, 19, 2007)
-  - add sort of real array or int array, syntaxe: 
-      a.sort, and we have : a[i-1] <= a[i] for i =0 to a.n-1
-  - add  v=a.quantile(p) ;  statisticial function  and commute v such than 
-     #{ i / a[i] < v } = r*a.n   <=>    v = a[r*n]  when the array is sorted.   
-  - correct P4nc, P4 finite element
-v 2.17-2 (19 june 2007)
-  - correct double   $(BLASLIB) in configure.ac (one more)
-  - correct old bug in bamg, in case of bogus boundary (auto
-    crossing)and   add code  to  handle  this error correctly with exception
-    (see "test to catch bogus boundary"  of example++-tutorial/mesh.edp).
-v 2.17-1
-  - add the command line parameter [-v nn] in all freefem++ program to set 
-    the level of verbosity to nn  before all, and if nn == 0 then theoriticaly no more
-    spurious output.
-  - correct  automatique choose of  color in plot of arrow. 
-v 2.17
-  - add bessel function   j0, j1, jn, y0, y1, yn -- bessel
-        functions of first and second kind
-  - add  erf, erfc -- error function operators
-  - add   tgamma, lgamma  -- gamma and log of gamma
-  - add   tool set and get   line,colunm and value of a sparse matrix
-             [I,J,C]=A; // resizing  array I,J,C
-             A=[I,J,C] ;
-            where
-             int[int] I(k),J(k); real[int] C(k);
-  - add   in tools to get eigen vector of None FE problem
-   like:
-     int nev=5;  // number of computed eigen valeu close to sigma
-     real[int] ev(nev); // to store nev eigein value
-     real[int,int] eV(AA.n,nev);   // to store nev eigen vector
-     int k=EigenValue(AA,BB,sym=true,11value=ev,rawvector=eV);
-
-  - correct the quadrature formular automatic choose with the qforder= field
-  by default the order is correct until  order 10 (so exact for P9 polynomals)
-  to add new Quadrature formalur up two  order 26 add  dynamic load qf11to25
-v 2.16-2
-  correct configure.ac for windows ide compile
-  correct meshsplit, trunc  function 
-v 2.16 april 17 2007
-  Change umfpack download version to the last one
-  add string input from file or cin
-  add Compressible Neo-Hookean Materials exemple
-v 2.15-1
-  Correct mistake in cas of splitmesh with internal boundary (assert)
-  Add dump  of the mesh regulary (pesonnal work, FH)
-v 2.15  (27 mars 2007)
-  The blas.tgz file change on http://www.netlib.org/blas/blas.tgz
-  correct the makefile  (remove BLAS dir) 
-v 2.14-3 (24 mars 2007)
-  Correct bug in vectorial operation of type  (b - 3.14*d) (Thanks to F. Dortu)
-v 2.14-2 (22 mars 2007)
-  correct integration problem on none classical mesh (mesh of curve of mortar technique)
-  the mesh::Find methode is boggus of the kind on meshes, i make an optimisation to remove
-  this call in case build matrix with varf int1d(Th)( u*v) , in case of Th, u or v is def.
-  on same meshes.	
-v 2.14-1 (0 mars 2007)
-   correct missing speeling in  configure.ac  mpi++.h -> mpi++.h for mpich.1.2
-   add computing linear form of 2 meshes  (ex. v on mesh Th1, and  compute int2d(Th1)(v) )
-v 2.14  (7 mars 2007)
-   make correction for solaris bluid
-   add P3,P4 and new quadrature formular on triangle up degree 25 
-   with dynamics load. See examples++-load/*P[43]*.edp
-   correct mistake when we build matrix from varf with 3  meshes (FH).
-v 2.13
-   Add formal operator * and ' (to day just transpose) 
-   on vector [ .. ]  and matrix [ [],...,  []]
-   so we can write  
-    macro grad(u) [ dx(u),dy(u)] // EOM
-    int2d(Th)( grad(u)'*grad(v) )   
-    add scalar term in block matrix as 1x1 matrix.
-v 2.12-2
-  correct problem in splitmesh and trunc
-  trunc build always a part of a subdivision mesh
-  splitmesh given more pretty mesh, before if we split 2 adjacent
-  triangle resp in 3 and 4, before we put 2+3 points on the common edge
-  now the put 3 points. 
-v 2.12-1 (jan 15,2007)
-  correct early delete of return pointeur in freefem++ function (trap in string.edp under windows )
-v 2.12   ( jan 10,2007)
-  correct mistake in none square block matrix 
-v 2.11-2 (nov 29,2006)
-  correct integration problem on none classical mesh (mesh of curve of mortar technique)
-  the mesh::Find methode is boggus of the kind on meshes, i make an optimisation to remove 
-  this call in case build matrix with varf int..(Th)( u*v) , in case of Th, u or v is def.
-  on same meshes.  
-v 2.11-1 (nov 28,2006)
-  Correct bug in interpolation, we building fespace Wf(Th,[RT0,P0]); 
-v 2.11 (nov 10,2006)
- Correction of  the problem in arpack (eigenvalue computation) under i383 processor.
- After 2 week of hard work, a found the bug.
- In new version of LAPACK second is a real function
- and in ARPACK second is a subroutine  (Thank the fortran).  
- So I change the Makefile to change the name of function second into secnd2. 
- How to find the bug, in this case the stack of the floatting register (info float under gdb) 
- are growing. So after any real function can return a NaN (one time) due to stack float register 
- overflow.  A big Thank to D. Bernardi of the help (Merci au fortran et Merci au i383).
-
-v 2.10 (oct 26,  2006)
-  correct problem with eigen value on window and some linux distrubition (Fedora)
-  add a patch of two functions in lapack  see  arpack/arpack-patch-lapack.tar.gz
-
-v 2.9 (sept 19, 2006 FH) 
-  change Send and Recv in mpi  to Isend and Irecv to make async communication
-  so now freefem++-mpi work with openmpi.
-
-V 2.8-3
-   correct freefem++-cs trap under windows (install the static version)
-   add tools to format ostream  ( file or cout)  
-
-V 2.8-2 
-   (july)
-   use f2c as a fortran compiler on  MacIntel architecture,
-    correct mistake in mpi. 
-   (june 2006)
-   add nint, and correct mistake in ceil function
-   add configure flag to remove cadna --without-cadna
-V2.8
-   Correct mistake in OtherMacOsLib.tgz store file and not link (after 1 june)
- * Correct bug in vectorial problem with same approximation, some time
-   we do a renumbering of the previous  approximation space (a pointer mistake).
-V2.7-1
-  * change size of data in 64 bits architecture (in file AnyType.hpp)
-V2.7
-  * correct mpi Makefile
-  * correct bug in construction of recursive composite finite element (see HISTORY)
-    remark: the finite elemnt struct, so all dynamic library must be recompile. 
-V2.6-1
- * add the examples-bamg  directory  in freefem++ and  correct bamg graphic
-V2.6
- * Huge work (more than a full week) to improve the windows version 
-   change all the .dll construction
-   remove lots of trap. All example run without graphics
-V2.5.1
- *  change nbve= to nev= in EigenValue function  (to be compatible with the doc)
- *  newtow to newton    (to correct misspelling)
- *  change in AnyType to remove da randow bug on windows.
- *  vim color syntax from Richard MICHEL (vim_highlighting_for_FF++.tar.gz)
-
-V2.5-0 
-  *  add C++ string operator :  int i; string s = "....";
-       i=s.length ; i=s.size; 
-       i=s.find("qsdqs");i=s.rfind("sqs"); i=s.find("qsq",2); 
-       s(3:4)="sdfffsf";  // replace from char 3 to 4 by 
-       // s[3] not alloued to day (char type is not well type in freefem++).
-       getline(cin,s); 
-  *  Correct bug when passing parameter string in function
-  *  add freefem++  mode for mi editor on macos http://www.mimikaki.net/en/
-    store in  mode-mi-edp.zip archive (unzip and put in the Folder  openned with the 
-    mi "Option->Open Mode Folder" menu and set "mi" is the Default application 
-    for all the .edp file). 
-    
-V2.4-2
-  * add lot missing vectorial operation with sub array 
-  * if u is a complex array (i.e. complex[int u] ..;) 
-     then  u.re (resp u.im) are  the real array of the real (resp. imag ) 
-     part of the vector u
-  * in block matrix add utilisation of array to build the block matrix
-    see new Laplace-lagrange-mult.edp file to have an example
-V2.3-3
- * add outer  product to set matrix or full real or complex 2D array
-    A = 2*a*b'; // where A is a "real[int,int]", b and c a "real[int]".
-    A += 2*a*b'; or  A = 2*a*b';
-   add matrix and array renumbering (see sec. 4.8 of freefem++.doc for all details)
-    
-V2.3-0
- * add three key word for future use try,catch throw 
-   a exception handling (no memory management.) 
-   try {   code ; }
-   catch (...) { code ; }
- * use tolpivot= to set the pivottol in LU, crout, cholesky factorization 
-V2.2-1
- * Add init file to set verbosity, includepath  , loadpath and 
-   add preload (dynamic link file)
-   the file are under unix and MacOs
-	 /etc/freefem++.pref
-         /Users/hecht/.freefem++.pref
-         freefem++.pref
-   under windows
-         freefem++.pref
-   and the syntaxe of the files is
-
-     verbosity= 5
-     loadpath += "/Library/FreeFem++/lib"
-     loadpath += "/Users/hecht/Library/FreeFem++/lib"
-     includepath  += "/Library/FreeFem++/edp"
-     includepath  += "/Users/hecht/Library/FreeFem++/edp"
-     #  comment 
-     load += "funcTemplate" 
-     load += "myfunction" 
-
- * Add search directory for include, and load  under Unix and Windows
-   Just on the shell sh  set environment variable
-    export FF_VERBOSITY=50 
-    export FF_INCLUDEPATH="dir;;dir2"
-    export FF_LOADPATH="dir;;dir3""
-   remark the separtor of directory  is ";" and not ":" because ":" is use under Windows.
- * Examples of Add new Finite element with dynamic link/load,  Morley and Bernardi Raugel   
-   see examples++-load 
-V2.1-2
- * add more example of dynamic load example (thank to F. Dortu)
- * correct mistake in simple integral computation (not in variationnal 
-   form)  before we alway use a quadrature formula of order 3, 
-   now we can change the quadrature formula and the defaut is of order 5. 
-V2.0-4
- * change in mshptg the size of the small possible edge from
-   1/32000 to 1/1 000 000 000, this mesher is use in trunc, 
-  splitmesh, and triangulate functions.
-
-V2.0-3
- * correct operator x =/,  it does  nothing before. (v2.0-3)
-   see end  examples++-tutorial/array.edp for all array operator
-   =  +  -  *  /  .*  ./ += -= /= *=  : .l1 .l2 .linfty .sum .max .min ' 
-   
- * correct bug when solving complex linear system with UMFPACK
-   before we solve the system when the conjugate matrix
-
-
-Major Change previous version
------------------------------
- * add ternary C expression
-     Symbol       Example      Explanation
-       ?:          a?b:c     ternary operation
- 
- * add 
-   sparse matrix computation,
-   block matrix construction 
-   interpolation construction
-   see 
-     examples++-tutorial/sparse-cmatrix.edp  
-     examples++-tutorial/sparse-matrix.edp
-     examples++-tutorial/mat_interpol.edp
-   not so well tested, but could be worse. 
-   
- * add example to solve vartionnal inequation. VI.edp
-
- * add  possibility to build matrix where the 3 meshes 
-   the integrale mesh, unkwon FE mesh, test FE function 
-   can be different.  You must use varf to build the matrix 
-   is not a standard porblem.
-  
- * Improvement of  dynamic loading facility under the 3 systems
-   add a fast fourier transform with dynamic loading
-   see examples++-load/dfft.edp
-
diff --git a/Makefile.am.orig b/Makefile.am.orig
deleted file mode 100644
index 68b55eb..0000000
--- a/Makefile.am.orig
+++ /dev/null
@@ -1,265 +0,0 @@
-# Makefile for FreeFem++, adapted to Automake
-# -------------------------------------------
-
-# Adaptation to Automake: Antoine Le Hyaric - LJLL Paris 6 -
-# lehyaric at ann.jussieu.fr - 13/5/04
-
-# $Id$
-
-SUBDIRS=download src  examples++-tutorial examples++	\
-	examples++-eigen examples++-load examples++-mpi	\
-	examples++-bug examples++-chapt3 examples++-other \
-	examples++-3d DOC 
-
-EXTRA_DIST=test-driver-ff regtests.sh config-wrapper.h  \
-FreeFem++.mcp HISTORY HISTORY_BEFORE_2005  BUGS TODO regtests.m4 \
-INSTALL INSTALL-MacOSX INNOVATION \
-WindowsPackage.m4 README README_ARPACK  README_WINDOWS README_MAC \
-logo.ico copysharedlibs.sh COPYRIGHT edp.nedit  reconfigure \
-<<<<<<< HEAD
-mode-mi-edp.zip aclocal.m4  acmacros.m4   acoptim.m4 ax_lib_hdf5.m4  \
-=======
-mode-mi-edp.zip aclocal.m4  acmacros.m4   acoptim.m4    \
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-freefem++.spec crimson-freefem++.zip \
-Install-MacOS.command.in \
-examples-bamg/NACA012/naca.awk  examples-bamg/quadloop/dotest.pl \
-examples-bamg/square/*_g.* examples-bamg/square/do* examples-bamg/NACA012/[adp]* \
-examples-bamg/test/dotest*.pl 0ldUserReadMe.txt CheckAllEdp CheckAll  \
-WHERE_LIBRARY-mkl FreeFem++-CoCoa \
-uninstall-ff++ \
-./build/cleancrlf		./build/download		./build/links2files	./build/orgindex
-
-
-FF_MAC_PREFIX=FreeFem++v$(VERSION)$(ADD_PACKAGE_NAME)
-
-FF_EXAMPLES_FILES = COPYRIGHT HISTORY HISTORY_BEFORE_2005 README README_WINDOWS README_MAC BUGS TODO INSTALL INSTALL-MacOSX INNOVATION \
-mode-mi-edp.zip \
-examples++-tutorial/aile.msh examples++-tutorial/xyf \
-examples++-3d/dodecaedre01.mesh  \
-examples++-3d/lac-leman-v4.msh \
-examples++-load/load.link \
-examples++-load/fig.pgm	examples++-load/lg.pgm \
-./examples++-mpi/regtests.sh ./examples++-other/speedtest.sh  \
-./download/fftw/Makefile ./download/fftw/Makefile.am \
-examples++*/*.[ie]dp  CheckAllEdp
-
-
-# Creates a file named "ChangeLog" containing the chronology of all
-# modifications to the source files. Needs "cvs2cl" to be installed.
-
-changelog:
-	cvs2cl
-
-# History before 2005 is stored in the file "HISTORY_BEFORE_2005"
-all-local:: @HISTORY@
-
-# try and avoid running this under fakeroot (otherwise we may face
-# problems trying to connect to CVS as pseudo-root). Debian packaging
-# uses fakeroot.
-history:
-	if test "$$FAKED_MODE" = ""; then\
-		hg log >HISTORY ;\
-		fi
-
-documentation:
-	cd DOC && $(MAKE) $(AM_MAKEFLAGS) documentation
-
-DOC/freefem++doc.pdf:
-	cd $(@D) && $(MAKE) $(AM_MAKEFLAGS) $(@F)
-
-clean-local::
-	-find . \( -name '*~' -or  -name ListOfUnAllocPtr.bin \) |xargs rm 
-	-rm examples*/*.eps 
-
-# "dist" targets
-clean-local::
-	-rm freefem++-*.tar.gz freefem++-*.zip
-	-rm Output/FreeFem++-*.exe
-
-# Reduced compilation
-# -------------------
-
-quick:
-	cd src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/lglib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/fflib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/std && $(MAKE) $(AM_MAKEFLAGS)
-
-nw:
-	cd src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/lglib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/fflib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/nw && $(MAKE) $(AM_MAKEFLAGS)
-
-bamg:
-	cd src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/lglib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/fflib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/bamg && $(MAKE) $(AM_MAKEFLAGS)
-
-ide:
-	cd src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	cd download && $(MAKE) $(AM_MAKEFLAGS) 
-	cd src/lglib && $(MAKE) $(AM_MAKEFLAGS) 
-	cd src/fflib && $(MAKE) $(AM_MAKEFLAGS) 
-	cd src/ide && $(MAKE) $(AM_MAKEFLAGS) FreeFem++-cs$(EXEEXT)
-
-# Cleaning generated files which are stored in the CVS repository, to
-# avoid technical CVS conflicts.
-clean-gen:
-	./cleanregen.sh
-
-# Testing
-# -------
-
-# The standard automake goal "make check" is also valid. It just does
-# not run any test that could prevent the user from working on its
-# machine (because of unexpected windows opening right in the middle
-# of the workspace).
-
-visualcheck: all
-	$(MAKE) $(AM_MAKEFLAGS) check VISUALCHECK=yes
-
-speedtest: all
-	cd examples++-other && $(MAKE) $(AM_MAKEFLAGS) check
-
-# Windows package
-# ---------------
-
-# Windows package script (for Inno Setup). We extract version
-# information from the Debian Changelog to get the package release
-# number as well.
-win32:WindowsPackage.iss
-	cd examples++-load;tar zxvf include.tar.gz;mkdir include-tmp;cp -Lr *.h include/* include-tmp
-WindowsPackage.iss: WindowsPackage.m4 configure.ac Makefile.am
-	m4 -DVERSION='$(VERSION)$(ADD_PACKAGE_NAME)' \
-	-DMPIPROG='$(MPIPROG)' WindowsPackage.m4 > WindowsPackage.iss
-
-# Debian package
-# --------------
-
-deb:
-	dpkg-buildpackage -rfakeroot
-	@echo Now run CopyToServer.sh in debian subdirectory
-
-# Build all versions
-# ------------------
-
-
-nativeX: $(FF_MAC_PREFIX)_MacOsX.tgz 
-	echo "done"
-MacOsX: 
-	-rm -rf  OsXxx
-	mkdir -p  OsXxx/Applications/
-	make install DESTDIR="`pwd`/OsXxx"
-	tar zxvf FreeFem++.app.tgz -C OsXxx/Applications/
-	cd OsXxx;tar cvfz  ../$(FF_MAC_PREFIX)_MacOsX.tgz .
-	rm -rf OsXxx
-clean-local::
-	-rm freefem++-$(VERSION).tar.gz
-	-rm -rf FreeFem++v*_MacOS
-
-# Native MacOS packaging
-# ----------------------
-install-exec-local:: 
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(pkgdatadir)/$(VERSION)
-	tar cvf - $(FF_EXAMPLES_FILES)| (cd $(DESTDIR)$(pkgdatadir)/$(VERSION); tar xvf -)
-	$(mkinstalldirs) -m 755 $(DESTDIR)${bindir}
-	-test `uname` = Darwin && $(INSTALL_SCRIPT) FreeFem++-CoCoa  $(DESTDIR)${bindir}
-
-
-ListFiles-natives: .FORCE 
-	echo $(FF_EXAMPLES_FILES) >$@
-	echo ./download/fftw/Makefile ./download/fftw/Makefile.am  >>$@
-	find .  -name '*.[ei]dp' -o -name '*.h*' -o -name '*.cpp' -o -name '*.pgm'  |egrep  '[.]/examples++' >>$@
-	find .   -name '*.h*' -o -name '*.cpp'  |egrep  '[.]/examples++' >>$@
-List-agl-dylib: src/nw/FreeFem++
-	otool -L src/nw/FreeFem++|egrep -v '/System/Library/|/usr/lib/'|awk '/.dylib/ {print $$1}' >$@
-CheckMacLib.sh: src/nw/FreeFem++
-	echo "for i in `otool -L src/nw/FreeFem++|egrep -v '/System/Library/|/usr/lib/'|awk '/.dylib/ {printf($$1.OFS)  }'` ; do test ! -f $$i && exit 1; done; exit 0"  >$@
-	chmod a+x $@
-CheckMPIMacLib.sh: src/mpi/FreeFem++-mpi
-	echo "for i in `otool -L src/mpi/FreeFem++-mpi|egrep -v '/System/Library/|/usr/lib/'|awk '/.dylib/ {printf($$1.OFS)  }'` ; do test ! -f $$i && exit 1; done; exit 0"  >$@
-	chmod a+x $@
-.FORCE:
-
-$(FF_MAC_PREFIX)_Macos:documentation ListFiles-natives
-	-mkdir $@ 
-	cat ListFiles-natives|xargs tar chf - | (cd $@ ; tar xf - )  
-	/Developer/Tools/CpMac "FreeFem++(Carbon)" $@/FreeFem++ 
-	cp   DOC/freefem++-doc.pdf $@
-
-$(FF_MAC_PREFIX)_MacOsX: all documentation  ListFiles-natives List-agl-dylib
-	-mkdir $@ 
-	cp   DOC/freefem++doc.pdf $@
-	cat ListFiles-natives|xargs tar chf - | (cd $@ ; tar xf - )  
-	cd  $@ ; tar zxf ../src/agl/FreeFem++.app.tgz
-	sed <src/agl/Info-plist.am >$@/FreeFem++.app/Contents/Info.plist \
-           -e "s/@VVERSION@/$(VERSION)$(ADD_PACKAGE_NAME)/g" \
-           -e "s/@DATE@/`date`/g"  
-	cp src/nw/FreeFem++ $@/FreeFem++.app/Contents/bin
-	cp src/nw/ffglut $@/FreeFem++.app/Contents/bin
-	cp src/medit/ffmedit $@/FreeFem++.app/Contents/bin
-	cp examples++-load/ff-get-dep  $@/FreeFem++.app/Contents/bin
-	cp examples++-load/ff-pkg-download  $@/FreeFem++.app/Contents/bin
-	sed <examples++-load/ff-c++ > $@/FreeFem++.app/Contents/bin/ff-c++ 	-e 's;FFAPPLI_INC;$@/FreeFem++.app/Contents/include;' 
-	chmod a+x $@/FreeFem++.app/Contents/bin/ff-c++
-	-mkdir $@/FreeFem++.app/Contents/include 
-	-mkdir $@/FreeFem++.app/Contents/idp 
-	cp examples++-load/include/* $@/FreeFem++.app/Contents/include
-	cp examples++-load/*.dylib  $@/FreeFem++.app/Contents/lib
-	cp examples++-*/*.idp  $@/FreeFem++.app/Contents/idp       
-	-if [ -s List-agl-dylib ]; then tar zchvf $@/OtherMacOsLib.tgz `cat List-agl-dylib`; fi; 
-	./config.status  --file=$@/Install-MacOS.command:Install-MacOS.command.in
-	chmod a+rx $@/Install-MacOS.command
-	-mkdir $@/FreeFem++.app/Contents/etc
-	echo loadpath += \"./\"  >$@/FreeFem++.app/Contents/etc/freefem++.pref
-	echo loadpath += \"$(ff_prefix_dir)/lib\"  >>$@/FreeFem++.app/Contents/etc/freefem++.pref
-	echo includepath += \"$(ff_prefix_dir)/edp\"  >>$@/FreeFem++.app/Contents/etc/freefem++.pref
-	echo includepath += \"$(ff_prefix_dir)/idp\"  >>$@/FreeFem++.app/Contents/etc/freefem++.pref
-
-
-$(FF_MAC_PREFIX)_MacOsX.tgz: $(FF_MAC_PREFIX)_MacOsX
-	tar zcvf $(FF_MAC_PREFIX)_MacOsX.tgz  $(FF_MAC_PREFIX)_MacOsX
-
-# Linux binary-only package
-# -------------------------
-
-# Include kernel and libc version in static package name
-PACKAGE_NAME=FreeFem++v$(VERSION)_linux-$(KERNEL_VERSION)_$(LIBC_VERSION)$(OPTIM_TYPE)
-
-linux-package: $(PACKAGE_NAME).tgz
-
-# No direct dependency to "all" to be able to debug the packaging
-# procedure on its own.
-
-$(PACKAGE_NAME):  ListFiles-natives
-	cat ListFiles-natives|xargs tar cfh - | (cd $@ ; tar xf - )  
-	-mkdir $@ 
-	cp src/std/FreeFem++ $@
-	./copysharedlibs.sh src/std/FreeFem++ $@
-	cp src/nw/FreeFem++-nw $@
-	./copysharedlibs.sh src/nw/FreeFem++-nw $@
-	cp src/ide/FreeFem++-cs $@
-	./copysharedlibs.sh src/ide/FreeFem++-cs $@
-	cp src/ide/FreeFem++-server $@
-	./copysharedlibs.sh src/ide/FreeFem++-server $@
-	cp src/ide/FreeFem++-client $@
-	./copysharedlibs.sh src/ide/FreeFem++-client $@
-	-cp src/glx/FreeFem++-glx $@
-	-./copysharedlibs.sh src/glx/FreeFem++-glx $@
-	-cp src/mpi/FreeFem++-mpi $@
-	-./copysharedlibs.sh src/mpi/FreeFem++-mpi $@
-
-
-$(PACKAGE_NAME).tgz: $(PACKAGE_NAME)
-	tar cvzf $@ $<
-
-clean-local::
-	-rm -r $(PACKAGE_NAME) $(PACKAGE_NAME).tgz
-autofiles:AutoGeneratedFile.tar.gz
-
-AutoGeneratedFile.tar.gz:configure List_generate_file Makefile.in Makefile.am  configure.ac
-	tar cvfz $@  `cat List_generate_file`
-
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index 85f9bf5..0000000
--- a/Makefile.in
+++ /dev/null
@@ -1,1199 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile for FreeFem++, adapted to Automake
-# -------------------------------------------
-
-# Adaptation to Automake: Antoine Le Hyaric - LJLL Paris 6 -
-# lehyaric at ann.jussieu.fr - 13/5/04
-
-# $Id$
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = .
-DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/configure $(am__configure_deps) \
-	$(srcdir)/config.h.in mkinstalldirs COPYING TODO compile \
-	config.guess config.sub depcomp install-sh missing ylwrap
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-	ctags-recursive dvi-recursive html-recursive info-recursive \
-	install-data-recursive install-dvi-recursive \
-	install-exec-recursive install-html-recursive \
-	install-info-recursive install-pdf-recursive \
-	install-ps-recursive install-recursive installcheck-recursive \
-	installdirs-recursive pdf-recursive ps-recursive \
-	tags-recursive uninstall-recursive
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-	cscope distdir dist dist-all distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
-	$(LISP)config.h.in
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
-  if test -d "$(distdir)"; then \
-    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-      && rm -rf "$(distdir)" \
-      || { sleep 5 && rm -rf "$(distdir)"; }; \
-  else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip dist-zip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
-  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-
-# Linux binary-only package
-# -------------------------
-
-# Include kernel and libc version in static package name
-PACKAGE_NAME = FreeFem++v$(VERSION)_linux-$(KERNEL_VERSION)_$(LIBC_VERSION)$(OPTIM_TYPE)
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = download src  examples++-tutorial examples++	\
-	examples++-eigen examples++-load examples++-mpi	\
-	examples++-bug examples++-chapt3 examples++-other \
-	examples++-3d DOC 
-
-EXTRA_DIST = test-driver-ff regtests.sh config-wrapper.h  \
-FreeFem++.mcp HISTORY HISTORY_BEFORE_2005  BUGS TODO regtests.m4 \
-INSTALL INSTALL-MacOSX INNOVATION \
-WindowsPackage.m4 README README_ARPACK  README_WINDOWS README_MAC \
-logo.ico copysharedlibs.sh COPYRIGHT edp.nedit  reconfigure \
-mode-mi-edp.zip aclocal.m4  acmacros.m4   acoptim.m4 ax_lib_hdf5.m4  \
-freefem++.spec crimson-freefem++.zip \
-Install-MacOS.command.in \
-examples-bamg/NACA012/naca.awk  examples-bamg/quadloop/dotest.pl \
-examples-bamg/square/*_g.* examples-bamg/square/do* examples-bamg/NACA012/[adp]* \
-examples-bamg/test/dotest*.pl 0ldUserReadMe.txt CheckAllEdp CheckAll  \
-WHERE_LIBRARY-mkl FreeFem++-CoCoa \
-uninstall-ff++ \
-./build/cleancrlf		./build/download		./build/links2files	./build/orgindex
-
-FF_MAC_PREFIX = FreeFem++v$(VERSION)$(ADD_PACKAGE_NAME)
-FF_EXAMPLES_FILES = COPYRIGHT HISTORY HISTORY_BEFORE_2005 README README_WINDOWS README_MAC BUGS TODO INSTALL INSTALL-MacOSX INNOVATION \
-mode-mi-edp.zip \
-examples++-tutorial/aile.msh examples++-tutorial/xyf \
-examples++-3d/dodecaedre01.mesh  \
-examples++-3d/lac-leman-v4.msh \
-examples++-load/load.link \
-examples++-load/fig.pgm	examples++-load/lg.pgm \
-./examples++-mpi/regtests.sh ./examples++-other/speedtest.sh  \
-./download/fftw/Makefile ./download/fftw/Makefile.am \
-examples++*/*.[ie]dp  CheckAllEdp
-
-all: config.h
-	$(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-am--refresh: Makefile
-	@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
-	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    echo ' $(SHELL) ./config.status'; \
-	    $(SHELL) ./config.status;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	$(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	$(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-config.h: stamp-h1
-	@test -f $@ || rm -f stamp-h1
-	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
-	@rm -f stamp-h1
-	cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
-	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
-	rm -f stamp-h1
-	touch $@
-
-distclean-hdr:
-	-rm -f config.h stamp-h1
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-	@fail=; \
-	if $(am__make_keepgoing); then \
-	  failcom='fail=yes'; \
-	else \
-	  failcom='exit 1'; \
-	fi; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
-	test ! -s cscope.files \
-	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
-	-rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-distdir: $(DISTFILES)
-	$(am__remove_distdir)
-	test -d "$(distdir)" || mkdir "$(distdir)"
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    $(am__make_dryrun) \
-	      || test -d "$(distdir)/$$subdir" \
-	      || $(MKDIR_P) "$(distdir)/$$subdir" \
-	      || exit 1; \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -755 \
-		-exec chmod u+rwx,go+rx {} \; -o \
-	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r "$(distdir)"
-dist-gzip: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__post_remove_distdir)
-
-dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-	$(am__post_remove_distdir)
-
-dist-lzip: distdir
-	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-	$(am__post_remove_distdir)
-
-dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__post_remove_distdir)
-
-dist-tarZ: distdir
-	@echo WARNING: "Support for shar distribution archives is" \
-	               "deprecated." >&2
-	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__post_remove_distdir)
-
-dist-shar: distdir
-	@echo WARNING: "Support for distribution archives compressed with" \
-		       "legacy program 'compress' is deprecated." >&2
-	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
-	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__post_remove_distdir)
-dist-zip: distdir
-	-rm -f $(distdir).zip
-	zip -rq $(distdir).zip $(distdir)
-	$(am__post_remove_distdir)
-
-dist dist-all:
-	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
-	$(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	case '$(DIST_ARCHIVES)' in \
-	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
-	*.tar.bz2*) \
-	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lz*) \
-	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
-	*.tar.xz*) \
-	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
-	*.tar.Z*) \
-	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
-	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
-	*.zip*) \
-	  unzip $(distdir).zip ;;\
-	esac
-	chmod -R a-w $(distdir)
-	chmod u+w $(distdir)
-	mkdir $(distdir)/_build $(distdir)/_inst
-	chmod a-w $(distdir)
-	test -d $(distdir)/_build || exit 0; \
-	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
-	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
-	  && ../configure \
-	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
-	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	    --srcdir=.. --prefix="$$dc_install_base" \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
-	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
-	        distuninstallcheck \
-	  && chmod -R a-w "$$dc_install_base" \
-	  && ({ \
-	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
-	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
-	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
-	  && rm -rf "$$dc_destdir" \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist \
-	  && rm -rf $(DIST_ARCHIVES) \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
-	  && cd "$$am__cwd" \
-	  || exit 1
-	$(am__post_remove_distdir)
-	@(echo "$(distdir) archives ready for distribution: "; \
-	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
-	@test -n '$(distuninstallcheck_dir)' || { \
-	  echo 'ERROR: trying to run $@ with an empty' \
-	       '$$(distuninstallcheck_dir)' >&2; \
-	  exit 1; \
-	}; \
-	$(am__cd) '$(distuninstallcheck_dir)' || { \
-	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
-	  exit 1; \
-	}; \
-	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
-	   || { echo "ERROR: files left after uninstall:" ; \
-	        if test -n "$(DESTDIR)"; then \
-	          echo "  (check DESTDIR support)"; \
-	        fi ; \
-	        $(distuninstallcheck_listfiles) ; \
-	        exit 1; } >&2
-distcleancheck: distclean
-	@if test '$(srcdir)' = . ; then \
-	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
-	  exit 1 ; \
-	fi
-	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
-	  || { echo "ERROR: files left in build directory after distclean:" ; \
-	       $(distcleancheck_listfiles) ; \
-	       exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile config.h all-local
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am: install-exec-local
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf $(top_srcdir)/autom4te.cache
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) all install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
-	am--refresh check check-am clean clean-cscope clean-generic \
-	clean-local cscope cscopelist-am ctags ctags-am dist dist-all \
-	dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \
-	dist-zip distcheck distclean distclean-generic distclean-hdr \
-	distclean-tags distcleancheck distdir distuninstallcheck dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-exec-local install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
-	tags-am uninstall uninstall-am
-
-
-# Creates a file named "ChangeLog" containing the chronology of all
-# modifications to the source files. Needs "cvs2cl" to be installed.
-
-changelog:
-	cvs2cl
-
-# History before 2005 is stored in the file "HISTORY_BEFORE_2005"
-all-local:: @HISTORY@
-
-# try and avoid running this under fakeroot (otherwise we may face
-# problems trying to connect to CVS as pseudo-root). Debian packaging
-# uses fakeroot.
-history:
-	if test "$$FAKED_MODE" = ""; then\
-		hg log >HISTORY ;\
-		fi
-
-documentation:
-	cd DOC && $(MAKE) $(AM_MAKEFLAGS) documentation
-
-DOC/freefem++doc.pdf:
-	cd $(@D) && $(MAKE) $(AM_MAKEFLAGS) $(@F)
-
-clean-local::
-	-find . \( -name '*~' -or  -name ListOfUnAllocPtr.bin \) |xargs rm 
-	-rm examples*/*.eps 
-
-# "dist" targets
-clean-local::
-	-rm freefem++-*.tar.gz freefem++-*.zip
-	-rm Output/FreeFem++-*.exe
-
-# Reduced compilation
-# -------------------
-
-quick:
-	cd src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/lglib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/fflib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/std && $(MAKE) $(AM_MAKEFLAGS)
-
-nw:
-	cd src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/lglib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/fflib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/nw && $(MAKE) $(AM_MAKEFLAGS)
-
-bamg:
-	cd src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/lglib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/fflib && $(MAKE) $(AM_MAKEFLAGS)
-	cd src/bamg && $(MAKE) $(AM_MAKEFLAGS)
-
-ide:
-	cd src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	cd download && $(MAKE) $(AM_MAKEFLAGS) 
-	cd src/lglib && $(MAKE) $(AM_MAKEFLAGS) 
-	cd src/fflib && $(MAKE) $(AM_MAKEFLAGS) 
-	cd src/ide && $(MAKE) $(AM_MAKEFLAGS) FreeFem++-cs$(EXEEXT)
-
-# Cleaning generated files which are stored in the CVS repository, to
-# avoid technical CVS conflicts.
-clean-gen:
-	./cleanregen.sh
-
-# Testing
-# -------
-
-# The standard automake goal "make check" is also valid. It just does
-# not run any test that could prevent the user from working on its
-# machine (because of unexpected windows opening right in the middle
-# of the workspace).
-
-visualcheck: all
-	$(MAKE) $(AM_MAKEFLAGS) check VISUALCHECK=yes
-
-speedtest: all
-	cd examples++-other && $(MAKE) $(AM_MAKEFLAGS) check
-
-# Windows package
-# ---------------
-
-# Windows package script (for Inno Setup). We extract version
-# information from the Debian Changelog to get the package release
-# number as well.
-win32:WindowsPackage.iss
-	cd examples++-load;tar zxvf include.tar.gz;mkdir include-tmp;cp -Lr *.h include/* include-tmp
-WindowsPackage.iss: WindowsPackage.m4 configure.ac Makefile.am
-	m4 -DVERSION='$(VERSION)$(ADD_PACKAGE_NAME)' \
-	-DMPIPROG='$(MPIPROG)' WindowsPackage.m4 > WindowsPackage.iss
-
-# Debian package
-# --------------
-
-deb:
-	dpkg-buildpackage -rfakeroot
-	@echo Now run CopyToServer.sh in debian subdirectory
-
-# Build all versions
-# ------------------
-
-nativeX: $(FF_MAC_PREFIX)_MacOsX.tgz 
-	echo "done"
-MacOsX: 
-	-rm -rf  OsXxx
-	mkdir -p  OsXxx/Applications/
-	make install DESTDIR="`pwd`/OsXxx"
-	tar zxvf FreeFem++.app.tgz -C OsXxx/Applications/
-	cd OsXxx;tar cvfz  ../$(FF_MAC_PREFIX)_MacOsX.tgz .
-	rm -rf OsXxx
-clean-local::
-	-rm freefem++-$(VERSION).tar.gz
-	-rm -rf FreeFem++v*_MacOS
-
-# Native MacOS packaging
-# ----------------------
-install-exec-local:: 
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(pkgdatadir)/$(VERSION)
-	tar cvf - $(FF_EXAMPLES_FILES)| (cd $(DESTDIR)$(pkgdatadir)/$(VERSION); tar xvf -)
-	$(mkinstalldirs) -m 755 $(DESTDIR)${bindir}
-	-test `uname` = Darwin && $(INSTALL_SCRIPT) FreeFem++-CoCoa  $(DESTDIR)${bindir}
-
-ListFiles-natives: .FORCE 
-	echo $(FF_EXAMPLES_FILES) >$@
-	echo ./download/fftw/Makefile ./download/fftw/Makefile.am  >>$@
-	find .  -name '*.[ei]dp' -o -name '*.h*' -o -name '*.cpp' -o -name '*.pgm'  |egrep  '[.]/examples++' >>$@
-	find .   -name '*.h*' -o -name '*.cpp'  |egrep  '[.]/examples++' >>$@
-List-agl-dylib: src/nw/FreeFem++
-	otool -L src/nw/FreeFem++|egrep -v '/System/Library/|/usr/lib/'|awk '/.dylib/ {print $$1}' >$@
-CheckMacLib.sh: src/nw/FreeFem++
-	echo "for i in `otool -L src/nw/FreeFem++|egrep -v '/System/Library/|/usr/lib/'|awk '/.dylib/ {printf($$1.OFS)  }'` ; do test ! -f $$i && exit 1; done; exit 0"  >$@
-	chmod a+x $@
-CheckMPIMacLib.sh: src/mpi/FreeFem++-mpi
-	echo "for i in `otool -L src/mpi/FreeFem++-mpi|egrep -v '/System/Library/|/usr/lib/'|awk '/.dylib/ {printf($$1.OFS)  }'` ; do test ! -f $$i && exit 1; done; exit 0"  >$@
-	chmod a+x $@
-.FORCE:
-
-$(FF_MAC_PREFIX)_Macos:documentation ListFiles-natives
-	-mkdir $@ 
-	cat ListFiles-natives|xargs tar chf - | (cd $@ ; tar xf - )  
-	/Developer/Tools/CpMac "FreeFem++(Carbon)" $@/FreeFem++ 
-	cp   DOC/freefem++-doc.pdf $@
-
-$(FF_MAC_PREFIX)_MacOsX: all documentation  ListFiles-natives List-agl-dylib
-	-mkdir $@ 
-	cp   DOC/freefem++doc.pdf $@
-	cat ListFiles-natives|xargs tar chf - | (cd $@ ; tar xf - )  
-	cd  $@ ; tar zxf ../src/agl/FreeFem++.app.tgz
-	sed <src/agl/Info-plist.am >$@/FreeFem++.app/Contents/Info.plist \
-           -e "s/@VVERSION@/$(VERSION)$(ADD_PACKAGE_NAME)/g" \
-           -e "s/@DATE@/`date`/g"  
-	cp src/nw/FreeFem++ $@/FreeFem++.app/Contents/bin
-	cp src/nw/ffglut $@/FreeFem++.app/Contents/bin
-	cp src/medit/ffmedit $@/FreeFem++.app/Contents/bin
-	cp examples++-load/ff-get-dep  $@/FreeFem++.app/Contents/bin
-	cp examples++-load/ff-pkg-download  $@/FreeFem++.app/Contents/bin
-	sed <examples++-load/ff-c++ > $@/FreeFem++.app/Contents/bin/ff-c++ 	-e 's;FFAPPLI_INC;$@/FreeFem++.app/Contents/include;' 
-	chmod a+x $@/FreeFem++.app/Contents/bin/ff-c++
-	-mkdir $@/FreeFem++.app/Contents/include 
-	-mkdir $@/FreeFem++.app/Contents/idp 
-	cp examples++-load/include/* $@/FreeFem++.app/Contents/include
-	cp examples++-load/*.dylib  $@/FreeFem++.app/Contents/lib
-	cp examples++-*/*.idp  $@/FreeFem++.app/Contents/idp       
-	-if [ -s List-agl-dylib ]; then tar zchvf $@/OtherMacOsLib.tgz `cat List-agl-dylib`; fi; 
-	./config.status  --file=$@/Install-MacOS.command:Install-MacOS.command.in
-	chmod a+rx $@/Install-MacOS.command
-	-mkdir $@/FreeFem++.app/Contents/etc
-	echo loadpath += \"./\"  >$@/FreeFem++.app/Contents/etc/freefem++.pref
-	echo loadpath += \"$(ff_prefix_dir)/lib\"  >>$@/FreeFem++.app/Contents/etc/freefem++.pref
-	echo includepath += \"$(ff_prefix_dir)/edp\"  >>$@/FreeFem++.app/Contents/etc/freefem++.pref
-	echo includepath += \"$(ff_prefix_dir)/idp\"  >>$@/FreeFem++.app/Contents/etc/freefem++.pref
-
-$(FF_MAC_PREFIX)_MacOsX.tgz: $(FF_MAC_PREFIX)_MacOsX
-	tar zcvf $(FF_MAC_PREFIX)_MacOsX.tgz  $(FF_MAC_PREFIX)_MacOsX
-
-linux-package: $(PACKAGE_NAME).tgz
-
-# No direct dependency to "all" to be able to debug the packaging
-# procedure on its own.
-
-$(PACKAGE_NAME):  ListFiles-natives
-	cat ListFiles-natives|xargs tar cfh - | (cd $@ ; tar xf - )  
-	-mkdir $@ 
-	cp src/std/FreeFem++ $@
-	./copysharedlibs.sh src/std/FreeFem++ $@
-	cp src/nw/FreeFem++-nw $@
-	./copysharedlibs.sh src/nw/FreeFem++-nw $@
-	cp src/ide/FreeFem++-cs $@
-	./copysharedlibs.sh src/ide/FreeFem++-cs $@
-	cp src/ide/FreeFem++-server $@
-	./copysharedlibs.sh src/ide/FreeFem++-server $@
-	cp src/ide/FreeFem++-client $@
-	./copysharedlibs.sh src/ide/FreeFem++-client $@
-	-cp src/glx/FreeFem++-glx $@
-	-./copysharedlibs.sh src/glx/FreeFem++-glx $@
-	-cp src/mpi/FreeFem++-mpi $@
-	-./copysharedlibs.sh src/mpi/FreeFem++-mpi $@
-
-$(PACKAGE_NAME).tgz: $(PACKAGE_NAME)
-	tar cvzf $@ $<
-
-clean-local::
-	-rm -r $(PACKAGE_NAME) $(PACKAGE_NAME).tgz
-autofiles:AutoGeneratedFile.tar.gz
-
-AutoGeneratedFile.tar.gz:configure List_generate_file Makefile.in Makefile.am  configure.ac
-	tar cvfz $@  `cat List_generate_file`
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/README_MAC.orig b/README_MAC.orig
deleted file mode 100644
index 8d55bf7..0000000
--- a/README_MAC.orig
+++ /dev/null
@@ -1,107 +0,0 @@
-To compile a full version of FreeFem++ under MacOS 
----------------------------------------------------
-
-Under Mavericks (10.9)  2012 ( xcode 5.0.2 form scratch)
--------------------------------------------------
- remark: All line beginning by # are  shell command in terminal. 
- 
-
- 1) install xcode 5.0.2 , and the xcode command line tools  
-    xcode 
-    install Auxiliary Tools for Xcode (for PackageMaker)
- 2) install xcode command line  (xcode 5.0.2  bug ???? ) 
-  # xcode-select --install  
- 2) install  gcc-4.9 form http://hpc.sourceforge.net
-  # curl -O http://prdownloads.sourceforge.net/hpc/gfortran-4.9-bin.tar.gz?download
-  # sudo tar zxvf gfortran-4.9-bin.tar.gz -C /
- 3) autoconf and automake now not in xcode
-   I use the macport distribution form http://www.macports.org
-  # sudo port install  autoconfo
-  # sudo port install  automake
-  Or with  brew tool ... 
- 4) install tex  from  ctan 
-   http://mirrors.ctan.org/systems/mac/mactex/MacTeX.pkg
- 5) install openmpi form the source 
- http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.5.tar.bz2
-  #  ./configure 'CC=clang' 'CXX=clang++' 'FC=gfortran' 'F77=gfortran' --enable-ltdl-convenience
-  # make 
-  # sudo make install
- 6) install gsl 
-  # curl -O http://ftp.gnu.org/gnu/gsl/gsl-1.15.tar.gz
-  # tar zxvf gsl-1.15.tar.gz
-  # cd gsl-1.15.
-  #./configure CC=clang
-  # make
-  # sudo make install 
- 7) install mecurial from the web http://mercurial.selenic.com
-    
- 8)  download  
-  # hg clone  http://www.freefem.org/ff++/ff++
- 9)  compilation of freefem++ 
-  # cd ff++
-  # ./configure '-with-suffix=macos-10.9' '-without-fltk' '--enable-download' '--enable-optim' 'MPIRUN=/usr/local/bin/mpirun' '--enable-m64' '--without-x' 'CC=clang' 'CXXFLAGS=-std=c++11' 'CXX=clang++' 'F77=/usr/local/bin/gfortran' 'FC=/usr/local/bin/gfortran' 'MPICXX=/usr/local/bin/mpic++' 'MPICC=/usr/local/bin/mpicc' 'MPIFC=/usr/local/bin/mpif90' 'MPIF77=/usr/local/bin/mpif90' '--enable-maintainer-mode'
-
-  # make
-  # make
-  # make 
-  # sudo make install 
-
-to bluid the version of 10.8  the version compilation (fev. 2014)
-
-./configure '-with-suffix=macos-10.8' '-without-fltk' '--enable-download' '--enable-optim' 'MPIRUN=/usr/local/bin/mpirun' '--enable-m64' '--without-x' 'CC=clang -isysroot /Applications/Xcode.app//Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk' 'CXXFLAGS=-mmacosx-version-min=10.8' 'CXX=clang++ -std=c++11 -isysroot /Applications/Xcode.app//Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk' 'CFLAGS=-mmacosx-version-min=10.8' 'F77=/usr/loc [...]
-
-------------
-Under Snow Leopard.  Jan 2011
-
-The major problem is take a good f90 to compile new // solver like MUMPS.
-
-Do the follow  instalation process:
-0)  Install the developper tools form the apple DVD's.
-
-1) get macport for http://www.macports.org/  and installation:
-
-  sudo port selfupdate 
-  sudo port install g95
-  sudo port install wget
-
-2) get and install  mercurial form
-   http://mercurial.selenic.com/
-
-3) to  compile  openmpi  with fortran interface  and install
- do :
-
-wget http://www.open-mpi.org/software/ompi/v1.4/downloads/openmpi-1.4.3.tar.bz2
-
-remark, I have test with version 1.4.1 , but I thing no problem acure  with this new version
-
- tar zxvf openmpi-1.4.3.tar.bz2
- cd openmpi-1.4.3
- ./configure FC=/opt/local/bin/g95 F77=/opt/local/bin/g95 
- sudo make install 
- 
-4) get Tex/laTex for the documention build 
-form http://www.tug.org/mactex/
-and install
-
-5) to get download the last freefem++ version , do
-  
-hg clone  http://www.freefem.org/ff++/ff++
-cd ff++ 
-
-./configure '-with-suffix=snow-leopard' '--enable-download' 'F77=/opt/local/bin/g95' '-with-mpi=/usr/local/bin/mpic++' '--enable-m64' 'FLIBS=/opt/local/lib/g95/x86_64-apple-darwin10/4.2.4/libf95.a' 'MPIF77=/usr/local/bin/mpif77' 'MPICC=/usr/local/bin/mpicc' 'MPIFC=/usr/local/bin/mpif90' 'MPI_INC_DIR=/usr/local/include' 'MPICXX=/usr/local/bin/mpic++'
-
-make 
-make install
-
-Good Luck, and  if I miss something sorry,
- try to add  missing tools with 
-sudo port install missing-tool
-like for exemple:
-
-<<<<<<< HEAD
-sudo port install gnuplot
-
-sudo  install_name_tool -change /Users/hecht/ff/ff-MacOS-10.9/download/PETSc/petsc-3.5.2/arch-darwin-c-debug/lib/libparmetis.dylib /usr/local/petsc/lib/libparmetis.dylib libpetsc.3.5.dylib
-=======
-sudo port install gnuplot
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/acmacros.m4.orig b/acmacros.m4.orig
deleted file mode 100644
index c9fcbd9..0000000
--- a/acmacros.m4.orig
+++ /dev/null
@@ -1,46 +0,0 @@
-# Checks whether a compiler accepts a given flag
-# ----------------------------------------------
-
-# $1 = compiler name
-# $2 = flag
-# $3 = make macro containing flags for that compiler
-<<<<<<< HEAD
-# $4 =  exec is true ..
-=======
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-# Note: changes AC_LANG()
-
-AC_DEFUN([CHECK_COMPILE_FLAG],
-	[AC_MSG_CHECKING(whether the $1 compiler accepts $2)
-	check_save_flags="$$3"
-	AC_LANG_PUSH($1)
-	$3="$$3 $2"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	AC_LINK_IFELSE([ifelse($1,Fortran 77,
-[       program x
-       end],
-			[AC_LANG_PROGRAM])],
-		check_flag_ok=yes,
-		check_flag_ok=no)
-	AC_MSG_RESULT($check_flag_ok)
-	if test "$check_flag_ok" = no;
-	then
-		$3="$check_save_flags"
-	fi
-<<<<<<< HEAD
-	if test -n "$4" ;
-         then 
-	        $4="$check_flag_ok"
-	fi
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-	AC_LANG_POP($1)
-])
diff --git a/acmpi.m4.orig b/acmpi.m4.orig
deleted file mode 100644
index 76c67d5..0000000
--- a/acmpi.m4.orig
+++ /dev/null
@@ -1,429 +0,0 @@
-# Checking wether we can produce a parallel version
-# -------------------------------------------------
-
-dnl m4_include(ax_mpi.m4)
-ff_save_path="$PATH"
-# We need to choose between mpich, openmpi  and lam for the Debian package
-AC_ARG_WITH(mpipath,[  --with-mpipath= the path of mpich under windows (no command  mpic++, ... )])
-AC_ARG_WITH(mpilibs,[  --with-mpilibs= the libs to add to c++,fc, ... (to link with c++ - ex:   -L/usr/local/lib -lmpi_f90  -lmpi_cxx -lmpi -lopen-rte -lopen-pal -lutil) ])
-AC_ARG_WITH(mpilibsc,[  --with-mpilibsc= the libs to add to c  ... (to link with cc (for pastix lib)  ex:   -L/usr/local/lib -lmpi -lopen-rte -lopen-pal -lutil) ])
-AC_ARG_WITH(mpiinc,[  --with-mpiinc= the include directory directive and preprocess directive  (no mpicc++, just use the compiler)) ])
-AC_ARG_WITH(mpi,[  --with-mpi=[yes|no|mpic++|lam|mpich|openmpi|/usr/local/bin/mpic++|... ]	or --without-mpi	Choose MPI implementation (default is mpic++)])
-if test "$with_mpi" != no ; then  
-#if test "$with_mpi" != no ; then
-#AX_MPI(with_mpi=yes, with_mpi=no)
-#fi
-
-# Default is mpic++ 
-ff_mpi_suffix="";
-if test "$with_mpi" = yes -o -z "$with_mpi" 
-then
-   ff_mpicxx=mpic++
-else 
-  case "$with_mpi" in
- lam|mpich|openmpi)   ff_mpi_suffix=.$with_mpi;ff_mpicxx=mpic++.$with_mpi;;
- *)  ff_mpicxx="$with_mpi" ;;
- esac
-fi
-
-dnl AC_MSG_NOTICE([ xxxxxxxxxxxxxxxxxxxx --$with_mpilibs--]);
-if test -n "$with_mpiinc"  -a "$with_mpiinc" != no ; then
-  if test  "$with_mpi" = 'no' ; then with_mpi='yes'; fi
-  ff_MPI_INCLUDE="$with_mpiinc"
-fi
-if test -n "$with_mpilibs" -a "$with_mpilibs" != no ; then
-    ff_MPI_LIB="$with_mpilibs"
-    ff_MPI_LIBC="$with_mpilibs"
-    ff_MPI_LIBFC="$with_mpilibs"
-    MPICXX="$CXX $ff_MPI_INCLUDE"
-    MPIF77="$F77 $ff_MPI_INCLUDE"
-    MPIFC="$FC  $ff_MPI_INCLUDE"
-    MPICC="$CC  $ff_MPI_INCLUDE"
-    AC_MSG_NOTICE([   ---  set  all MPI compile to compiler:   $MPICC , $MPIF77, $MPIFC, $MPICC  ])
-fi
-
-if test -n "$with_mpilibsc" -a "$with_mpilibsc" != no ; then
- ff_MPI_LIBC="$with_mpilibsc"
-fi
-
-AC_ARG_VAR(MPIRUN,[MPI run command ])
-AC_MSG_CHECKING(for MPIRUN)
-
-if test -z "$MPIRUN" ; then
-    AC_PATH_PROGS(MPIRUN,mpirun mpiexec mpiexec.exe,no)
-    if test "$MPIRUN" = no
-    then
-	ff_mpi=no
-    fi
-fi
-AC_MSG_RESULT($MPIRUN)
-
-AC_MSG_CHECKING(for mpipath )
-	
-<<<<<<< HEAD
-if test "$with_mpi" != no -a ! -d  "$with_mpipath" -a "$MPIRUN" != no ; then 
-#   if "$MPIRUN" != no ; tehn 
-    with_mpipath=`AS_DIRNAME(["$MPIRUN"])`
-    with_mpipath=`AS_DIRNAME(["$with_mpipath"])`
-#    echo " ***** with_mpipath $with_mpipath \n"
-
-=======
-if test "$with_mpi" != no -a ! -d  "$with_mpipath" -a "$ff_win32" = yes -a "$MPIRUN" != no ; then 
-#   if "$MPIRUN" != no ; tehn 
-    with_mpipath=`AS_DIRNAME(["$MPIRUN"])`
-    with_mpipath=`AS_DIRNAME(["$with_mpipath"])`
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-#    else 
-#    for i in '/c/Program Files (x86)/MPICH2' '/c/Program Files/MPICH2' 'c:\Program Files (x86)\MPICH2' 'c:\Program Files\MPICH2' ; do
-#	test -d "$i" &&  with_mpipath="$i" && break 
-#    done
-#    fi
-fi
-<<<<<<< HEAD
-#echo "****  with_mpipath  '$with_mpipath' $MPIRUN *****"
-dnl if test "$with_mpilibs" != "no" ; then
-dnl fi
-case "$MPIRUN" in
- */sgi/mpt/*) 
-	ff_MPI_INCLUDE_DIR=
-	ff_MPI_LIB_DIR=
-        test -f "$with_mpipath/include/mpif.h" &&  ff_MPI_INCLUDE_DIR="$with_mpipath/include"
-        test -f "$with_mpipath/lib/libmpi.so" &&  ff_MPI_LIB_DIR="$with_mpipath/lib"
-        if test -n "$ff_MPI_INCLUDE_DIR" -a -n "$ff_MPI_LIB_DIR" ; then 
-            ff_MPI_INCLUDE="-I'$ff_MPI_INCLUDE_DIR' "
-            with_mpiinc="$ff_MPI_INCLUDE"
-            ff_MPI_LIBC="-L'$ff_MPI_LIB_DIR' -lmpi"
-            ff_MPI_LIB="-L'$ff_MPI_LIB_DIR' -lmpi++ -lmpi"
-            ff_MPI_LIBFC="-L'$ff_MPI_LIB_DIR'  -lmpi"
-	    ff_mpitype=sgi 
-            test -z "$MPICXX" && MPICXX="$CXX $ff_MPI_INCLUDE"
-            test -z "$MPIF77" && MPIF77="$F77 $ff_MPI_INCLUDE"
-            test -z "$MPIFC"  && MPIFC="$FC  $ff_MPI_INCLUDE"
-            test -z "$MPICC"  && MPICC="$CC  $ff_MPI_INCLUDE"
-#	    echo " *** MPI sgi ..... "
-        fi
-	;;
-esac
-=======
-
-dnl if test "$with_mpilibs" != "no" ; then
-dnl fi
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    
-if test  -d "$with_mpipath" -a "$ff_win32" = yes  ; then
-#    sed -e "s?@MPIDIR@?$with_mpipath?" -e "s?@F77@?$F77?" -e "s?@CC@?$CC?" -e "s?@CXX@?$CXX?"   -e "s?@FC@?$FC?"  <mpic++.in >mpic++
- #   chmod a+rx mpic++ 
-  #  for i in mpicc mpif90 mpifc mpif77 ; do cp mpic++ $i; done 
-#    ff_pwd=`pwd`
- #   with_mpi="$ff_pwd"/mpic++
- #   MPICXX="$ff_pwd/mpic++"
- #   MPIF77="$ff_pwd/mpif77"
- #   MPIFC="$ff_pwd/mpif90"
- #   MPICC="$ff_pwd/mpicc" zzzzzzzzzzz   
-    if  with_mpilibs=`which msmpi.dll` 
-    then
-	case "$ff_size_ptr"  in 
-	    4) with_mpipathlib="$with_mpipath/Lib/i386";;
-	    8) with_mpipathlib="$with_mpipath/Lib/amd64";;
-	    *) with_mpipath=no;;
-	esac
-	
-	
-	test -d "$with_mpipath/Inc" &&  ff_MPI_INCLUDE_DIR="$with_mpipath/Inc"
-	test -d "$with_mpipath/Include" &&  ff_MPI_INCLUDE_DIR="$with_mpipath/Include"
-	ff_MPI_INCLUDE="-I'$ff_MPI_INCLUDE_DIR' '-D_MSC_VER' '-D__int64=long long'"
-	with_mpiinc="$ff_MPI_INCLUDE"
-	test -z "$MPIRUN" && MPIRUN="$with_mpipath/bin/mpiexe.exe"
-	ff_MPI_LIBC="$with_mpilibs"
-	ff_MPI_LIB="$with_mpilibs"
-	ff_MPI_LIBFC="$with_mpilibs"
-	test -z "$MPICXX" && MPICXX="$CXX $ff_MPI_INCLUDE"
-	test -z "$MPIF77" && MPIF77="$F77 $ff_MPI_INCLUDE"
-	test -z "$MPIFC"  && MPIFC="$FC  $ff_MPI_INCLUDE"
-	test -z "$MPICC"  && MPICC="$CC  $ff_MPI_INCLUDE"
-    else
-	echo " #### no msmpi.dll  => no mpi under windows .... (FH) " >&AS_MESSAGE_LOG_FD
-	echo " #### no msmpi.dll  => no mpi under windows .... (FH) " >&AS_MESSAGE_FD
-	with_mpipath=no
-	with_mpi=no
-    fi
-else 
-    with_mpipath=no	   
-fi
-
-
-AC_MSG_RESULT($ff_mpi_path)
-
-
-
-
-dnl  correct ff_mpi_path august 2010 -- FH ...  
-
-
-ff_save_cxx="$CXX"
-ff_save_libs="$LIBS"
-
-
-if test "$with_mpi" != no
-then
-	ff_mpi_path=`AS_DIRNAME(["$MPIRUN"])`
-<<<<<<< HEAD
-	dnl	echo "ff_mpi_path '$ff_mpi_path' .............."
-	case "$ff_mpi_path" in
-	    .|"") ff_mpi_path="$PATH";ff_defmpicxx="$ff_mpicxx";;
-	    *) ff_mpi_path="$ff_mpi_path";ff_defmpicxx=`expr "//$ff_mpicxx" : '.*/\(.*\)'`;; 
-	    dnl if also  add $PATH they  could be missing some different mpi version... 
-=======
-dnl	echo "ff_mpi_path '$ff_mpi_path' .............."
-	case "$ff_mpi_path" in
-	    .|"") ff_mpi_path="$PATH";ff_defmpicxx="$ff_mpicxx";;
-	    *) ff_mpi_path="$ff_mpi_path";ff_defmpicxx=`expr "//$ff_mpicxx" : '.*/\(.*\)'`;; 
-dnl if also  add $PATH they  could be missing some different mpi version... 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	esac	 
-	AC_ARG_VAR(MPICXX,[MPI C++ compiler command])
-	if test -z "$MPICXX" ; then
-	    AC_PATH_PROGS(MPICXX,$ff_defmpicxx mpic++$ff_mpi_suffix mpicxx$ff_mpi_suffix mpiCC$ff_mpi_suffix mpCC hcp mpxlC mpxlC_r cmpic++,no,$ff_mpi_path)
-	    AC_MSG_CHECKING(for MPICXX)
-	fi
-	ff_mpicxx="eval $MPICXX"
-	CXX=$ff_mpicxx
-	LIBS="$LIBS $ff_MPI_LIB"
-<<<<<<< HEAD
-	test -z "$ff_mpi" && ff_mpi=yes
-	AC_LINK_IFELSE(
-	    [AC_LANG_SOURCE([
-=======
-	
-	AC_LINK_IFELSE(
-[AC_LANG_SOURCE([
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-#include <mpi.h>
-#include <stdio.h>
-int main(int argc,char **argv){
-  char name[[BUFSIZ]];
-  int length;
-  
-  MPI_Init(&argc, &argv);
-  MPI_Get_processor_name(name, &length);
-  printf("%s: hello world\n", name);
-  MPI_Finalize();
-  return 0;
-<<<<<<< HEAD
-}])],ff_mpi=yes,ff_mpi=no)
-=======
-}])],
-ff_mpi=yes,
-ff_mpi=no)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	AC_MSG_RESULT($ff_mpi)
-
-	# Also check that mpirun is there. If it isn't, then MPI is
-	# not fully installed.
-
-
-	if test "$ff_mpi" = yes;
-	then
-
-AC_MSG_CHECKING( MPI_DOUBLE_COMPLEX)
-
-	AC_COMPILE_IFELSE(
-[AC_LANG_SOURCE([
-#include <mpi.h>
-MPI_Datatype xxxx=MPI_DOUBLE_COMPLEX;
-])],
-ff_mpi_double_complex=yes,
-ff_mpi_double_complex=no)
-	AC_MSG_RESULT($ff_mpi_double_complex)
-if test "$ff_mpi_double_complex" = yes  ; then
-AC_DEFINE(HAVE_MPI_DOUBLE_COMPLEX,1, mpi_double_complex)
-fi
-
-
-	  echo "MPI CC $ff_mpi" >config_LIB_INFO
-
-		# We do not AC_DEFINE any special flag for parallel
-		# computation here, because it must only be set when the
- 		# parallel program is compiled (see src/mpi/Makfile.am)
-		ff_mpiprog="FreeFem++-mpi${EXEEXT}"
-   		  AC_SUBST(MPIPROG,"$ff_mpiprog")
-   		  AC_SUBST(MPISCRIPT,"ff-mpirun")
-   		  AC_SUBST(MPIRUN,$MPIRUN)
-                  AC_SUBST(MPICXX,$MPICXX)
-	else
-	        AC_SUBST(MPICXX,$ff_save_cxx)
-	fi
-
-	if test "$ff_mpi" = yes;
-	then
-	  if test "$enable_fortran" != no
-	  then	
-	      
-	      AC_ARG_VAR(MPIF77,[MPI Fortran 77 compiler command])
-	      if test -z "$MPIF77" ; then    
-		  AC_PATH_PROGS(MPIF77, mpif90$ff_mpi_suffix mpif77$ff_mpi_suffix hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c, "",$ff_mpi_path)
-	      fi
-	      AC_SUBST(MPIF77)
-	      AC_ARG_VAR(MPIFC,[MPI Fortran 90  compiler command])
-	      if test -z "$MPIFC" ; then
-		  AC_PATH_PROGS(MPIFC, mpif90$ff_mpi_suffix mpxlf95_r mpxlf90_r mpxlf95 mpxlf90 mpf90 cmpif90c, "",$ff_mpi_path)
-	      fi		
-	      AC_SUBST(MPIFC)
-	  fi
-
-<<<<<<< HEAD
-	echo " ********************ffmpi= '$ff_mpi' *************   "
-	ff_MPI_INCLUDE="$with_mpiinc"
-	if test -z "$ff_mpitype" ; then 
-            ff_mpishow=`$MPICXX -show` 2>/dev/null
-            ff_mpicshow=`$MPICC -show` 2>/dev/null
-            ff_mpifcshow=`$MPIFC -show` 2>/dev/null
-	    if test "$with_mpilibs" = no -o -z "$with_mpilibs" ; then	 
-		[ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[^WLlOgp]|^-Wp,'|tr '\n' ' '`]
-		ff_MPI_LIB_DIRS=""
-		[ff_MPI_LIB=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`]
-		[ff_MPI_LIBC=`echo $ff_mpicshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`]
-		[ff_MPI_LIBFC=`echo $ff_mpifcshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|grep -v 'commons,use_dylibs' |tr '\n' ' '`]
-		[ff_mpi_idir=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-I'|sed s/^-I//|tr '\n' ' '`' /usr/include']
-	    fi
-	    [ff_mpi_idir=`echo $ff_MPI_INCLUDE|tr ' ' '\n'| grep -E '^-I'|sed s/^-I//|tr '\n' ' '`' /usr/include']
-	    [ff_mpi_ldir=`echo $ff_MPI_LIB|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|sed -e 's/^-[Llp]//' -e 's/^-Wl,]//'  |tr '\n' ' '`' /usr/lib']
-	    
-	    if  test -z "$ff_MPI_INCLUDE_DIR" ; then  
-		for i in $ff_mpi_idir; do
-		    if test -f "$i/mpi.h" -a -z "$ff_MPI_INCLUDE_DIR"  ;then
-			ff_MPI_INCLUDE_DIR=$i
-		    fi
-		done
-	    fi
-	    for i in $ff_mpi_ldir; do
-		ff_tmp=`ls $i/libmpi.*|head -1`
-		if test  -f "$ff_tmp"  -a -z "$ff_MPI_LIB_DIRS"  ;then
-		    ff_MPI_LIB_DIRS=$i
-		fi
-	    done
-	fi
-	AC_SUBST(MPICXX,$MPICXX)		
-	AC_ARG_VAR(MPICC,[MPI C compiler command in $ff_mpi_path])
-	if test -z "$MPICC" ; then		
-	    AC_PATH_PROGS(MPICC,mpicc$ff_mpi_suffix hcc mpcc mpcc_r mpxlc cmpicc, "",$ff_mpi_path)
-	fi
-	AC_SUBST(MPICC,$MPICC)
-	AC_SUBST(PASTIX_HOSTARCH,$ff_HOSTARCH_pastix)
-
-	if test ! -f "$ff_MPI_INCLUDE_DIR/mpif.h"  ; then
-	    AC_MSG_NOTICE([ MPI without fortran no file "$ff_MPI_INCLUDE_DIR/mpif.h"  ])
-	else
-	    if test -n "$MPIFC" ; then
-	        AC_FF_ADDWHERELIB(mpifc,$ff_MPI_LIBFC,$ff_MPI_INCLUDE)
-	        AC_FF_ADDWHERELIB(mpif77,$ff_MPI_LIBFC,$ff_MPI_INCLUDE)
-=======
-
-	ff_MPI_INCLUDE="$with_mpiinc"
-        ff_mpishow=`$MPICXX -show` 2>/dev/null
-        ff_mpicshow=`$MPICC -show` 2>/dev/null
-        ff_mpifcshow=`$MPIFC -show` 2>/dev/null
-	if test "$with_mpilibs" = no -o -z "$with_mpilibs" ; then	 
-	      [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[^WLlOgp]|^-Wp,'|tr '\n' ' '`]
-	      ff_MPI_LIB_DIRS=""
-	      [ff_MPI_LIB=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`]
-	      [ff_MPI_LIBC=`echo $ff_mpicshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`]
-	      [ff_MPI_LIBFC=`echo $ff_mpifcshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|grep -v 'commons,use_dylibs' |tr '\n' ' '`]
-	      [ff_mpi_idir=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-I'|sed s/^-I//|tr '\n' ' '`' /usr/include']
-	  fi
-	    [ff_mpi_idir=`echo $ff_MPI_INCLUDE|tr ' ' '\n'| grep -E '^-I'|sed s/^-I//|tr '\n' ' '`' /usr/include']
-	    [ff_mpi_ldir=`echo $ff_MPI_LIB|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|sed -e 's/^-[Llp]//' -e 's/^-Wl,]//'  |tr '\n' ' '`' /usr/lib']
-	  
-	  if  test -z "$ff_MPI_INCLUDE_DIR" ; then  
-	  for i in $ff_mpi_idir; do
-	      if test -f "$i/mpi.h" -a -z "$ff_MPI_INCLUDE_DIR"  ;then
-		  ff_MPI_INCLUDE_DIR=$i
-	      fi
-	  done
-	  fi
-	  for i in $ff_mpi_ldir; do
-	      ff_tmp=`ls $i/libmpi.*|head -1`
-	      if test  -f "$ff_tmp"  -a -z "$ff_MPI_LIB_DIRS"  ;then
-		  ff_MPI_LIB_DIRS=$i
-	      fi
-	      done
-	  
-	  AC_SUBST(MPICXX,$MPICXX)		
-	  AC_ARG_VAR(MPICC,[MPI C compiler command in $ff_mpi_path])
-	  if test -z "$MPICC" ; then		
-	      AC_PATH_PROGS(MPICC,mpicc$ff_mpi_suffix hcc mpcc mpcc_r mpxlc cmpicc, "",$ff_mpi_path)
-	  fi
-	  AC_SUBST(MPICC,$MPICC)
-	  AC_SUBST(PASTIX_HOSTARCH,$ff_HOSTARCH_pastix)
-
-	  if test ! -f "$ff_MPI_INCLUDE_DIR/mpif.h"  ; then
-	      AC_MSG_NOTICE([ MPI without fortran no file "$ff_MPI_INCLUDE_DIR/mpif.h"  ])
-	  else
-	      if test -n "$MPIFC" ; then
-	           AC_FF_ADDWHERELIB(mpifc,$ff_MPI_LIBFC,$ff_MPI_INCLUDE)
-	           AC_FF_ADDWHERELIB(mpif77,$ff_MPI_LIBFC,$ff_MPI_INCLUDE)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-dnl		  [echo mpifc LD "'$ff_MPI_LIBFC'"   >>$ff_where_lib_conf ]
-dnl		  [echo mpifc INCLUDE "'$ff_MPI_INCLUDE'" >>$ff_where_lib_conf ]
-dnl		  [echo mpif77 LD "'$ff_MPI_LIBFC'"   >>$ff_where_lib_conf ]
-dnl		  [echo mpif77 INCLUDE "'$ff_MPI_INCLUDE'" >>$ff_where_lib_conf ]
-<<<<<<< HEAD
-	    fi
-  	fi
-	if test -n "$MPICXX" ; then 	    
-            AC_FF_ADDWHERELIB(mpi,$ff_MPI_LIB,$ff_MPI_INCLUDE)
-dnl              [echo mpi LD "'$ff_MPI_LIB'"    >>$ff_where_lib_conf ]
-dnl              [echo mpi INCLUDE "'$ff_MPI_INCLUDE'" >>$ff_where_lib_conf ]
-	fi
-	AC_SUBST(MPI_INC_DIR,$ff_MPI_INCLUDE_DIR)      		
-	AC_SUBST(MPI_INCLUDE,$ff_MPI_INCLUDE)
-	AC_SUBST(MPI_LIB_DIRS,$ff_MPI_LIB_DIRS)
-	AC_SUBST(MPI_LIB,$ff_MPI_LIB)
-	AC_SUBST(MPI_LIBC,$ff_MPI_LIBC)
-	AC_SUBST(MPI_LIBFC,$ff_MPI_LIBFC)
-        AC_SUBST(SKIP_TESTS_MPI,"no")
-=======
-	      fi
-  	  fi
-	  if test -n "$MPICXX" ; then 	    
-              AC_FF_ADDWHERELIB(mpi,$ff_MPI_LIB,$ff_MPI_INCLUDE)
-dnl              [echo mpi LD "'$ff_MPI_LIB'"    >>$ff_where_lib_conf ]
-dnl              [echo mpi INCLUDE "'$ff_MPI_INCLUDE'" >>$ff_where_lib_conf ]
-	  fi
-	  AC_SUBST(MPI_INC_DIR,$ff_MPI_INCLUDE_DIR)      		
-	  AC_SUBST(MPI_INCLUDE,$ff_MPI_INCLUDE)
-	  AC_SUBST(MPI_LIB_DIRS,$ff_MPI_LIB_DIRS)
-	  AC_SUBST(MPI_LIB,$ff_MPI_LIB)
-	  AC_SUBST(MPI_LIBC,$ff_MPI_LIBC)
-	  AC_SUBST(MPI_LIBFC,$ff_MPI_LIBFC)
-          AC_SUBST(SKIP_TESTS_MPI,"no")
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	fi
-	CXX="$ff_save_cxx"
-	LIBS="$ff_save_libs"
-fi
-fi
-##  clean on MPI variable if not MPI ...
-if test "$ff_mpi" != yes ; then
-          
-	  AC_SUBST(MPIRUN,"")      		
-	  AC_SUBST(MPICC,"")      		
-	  AC_SUBST(MPICXX,"")      		
-	  AC_SUBST(MPIF77,"")      		
-	  AC_SUBST(MPIFC,"")      		
-	  AC_SUBST(MPI_INCLUDE,"")
-	  AC_SUBST(MPI_LIB_DIRS,"")
-	  AC_SUBST(MPI_LIB,"")
-	  AC_SUBST(MPI_LIBC,"")
-	  AC_SUBST(MPI_LIBFC,"")
-          AC_SUBST(SKIP_TESTS_MPI,"yes")
-	  ff_mpi=no
-
-fi
-
-# Local Variables:
-# mode:shell-script
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
diff --git a/acoptim.m4.orig b/acoptim.m4.orig
deleted file mode 100644
index 87bd0ad..0000000
--- a/acoptim.m4.orig
+++ /dev/null
@@ -1,258 +0,0 @@
-# Choosing debugging and/or optimization flags for compilation
-# ------------------------------------------------------------
-
-AC_ARG_ENABLE(profiling,[  --enable-profiling	Turn on profiling])
-if test "$enable_profiling" = yes
-then
-	CXXFLAGS="$CXXFLAGS -pg"
-	LDFLAGS="$LDFLAGS -pg"
-fi
-
-if test "$enable_m64" = yes -a "$enable_m32" 
-then
-  	    AC_MSG_ERROR([ Choose  32 or 64 architecture not the both ],1);  
-fi
-AC_ARG_ENABLE(m64,[  --enable-m64	Turn on 64 bits architecture])
-if test "$enable_m64" = yes
-then
-	ff_m64=-m64	
-        CHECK_COMPILE_FLAG(C,$ff_m64,CFLAGS)
-        CHECK_COMPILE_FLAG(C,$ff_m64,CNOFLAGS)
-	CHECK_COMPILE_FLAG(C++,$ff_m64,CXXFLAGS)
-	CHECK_COMPILE_FLAG(Fortran 77,$ff_m64,FFLAGS)	
-#  add -fPIC on on 64 architecture 
-        CHECK_COMPILE_FLAG(C,-fPIC,CFLAGS)
-	CHECK_COMPILE_FLAG(C++,-fPIC,CXXFLAGS)
-	CHECK_COMPILE_FLAG(Fortran 77,-fPIC,FFLAGS)	
-
-fi
-AC_ARG_ENABLE(m32,[  --enable-m32	Turn on 32 bits architecture])
-if test "$enable_m32" = yes 
-then
-	ff_m32=-m32	
-        CHECK_COMPILE_FLAG(C,$ff_m32,CFLAGS)
-        CHECK_COMPILE_FLAG(C,$ff_m32,CNOFLAGS)
-	CHECK_COMPILE_FLAG(C++,$ff_m32,CXXFLAGS)
-	CHECK_COMPILE_FLAG(Fortran 77,$ff_m32,FFLAGS)	
-#  add -fPIC on on 64 architecture 
-#        CHECK_COMPILE_FLAG(C,-fPIC,CFLAGS)
-#	CHECK_COMPILE_FLAG(C++,-fPIC,CXXFLAGS)
-#	CHECK_COMPILE_FLAG(Fortran 77,-fPIC,FFLAGS)	
-
-fi
-
-# Debug mode (no optimisation)
-# ----------------------------
-
-AC_MSG_CHECKING(whether to generate debugging information)
-
-AC_ARG_ENABLE(debug,[  --enable-debug	Turn on debug versions of FreeFem++])
-AC_ARG_ENABLE(optim,[  --enable-optim	Turn on compiler optimization])
-
-if test "$enable_debug" = yes;
-then
-
-	AC_MSG_RESULT(yes)
-	CFLAGS="`echo $CFLAGS | sed 's/-O2//g'`"
-	FFLAGS="`echo $FFLAGS | sed 's/-O2//g'`"
-	CXXFLAGS="`echo $CXXFLAGS | sed 's/-O2//g'`"
-        CHECK_COMPILE_FLAG(C,-g,CFLAGS)
-	CHECK_COMPILE_FLAG(C++,-g,CXXFLAGS)
-	CHECK_COMPILE_FLAG(Fortran 77,-g,FFLAGS)	
-
-else
-	AC_MSG_RESULT(no)
-
-	# No debugging information in optimized code
-
-	CFLAGS="$CFLAGS -DNDEBUG"
-	FFLAGS="$FFLAGS -DNDEBUG"
-	CXXFLAGS="$CXXFLAGS -DNDEBUG"
-fi
-
-# Hardware-independant optimization
-# ---------------------------------
-
-if test "$enable_debug" != yes -a "$enable_optim" != no;
-then
-	CHECK_COMPILE_FLAG(C,-O3,CFLAGS)
-	CHECK_COMPILE_FLAG(C++,-O3,CXXFLAGS)
-	CHECK_COMPILE_FLAG(Fortran 77,-O3,FFLAGS)
-fi
-
-AC_ARG_ENABLE(generic,
-[  --enable-generic	Turn off hardware-dependant optimization options])
-
-# FFCS: remove "-mcpu=common" to allow other hardware-dependant values of cpu for PowerPC - thank you Fred (20/02/11)
-
-if test $enable_ffcs = yes
-then
-    # Generic code
-    if test "$enable_debug" != yes \
-	-a "$enable_optim" != no \
-	-a "$enable_generic" = yes
-    then
-	CHECK_COMPILE_FLAG(C,-mcpu=common,CFLAGS)
-	CHECK_COMPILE_FLAG(C++,-mcpu=common,CXXFLAGS)
-	CHECK_COMPILE_FLAG(Fortran 77,-mcpu=common,FFLAGS)
-    fi
-fi
-
-# Hardware-dependant optimization
-# -------------------------------
-
-if test "$enable_debug" != yes \
-    -a "$enable_optim" != no \
-    -a "$enable_generic" != yes
-then
-
-# Autoconf always chooses -O2. -O2 in gcc makes some functions
-# disappear. This is not ideal for debugging. And when we optimize, we
-# do not use -O2 anyway.
-
-CFLAGS="`echo $CFLAGS | sed 's/-O2//g'`"
-FFLAGS="`echo $FFLAGS | sed 's/-O2//g'`"
-CXXFLAGS="`echo $CXXFLAGS | sed 's/-O2//g'`"
-
-    # MacOS X Darwin
-    if test -x /usr/bin/hostinfo
-	then
-        
-
-	# If we are on MacOS X to choise the optimisaztion 
-	AC_MSG_CHECKING(GCC version)
-
-        ff_gcc4=`$CC  --version |awk  ' NR==1 {print $3}'|sed -e 's/\..*$//'` 
-	ff_clang=`$CC  --version |awk  '/clang/  {print $4}'`
-	if test -n "$ff_clang" ; then ff_gcc4="llvm"; fi
-	AC_MSG_RESULT($ff_gcc4)
-
-	# At the moment, we do not know how to produce correct
-	# optimizated code on G5.
-	AC_MSG_CHECKING(PowerPC architecture)
-	ff_machine=`/usr/bin/machine`
-        ff_fast="-O3"
-	if test	-n "$ff_clang" ; then
-          ff_fast='-O3 -fPIC'
-	elif test `uname` = Darwin 
-	    then
-	    # Optimization flags: -fast option do not work because the
-	    # -malign-natural flags create wrong IO code
-            if test  "$ff_gcc4" -eq 4 
-	    then
-               ff_fast='-fast -fPIC'
-            else
-	      ff_fast='-fPIC -O3 -funroll-loops -fstrict-aliasing -fsched-interblock -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-jumps-max-skip=15 -falign-loops-max-skip=15 -ffast-math  -mpowerpc-gpopt -force_cpusubtype_ALL -fstrict-aliasing  -mpowerpc64 '
-	    fi
-	fi        
-
-
-        # CPU detection
-
-	case $ff_machine  in
-	  ppc7450) # G4
-		ff_fast="$ff_fast -mtune=G4 -mcpu=G4";;
-          ppc970) # G5 
-	        # remove -fstrict-aliasing on G5 to much optim the
-	        # code cash in GC
-		ff_fast="`echo $ff_fast -mtune=G5 -mcpu=G5| sed 's/-fstrict-aliasing //g'`";;
-          ppc*) # G3 ????
-	       ff_fast="-O3";;
-	  i486)
-	    ff_fast="-O3 $ff_fast";;
-<<<<<<< HEAD
-	  x86_64*)
-	  ff_fast="-O3 $ff_fast";;
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	  *)
-	    AC_MSG_ERROR(cannot determine apple cpu type )
-	    ff_fast="-O3";;
-	 esac
-
-
-	AC_MSG_RESULT($ff_fast)
-
-        CHECK_COMPILE_FLAG(C,$ff_fast,CFLAGS)
-	CHECK_COMPILE_FLAG(C++,$ff_fast,CXXFLAGS)
-	CHECK_COMPILE_FLAG(Fortran 77,$ff_fast,FFLAGS)
-
-
-    # Linux
-    elif test -f /proc/cpuinfo
-	then
-
-	# Specific processors
-	proc_type=unknown
-	ff_optim_type=
-	if test `grep 'Pentium III (Coppermine)' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=pentium3
-	    ff_optim_type=-P3
-	elif test `grep 'Intel(R) Pentium(R) III ' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=pentium3
-	    ff_optim_type=-P3
-	elif test `grep 'Intel(R) Pentium(R) 4 ' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=pentium4
-	    ff_optim_type=-P4
-	elif test `grep 'Intel(R) Xeon(TM) CPU' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=pentium4
-	    ff_optim_type=-P4
-	elif test `grep 'AMD Athlon(tm) Processor' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=athlon
-	    ff_optim_type=-Athlon
-	elif test `grep 'AMD Athlon(tm) XP' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=athlon-xp
-	    ff_optim_type=-AthlonXP
-	fi
-
-	if test "$proc_type" != unknown
-	    then
-	    CHECK_COMPILE_FLAG(C,-march=$proc_type,CFLAGS)
-	    CHECK_COMPILE_FLAG(C++,-march=$proc_type,CXXFLAGS)
-	    CHECK_COMPILE_FLAG(Fortran 77,-march=$proc_type,FFLAGS)
-	fi
-
-	# If we did not find a processor type (this happens with
-	# cygwin), try and select separate capabilities instead.
-
-	if test "$proc_type" = unknown
-	    then
-	    if test `grep -e '^flags.*mmx' /proc/cpuinfo|wc -l` -gt 0
-		then
-		CHECK_COMPILE_FLAG(C,-mmmx,CFLAGS)
-		CHECK_COMPILE_FLAG(C++,-mmmx,CXXFLAGS)
-		CHECK_COMPILE_FLAG(Fortran 77,-mmmx,FFLAGS)
-	    fi
-	    if test `grep -e '^flags.*sse ' /proc/cpuinfo|wc -l` -gt 0
-		then
-		CHECK_COMPILE_FLAG(C,-msse,CFLAGS)
-		CHECK_COMPILE_FLAG(C++,-msse,CXXFLAGS)
-		CHECK_COMPILE_FLAG(Fortran 77,-msse,FFLAGS)
-	    fi
-	    if test `grep -e '^flags.*sse2' /proc/cpuinfo|wc -l` -gt 0
-		then
-		CHECK_COMPILE_FLAG(C,-msse2,CFLAGS)
-		CHECK_COMPILE_FLAG(C++,-msse2,CXXFLAGS)
-		CHECK_COMPILE_FLAG(Fortran 77,-msse2,FFLAGS)
-	    fi
-	    if test `grep -e '^flags.*3dnow' /proc/cpuinfo|wc -l` -gt 0
-		then
-		CHECK_COMPILE_FLAG(C,-m3dnow,CFLAGS)
-		CHECK_COMPILE_FLAG(C++,-m3dnow,CXXFLAGS)
-		CHECK_COMPILE_FLAG(Fortran 77,-m3dnow,FFLAGS)
-	    fi
-	fi
-    fi
-fi
-
-# Defines a variable containing the optimization type, to be used in
-# binary archive names. It may be empty if only generic optimization
-# is used.
-
-AC_SUBST(OPTIM_TYPE,$ff_optim_type)
diff --git a/build/download.orig b/build/download.orig
deleted file mode 100755
index c701ce5..0000000
--- a/build/download.orig
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/bash -e
-# ======================================================================
-# Written by Antoine Le Hyaric
-# Laboratoire Jacques-Louis Lions
-# Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-# http://www.ljll.math.upmc.fr/lehyaric
-# ======================================================================
-# This file is part of Freefem++
-# 
-# Freefem++ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-# 
-# Freefem++  is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-# 
-# You should have received a copy of the GNU Lesser General Public
-# License along with Freefem++; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA
-# ======================================================================
-# headeralh freefem shellxe start=21/10/10 upmc
-
-# Download a file by whatever means available
-# -------------------------------------------
-
-# $1=url
-# $2=local name
-# $3=BAD_CERT if the SSL certificate of the web server is wrong
-
-if test -x /usr/bin/wget || test -x /opt/local/bin/wget
-then
-
-    opts=
-    if test "$3" = BAD_CERT
-    then
-	opts=--no-check-certificate
-    fi
-
-    # use no-verbose to avoid mixing several wget outputs together when called concurrently in
-    # [[file:../download/getall]]
-
-    wget "$1" --output-document="$2" --no-verbose $opts
-    ret=$?
-elif test -x /usr/bin/curl
-then
-<<<<<<< HEAD
-    curl -L "$1" --output "$2"
-=======
-    curl "$1" --output "$2"
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    ret=$?
-
-elif test -x /usr/bin/GET
-then
-    GET "$1" > "$2"
-    ret=$?
-else
-    echo FF download: No way to download files from the web
-    echo FF download: Please install wget or curl or GET
-exit 1
-fi
-if test "$ret" -eq 0 
-then
-  case `file $2` in
-  *zip*) exit 0 ;;
-  *) echo " incorrect file type => remove " $3;
-     rm $3; 
-    exit  1 ;;
-  esac    
-fi
-echo "Error download $3" ;
-exit $ret
-
-# Local Variables:
-# mode:shell-script
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
diff --git a/configure b/configure
deleted file mode 100755
index fd7b46d..0000000
--- a/configure
+++ /dev/null
@@ -1,20836 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for FreeFem++ 3.35.
-#
-# Report bugs to <hecht at ann.jussieu.fr>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
-  # into an infinite loop, continuously re-executing ourselves.
-  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
-    _as_can_reexec=no; export _as_can_reexec;
-    # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
-  fi
-  # We don't want this to propagate to other subprocesses.
-          { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org and
-$0: hecht at ann.jussieu.fr about your system, including any
-$0: error possibly output before this message. Then install
-$0: a modern shell, or manually run the script under such a
-$0: shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='FreeFem++'
-PACKAGE_TARNAME='freefem++'
-PACKAGE_VERSION='3.35'
-PACKAGE_STRING='FreeFem++ 3.35'
-PACKAGE_BUGREPORT='hecht at ann.jussieu.fr'
-PACKAGE_URL=''
-
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-TOOL_DYLIB_schwarz
-TOOL_COMPILE_schwarz
-TOOL_DYLIB_pardiso
-TOOL_COMPILE_pardiso
-TOOL_DYLIB_NewSolver
-TOOL_COMPILE_NewSolver
-TOOL_DYLIB_gsl
-TOOL_COMPILE_gsl
-FFCS_WINDOWS_FALSE
-FFCS_WINDOWS_TRUE
-TOOL_DYLIB_iohdf5
-TOOL_COMPILE_iohdf5
-HDF5_FLIBS
-HDF5_FFLAGS
-HDF5_FC
-HDF5_LIBS
-HDF5_LDFLAGS
-HDF5_CPPFLAGS
-HDF5_CFLAGS
-HDF5_CC
-HDF5_VERSION
-H5FC
-H5CC
-SED
-TEST_FFPPMPI
-TEST_FFPP_MPI
-TEST_FFPP
-STDPROG
-BAMGPROG
-FFGLUTPROG
-MEDITPROG
-FNOFLAGS
-CNOFLAGS
-LIBC_VERSION
-KERNEL_VERSION
-SCOTCH_INCLUDE
-NO_RANGE_CHECK
-TOOL_DYLIB_yams
-TOOL_COMPILE_yams
-TOOL_DYLIB_umfpack
-TOOL_COMPILE_umfpack
-TOOL_DYLIB_superludist
-TOOL_COMPILE_superludist
-TOOL_DYLIB_superlu
-TOOL_COMPILE_superlu
-TOOL_DYLIB_scotch
-TOOL_COMPILE_scotch
-TOOL_DYLIB_pipe
-TOOL_COMPILE_pipe
-TOOL_DYLIB_pastix
-TOOL_COMPILE_pastix
-TOOL_DYLIB_parms
-TOOL_COMPILE_parms
-TOOL_DYLIB_parmetis
-TOOL_COMPILE_parmetis
-TOOL_DYLIB_nlopt
-TOOL_COMPILE_nlopt
-TOOL_DYLIB_mumps_seq
-TOOL_COMPILE_mumps_seq
-TOOL_DYLIB_mumps
-TOOL_COMPILE_mumps
-TOOL_DYLIB_mshmet
-TOOL_COMPILE_mshmet
-TOOL_DYLIB_mmg3d
-TOOL_COMPILE_mmg3d
-TOOL_DYLIB_metis
-TOOL_COMPILE_metis
-TOOL_DYLIB_lapack
-TOOL_COMPILE_lapack
-TOOL_DYLIB_ipopt
-TOOL_COMPILE_ipopt
-TOOL_DYLIB_hips
-TOOL_COMPILE_hips
-TOOL_DYLIB_fflapack
-TOOL_COMPILE_fflapack
-GSL_LIBS
-GSL_CFLAGS
-GSL_CONFIG
-STD_LIBS
-STD_LDFLAGS
-STD_GRAPH_OBJ
-HISTORY
-ff_history
-DOCPDF
-ff_pdflatex
-DOCPSGZ
-ff_gzip
-DOCPS
-ff_convert
-EPSTOPDF
-ff_pdf2ps
-ff_dvips
-ff_makeindex
-ff_latex
-DYLIB_SUFFIX
-LOAD_COMPILE
-LOAD_TESTS
-RANLIN
-ARFLAGS
-AR
-STATICTOOL
-ff_libtool
-FF_SECOND
-FF_MALLOC_H
-UMFPACKLIBS
-FF_UMFPACK_CONFIG
-DOWNLOAD_UMFPACK
-EIGENOBJ
-SKIP_TESTS_EIGEN
-ARPACKLIBS
-LAPACK_arpack_LIB
-ARPACKLIB
-FF_LAPACKdir
-DOWNLOAD_ARPACK
-LAPACKLIBS
-G2CLIB
-BLASINC
-BLASLIBS
-DOWNLOADED_BLAS_BUILT_SOURCES
-ff_unzip
-COMPILE_OPENBLAS
-DOWNLOADED_BLAS
-ff_git
-DOWNLOAD_FFTW
-DOWNLOADCOMPILE
-WGET
-ff_curl
-ff_wget
-FFCS_MPIOK_FALSE
-FFCS_MPIOK_TRUE
-SKIP_TESTS_MPI
-MPI_LIBFC
-MPI_LIBC
-MPI_LIB
-MPI_LIB_DIRS
-MPI_INCLUDE
-MPI_INC_DIR
-PASTIX_HOSTARCH
-MPICC
-MPIFC
-MPIF77
-MPISCRIPT
-MPIPROG
-MPICXX
-MPIRUN
-LIBSGLUT
-LIBSPTHREAD
-EGREP
-GREP
-CXXCPP
-ADD_PACKAGE_NAME
-CXX11FLAGS
-WITH_CXX11
-OPTIM_TYPE
-ff_prefix_dir
-WIN32DLLTARGET
-LIBSNOCONSOLE
-WINDRESOBJ
-FFGLUTNAME
-FFMETIS_CFLAGS
-GCCNOCYGWIN
-YFLAGS
-YACC
-LEXLIB
-LEX_OUTPUT_ROOT
-LEX
-CFLAGSF77
-FLIBS
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-ac_ct_F77
-FFLAGS
-F77
-ac_ct_FC
-FCFLAGS
-FC
-ENABLE_FFCS_FALSE
-ENABLE_FFCS_TRUE
-ENABLE_FFCS
-SIZEOF_PTRINBIT
-SIZEOF_PTR
-SIZEOF_INT
-SIZEOF_LONG
-ff_patch
-ff_bison
-ff_m4
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-RANLIB
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_silent_rules
-enable_maintainer_mode
-enable_dependency_tracking
-enable_ffcs
-enable_fortran
-with_flib
-enable_c
-enable_cygwindll
-enable_profiling
-enable_m64
-enable_m32
-enable_debug
-enable_optim
-enable_generic
-with_suffix
-enable_opengl
-with_mpipath
-with_mpilibs
-with_mpilibsc
-with_mpiinc
-with_mpi
-enable_download
-with_petsc
-with_wget
-with_mkl
-with_cadna
-enable_system_fftw
-enable_system_blas
-enable_mkl_mlt
-with_blas
-enable_openblas
-with_lapack
-with_arpack
-enable_system_umfpack
-with_amd
-with_umfpack
-enable_static
-enable_pdf
-with_gsl_prefix
-with_gsl_exec_prefix
-enable_gsltest
-enable_fflapack
-with_fflapack_include
-with_fflapack_ldflags
-enable_hips
-with_hips_include
-with_hips_ldflags
-enable_ipopt
-with_ipopt_include
-with_ipopt_ldflags
-enable_lapack
-with_lapack_include
-with_lapack_ldflags
-enable_metis
-with_metis_include
-with_metis_ldflags
-enable_mmg3d
-with_mmg3d_include
-with_mmg3d_ldflags
-enable_mshmet
-with_mshmet_include
-with_mshmet_ldflags
-enable_mumps
-with_mumps_include
-with_mumps_ldflags
-enable_mumps_seq
-with_mumps_seq_include
-with_mumps_seq_ldflags
-enable_nlopt
-with_nlopt_include
-with_nlopt_ldflags
-enable_parmetis
-with_parmetis_include
-with_parmetis_ldflags
-enable_parms
-with_parms_include
-with_parms_ldflags
-enable_pastix
-with_pastix_include
-with_pastix_ldflags
-enable_pipe
-with_pipe_include
-with_pipe_ldflags
-enable_scotch
-with_scotch_include
-with_scotch_ldflags
-enable_superlu
-with_superlu_include
-with_superlu_ldflags
-enable_superludist
-with_superludist_include
-with_superludist_ldflags
-enable_umfpack
-with_umfpack_include
-with_umfpack_ldflags
-enable_yams
-with_yams_include
-with_yams_ldflags
-with_hdf5
-enable_iohdf5
-with_iohdf5_include
-with_iohdf5_ldflags
-enable_gsl
-with_gsl_include
-with_gsl_ldflags
-enable_NewSolver
-with_NewSolver_include
-with_NewSolver_ldflags
-enable_pardiso
-with_pardiso_include
-with_pardiso_ldflags
-enable_schwarz
-with_schwarz_include
-with_schwarz_ldflags
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CXX
-CXXFLAGS
-CCC
-FC
-FCFLAGS
-F77
-FFLAGS
-YACC
-YFLAGS
-CXXCPP
-MPIRUN
-MPICXX
-MPIF77
-MPIFC
-MPICC'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
-  case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
-  esac
-  # Be sure to have absolute directory names.
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures FreeFem++ 3.35 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/freefem++]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-Program names:
-  --program-prefix=PREFIX            prepend PREFIX to installed program names
-  --program-suffix=SUFFIX            append SUFFIX to installed program names
-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of FreeFem++ 3.35:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-option-checking  ignore unrecognized --enable/--with options
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-silent-rules   less verbose build output (undo: "make V=1")
-  --disable-silent-rules  verbose build output (undo: "make V=0")
-  --enable-maintainer-mode
-                          enable make rules and dependencies not useful (and
-                          sometimes confusing) to the casual installer
-  --enable-dependency-tracking
-                          do not reject slow dependency extractors
-  --disable-dependency-tracking
-                          speeds up one-time build
-  --enable-ffcs           build FreeFem++ for use by FreeFem++-cs
-  --disable-fortran       No Fortran compiler available ( ARPACK need it)
-  --disable-c             No C compiler available (C BLAS need it)
-  --enable-cygwindll	Forces the use of the Cygwin DLL (not recommended)
-  --enable-profiling	Turn on profiling
-  --enable-m64	Turn on 64 bits architecture
-  --enable-m32	Turn on 32 bits architecture
-  --enable-debug	Turn on debug versions of FreeFem++
-  --enable-optim	Turn on compiler optimization
-  --enable-generic	Turn off hardware-dependant optimization options
-  --enable-opengl         Enable/disable support for OpenGL
-  --enable-download       Download missing libraries (BLAS,ARPACK,UMFPACK,...)
-  --disable-system-fftw   Disable the automatic detection of FFTW
-  --disable-system-blas   Disable the search for a system-wide BLAS library
-  --enable-mkl-mlt        Link with the multithreaded instead of the
-                          monothreaded version of the MKL
-  --disable-openblas      Disable the automatic download of OpenBLAS
-  --disable-system-umfpack
-                          Disable the automatic detection of umfpack, colmod,
-                          amd, ....
-  --enable-static	Build binaries with no shared library dependencies
-  --disable-pdf	Disable PDF documentation building
-  --disable-gsltest       Do not try to compile and run a test GSL program
-  --disable-fflapack      Do not use fflapack
-  --disable-hips          Do not use hips
-  --disable-ipopt         Do not use ipopt
-  --disable-lapack        Do not use lapack
-  --disable-metis         Do not use metis
-  --disable-mmg3d         Do not use mmg3d
-  --disable-mshmet        Do not use mshmet
-  --disable-mumps         Do not use mumps
-  --disable-mumps_seq     Do not use mumps_seq
-  --disable-nlopt         Do not use nlopt
-  --disable-parmetis      Do not use parmetis
-  --disable-parms         Do not use parms
-  --disable-pastix        Do not use pastix
-  --disable-pipe          Do not use pipe
-  --disable-scotch        Do not use scotch
-  --disable-superlu       Do not use superlu
-  --disable-superludist   Do not use superludist
-  --disable-umfpack       Do not use umfpack
-  --disable-yams          Do not use yams
-  --disable-iohdf5        Do not use iohdf5
-  --disable-gsl           Do not use gsl
-  --disable-NewSolver     Do not use NewSolver
-  --disable-pardiso       Do not use pardiso
-  --disable-schwarz       Do not use schwarz
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-flib= the fortran library
-  --with-suffix=G3/G4/G4,P4,.. or --without-suffix (default no suffix to package name)
-  --with-suffix=G3/G4/G4,P4,.. or --without-suffix (default no suffix package name)
-  --with-mpipath= the path of mpich under windows (no command  mpic++, ... )
-  --with-mpilibs= the libs to add to c++,fc, ... (to link with c++ - ex:   -L/usr/local/lib -lmpi_f90  -lmpi_cxx -lmpi -lopen-rte -lopen-pal -lutil)
-  --with-mpilibsc= the libs to add to c  ... (to link with cc (for pastix lib)  ex:   -L/usr/local/lib -lmpi -lopen-rte -lopen-pal -lutil)
-  --with-mpiinc= the include directory directive and preprocess directive  (no mpicc++, just use the compiler))
-  --with-mpi=yes|no|mpic++|lam|mpich|openmpi|/usr/local/bin/mpic++|... 	or --without-mpi	Choose MPI implementation (default is mpic++)
-  --with-petsc= /usr/local/petsc   --without-petsc
-  --with-wget=command	Replace "wget" with another command. Implies --enable-download
-  --with-mkl= the  MKL LIBPATH : (ie. /opt/intel/mkl/RR.r.y.xxx/lib/<arch>)
-  --with-cadna= cadna library --without-cadna
-  --with-blas=library     Use a specific version of the Blas
-  --with-lapack=library   Use a specific version of Lapack
-  --with-arpack=library	Use a specific version of Arpack
-  --with-amd=library      Use a specific version of AMD
-  --with-umfpack=library  Use a specific version of Umfpack
-  --with-gsl-prefix=PFX   Prefix where GSL is installed (optional)
-  --with-gsl-exec-prefix=PFX Exec prefix where GSL is installed (optional)
-  --with-fflapack-include=
-                          Include directives for fflapack instead of automatic
-                          download
-  --with-fflapack-ldflags=
-                          Link-time directives for fflapack instead of
-                          automatic download
-  --with-hips-include=    Include directives for hips instead of automatic
-                          download
-  --with-hips-ldflags=    Link-time directives for hips instead of automatic
-                          download
-  --with-ipopt-include=   Include directives for ipopt instead of automatic
-                          download
-  --with-ipopt-ldflags=   Link-time directives for ipopt instead of automatic
-                          download
-  --with-lapack-include=  Include directives for lapack instead of automatic
-                          download
-  --with-lapack-ldflags=  Link-time directives for lapack instead of automatic
-                          download
-  --with-metis-include=   Include directives for metis instead of automatic
-                          download
-  --with-metis-ldflags=   Link-time directives for metis instead of automatic
-                          download
-  --with-mmg3d-include=   Include directives for mmg3d instead of automatic
-                          download
-  --with-mmg3d-ldflags=   Link-time directives for mmg3d instead of automatic
-                          download
-  --with-mshmet-include=  Include directives for mshmet instead of automatic
-                          download
-  --with-mshmet-ldflags=  Link-time directives for mshmet instead of automatic
-                          download
-  --with-mumps-include=   Include directives for mumps instead of automatic
-                          download
-  --with-mumps-ldflags=   Link-time directives for mumps instead of automatic
-                          download
-  --with-mumps_seq-include=
-                          Include directives for mumps_seq instead of
-                          automatic download
-  --with-mumps_seq-ldflags=
-                          Link-time directives for mumps_seq instead of
-                          automatic download
-  --with-nlopt-include=   Include directives for nlopt instead of automatic
-                          download
-  --with-nlopt-ldflags=   Link-time directives for nlopt instead of automatic
-                          download
-  --with-parmetis-include=
-                          Include directives for parmetis instead of automatic
-                          download
-  --with-parmetis-ldflags=
-                          Link-time directives for parmetis instead of
-                          automatic download
-  --with-parms-include=   Include directives for parms instead of automatic
-                          download
-  --with-parms-ldflags=   Link-time directives for parms instead of automatic
-                          download
-  --with-pastix-include=  Include directives for pastix instead of automatic
-                          download
-  --with-pastix-ldflags=  Link-time directives for pastix instead of automatic
-                          download
-  --with-pipe-include=    Include directives for pipe instead of automatic
-                          download
-  --with-pipe-ldflags=    Link-time directives for pipe instead of automatic
-                          download
-  --with-scotch-include=  Include directives for scotch instead of automatic
-                          download
-  --with-scotch-ldflags=  Link-time directives for scotch instead of automatic
-                          download
-  --with-superlu-include= Include directives for superlu instead of automatic
-                          download
-  --with-superlu-ldflags= Link-time directives for superlu instead of
-                          automatic download
-  --with-superludist-include=
-                          Include directives for superludist instead of
-                          automatic download
-  --with-superludist-ldflags=
-                          Link-time directives for superludist instead of
-                          automatic download
-  --with-umfpack-include= Include directives for umfpack instead of automatic
-                          download
-  --with-umfpack-ldflags= Link-time directives for umfpack instead of
-                          automatic download
-  --with-yams-include=    Include directives for yams instead of automatic
-                          download
-  --with-yams-ldflags=    Link-time directives for yams instead of automatic
-                          download
-  --with-hdf5=yes/no/PATH location of h5cc or h5pcc for HDF5 configuration
-  --with-iohdf5-include=  Include directives for iohdf5 instead of automatic
-                          download
-  --with-iohdf5-ldflags=  Link-time directives for iohdf5 instead of automatic
-                          download
-  --with-gsl-include=     Include directives for gsl instead of automatic
-                          download
-  --with-gsl-ldflags=     Link-time directives for gsl instead of automatic
-                          download
-  --with-NewSolver-include=
-                          Include directives for NewSolver instead of
-                          automatic download
-  --with-NewSolver-ldflags=
-                          Link-time directives for NewSolver instead of
-                          automatic download
-  --with-pardiso-include= Include directives for pardiso instead of automatic
-                          download
-  --with-pardiso-ldflags= Link-time directives for pardiso instead of
-                          automatic download
-  --with-schwarz-include= Include directives for schwarz instead of automatic
-                          download
-  --with-schwarz-ldflags= Link-time directives for schwarz instead of
-                          automatic download
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  FC          Fortran compiler command
-  FCFLAGS     Fortran compiler flags
-  F77         Fortran 77 compiler command
-  FFLAGS      Fortran 77 compiler flags
-  YACC        The `Yet Another Compiler Compiler' implementation to use.
-              Defaults to the first program found out of: `bison -y', `byacc',
-              `yacc'.
-  YFLAGS      The list of arguments that will be passed by default to $YACC.
-              This script will default YFLAGS to the empty string to avoid a
-              default value of `-d' given by some make applications.
-  CXXCPP      C++ preprocessor
-  MPIRUN      MPI run command
-  MPICXX      MPI C++ compiler command
-  MPIF77      MPI Fortran 77 compiler command
-  MPIFC       MPI Fortran 90 compiler command
-  MPICC       MPI C compiler command in $ff_mpi_path
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <hecht at ann.jussieu.fr>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-FreeFem++ configure 3.35
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
-# ac_fn_cxx_try_run LINENO
-# ------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_cxx_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_run
-
-# ac_fn_cxx_compute_int LINENO EXPR VAR INCLUDES
-# ----------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_cxx_compute_int ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if test "$cross_compiling" = yes; then
-    # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid; break
-else
-  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_lo=$ac_mid; break
-else
-  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid
-else
-  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
-  else
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (($2) < 0)
-    {
-      long int i = longval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
-  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
-  ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
-  fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_compute_int
-
-# ac_fn_fc_try_compile LINENO
-# ---------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_fc_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_fc_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_fc_try_compile
-
-# ac_fn_f77_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_f77_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_f77_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_f77_try_compile
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
-# ac_fn_f77_try_run LINENO
-# ------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_f77_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_f77_try_run
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_f77_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_f77_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_f77_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_f77_try_link
-
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_cpp
-
-# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
-# ---------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_cxx_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ----------------------------------- ##
-## Report this to hecht at ann.jussieu.fr ##
-## ----------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_cxx_check_header_mongrel
-
-# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES
-# ---------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_cxx_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_cxx_check_header_compile
-
-# ac_fn_cxx_check_func LINENO FUNC VAR
-# ------------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_cxx_check_func ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return $2 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_cxx_check_func
-
-# ac_fn_fc_try_link LINENO
-# ------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_fc_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_fc_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_fc_try_link
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by FreeFem++ $as_me 3.35, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# progg test  expact under windows
-ff_TEST_FFPP="../src/nw/FreeFem++"
-ff_TEST_FFPP_MPI="../src/mpi/FreeFem++-mpi"
-
-
-# Automake 1.11 is too old for check ...
-
-# ALH - 10/9/13 - FFCS needs to skip this automake version requirement when compiling on older platforms (eg cygwin or
-# last Ubuntu LTS). So we fix a low hardcoded requirement and test for higher versions when not in FFCS.
-
-am__api_version='1.14'
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
-  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   am_has_slept=no
-   for am_try in 1 2; do
-     echo "timestamp, slept: $am_has_slept" > conftest.file
-     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-     if test "$*" = "X"; then
-	# -L didn't work.
-	set X `ls -t "$srcdir/configure" conftest.file`
-     fi
-     if test "$*" != "X $srcdir/configure conftest.file" \
-	&& test "$*" != "X conftest.file $srcdir/configure"; then
-
-	# If neither matched, then we have a broken ls.  This can happen
-	# if, for instance, CONFIG_SHELL is bash and it inherits a
-	# broken ls alias from the environment.  This has actually
-	# happened.  Such a system could not be considered "sane".
-	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-  alias in your environment" "$LINENO" 5
-     fi
-     if test "$2" = conftest.file || test $am_try -eq 2; then
-       break
-     fi
-     # Just in case.
-     sleep 1
-     am_has_slept=yes
-   done
-   test "$2" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
-  ( sleep 1 ) &
-  am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
-  program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
-  am_missing_run="$MISSING "
-else
-  am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip".  However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if ${ac_cv_path_mkdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-  done
-IFS=$as_save_IFS
-
-fi
-
-  test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
-  enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
-	@$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
-  am_cv_make_support_nested_variables=yes
-else
-  am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  am__isrc=' -I$(srcdir)'
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
-  fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='freefem++'
- VERSION='3.35'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility.  To be removed once Automake 1.9.x
-# dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.  Yes, it's still used
-# in the wild :-(  We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar  pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes.  So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
-  cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present.  This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake at gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message.  This
-can help us improve future automake versions.
-
-END
-  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
-    echo 'Configuration will proceed anyway, since you have set the' >&2
-    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
-    echo >&2
-  else
-    cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
-    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
-  fi
-fi
-
-if test "$enable_ffcs" != yes
-then
-    if test `echo $am__api_version|awk '{if($1>1.13)print "ok";}'` != ok
-    then
-	as_fn_error $? "Automake version needs to be 1.13 or later to enable \"make check\"" "$LINENO" 5
-    fi
-fi
-
-ac_config_headers="$ac_config_headers config.h"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-ff_where_lib_conf=examples++-load/WHERE_LIBRARY-config
-
-
-ff_HOSTARCH_pastix=
-echo "#  Build with freefem++ with ./configure " `date`  >$ff_where_lib_conf
-# To allow anonymous CVS version to contain a "./configure" and
-# Makefiles
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
-    # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
-  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
-  USE_MAINTAINER_MODE=no
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
-   if test $USE_MAINTAINER_MODE = yes; then
-  MAINTAINER_MODE_TRUE=
-  MAINTAINER_MODE_FALSE='#'
-else
-  MAINTAINER_MODE_TRUE='#'
-  MAINTAINER_MODE_FALSE=
-fi
-
-  MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-echo >config_LIB_INFO
-
-# Necessary compilers
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
-  { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-  if { ac_try='./conftest$ac_cv_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-  # Make sure it works both with $CC and with simple cc.
-  # Following AC_PROG_CC_C_O, we do the test twice because some
-  # compilers refuse to overwrite an existing .o file with -o,
-  # though they will create one.
-  am_cv_prog_cc_c_o=yes
-  for am_i in 1 2; do
-    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
-   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } \
-         && test -f conftest2.$ac_objext; then
-      : OK
-    else
-      am_cv_prog_cc_c_o=no
-      break
-    fi
-  done
-  rm -f core conftest*
-  unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
-  enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-  am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
-  AMDEP_TRUE=
-  AMDEP_FALSE='#'
-else
-  AMDEP_TRUE='#'
-  AMDEP_FALSE=
-fi
-
-
-
-depcc="$CC"   am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named 'D' -- because '-MD' means "put the output
-  # in D".
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CC_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
-      # Solaris 10 /bin/sh.
-      echo '/* dummy */' > sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with '-c' and '-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle '-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs.
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # After this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested.
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok '-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-fi
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named 'D' -- because '-MD' means "put the output
-  # in D".
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
-      # Solaris 10 /bin/sh.
-      echo '/* dummy */' > sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with '-c' and '-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle '-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs.
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # After this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested.
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok '-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-if test `uname` != Darwin; then
- ff_ldeg="-Wl,--end-group"
- ff_ldbg="-Wl,--start-group"
-fi
-
-
-
-
-
-# Extract the first word of "m4", so it can be a program name with args.
-set dummy m4; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_m4+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_m4"; then
-  ac_cv_prog_ff_m4="$ff_m4" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_m4="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_m4" && ac_cv_prog_ff_m4="no"
-fi
-fi
-ff_m4=$ac_cv_prog_ff_m4
-if test -n "$ff_m4"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_m4" >&5
-$as_echo "$ff_m4" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "bison", so it can be a program name with args.
-set dummy bison; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_bison+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_bison"; then
-  ac_cv_prog_ff_bison="$ff_bison" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_bison="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_bison" && ac_cv_prog_ff_bison="no"
-fi
-fi
-ff_bison=$ac_cv_prog_ff_bison
-if test -n "$ff_bison"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_bison" >&5
-$as_echo "$ff_bison" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "patch", so it can be a program name with args.
-set dummy patch; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_patch+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_patch"; then
-  ac_cv_prog_ff_patch="$ff_patch" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_patch="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_patch" && ac_cv_prog_ff_patch="no"
-fi
-fi
-ff_patch=$ac_cv_prog_ff_patch
-if test -n "$ff_patch"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_patch" >&5
-$as_echo "$ff_patch" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-case "$ff_m4 $ff_bison $ff_patch "  in
-*no*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}:  to install missing package  under debian or ubuntu, try: sudo apt-get install m4 bison patch cmake " >&5
-$as_echo "$as_me:  to install missing package  under debian or ubuntu, try: sudo apt-get install m4 bison patch cmake " >&6;}
-    as_fn_error $? " Sorry missing  m4,bison,patch command !" "$LINENO" 5;;
-esac
-
-
-if test -z "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}:  fatal error : c++ compiler !  " >&5
-$as_echo "$as_me:  fatal error : c++ compiler !  " >&6;};
-  as_fn_error $? " Sorry no c++ compiler !" "$LINENO" 5
-fi
-
-
-if ac_fn_cxx_compute_int "$LINENO" "sizeof(long)" "ff_size_long"        ""; then :
-
-fi
-
-if ac_fn_cxx_compute_int "$LINENO" "sizeof(int)" "ff_size_int"        ""; then :
-
-fi
-
-if ac_fn_cxx_compute_int "$LINENO" "sizeof(int*)" "ff_size_ptr"        ""; then :
-
-fi
-
-
-SIZEOF_LONG=$ff_size_long
-
-SIZEOF_INT=$ff_size_int
-
-SIZEOF_PTR=$ff_size_ptr
-
-if test "$ff_size_ptr" -eq 4  ;then
- SIZEOF_PTRINBIT=32
-
-elif test  "$ff_size_ptr" -eq 8  ;then
- SIZEOF_PTRINBIT=64
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}:  fatal error : sizeof pointer $ff_size_ptr !  or no c++ compiler: $CXX " >&5
-$as_echo "$as_me:  fatal error : sizeof pointer $ff_size_ptr !  or no c++ compiler: $CXX " >&6;};
-  as_fn_error $? " Sorry  sizeof c++ pointer $ff_size_ptr are not  4 or 8 " "$LINENO" 5
-fi
-
-# FFCS - build the code for FreeFem++-cs
-# Check whether --enable-ffcs was given.
-if test "${enable_ffcs+set}" = set; then :
-  enableval=$enable_ffcs;
-fi
-
-if test "$enable_ffcs" = yes
-then
-
-cat >>confdefs.h <<_ACEOF
-#define ENABLE_FFCS $enable_ffcs
-_ACEOF
-
-else
-	enable_ffcs=no
-fi
-ENABLE_FFCS="$enable_ffcs"
-
- if test $enable_ffcs = yes; then
-  ENABLE_FFCS_TRUE=
-  ENABLE_FFCS_FALSE='#'
-else
-  ENABLE_FFCS_TRUE='#'
-  ENABLE_FFCS_FALSE=
-fi
-
-
-# dur dur car sous MacOsX le fortran n'est pas standard.
-ff_AR="ar"
-ff_ARFLAGS="rv"
-ff_RANLIB="ranlib"
-# Check whether --enable-fortran was given.
-if test "${enable_fortran+set}" = set; then :
-  enableval=$enable_fortran;
-fi
-
-
-ff_g2c_lib="";
-if test "$enable_fortran" != no
-then
-
-    # ALH-FFCS-2/3/10: add gfortran-mp-4.4 for MacPorts on MacOS 10.6
-    # FH add iforr
-    ac_ext=${ac_fc_srcext-f}
-ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
-ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_fc_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in gfortran  f90  xlf90 g95 ifort gfortran-mp-4.4
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_FC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$FC"; then
-  ac_cv_prog_FC="$FC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_FC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-FC=$ac_cv_prog_FC
-if test -n "$FC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FC" >&5
-$as_echo "$FC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$FC" && break
-  done
-fi
-if test -z "$FC"; then
-  ac_ct_FC=$FC
-  for ac_prog in gfortran  f90  xlf90 g95 ifort gfortran-mp-4.4
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_FC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_FC"; then
-  ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_FC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_FC=$ac_cv_prog_ac_ct_FC
-if test -n "$ac_ct_FC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5
-$as_echo "$ac_ct_FC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_FC" && break
-done
-
-  if test "x$ac_ct_FC" = x; then
-    FC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    FC=$ac_ct_FC
-  fi
-fi
-
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file.  (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran compiler" >&5
-$as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; }
-if ${ac_cv_fc_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.$ac_ext <<_ACEOF
-      program main
-#ifndef __GNUC__
-       choke me
-#endif
-
-      end
-_ACEOF
-if ac_fn_fc_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_fc_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_compiler_gnu" >&5
-$as_echo "$ac_cv_fc_compiler_gnu" >&6; }
-ac_ext=$ac_save_ext
-ac_test_FCFLAGS=${FCFLAGS+set}
-ac_save_FCFLAGS=$FCFLAGS
-FCFLAGS=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FC accepts -g" >&5
-$as_echo_n "checking whether $FC accepts -g... " >&6; }
-if ${ac_cv_prog_fc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  FCFLAGS=-g
-cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-if ac_fn_fc_try_compile "$LINENO"; then :
-  ac_cv_prog_fc_g=yes
-else
-  ac_cv_prog_fc_g=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_g" >&5
-$as_echo "$ac_cv_prog_fc_g" >&6; }
-if test "$ac_test_FCFLAGS" = set; then
-  FCFLAGS=$ac_save_FCFLAGS
-elif test $ac_cv_prog_fc_g = yes; then
-  if test "x$ac_cv_fc_compiler_gnu" = xyes; then
-    FCFLAGS="-g -O2"
-  else
-    FCFLAGS="-g"
-  fi
-else
-  if test "x$ac_cv_fc_compiler_gnu" = xyes; then
-    FCFLAGS="-O2"
-  else
-    FCFLAGS=
-  fi
-fi
-
-if test $ac_compiler_gnu = yes; then
-  GFC=yes
-else
-  GFC=
-fi
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-    ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in gfortran f90 xlf xlf90 g95 f77 fort77 "$FC" ifort gfortran-mp-4.4
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_F77+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$F77"; then
-  ac_cv_prog_F77="$F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-F77=$ac_cv_prog_F77
-if test -n "$F77"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $F77" >&5
-$as_echo "$F77" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$F77" && break
-  done
-fi
-if test -z "$F77"; then
-  ac_ct_F77=$F77
-  for ac_prog in gfortran f90 xlf xlf90 g95 f77 fort77 "$FC" ifort gfortran-mp-4.4
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_F77+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_F77"; then
-  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_F77="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_F77=$ac_cv_prog_ac_ct_F77
-if test -n "$ac_ct_F77"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5
-$as_echo "$ac_ct_F77" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_F77" && break
-done
-
-  if test "x$ac_ct_F77" = x; then
-    F77=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    F77=$ac_ct_F77
-  fi
-fi
-
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file.  (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5
-$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; }
-if ${ac_cv_f77_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.$ac_ext <<_ACEOF
-      program main
-#ifndef __GNUC__
-       choke me
-#endif
-
-      end
-_ACEOF
-if ac_fn_f77_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_f77_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5
-$as_echo "$ac_cv_f77_compiler_gnu" >&6; }
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FFLAGS+set}
-ac_save_FFLAGS=$FFLAGS
-FFLAGS=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5
-$as_echo_n "checking whether $F77 accepts -g... " >&6; }
-if ${ac_cv_prog_f77_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  FFLAGS=-g
-cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-if ac_fn_f77_try_compile "$LINENO"; then :
-  ac_cv_prog_f77_g=yes
-else
-  ac_cv_prog_f77_g=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5
-$as_echo "$ac_cv_prog_f77_g" >&6; }
-if test "$ac_test_FFLAGS" = set; then
-  FFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_f77_g = yes; then
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-g -O2"
-  else
-    FFLAGS="-g"
-  fi
-else
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-O2"
-  else
-    FFLAGS=
-  fi
-fi
-
-if test $ac_compiler_gnu = yes; then
-  G77=yes
-else
-  G77=
-fi
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-#	if test -n "$F77"
-#	then
-    ff_flibs=""
-        # modif FH
-    # Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $F77" >&5
-$as_echo_n "checking how to get verbose linking output from $F77... " >&6; }
-if ${ac_cv_prog_f77_v+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-if ac_fn_f77_try_compile "$LINENO"; then :
-  ac_cv_prog_f77_v=
-# Try some options frequently used verbose output
-for ac_verb in -v -verbose --verbose -V -\#\#\#; do
-  cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-
-# Compile and link our simple test program by passing a flag (argument
-# 1 to this macro) to the Fortran compiler in order to get
-# "verbose" output that we can then parse for the Fortran linker
-# flags.
-ac_save_FFLAGS=$FFLAGS
-FFLAGS="$FFLAGS $ac_verb"
-eval "set x $ac_link"
-shift
-$as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5
-# gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH,
-# LIBRARY_PATH; skip all such settings.
-ac_f77_v_output=`eval $ac_link 5>&1 2>&1 |
-  sed '/^Driving:/d; /^Configured with:/d;
-      '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"`
-$as_echo "$ac_f77_v_output" >&5
-FFLAGS=$ac_save_FFLAGS
-
-rm -rf conftest*
-
-# On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where
-# /foo, /bar, and /baz are search directories for the Fortran linker.
-# Here, we change these into -L/foo -L/bar -L/baz (and put it first):
-ac_f77_v_output="`echo $ac_f77_v_output |
-	grep 'LPATH is:' |
-	sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_f77_v_output"
-
-# FIXME: we keep getting bitten by quoted arguments; a more general fix
-#        that detects unbalanced quotes in FLIBS should be implemented
-#        and (ugh) tested at some point.
-case $ac_f77_v_output in
-  # With xlf replace commas with spaces,
-  # and remove "-link" and closing parenthesis.
-  *xlfentry*)
-    ac_f77_v_output=`echo $ac_f77_v_output |
-      sed '
-        s/,/ /g
-        s/ -link / /g
-        s/) *$//
-      '
-    ` ;;
-
-  # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted
-  # $LIBS confuse us, and the libraries appear later in the output anyway).
-  *mGLOB_options_string*)
-    ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;;
-
-  # Portland Group compiler has singly- or doubly-quoted -cmdline argument
-  # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4.
-  # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2".
-  *-cmdline\ * | *-ignore\ * | *-def\ *)
-    ac_f77_v_output=`echo $ac_f77_v_output | sed "\
-	s/-cmdline  *'[^']*'/ /g; s/-cmdline  *\"[^\"]*\"/ /g
-	s/-ignore  *'[^']*'/ /g; s/-ignore  *\"[^\"]*\"/ /g
-	s/-def  *'[^']*'/ /g; s/-def  *\"[^\"]*\"/ /g"` ;;
-
-  # If we are using fort77 (the f2c wrapper) then filter output and delete quotes.
-  *fort77*f2c*gcc*)
-    ac_f77_v_output=`echo "$ac_f77_v_output" | sed -n '
-        /:[	 ]\+Running[	 ]\{1,\}"gcc"/{
-          /"-c"/d
-          /[.]c"*/d
-          s/^.*"gcc"/"gcc"/
-          s/"//gp
-        }'` ;;
-
-  # If we are using Cray Fortran then delete quotes.
-  *cft90*)
-    ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"//g'` ;;
-esac
-
-
-  # look for -l* and *.a constructs in the output
-  for ac_arg in $ac_f77_v_output; do
-     case $ac_arg in
-	[\\/]*.a | ?:[\\/]*.a | -[lLRu]*)
-	  ac_cv_prog_f77_v=$ac_verb
-	  break 2 ;;
-     esac
-  done
-done
-if test -z "$ac_cv_prog_f77_v"; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $F77" >&5
-$as_echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;}
-fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5
-$as_echo "$as_me: WARNING: compilation failed" >&2;}
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_v" >&5
-$as_echo "$ac_cv_prog_f77_v" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 libraries of $F77" >&5
-$as_echo_n "checking for Fortran 77 libraries of $F77... " >&6; }
-if ${ac_cv_f77_libs+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$FLIBS" != "x"; then
-  ac_cv_f77_libs="$FLIBS" # Let the user override the test.
-else
-
-cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-
-# Compile and link our simple test program by passing a flag (argument
-# 1 to this macro) to the Fortran compiler in order to get
-# "verbose" output that we can then parse for the Fortran linker
-# flags.
-ac_save_FFLAGS=$FFLAGS
-FFLAGS="$FFLAGS $ac_cv_prog_f77_v"
-eval "set x $ac_link"
-shift
-$as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5
-# gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH,
-# LIBRARY_PATH; skip all such settings.
-ac_f77_v_output=`eval $ac_link 5>&1 2>&1 |
-  sed '/^Driving:/d; /^Configured with:/d;
-      '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"`
-$as_echo "$ac_f77_v_output" >&5
-FFLAGS=$ac_save_FFLAGS
-
-rm -rf conftest*
-
-# On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where
-# /foo, /bar, and /baz are search directories for the Fortran linker.
-# Here, we change these into -L/foo -L/bar -L/baz (and put it first):
-ac_f77_v_output="`echo $ac_f77_v_output |
-	grep 'LPATH is:' |
-	sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_f77_v_output"
-
-# FIXME: we keep getting bitten by quoted arguments; a more general fix
-#        that detects unbalanced quotes in FLIBS should be implemented
-#        and (ugh) tested at some point.
-case $ac_f77_v_output in
-  # With xlf replace commas with spaces,
-  # and remove "-link" and closing parenthesis.
-  *xlfentry*)
-    ac_f77_v_output=`echo $ac_f77_v_output |
-      sed '
-        s/,/ /g
-        s/ -link / /g
-        s/) *$//
-      '
-    ` ;;
-
-  # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted
-  # $LIBS confuse us, and the libraries appear later in the output anyway).
-  *mGLOB_options_string*)
-    ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;;
-
-  # Portland Group compiler has singly- or doubly-quoted -cmdline argument
-  # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4.
-  # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2".
-  *-cmdline\ * | *-ignore\ * | *-def\ *)
-    ac_f77_v_output=`echo $ac_f77_v_output | sed "\
-	s/-cmdline  *'[^']*'/ /g; s/-cmdline  *\"[^\"]*\"/ /g
-	s/-ignore  *'[^']*'/ /g; s/-ignore  *\"[^\"]*\"/ /g
-	s/-def  *'[^']*'/ /g; s/-def  *\"[^\"]*\"/ /g"` ;;
-
-  # If we are using fort77 (the f2c wrapper) then filter output and delete quotes.
-  *fort77*f2c*gcc*)
-    ac_f77_v_output=`echo "$ac_f77_v_output" | sed -n '
-        /:[	 ]\+Running[	 ]\{1,\}"gcc"/{
-          /"-c"/d
-          /[.]c"*/d
-          s/^.*"gcc"/"gcc"/
-          s/"//gp
-        }'` ;;
-
-  # If we are using Cray Fortran then delete quotes.
-  *cft90*)
-    ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"//g'` ;;
-esac
-
-
-
-ac_cv_f77_libs=
-
-# Save positional arguments (if any)
-ac_save_positional="$@"
-
-set X $ac_f77_v_output
-while test $# != 1; do
-  shift
-  ac_arg=$1
-  case $ac_arg in
-	[\\/]*.a | ?:[\\/]*.a)
-	    ac_exists=false
-  for ac_i in $ac_cv_f77_libs; do
-    if test x"$ac_arg" = x"$ac_i"; then
-      ac_exists=true
-      break
-    fi
-  done
-
-  if test x"$ac_exists" = xtrue; then :
-
-else
-  ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg"
-fi
-	  ;;
-	-bI:*)
-	    ac_exists=false
-  for ac_i in $ac_cv_f77_libs; do
-    if test x"$ac_arg" = x"$ac_i"; then
-      ac_exists=true
-      break
-    fi
-  done
-
-  if test x"$ac_exists" = xtrue; then :
-
-else
-  if test "$ac_compiler_gnu" = yes; then
-  for ac_link_opt in $ac_arg; do
-    ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt"
-  done
-else
-  ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg"
-fi
-fi
-	  ;;
-	  # Ignore these flags.
-	-lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -little \
-	  |-LANG:=* | -LIST:* | -LNO:* | -link)
-	  ;;
-	-lkernel32)
-	  case $host_os in
-	  *cygwin*) ;;
-	  *) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg"
-	    ;;
-	  esac
-	  ;;
-	-[LRuYz])
-	  # These flags, when seen by themselves, take an argument.
-	  # We remove the space between option and argument and re-iterate
-	  # unless we find an empty arg or a new option (starting with -)
-	  case $2 in
-	     "" | -*);;
-	     *)
-		ac_arg="$ac_arg$2"
-		shift; shift
-		set X $ac_arg "$@"
-		;;
-	  esac
-	  ;;
-	-YP,*)
-	  for ac_j in `$as_echo "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do
-	      ac_exists=false
-  for ac_i in $ac_cv_f77_libs; do
-    if test x"$ac_j" = x"$ac_i"; then
-      ac_exists=true
-      break
-    fi
-  done
-
-  if test x"$ac_exists" = xtrue; then :
-
-else
-  ac_arg="$ac_arg $ac_j"
-			       ac_cv_f77_libs="$ac_cv_f77_libs $ac_j"
-fi
-	  done
-	  ;;
-	-[lLR]*)
-	    ac_exists=false
-  for ac_i in $ac_cv_f77_libs; do
-    if test x"$ac_arg" = x"$ac_i"; then
-      ac_exists=true
-      break
-    fi
-  done
-
-  if test x"$ac_exists" = xtrue; then :
-
-else
-  ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg"
-fi
-	  ;;
-	-zallextract*| -zdefaultextract)
-	  ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg"
-	  ;;
-	  # Ignore everything else.
-  esac
-done
-# restore positional arguments
-set X $ac_save_positional; shift
-
-# We only consider "LD_RUN_PATH" on Solaris systems.  If this is seen,
-# then we insist that the "run path" must be an absolute path (i.e. it
-# must begin with a "/").
-case `(uname -sr) 2>/dev/null` in
-   "SunOS 5"*)
-      ac_ld_run_path=`$as_echo "$ac_f77_v_output" |
-			sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'`
-      test "x$ac_ld_run_path" != x &&
-	if test "$ac_compiler_gnu" = yes; then
-  for ac_link_opt in $ac_ld_run_path; do
-    ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt"
-  done
-else
-  ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path"
-fi
-      ;;
-esac
-fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_libs" >&5
-$as_echo "$ac_cv_f77_libs" >&6; }
-FLIBS="$ac_cv_f77_libs"
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-    	# correct pb of double def under macos
-    case $F77 in
-	 *fort77)
-	    if test -z "$FLIBS" ; then
-#             FLIBS=`fort77 -v  a.out  2>&1|awk '/a.out/ && /fort77/  { print $(NF-2),$(NF-1)}'`
-#  FH to remove " "
-		FLIBS=`fort77 -v  a.out  2>&1|awk '/a.out/ && /fort77/  { print "echo",$(NF-2),$(NF-1)}'|sh`
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   fort77   FLIBS :  $FLIBS " >&5
-$as_echo "$as_me: WARNING:   fort77   FLIBS :  $FLIBS " >&2;}
-	    fi
-	    ;;
-	*g77)
-	    for i in $FLIBS; do
-		case $i in
-# save last directory of the list
-		    -L*)
-			d=`expr $i : '-L\(.*\)'`;
-			echo " try $d "
-			if test -e "$d/libg2c.so" ; then
-			    ff_flibs="$d/libg2c.so"
-			elif test -e "$d/libg2c.dylib" ; then
-			    ff_flibs="$d/libg2c.dylib"
-			elif test -e "$d/libg2c.a" ; then
-			    ff_flibs="$d/libg2c.a"
-			elif test  -e $d/libg2c.so -o	-e $d/libg2c.a ; then
-			    ff_flibs="$i"
-			fi;;
-		esac
-	    done
-	    if test -e "$ff_flibs"  ;then
-		FLIBS="$ff_flibs"
-	    else
-		FLIBS="$ff_flibs -lg2c"
-	    fi
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   get dir of -lg2c  FLIBS :  $FLIBS " >&5
-$as_echo "$as_me: WARNING:   get dir of -lg2c  FLIBS :  $FLIBS " >&2;}
-	    ;;
-# add FH sep 2006 / modif  2009
-        *gfortran)
-            for i in $FLIBS; do
-		case $i in
-		    -L*)
-			d=`expr $i : '-L\(.*\)'`;
-			if test -e "$d/libgfortran.so" ; then
-			    ff_flibs="$d/libgfortran.so"
-			elif test -e "$d/libgfortran.dylib" ; then
-			    ff_flibs="$d/libgfortran.dylib"
-			elif test -e "$d/libgfortran.a" ; then
-			    ff_flibs="$d/libgfortran.a"
-			elif test -e $d/libgfortran.so -o -e $d/libgfortran.a -o -e $d/libgfortran.dylib ; then
-			    ff_flibs="$i"
-			fi;;
-		esac
-            done
-	    if test -e "$ff_flibs"  ;then
-		FLIBS="$ff_flibs"
-	    else
-		FLIBS="$ff_flibs -lgfortran"
-	    fi
-            { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:   get dir of -lgfortran  FLIBS :  $FLIBS " >&5
-$as_echo "$as_me: WARNING:   get dir of -lgfortran  FLIBS :  $FLIBS " >&2;}
-            ;;
-    esac
-
-# Check whether --with-flib was given.
-if test "${with_flib+set}" = set; then :
-  withval=$with_flib;
-fi
-
-#  correct FH sep 2006 -o -> -a
-    if test "$with_flib" != no -a -n  "$with_flib"
-    then
-	ff_g2c_lib="$with_flib"
-	FLIBS="$with_flib"
-    fi
-# add FH oct 2007 for download f2c
-    if test -z "$F77"  ; then
-	ff_f77=`pwd`/download/bin/fort77
-	ff_flibs=`pwd`/download/lib/libf2c.a
-	if test -x $ff_f77  -a -f $ff_flibs ; then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:  no fortran, but find download f2c/fort" >&5
-$as_echo "$as_me: WARNING:  no fortran, but find download f2c/fort" >&2;};
-	    F77=$ff_f77
-	    FLIBS=$ff_flibs
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:  fatal error : no fortran  " >&5
-$as_echo "$as_me:  fatal error : no fortran  " >&6;};
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: add --disable-fortran   " >&5
-$as_echo "$as_me: add --disable-fortran   " >&6;};
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: or try to compile f2c in directory download/f2c   " >&5
-$as_echo "$as_me: or try to compile f2c in directory download/f2c   " >&6;};
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:   just do:  make install  " >&5
-$as_echo "$as_me:   just do:  make install  " >&6;};
-	    as_fn_error 1 " Fatal error No Fortran compiler . " "$LINENO" 5;
-	fi
-    fi
-#  check if the FLIBS is correct
-    ff_libs="$LIBS"
-    LIBS="$ff_libs $FLIBS"
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char exit ();
-int
-main ()
-{
-return exit ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_err=
-else
-  ff_err=ok
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext;
-    if test "$ff_err" = "ok" ; then  as_fn_error 1 " Fatal FLIBS: $FLIBS is incorrect. " "$LINENO" 5; fi
-    LIBS="$ff_libs"
-    echo "F77 LD $ff_libs" >config_LIB_INFO
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking  Size of fortran 77 integer " >&5
-$as_echo_n "checking  Size of fortran 77 integer ... " >&6; }
-
-
-
-##   AC_LANG(fortran);
-    ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-    if test "$cross_compiling" = yes; then :
-  ff_f77intsize=4
-else
-  cat > conftest.$ac_ext <<_ACEOF
-
-		program test
-		integer  p,i
-		p=1024*1024
-		i= p*p
-		open(7,file="conftest.out")
-		if (i>0) then
-		    write(7,*) 8
-		else
-         write(7,*) 4
-	 endif
-	 close(7)
-	 end
-
-_ACEOF
-if ac_fn_f77_try_run "$LINENO"; then :
-  ff_f77intsize=`cat conftest.out`
-else
-  ff_f77intsize=4
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-## AC_LANG(C++)
-    ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_f77intsize" >&5
-$as_echo "$ff_f77intsize" >&6; }
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran 77 libraries" >&5
-$as_echo_n "checking for dummy main to link with Fortran 77 libraries... " >&6; }
-if ${ac_cv_f77_dummy_main+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_f77_dm_save_LIBS=$LIBS
- LIBS="$LIBS $FLIBS"
- ac_fortran_dm_var=F77_DUMMY_MAIN
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- # First, try linking without a dummy main:
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_fortran_dummy_main=none
-else
-  ac_cv_fortran_dummy_main=unknown
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
- if test $ac_cv_fortran_dummy_main = unknown; then
-   for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#define $ac_fortran_dm_var $ac_func
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_fortran_dummy_main=$ac_func; break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-   done
- fi
- ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
- ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main
- rm -rf conftest*
- LIBS=$ac_f77_dm_save_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_dummy_main" >&5
-$as_echo "$ac_cv_f77_dummy_main" >&6; }
-F77_DUMMY_MAIN=$ac_cv_f77_dummy_main
-if test "$F77_DUMMY_MAIN" != unknown; then :
-  if test $F77_DUMMY_MAIN != none; then
-
-cat >>confdefs.h <<_ACEOF
-#define F77_DUMMY_MAIN $F77_DUMMY_MAIN
-_ACEOF
-
-  if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then
-
-$as_echo "#define FC_DUMMY_MAIN_EQ_F77 1" >>confdefs.h
-
-  fi
-fi
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "linking to Fortran libraries from C fails
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 name-mangling scheme" >&5
-$as_echo_n "checking for Fortran 77 name-mangling scheme... " >&6; }
-if ${ac_cv_f77_mangling+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.$ac_ext <<_ACEOF
-      subroutine foobar()
-      return
-      end
-      subroutine foo_bar()
-      return
-      end
-_ACEOF
-if ac_fn_f77_try_compile "$LINENO"; then :
-  mv conftest.$ac_objext cfortran_test.$ac_objext
-
-  ac_save_LIBS=$LIBS
-  LIBS="cfortran_test.$ac_objext $LIBS $FLIBS"
-
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-  ac_success=no
-  for ac_foobar in foobar FOOBAR; do
-    for ac_underscore in "" "_"; do
-      ac_func="$ac_foobar$ac_underscore"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_success=yes; break 2
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    done
-  done
-  ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-  if test "$ac_success" = "yes"; then
-     case $ac_foobar in
-	foobar)
-	   ac_case=lower
-	   ac_foo_bar=foo_bar
-	   ;;
-	FOOBAR)
-	   ac_case=upper
-	   ac_foo_bar=FOO_BAR
-	   ;;
-     esac
-
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-     ac_success_extra=no
-     for ac_extra in "" "_"; do
-	ac_func="$ac_foo_bar$ac_underscore$ac_extra"
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_success_extra=yes; break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     done
-     ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-     if test "$ac_success_extra" = "yes"; then
-	ac_cv_f77_mangling="$ac_case case"
-	if test -z "$ac_underscore"; then
-	   ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore"
-	else
-	   ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore"
-	fi
-	if test -z "$ac_extra"; then
-	   ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore"
-	else
-	   ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore"
-	fi
-      else
-	ac_cv_f77_mangling="unknown"
-      fi
-  else
-     ac_cv_f77_mangling="unknown"
-  fi
-
-  LIBS=$ac_save_LIBS
-  rm -rf conftest*
-  rm -f cfortran_test*
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compile a simple Fortran program
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_mangling" >&5
-$as_echo "$ac_cv_f77_mangling" >&6; }
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-case $ac_cv_f77_mangling in
-  "lower case, no underscore, no extra underscore")
-	  $as_echo "#define F77_FUNC(name,NAME) name" >>confdefs.h
-
-	  $as_echo "#define F77_FUNC_(name,NAME) name" >>confdefs.h
- ;;
-  "lower case, no underscore, extra underscore")
-	  $as_echo "#define F77_FUNC(name,NAME) name" >>confdefs.h
-
-	  $as_echo "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h
- ;;
-  "lower case, underscore, no extra underscore")
-	  $as_echo "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h
-
-	  $as_echo "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h
- ;;
-  "lower case, underscore, extra underscore")
-	  $as_echo "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h
-
-	  $as_echo "#define F77_FUNC_(name,NAME) name ## __" >>confdefs.h
- ;;
-  "upper case, no underscore, no extra underscore")
-	  $as_echo "#define F77_FUNC(name,NAME) NAME" >>confdefs.h
-
-	  $as_echo "#define F77_FUNC_(name,NAME) NAME" >>confdefs.h
- ;;
-  "upper case, no underscore, extra underscore")
-	  $as_echo "#define F77_FUNC(name,NAME) NAME" >>confdefs.h
-
-	  $as_echo "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h
- ;;
-  "upper case, underscore, no extra underscore")
-	  $as_echo "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h
-
-	  $as_echo "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h
- ;;
-  "upper case, underscore, extra underscore")
-	  $as_echo "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h
-
-	  $as_echo "#define F77_FUNC_(name,NAME) NAME ## __" >>confdefs.h
- ;;
-  *)
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown Fortran name-mangling scheme" >&5
-$as_echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;}
-	  ;;
-esac
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-    ff_cfagsf77=""
-    case $ac_cv_f77_mangling in
-#  "lower case, no underscore, no extra underscore")
-#  "lower case, no underscore, extra underscore")
-# ;;
-	"lower case, underscore, no extra underscore") 	ff_cfagsf77="-DAdd_";;
-	"lower case, underscore, extra underscore")       	ff_cfagsf77="-DAdd__ -Df77IsF2C";;
-	"upper case, no underscore, no extra underscore")     ff_cfagsf77="-DUPPER";;
-	"upper case, no underscore, extra underscore")        ff_cfagsf77="-DUPPER -DAdd__";;
-	"upper case, underscore, no extra underscore")      ff_cfagsf77="-DUPPER -DAdd_";;
-	"upper case, underscore, extra underscore")           ff_cfagsf77="-DUPPER -DAdd__";;
-	*) ;;
-    esac
-    CFLAGSF77=$ff_cfagsf77
-
-    if test $ff_f77intsize -ne  4
-    then
-	as_fn_error 1 " Fatal Error: Your fortran 77  compiler have by not 4 bytes integer ( $ff_f77intsize bytes) " "$LINENO" 5;
-    fi
-    test -f /mingw/bin/libpthread-2.dll && ff_pthread_dll=/mingw/bin/libpthread-2.dll ; \
-    	if test -z "$ff_where_lib_conf_f77" ; then
-	    echo "f77 LD $FLIBS"  >>$ff_where_lib_conf
-	    test -n "$ff_cfagsf77 $ff_pthread_dll" && echo "f77 INCLUDE $ff_cfagsf77 $ff_pthread_dll "  >>$ff_where_lib_conf
-            ff_where_lib_conf_f77=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add f77 : $FLIBS $ff_cfagsf77 $ff_pthread_dll in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add f77 : $FLIBS $ff_cfagsf77 $ff_pthread_dll in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add f77 : $FLIBS $ff_cfagsf77 $ff_pthread_dll in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add f77 : $FLIBS $ff_cfagsf77 $ff_pthread_dll in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    	if test -z "$ff_where_lib_conf_fc" ; then
-	    echo "fc LD $FLIBS"  >>$ff_where_lib_conf
-	    test -n "$ff_cfagsf77 $ff_pthread_dll" && echo "fc INCLUDE $ff_cfagsf77 $ff_pthread_dll "  >>$ff_where_lib_conf
-            ff_where_lib_conf_fc=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add fc : $FLIBS $ff_cfagsf77 $ff_pthread_dll in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add fc : $FLIBS $ff_cfagsf77 $ff_pthread_dll in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add fc : $FLIBS $ff_cfagsf77 $ff_pthread_dll in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add fc : $FLIBS $ff_cfagsf77 $ff_pthread_dll in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-fi
-
-#  fin test FORTRAN ..........
-# ----------------------------
-
-# Check whether --enable-c was given.
-if test "${enable_c+set}" = set; then :
-  enableval=$enable_c;
-fi
-
-if test "$enable_c" != no
-then
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-  # Make sure it works both with $CC and with simple cc.
-  # Following AC_PROG_CC_C_O, we do the test twice because some
-  # compilers refuse to overwrite an existing .o file with -o,
-  # though they will create one.
-  am_cv_prog_cc_c_o=yes
-  for am_i in 1 2; do
-    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
-   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } \
-         && test -f conftest2.$ac_objext; then
-      : OK
-    else
-      am_cv_prog_cc_c_o=no
-      break
-    fi
-  done
-  rm -f core conftest*
-  unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-depcc="$CC"   am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named 'D' -- because '-MD' means "put the output
-  # in D".
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CC_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
-      # Solaris 10 /bin/sh.
-      echo '/* dummy */' > sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with '-c' and '-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle '-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs.
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # After this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested.
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok '-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-fi
-
-
-
-else
-
-	# We need to define this otherwise ./configure crashes with
-	# the message "configure: error: conditional "am__fastdepCC"
-	# was never defined".
-
-    am__fastdepCC_TRUE=
-    am__fastdepCC_FALSE='#'
-fi
-
-for ac_prog in flex lex
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LEX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LEX"; then
-  ac_cv_prog_LEX="$LEX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_LEX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LEX=$ac_cv_prog_LEX
-if test -n "$LEX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
-$as_echo "$LEX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$LEX" && break
-done
-test -n "$LEX" || LEX=":"
-
-if test "x$LEX" != "x:"; then
-  cat >conftest.l <<_ACEOF
-%%
-a { ECHO; }
-b { REJECT; }
-c { yymore (); }
-d { yyless (1); }
-e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument.  */
-    yyless ((input () != 0)); }
-f { unput (yytext[0]); }
-. { BEGIN INITIAL; }
-%%
-#ifdef YYTEXT_POINTER
-extern char *yytext;
-#endif
-int
-main (void)
-{
-  return ! yylex () + ! yywrap ();
-}
-_ACEOF
-{ { ac_try="$LEX conftest.l"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$LEX conftest.l") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5
-$as_echo_n "checking lex output file root... " >&6; }
-if ${ac_cv_prog_lex_root+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-if test -f lex.yy.c; then
-  ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
-  ac_cv_prog_lex_root=lexyy
-else
-  as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
-$as_echo "$ac_cv_prog_lex_root" >&6; }
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-if test -z "${LEXLIB+set}"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5
-$as_echo_n "checking lex library... " >&6; }
-if ${ac_cv_lib_lex+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    ac_save_LIBS=$LIBS
-    ac_cv_lib_lex='none needed'
-    for ac_lib in '' -lfl -ll; do
-      LIBS="$ac_lib $ac_save_LIBS"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_lex=$ac_lib
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-      test "$ac_cv_lib_lex" != 'none needed' && break
-    done
-    LIBS=$ac_save_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
-$as_echo "$ac_cv_lib_lex" >&6; }
-  test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
-$as_echo_n "checking whether yytext is a pointer... " >&6; }
-if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent.  Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-ac_save_LIBS=$LIBS
-LIBS="$LEXLIB $ac_save_LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  #define YYTEXT_POINTER 1
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_prog_lex_yytext_pointer=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
-$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
-
-fi
-rm -f conftest.l $LEX_OUTPUT_ROOT.c
-
-fi
-if test "$LEX" = :; then
-  LEX=${am_missing_run}flex
-fi
-for ac_prog in 'bison -y' byacc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_YACC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$YACC"; then
-  ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_YACC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
-$as_echo "$YACC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-# Some useful libraries
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5
-$as_echo_n "checking for pthread_create in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_pthread_create+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_create ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_pthread_create=yes
-else
-  ac_cv_lib_pthread_pthread_create=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5
-$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then :
-  ff_pthread="-lpthread"
-else
-  ff_pthread=""
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for omp_get_wtime in -liomp5" >&5
-$as_echo_n "checking for omp_get_wtime in -liomp5... " >&6; }
-if ${ac_cv_lib_iomp5_omp_get_wtime+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-liomp5  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char omp_get_wtime ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return omp_get_wtime ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_iomp5_omp_get_wtime=yes
-else
-  ac_cv_lib_iomp5_omp_get_wtime=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iomp5_omp_get_wtime" >&5
-$as_echo "$ac_cv_lib_iomp5_omp_get_wtime" >&6; }
-if test "x$ac_cv_lib_iomp5_omp_get_wtime" = xyes; then :
-  ff_iomp5="-liomp5"
-else
-  ff_iomp5=""
-fi
-
-
-if test -n "$ff_pthread"  ; then
-    	if test -z "$ff_where_lib_conf_pthread" ; then
-	    echo "pthread LD $ff_pthread"  >>$ff_where_lib_conf
-	    test -n "" && echo "pthread INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_pthread=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add pthread : $ff_pthread  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add pthread : $ff_pthread  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add pthread : $ff_pthread  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add pthread : $ff_pthread  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-fi
-
-# Necessary absolute pathname for local directory when some libraries
-# are used from several different locations (for instance locally in
-# configure.ac and in a subdir).
-curdir=`pwd`
-
-# Configure options
-# -----------------
-
-echo $ac_configure_args > configure.param
-# by default the suffix of the  .so lib file is .so
-#      it is .dll   under windows
-#      it is .dylib under macos X
-ff_suffix_dylib="so";
-# Checking wether we can produce a MacIntosh-specific version
-# -----------------------------------------------------------
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking wether we are on a MacIntosh" >&5
-$as_echo_n "checking wether we are on a MacIntosh... " >&6; }
-ff_mac=no
-if test `uname` = Darwin;
-then
-	ff_HOSTARCH_pastix=i686_mac
-	ff_suffix_dylib="dylib"
-	ff_mac=yes
-
-cat >>confdefs.h <<_ACEOF
-#define FF_PREFIX_DIR_APPLE "/Applications/FreeFem++.app/Contents/"
-_ACEOF
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_mac" >&5
-$as_echo "$ff_mac" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking wether we are on  SunOS" >&5
-$as_echo_n "checking wether we are on  SunOS... " >&6; }
-ff_sunos=no
-if test `uname -s` = SunOS;
-then
-	ff_sunos=yes
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_sunos" >&5
-$as_echo "$ff_sunos" >&6; }
-
-# Checking wether we can produce a Microsoft Windows-specific version
-# -------------------------------------------------------------------
-
-# Check whether --enable-cygwindll was given.
-if test "${enable_cygwindll+set}" = set; then :
-  enableval=$enable_cygwindll;
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking wether we are on Microsoft Windows" >&5
-$as_echo_n "checking wether we are on Microsoft Windows... " >&6; }
-ff_uname=`uname`
-#  flag to build window 32   version   ff_mingw = yes
-ff_mingw=no
-case $ff_uname in
-    CYGWIN*)
-
-    	# FFCS - 17/1/12 - -mno-cygwin is not recognised by the latest version of mingw32
-	if test $enable_ffcs = no
-	then
-	    ff_nocygwin=-mno-cygwin
-	fi
-
-	GCCNOCYGWIN=$ff_nocygwin
-;;
-    MINGW*)
-        enable_cygwindll=no;;
-esac
-case $ff_uname in
-CYGWIN*|MINGW*)
-
-	ff_suffix_dylib="dll";
-        ff_win32=yes;
-
-	# FFCS - 8/3/12 - remove -D_MSC_VER under MinGW64 because it forces system calls to be compiled into any object
-	# (which creates thousands of duplicate definitions for sytem calls like time()).
-
-	if test $enable_ffcs = yes
-	then
-	    FFMETIS_CFLAGS="-D__VC__"
-
-	else
-	    FFMETIS_CFLAGS="-D__VC__ -D_MSC_VER"
-
-	fi
-
-	# We need Mingw to avoid Cygwin's extra DLLs
-	if test "$enable_cygwindll" != yes
-	then
-# 	        CHECK_COMPILE_FLAG(C++,-mwindows,CXXFLAGS)
-	        ff_glut_ok=yes
-
-		# FFCS: on Windows, FF crashes when compiling GL/glut.h and the option "--disable-opengl" is not
-		# operational because ff_glut_ok is forced to yes here.
-		if test $enable_ffcs = yes
-		then
-	            ff_glut_ok=no
-		    enable_opengl=no
-		fi
-
-                ff_mingw=yes
-                enable_cygwindll=no;
-		ff_pthread="-mthreads"
-
-		# FFCS does not use the Cygwin MinGW compilers any more
-		if test $enable_ffcs = no
-		then
-		    CXXFLAGS="$CXXFLAGS $ff_nocygwin -I/usr/include/mingw"
-		    FFLAGS="$FFLAGS $ff_nocygwin"
-		    CFLAGS="$CFLAGS $ff_nocygwin -I/usr/include/mingw"
-                    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int a;
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ff_nocygwin="";
-			    { $as_echo "$as_me:${as_lineno-$LINENO}: Sorry $ff_nocygwin optio is wrong try whitout , but try with gcc-3.3" >&5
-$as_echo "$as_me: Sorry $ff_nocygwin optio is wrong try whitout , but try with gcc-3.3" >&6;}
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-		    CXXFLAGS="$CXXFLAGS $ff_nocygwin -I/usr/include/mingw"
-		    FFLAGS="$FFLAGS $ff_nocygwin"
-		    CFLAGS="$CFLAGS $ff_nocygwin -I/usr/include/mingw"
-		    CNOFLAGS="$CNOFLAGS $ff_nocygwin -I/usr/include/mingw"
-		fi
-
-		LIBS="$LIBS $ff_nocygwin -mthreads -lws2_32 -lcomdlg32"
-		LIBSNOCONSOLE="-mwindows"
-
-		# FFCS uses a specific compiler, so we specify its libraries explicitely
-		if test $enable_ffcs = no
-		then
-		    test -z "$MPIRUN" &&  MPIRUN=`which mpiexe.exe`
-		    if test "$enable_fortran" != no  -o  "$with_flib" != no ;   then
-			case "$F77" in
-	 		    *gfortran) FLIBS="$ff_nocygwin -lgfortran";;
-	 		    *g77) FLIBS="$ff_nocygwin -lg2c";;
-			    *)   as_fn_error $? " Sorry no known FLIBS with this $F77  !" "$LINENO" 5 ;;
-			esac
-		    fi
-		fi
-
-                ff_glutname="glut32"
-		#  check abort a existing function just to find in glut32.dll exist in the path
-		#  because glutInit is not the real symbol on win32 dur dur FH !!!!!!!!!
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for abort in -lglut32" >&5
-$as_echo_n "checking for abort in -lglut32... " >&6; }
-if ${ac_cv_lib_glut32_abort+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lglut32  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char abort ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return abort ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_glut32_abort=yes
-else
-  ac_cv_lib_glut32_abort=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_glut32_abort" >&5
-$as_echo "$ac_cv_lib_glut32_abort" >&6; }
-if test "x$ac_cv_lib_glut32_abort" = xyes; then :
-  ff_glut="-l$ff_glutname -mthreads -lglu32 -lopengl32"
-else
-  ff_glut=""
-fi
-
-		if test -z "$ff_glut" ; then
-                ff_glutname="freeglut"
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for abort in -lfreeglut" >&5
-$as_echo_n "checking for abort in -lfreeglut... " >&6; }
-if ${ac_cv_lib_freeglut_abort+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lfreeglut  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char abort ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return abort ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_freeglut_abort=yes
-else
-  ac_cv_lib_freeglut_abort=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_freeglut_abort" >&5
-$as_echo "$ac_cv_lib_freeglut_abort" >&6; }
-if test "x$ac_cv_lib_freeglut_abort" = xyes; then :
-  ff_glut="-l$ff_glutname -mthreads -lglu32 -lopengl32"
-else
-  ff_glut_ok=no
-fi
-
-                fi
-         	# Resources for FreeFem++-cs in Microsoft Windows format
-	        FFGLUTNAME=$ff_glutname
-
-	        WINDRESOBJ=windres.o
-
-	        LIBSNOCONSOLE=$LIBSNOCONSOLE
-
-                WIN32DLLTARGET=win32-dll-target
-
-		ff_TEST_FFPP="../src/bin-win32/FreeFem++.exe"
-		ff_TEST_FFPP_MPI="../src/bin-win32/FreeFem++-mpi.exe"
-
-
-$as_echo "#define PURE_WIN32 1" >>confdefs.h
-
-		ff_dynload=yes
-	fi
-
-
-	;;
-*)ff_win32=no;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_win32" >&5
-$as_echo "$ff_win32" >&6; }
-
-if test "$ff_win32" = no
-then
-	enable_cygwindll=no
-fi
-
-# FreeFem++-specific version information
-# --------------------------------------
-
-# Version numbering, converted to a floating point value
-ff_numver="`echo $VERSION|sed 's/-\(.*\)/+\1.0*0.000001/'`"
-
-cat >>confdefs.h <<_ACEOF
-#define VersionFreeFempp $ff_numver
-_ACEOF
-
-
-# Since src/fflib/strversionnumber.cpp is recreated at each build, this
-# date is only useful for config-version.h
-
-test "$prefix" = NONE && prefix="$ac_default_prefix"
-ff_prefix_dir="${prefix}/lib/ff++/$VERSION"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix dir freefem++  " >&5
-$as_echo_n "checking prefix dir freefem++  ... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_prefix_dir" >&5
-$as_echo "$ff_prefix_dir" >&6; }
-
-FF_DATE=`date`
-
-cat >>confdefs.h <<_ACEOF
-#define VersionFreeFemDate "$FF_DATE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define FF_PREFIX_DIR "${ff_prefix_dir}"
-_ACEOF
-
-ff_prefix_dir=$ff_prefix_dir
-
-
-# Separate configuration header file for version information, included
-# in config-macos9.h
-
-cat << EOF > config-version.h
-/* FreeFem++ version information for MacOS 9 configuration */
-/* File generated by configure.ac */
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "$PACKAGE_STRING"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-
-/* Version number of package */
-#define VERSION "$VERSION"
-
-/* FreeFem++ build date */
-#define VersionFreeFemDate "$FF_DATE"
-
-/* FreeFem++ version as a float */
-#define VersionFreeFempp ($ff_numver)
-EOF
-
-# Checking wether to produce a debug version
-# ------------------------------------------
-
-# Generic or hardware-dependant optimization
-# Checks whether a compiler accepts a given flag
-# ----------------------------------------------
-
-# $1 = compiler name
-# $2 = flag
-# $3 = make macro containing flags for that compiler
-# $4 =  exec is true ..
-# Note: changes AC_LANG()
-
-
-
-# Choosing debugging and/or optimization flags for compilation
-# ------------------------------------------------------------
-
-# Check whether --enable-profiling was given.
-if test "${enable_profiling+set}" = set; then :
-  enableval=$enable_profiling;
-fi
-
-if test "$enable_profiling" = yes
-then
-	CXXFLAGS="$CXXFLAGS -pg"
-	LDFLAGS="$LDFLAGS -pg"
-fi
-
-if test "$enable_m64" = yes -a "$enable_m32"
-then
-  	    as_fn_error 1 " Choose  32 or 64 architecture not the both " "$LINENO" 5;
-fi
-# Check whether --enable-m64 was given.
-if test "${enable_m64+set}" = set; then :
-  enableval=$enable_m64;
-fi
-
-if test "$enable_m64" = yes
-then
-	ff_m64=-m64
-	ff_ok=no
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $ff_m64" >&5
-$as_echo_n "checking whether the C compiler accepts $ff_m64... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS $ff_m64"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "ff_ok" ;
-         then
-	        ff_ok="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-        if test "$ff_ok" = yes ;then  CNOFLAGS="$CFLAGS $ff_m64";fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts $ff_m64" >&5
-$as_echo_n "checking whether the C++ compiler accepts $ff_m64... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS $ff_m64"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts $ff_m64" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts $ff_m64... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS $ff_m64"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-#  add -fPIC on on 64 architecture
-   if test "$ff_ok" = yes ;then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the C compiler accepts -fPIC... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "ff_ok" ;
-         then
-	        ff_ok="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the C++ compiler accepts -fPIC... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -fPIC... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-  fi
-
-fi
-# Check whether --enable-m32 was given.
-if test "${enable_m32+set}" = set; then :
-  enableval=$enable_m32;
-fi
-
-if test "$enable_m32" = yes
-then
-	ff_m32=-m32
-	ff_ok=no
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $ff_m32" >&5
-$as_echo_n "checking whether the C compiler accepts $ff_m32... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS $ff_m32"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "ff_ok" ;
-         then
-	        ff_ok="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-        if test "$ff_ok" = yes ;then  CNOFLAGS="$CFLAGS $ff_m32";fi
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $ff_m32" >&5
-$as_echo_n "checking whether the C compiler accepts $ff_m32... " >&6; }
-	check_save_flags="$CNOFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CNOFLAGS="$CNOFLAGS $ff_m32"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CNOFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts $ff_m32" >&5
-$as_echo_n "checking whether the C++ compiler accepts $ff_m32... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS $ff_m32"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts $ff_m32" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts $ff_m32... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS $ff_m32"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-#  add -fPIC on on 64 architecture
-#        CHECK_COMPILE_FLAG(C,-fPIC,CFLAGS)
-#	CHECK_COMPILE_FLAG(C++,-fPIC,CXXFLAGS)
-#	CHECK_COMPILE_FLAG(Fortran 77,-fPIC,FFLAGS)
-
-fi
-
-# Debug mode (no optimisation)
-# ----------------------------
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to generate debugging information" >&5
-$as_echo_n "checking whether to generate debugging information... " >&6; }
-
-# Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
-  enableval=$enable_debug;
-fi
-
-# Check whether --enable-optim was given.
-if test "${enable_optim+set}" = set; then :
-  enableval=$enable_optim;
-fi
-
-
-if test "$enable_debug" = yes;
-then
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	CFLAGS="`echo $CFLAGS | sed 's/-O2//g'`"
-	FFLAGS="`echo $FFLAGS | sed 's/-O2//g'`"
-	CXXFLAGS="`echo $CXXFLAGS | sed 's/-O2//g'`"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -g" >&5
-$as_echo_n "checking whether the C compiler accepts -g... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -g"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -g" >&5
-$as_echo_n "checking whether the C++ compiler accepts -g... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -g"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -g" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -g... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -g"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-else
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-	# No debugging information in optimized code
-
-	CFLAGS="$CFLAGS -DNDEBUG"
-	FFLAGS="$FFLAGS -DNDEBUG"
-	CXXFLAGS="$CXXFLAGS -DNDEBUG"
-fi
-
-# Hardware-independant optimization
-# ---------------------------------
-
-if test "$enable_debug" != yes -a "$enable_optim" != no;
-then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -O3" >&5
-$as_echo_n "checking whether the C compiler accepts -O3... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -O3"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -O3" >&5
-$as_echo_n "checking whether the C++ compiler accepts -O3... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -O3"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -O3" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -O3... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -O3"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-fi
-
-# Check whether --enable-generic was given.
-if test "${enable_generic+set}" = set; then :
-  enableval=$enable_generic;
-fi
-
-
-# FFCS: remove "-mcpu=common" to allow other hardware-dependant values of cpu for PowerPC - thank you Fred (20/02/11)
-
-if test $enable_ffcs = yes
-then
-    # Generic code
-    if test "$enable_debug" != yes \
-	-a "$enable_optim" != no \
-	-a "$enable_generic" = yes
-    then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -mcpu=common" >&5
-$as_echo_n "checking whether the C compiler accepts -mcpu=common... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -mcpu=common"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -mcpu=common" >&5
-$as_echo_n "checking whether the C++ compiler accepts -mcpu=common... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -mcpu=common"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -mcpu=common" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -mcpu=common... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -mcpu=common"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-    fi
-fi
-
-# Hardware-dependant optimization
-# -------------------------------
-
-if test "$enable_debug" != yes \
-    -a "$enable_optim" != no \
-    -a "$enable_generic" != yes
-then
-
-# Autoconf always chooses -O2. -O2 in gcc makes some functions
-# disappear. This is not ideal for debugging. And when we optimize, we
-# do not use -O2 anyway.
-
-CFLAGS="`echo $CFLAGS | sed 's/-O2//g'`"
-FFLAGS="`echo $FFLAGS | sed 's/-O2//g'`"
-CXXFLAGS="`echo $CXXFLAGS | sed 's/-O2//g'`"
-
-    # MacOS X Darwin
-    if test -x /usr/bin/hostinfo
-	then
-
-
-	# If we are on MacOS X to choise the optimisaztion
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking GCC version" >&5
-$as_echo_n "checking GCC version... " >&6; }
-
-        ff_gcc4=`$CC  --version |awk  ' NR==1 {print $3}'|sed -e 's/\..*$//'`
-	ff_clang=`$CC  --version |awk  '/clang/  {print $4}'`
-	if test -n "$ff_clang" ; then ff_gcc4="llvm"; fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_gcc4" >&5
-$as_echo "$ff_gcc4" >&6; }
-
-	# At the moment, we do not know how to produce correct
-	# optimizated code on G5.
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking PowerPC architecture" >&5
-$as_echo_n "checking PowerPC architecture... " >&6; }
-	ff_machine=`/usr/bin/machine`
-        ff_fast="-O3"
-	if test	-n "$ff_clang" ; then
-          ff_fast='-O3 -fPIC'
-	elif test `uname` = Darwin
-	    then
-	    # Optimization flags: -fast option do not work because the
-	    # -malign-natural flags create wrong IO code
-            if test  "$ff_gcc4" -eq 4
-	    then
-               ff_fast='-fast -fPIC'
-            else
-	      ff_fast='-fPIC -O3 -funroll-loops -fstrict-aliasing -fsched-interblock -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-jumps-max-skip=15 -falign-loops-max-skip=15 -ffast-math  -mpowerpc-gpopt -force_cpusubtype_ALL -fstrict-aliasing  -mpowerpc64 '
-	    fi
-	fi
-
-
-        # CPU detection
-
-	case $ff_machine  in
-	  ppc7450) # G4
-		ff_fast="$ff_fast -mtune=G4 -mcpu=G4";;
-          ppc970) # G5
-	        # remove -fstrict-aliasing on G5 to much optim the
-	        # code cash in GC
-		ff_fast="`echo $ff_fast -mtune=G5 -mcpu=G5| sed 's/-fstrict-aliasing //g'`";;
-          ppc*) # G3 ????
-	       ff_fast="-O3";;
-	  i486)
-	    ff_fast="-O3 $ff_fast";;
-	  x86_64*)
-	  ff_fast="-O3 $ff_fast";;
-	  *)
-	    as_fn_error $? "cannot determine apple cpu type " "$LINENO" 5
-	    ff_fast="-O3";;
-	 esac
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_fast" >&5
-$as_echo "$ff_fast" >&6; }
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $ff_fast" >&5
-$as_echo_n "checking whether the C compiler accepts $ff_fast... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS $ff_fast"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts $ff_fast" >&5
-$as_echo_n "checking whether the C++ compiler accepts $ff_fast... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS $ff_fast"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts $ff_fast" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts $ff_fast... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS $ff_fast"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-
-    # Linux
-    elif test -f /proc/cpuinfo
-	then
-
-	# Specific processors
-	proc_type=unknown
-	ff_optim_type=
-	if test `grep 'Pentium III (Coppermine)' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=pentium3
-	    ff_optim_type=-P3
-	elif test `grep 'Intel(R) Pentium(R) III ' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=pentium3
-	    ff_optim_type=-P3
-	elif test `grep 'Intel(R) Pentium(R) 4 ' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=pentium4
-	    ff_optim_type=-P4
-	elif test `grep 'Intel(R) Xeon(TM) CPU' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=pentium4
-	    ff_optim_type=-P4
-	elif test `grep 'AMD Athlon(tm) Processor' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=athlon
-	    ff_optim_type=-Athlon
-	elif test `grep 'AMD Athlon(tm) XP' /proc/cpuinfo|wc -l` -gt 0
-	    then
-	    proc_type=athlon-xp
-	    ff_optim_type=-AthlonXP
-	fi
-
-	if test "$proc_type" != unknown
-	    then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -march=$proc_type" >&5
-$as_echo_n "checking whether the C compiler accepts -march=$proc_type... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -march=$proc_type"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -march=$proc_type" >&5
-$as_echo_n "checking whether the C++ compiler accepts -march=$proc_type... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -march=$proc_type"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -march=$proc_type" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -march=$proc_type... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -march=$proc_type"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	fi
-
-	# If we did not find a processor type (this happens with
-	# cygwin), try and select separate capabilities instead.
-
-	if test "$proc_type" = unknown
-	    then
-	    if test `grep -e '^flags.*mmx' /proc/cpuinfo|wc -l` -gt 0
-		then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -mmmx" >&5
-$as_echo_n "checking whether the C compiler accepts -mmmx... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -mmmx"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -mmmx" >&5
-$as_echo_n "checking whether the C++ compiler accepts -mmmx... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -mmmx"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -mmmx" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -mmmx... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -mmmx"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	    fi
-	    if test `grep -e '^flags.*sse ' /proc/cpuinfo|wc -l` -gt 0
-		then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -msse" >&5
-$as_echo_n "checking whether the C compiler accepts -msse... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -msse"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -msse" >&5
-$as_echo_n "checking whether the C++ compiler accepts -msse... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -msse"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -msse" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -msse... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -msse"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	    fi
-	    if test `grep -e '^flags.*sse2' /proc/cpuinfo|wc -l` -gt 0
-		then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -msse2" >&5
-$as_echo_n "checking whether the C compiler accepts -msse2... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -msse2"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -msse2" >&5
-$as_echo_n "checking whether the C++ compiler accepts -msse2... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -msse2"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -msse2" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -msse2... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -msse2"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	    fi
-	    if test `grep -e '^flags.*3dnow' /proc/cpuinfo|wc -l` -gt 0
-		then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -m3dnow" >&5
-$as_echo_n "checking whether the C compiler accepts -m3dnow... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -m3dnow"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -m3dnow" >&5
-$as_echo_n "checking whether the C++ compiler accepts -m3dnow... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -m3dnow"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran 77 compiler accepts -m3dnow" >&5
-$as_echo_n "checking whether the Fortran 77 compiler accepts -m3dnow... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-	FFLAGS="$FFLAGS -m3dnow"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-       program x
-       end
-_ACEOF
-if ac_fn_f77_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	    fi
-	fi
-    fi
-fi
-
-# Defines a variable containing the optimization type, to be used in
-# binary archive names. It may be empty if only generic optimization
-# is used.
-
-OPTIM_TYPE=$ff_optim_type
-
-
-# ===========================================================================
-#        http://www.gnu.org/software/autoconf-archive/ax_lib_hdf5.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_LIB_HDF5([serial/parallel])
-#
-# DESCRIPTION
-#
-#   This macro provides tests of the availability of HDF5 library.
-#
-#   The optional macro argument should be either 'serial' or 'parallel'. The
-#   former only looks for serial HDF5 installations via h5cc. The latter
-#   only looks for parallel HDF5 installations via h5pcc. If the optional
-#   argument is omitted, serial installations will be preferred over
-#   parallel ones.
-#
-#   The macro adds a --with-hdf5 option accepting one of three values:
-#
-#     no   - do not check for the HDF5 library.
-#     yes  - do check for HDF5 library in standard locations.
-#     path - complete path to the HDF5 helper script h5cc or h5pcc.
-#
-#   If HDF5 is successfully found, this macro calls
-#
-#     AC_SUBST(HDF5_VERSION)
-#     AC_SUBST(HDF5_CC)
-#     AC_SUBST(HDF5_CFLAGS)
-#     AC_SUBST(HDF5_CPPFLAGS)
-#     AC_SUBST(HDF5_LDFLAGS)
-#     AC_SUBST(HDF5_LIBS)
-#     AC_SUBST(HDF5_FC)
-#     AC_SUBST(HDF5_FFLAGS)
-#     AC_SUBST(HDF5_FLIBS)
-#     AC_DEFINE(HAVE_HDF5)
-#
-#   and sets with_hdf5="yes".  Additionally, the macro sets
-#   with_hdf5_fortran="yes" if a matching Fortran wrapper script is found.
-#   Note that Autconf's Fortran support is not used to perform this check.
-#   H5CC and H5FC will contain the appropriate serial or parallel HDF5
-#   wrapper script locations.
-#
-#   If HDF5 is disabled or not found, this macros sets with_hdf5="no" and
-#   with_hdf5_fortran="no".
-#
-#   Your configuration script can test $with_hdf to take any further
-#   actions. HDF5_{C,CPP,LD}FLAGS may be used when building with C or C++.
-#   HDF5_F{FLAGS,LIBS} should be used when building Fortran applications.
-#
-#   To use the macro, one would code one of the following in "configure.ac"
-#   before AC_OUTPUT:
-#
-#     1) dnl Check for HDF5 support
-#        AX_LIB_HDF5()
-#
-#     2) dnl Check for serial HDF5 support
-#        AX_LIB_HDF5([serial])
-#
-#     3) dnl Check for parallel HDF5 support
-#        AX_LIB_HDF5([parallel])
-#
-#   One could test $with_hdf5 for the outcome or display it as follows
-#
-#     echo "HDF5 support:  $with_hdf5"
-#
-#   You could also for example, override the default CC in "configure.ac" to
-#   enforce compilation with the compiler that HDF5 uses:
-#
-#     AX_LIB_HDF5([parallel])
-#     if test "$with_hdf5" = "yes"; then
-#             CC="$HDF5_CC"
-#     else
-#             AC_MSG_ERROR([Unable to find HDF5, we need parallel HDF5.])
-#     fi
-#
-# LICENSE
-#
-#   Copyright (c) 2009 Timothy Brown <tbrown at freeshell.org>
-#   Copyright (c) 2010 Rhys Ulerich <rhys.ulerich at gmail.com>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 11
-
-
-
-# Configure path for the GNU Scientific Library
-# Christopher R. Gabriel <cgabriel at linux.it>, April 2000
-
-
-
-
-# This is what autoupdate's m4 run will expand.  It fires
-# the warning (with _au_warn_XXX), outputs it into the
-# updated configure.ac (with AC_DIAGNOSE), and then outputs
-# the replacement expansion.
-
-
-# This is an auxiliary macro that is also run when
-# autoupdate runs m4.  It simply calls m4_warning, but
-# we need a wrapper so that each warning is emitted only
-# once.  We break the quoting in m4_warning's argument in
-# order to expand this macro's arguments, not AU_DEFUN's.
-
-
-# Finally, this is the expansion that is picked up by
-# autoconf.  It tells the user to run autoupdate, and
-# then outputs the replacement expansion.  We do not care
-# about autoupdate's warning because that contains
-# information on what to do *after* running autoupdate.
-
-
-# Checking c++11 for schwarz interface of P. Jolivet ...
-# F.Hecht:
-# do not compile all with c++11 version to much
-# probleme to day (frev 2015) with g++ 4.8.1
-ff_cxx_save=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -std=c++11" >&5
-$as_echo_n "checking whether the C++ compiler accepts -std=c++11... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -std=c++11"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "ff_cxx11" ;
-         then
-	        ff_cxx11="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-if test "$ff_cxx11" = yes ; then
-    CXX11FLAGS="-std=c++11";
-    	if test -z "$ff_where_lib_conf_cxx11" ; then
-	    echo "cxx11 LD $CXX11FLAGS"  >>$ff_where_lib_conf
-	    test -n "$CXX11FLAGS" && echo "cxx11 INCLUDE $CXX11FLAGS "  >>$ff_where_lib_conf
-            ff_where_lib_conf_cxx11=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add cxx11 : $CXX11FLAGS $CXX11FLAGS in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add cxx11 : $CXX11FLAGS $CXX11FLAGS in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add cxx11 : $CXX11FLAGS $CXX11FLAGS in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add cxx11 : $CXX11FLAGS $CXX11FLAGS in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-fi
-CXXFLAGS="$ff_cxx_flags"
-WITH_CXX11=$ff_cxx11
-
-CXX11FLAGS=$CXX11FLAGS
-
-#end Checking  c++11
-# ------------------------------
-# compilation flags of FreeFem++
-# ------------------------------
-#  -DDRAWING  bamg active some drawing facility in bamg (inquire mesh)
-#  -DBAMG_LONG_LONG active the use of  long long in bamg
-#  -DDEBUG active the  checking in bamg
-#  -DNCHECKPTR remove check pointer facility
-#  -DCHECK_KN active subscripting of some array
-#  -DWITHCHECK of the dynamic type ckecking of the langague (very slow)
-#  -DEIGENVALUE  to compile the eigen value part
-#  ------------------------------------------------
-
-# FreeFrem++-specific optimizations -fpascal-strings
-
-
-if test "$enable_debug" = yes;
-then
-	CXXFLAGS="$CXXFLAGS  -DBAMG_LONG_LONG -DCHECK_KN"
-	if test "$ff_mac" = yes;
-	then
-		CXXFLAGS="$CXXFLAGS -fno-inline  -fexceptions"
-	fi
-else
-	CXXFLAGS="$CXXFLAGS -DBAMG_LONG_LONG  -DNCHECKPTR"
-	if test "$ff_mac" = yes;
-	then
-		CXXFLAGS="$CXXFLAGS "
-	fi
-fi
-
-#whether or not to add a suffix to the package name
-#--------------------------------------------------
-
-
-# Check whether --with-suffix was given.
-if test "${with_suffix+set}" = set; then :
-  withval=$with_suffix;
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking suffix to add to package name" >&5
-$as_echo_n "checking suffix to add to package name... " >&6; }
-ff_suffix=
-if test "$with_suffix" = yes -o "$with_suffix" = no -o "$with_suffix" = ""
-then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-else
-  ff_suffix="-$with_suffix"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_suffix" >&5
-$as_echo "$ff_suffix" >&6; }
-fi
-ADD_PACKAGE_NAME=$ff_suffix
-
-
-
-
-
-# Checking that OpenGL is accessible
-# ----------------------------------
-
-ff_gl_ok=no
-ff_glx_ok=no
-
-ff_libs="$LIBS"
-
-# Check whether --with-flib was given.
-if test "${with_flib+set}" = set; then :
-  withval=$with_flib;
-fi
-
-# Check whether --enable-opengl was given.
-if test "${enable_opengl+set}" = set; then :
-  enableval=$enable_opengl;
-fi
-
-
-# echo "  .... LIBS = $LIBS .... "
-if test x$enable_opengl != xno; then
-# GL libraries seem to depend on some dlopen capabilities
-if test "$enable_static" != yes -a "$ff_glut_ok" != yes
-then
-	# If we cannot find gl.h, no OpenGL version can be produced
-    ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
-  if ${ac_cv_prog_CXXCPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_header in OpenGL/gl.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "OpenGL/gl.h" "ac_cv_header_OpenGL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_OpenGL_gl_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENGL_GL_H 1
-_ACEOF
- ff_gl_ok=yes
-
-else
-  ff_gl_ok=no
-
-fi
-
-done
-
-
-
-    if test "$ff_gl_ok" = no
-    then
-	for ac_header in GL/gl.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_gl_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GL_GL_H 1
-_ACEOF
- ff_gl_ok=yes
-
-else
-  ff_gl_ok=no
-
-fi
-
-done
-
-    fi
-    for ac_header in GLUT/glut.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "GLUT/glut.h" "ac_cv_header_GLUT_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GLUT_glut_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GLUT_GLUT_H 1
-_ACEOF
- ff_glut_ok=yes
-else
-  ff_glut_ok=no
-fi
-
-done
-
-
-    if test "$ff_glut_ok" = no
-    then
-	for ac_header in GL/glut.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_glut_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GL_GLUT_H 1
-_ACEOF
- ff_glut_ok=yes
-else
-  ff_glut_ok=no
-fi
-
-done
-
-    fi
-
-# GLUT .....
-    if test "$ff_glut_ok" =	yes
-    then
-	for glut in \
-	    "-framework GLUT -framework OpenGL -framework Cocoa" \
-	    "-lglut -lGLU -lGL"
-	do
-	    ff_glut="$glut"
-	    ff_libs1="$LIBS"
-     	    LIBS="$LIBS $ff_glut"
-	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char glutInit ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return glutInit ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_glut_ok=yes
-	        LIBS="$ff_libs1"
-		break
-else
-  ff_glut_ok=next
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext;
-	    LIBS="$ff_libs1"
-	done
-    fi
-
-
-fi
-fi
-LIBSPTHREAD=$ff_pthread
-
-
-# ALH - 16/9/13 - at the moment the requirements for medit (glut) are not compatible with FFCS so medit is
-# only compiled with FF.
-
-if test $enable_ffcs = no
-then
-    if test "$ff_glut_ok" = yes
-    then
-	LIBSGLUT=$ff_glut
-
-	if test -n  "$ff_pthread" ; then
-	    ff_ffglutprog="ffglut${EXEEXT}"
-
-cat >>confdefs.h <<_ACEOF
-#define PROG_FFGLUT "$ff_ffglutprog"
-_ACEOF
-
-	fi
-	ff_meditprog="ffmedit${EXEEXT}"
-    fi
-fi
-
-
-# Check whether --with-suffix was given.
-if test "${with_suffix+set}" = set; then :
-  withval=$with_suffix;
-fi
-
-if test "$with_suffix" = yes
-then
-  with_suffix=""
-elif test "$with_suffix" = no -o -z "$with_suffix"
-then
-  with_suffix=""
-else
-  with_suffix="-$with_suffix"
-fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking add suffix $with_suffix " >&5
-$as_echo_n "checking add suffix $with_suffix ... " >&6; }
-  ADD_PACKAGE_NAME=$with_suffix
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-
-# Checking wether we can produce a parallel version
-# -------------------------------------------------
-
-if test $enable_ffcs = no
-then
-    # FF case
-    # Checking wether we can produce a parallel version
-# -------------------------------------------------
-
-ff_save_path="$PATH"
-# We need to choose between mpich, openmpi  and lam for the Debian package
-
-# Check whether --with-mpipath was given.
-if test "${with_mpipath+set}" = set; then :
-  withval=$with_mpipath;
-fi
-
-
-# Check whether --with-mpilibs was given.
-if test "${with_mpilibs+set}" = set; then :
-  withval=$with_mpilibs;
-fi
-
-
-# Check whether --with-mpilibsc was given.
-if test "${with_mpilibsc+set}" = set; then :
-  withval=$with_mpilibsc;
-fi
-
-
-# Check whether --with-mpiinc was given.
-if test "${with_mpiinc+set}" = set; then :
-  withval=$with_mpiinc;
-fi
-
-
-# Check whether --with-mpi was given.
-if test "${with_mpi+set}" = set; then :
-  withval=$with_mpi;
-fi
-
-if test "$with_mpi" != no ; then
-#if test "$with_mpi" != no ; then
-#AX_MPI(with_mpi=yes, with_mpi=no)
-#fi
-
-# Default is mpic++
-ff_mpi_suffix="";
-if test "$with_mpi" = yes -o -z "$with_mpi"
-then
-   ff_mpicxx=mpic++
-else
-  case "$with_mpi" in
- lam|mpich|openmpi)   ff_mpi_suffix=.$with_mpi;ff_mpicxx=mpic++.$with_mpi;;
- *)  ff_mpicxx="$with_mpi" ;;
- esac
-fi
-
-if test -n "$with_mpiinc"  -a "$with_mpiinc" != no ; then
-  if test  "$with_mpi" = 'no' ; then with_mpi='yes'; fi
-  ff_MPI_INCLUDE="$with_mpiinc"
-fi
-if test -n "$with_mpilibs" -a "$with_mpilibs" != no ; then
-    ff_MPI_LIB="$with_mpilibs"
-    ff_MPI_LIBC="$with_mpilibs"
-    ff_MPI_LIBFC="$with_mpilibs"
-    MPICXX="$CXX $ff_MPI_INCLUDE"
-    MPIF77="$F77 $ff_MPI_INCLUDE"
-    MPIFC="$FC  $ff_MPI_INCLUDE"
-    MPICC="$CC  $ff_MPI_INCLUDE"
-    { $as_echo "$as_me:${as_lineno-$LINENO}:    ---  set  all MPI compile to compiler:   $MPICC , $MPIF77, $MPIFC, $MPICC  " >&5
-$as_echo "$as_me:    ---  set  all MPI compile to compiler:   $MPICC , $MPIF77, $MPIFC, $MPICC  " >&6;}
-fi
-
-if test -n "$with_mpilibsc" -a "$with_mpilibsc" != no ; then
- ff_MPI_LIBC="$with_mpilibsc"
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPIRUN" >&5
-$as_echo_n "checking for MPIRUN... " >&6; }
-
-if test -z "$MPIRUN" ; then
-    for ac_prog in mpirun mpiexec mpiexec.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MPIRUN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MPIRUN in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MPIRUN="$MPIRUN" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MPIRUN="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MPIRUN=$ac_cv_path_MPIRUN
-if test -n "$MPIRUN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIRUN" >&5
-$as_echo "$MPIRUN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MPIRUN" && break
-done
-test -n "$MPIRUN" || MPIRUN="no"
-
-    if test "$MPIRUN" = no
-    then
-	ff_mpi=no
-    fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIRUN" >&5
-$as_echo "$MPIRUN" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpipath " >&5
-$as_echo_n "checking for mpipath ... " >&6; }
-
-if test "$with_mpi" != no -a ! -d  "$with_mpipath" -a "$MPIRUN" != no ; then
-#   if "$MPIRUN" != no ; tehn
-    with_mpipath=`$as_dirname -- "$MPIRUN" ||
-$as_expr X"$MPIRUN" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$MPIRUN" : 'X\(//\)[^/]' \| \
-	 X"$MPIRUN" : 'X\(//\)$' \| \
-	 X"$MPIRUN" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$MPIRUN" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-    with_mpipath=`$as_dirname -- "$with_mpipath" ||
-$as_expr X"$with_mpipath" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$with_mpipath" : 'X\(//\)[^/]' \| \
-	 X"$with_mpipath" : 'X\(//\)$' \| \
-	 X"$with_mpipath" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$with_mpipath" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-#    echo " ***** with_mpipath $with_mpipath \n"
-
-#    else
-#    for i in '/c/Program Files (x86)/MPICH2' '/c/Program Files/MPICH2' 'c:\Program Files (x86)\MPICH2' 'c:\Program Files\MPICH2' ; do
-#	test -d "$i" &&  with_mpipath="$i" && break
-#    done
-#    fi
-fi
-#echo "****  with_mpipath  '$with_mpipath' $MPIRUN *****"
-case "$MPIRUN" in
- */sgi/mpt/*)
-	ff_MPI_INCLUDE_DIR=
-	ff_MPI_LIB_DIR=
-        test -f "$with_mpipath/include/mpif.h" &&  ff_MPI_INCLUDE_DIR="$with_mpipath/include"
-        test -f "$with_mpipath/lib/libmpi.so" &&  ff_MPI_LIB_DIR="$with_mpipath/lib"
-        if test -n "$ff_MPI_INCLUDE_DIR" -a -n "$ff_MPI_LIB_DIR" ; then
-            ff_MPI_INCLUDE="-I'$ff_MPI_INCLUDE_DIR' "
-            with_mpiinc="$ff_MPI_INCLUDE"
-            ff_MPI_LIBC="-L'$ff_MPI_LIB_DIR' -lmpi"
-            ff_MPI_LIB="-L'$ff_MPI_LIB_DIR' -lmpi++ -lmpi"
-            ff_MPI_LIBFC="-L'$ff_MPI_LIB_DIR'  -lmpi"
-	    ff_mpitype=sgi
-            test -z "$MPICXX" && MPICXX="$CXX $ff_MPI_INCLUDE"
-            test -z "$MPIF77" && MPIF77="$F77 $ff_MPI_INCLUDE"
-            test -z "$MPIFC"  && MPIFC="$FC  $ff_MPI_INCLUDE"
-            test -z "$MPICC"  && MPICC="$CC  $ff_MPI_INCLUDE"
-#	    echo " *** MPI sgi ..... "
-        fi
-	;;
-esac
-
-if test  -d "$with_mpipath" -a "$ff_win32" = yes  ; then
-#    sed -e "s?@MPIDIR@?$with_mpipath?" -e "s?@F77@?$F77?" -e "s?@CC@?$CC?" -e "s?@CXX@?$CXX?"   -e "s?@FC@?$FC?"  <mpic++.in >mpic++
- #   chmod a+rx mpic++
-  #  for i in mpicc mpif90 mpifc mpif77 ; do cp mpic++ $i; done
-#    ff_pwd=`pwd`
- #   with_mpi="$ff_pwd"/mpic++
- #   MPICXX="$ff_pwd/mpic++"
- #   MPIF77="$ff_pwd/mpif77"
- #   MPIFC="$ff_pwd/mpif90"
- #   MPICC="$ff_pwd/mpicc" zzzzzzzzzzz
-    if  with_mpilibs=`which msmpi.dll`
-    then
-	case "$ff_size_ptr"  in
-	    4) with_mpipathlib="$with_mpipath/Lib/i386";;
-	    8) with_mpipathlib="$with_mpipath/Lib/amd64";;
-	    *) with_mpipath=no;;
-	esac
-
-
-	test -d "$with_mpipath/Inc" &&  ff_MPI_INCLUDE_DIR="$with_mpipath/Inc"
-	test -d "$with_mpipath/Include" &&  ff_MPI_INCLUDE_DIR="$with_mpipath/Include"
-	ff_MPI_INCLUDE="-I'$ff_MPI_INCLUDE_DIR' '-D_MSC_VER' '-D__int64=long long'"
-	with_mpiinc="$ff_MPI_INCLUDE"
-	test -z "$MPIRUN" && MPIRUN="$with_mpipath/bin/mpiexe.exe"
-	ff_MPI_LIBC="$with_mpilibs"
-	ff_MPI_LIB="$with_mpilibs"
-	ff_MPI_LIBFC="$with_mpilibs"
-	test -z "$MPICXX" && MPICXX="$CXX $ff_MPI_INCLUDE"
-	test -z "$MPIF77" && MPIF77="$F77 $ff_MPI_INCLUDE"
-	test -z "$MPIFC"  && MPIFC="$FC  $ff_MPI_INCLUDE"
-	test -z "$MPICC"  && MPICC="$CC  $ff_MPI_INCLUDE"
-    else
-	echo " #### no msmpi.dll  => no mpi under windows .... (FH) " >&AS_MESSAGE_LOG_FD
-	echo " #### no msmpi.dll  => no mpi under windows .... (FH) " >&AS_MESSAGE_FD
-	with_mpipath=no
-	with_mpi=no
-    fi
-else
-    with_mpipath=no
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_mpi_path" >&5
-$as_echo "$ff_mpi_path" >&6; }
-
-
-
-
-
-
-ff_save_cxx="$CXX"
-ff_save_libs="$LIBS"
-
-
-if test "$with_mpi" != no
-then
-	ff_mpi_path=`$as_dirname -- "$MPIRUN" ||
-$as_expr X"$MPIRUN" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$MPIRUN" : 'X\(//\)[^/]' \| \
-	 X"$MPIRUN" : 'X\(//\)$' \| \
-	 X"$MPIRUN" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$MPIRUN" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-		case "$ff_mpi_path" in
-	    .|"") ff_mpi_path="$PATH";ff_defmpicxx="$ff_mpicxx";;
-	    *) ff_mpi_path="$ff_mpi_path";ff_defmpicxx=`expr "//$ff_mpicxx" : '.*/\(.*\)'`;;
-	    	esac
-
-	if test -z "$MPICXX" ; then
-	    for ac_prog in $ff_defmpicxx mpic++$ff_mpi_suffix mpicxx$ff_mpi_suffix mpiCC$ff_mpi_suffix mpCC hcp mpxlC mpxlC_r cmpic++
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MPICXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MPICXX in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MPICXX="$MPICXX" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $ff_mpi_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MPICXX="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MPICXX=$ac_cv_path_MPICXX
-if test -n "$MPICXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICXX" >&5
-$as_echo "$MPICXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MPICXX" && break
-done
-test -n "$MPICXX" || MPICXX="no"
-
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPICXX" >&5
-$as_echo_n "checking for MPICXX... " >&6; }
-	fi
-	ff_mpicxx="eval $MPICXX"
-	CXX=$ff_mpicxx
-	LIBS="$LIBS $ff_MPI_LIB"
-	test -z "$ff_mpi" && ff_mpi=yes
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <mpi.h>
-#include <stdio.h>
-int main(int argc,char **argv){
-  char name[BUFSIZ];
-  int length;
-
-  MPI_Init(&argc, &argv);
-  MPI_Get_processor_name(name, &length);
-  printf("%s: hello world\n", name);
-  MPI_Finalize();
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_mpi=yes
-else
-  ff_mpi=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_mpi" >&5
-$as_echo "$ff_mpi" >&6; }
-
-	# Also check that mpirun is there. If it isn't, then MPI is
-	# not fully installed.
-
-
-	if test "$ff_mpi" = yes;
-	then
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MPI_DOUBLE_COMPLEX" >&5
-$as_echo_n "checking MPI_DOUBLE_COMPLEX... " >&6; }
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <mpi.h>
-MPI_Datatype xxxx=MPI_DOUBLE_COMPLEX;
-
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ff_mpi_double_complex=yes
-else
-  ff_mpi_double_complex=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_mpi_double_complex" >&5
-$as_echo "$ff_mpi_double_complex" >&6; }
-if test "$ff_mpi_double_complex" = yes  ; then
-
-$as_echo "#define HAVE_MPI_DOUBLE_COMPLEX 1" >>confdefs.h
-
-fi
-
-
-	  echo "MPI CC $ff_mpi" >config_LIB_INFO
-
-		# We do not AC_DEFINE any special flag for parallel
-		# computation here, because it must only be set when the
- 		# parallel program is compiled (see src/mpi/Makfile.am)
-		ff_mpiprog="FreeFem++-mpi${EXEEXT}"
-   		  MPIPROG="$ff_mpiprog"
-
-   		  MPISCRIPT="ff-mpirun"
-
-   		  MPIRUN=$MPIRUN
-
-                  MPICXX=$MPICXX
-
-	else
-	        MPICXX=$ff_save_cxx
-
-	fi
-
-	if test "$ff_mpi" = yes;
-	then
-	  if test "$enable_fortran" != no
-	  then
-
-
-	      if test -z "$MPIF77" ; then
-		  for ac_prog in mpif90$ff_mpi_suffix mpif77$ff_mpi_suffix hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MPIF77+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MPIF77 in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MPIF77="$MPIF77" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $ff_mpi_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MPIF77="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MPIF77=$ac_cv_path_MPIF77
-if test -n "$MPIF77"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIF77" >&5
-$as_echo "$MPIF77" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MPIF77" && break
-done
-test -n "$MPIF77" || MPIF77=""""
-
-	      fi
-
-
-	      if test -z "$MPIFC" ; then
-		  for ac_prog in mpif90$ff_mpi_suffix mpxlf95_r mpxlf90_r mpxlf95 mpxlf90 mpf90 cmpif90c
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MPIFC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MPIFC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MPIFC="$MPIFC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $ff_mpi_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MPIFC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MPIFC=$ac_cv_path_MPIFC
-if test -n "$MPIFC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIFC" >&5
-$as_echo "$MPIFC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MPIFC" && break
-done
-test -n "$MPIFC" || MPIFC=""""
-
-	      fi
-
-	  fi
-
-	echo " ********************ffmpi= '$ff_mpi' *************   "
-	ff_MPI_INCLUDE="$with_mpiinc"
-	if test -z "$ff_mpitype" ; then
-            ff_mpishow=`$MPICXX -show` 2>/dev/null
-            ff_mpicshow=`$MPICC -show` 2>/dev/null
-            ff_mpifcshow=`$MPIFC -show` 2>/dev/null
-	    if test "$with_mpilibs" = no -o -z "$with_mpilibs" ; then
-		ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[^WLlOgp]|^-Wp,'|tr '\n' ' '`
-		ff_MPI_LIB_DIRS=""
-		ff_MPI_LIB=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`
-		ff_MPI_LIBC=`echo $ff_mpicshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`
-		ff_MPI_LIBFC=`echo $ff_mpifcshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|grep -v 'commons,use_dylibs' |tr '\n' ' '`
-		ff_mpi_idir=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-I'|sed s/^-I//|tr '\n' ' '`' /usr/include'
-	    fi
-	    ff_mpi_idir=`echo $ff_MPI_INCLUDE|tr ' ' '\n'| grep -E '^-I'|sed s/^-I//|tr '\n' ' '`' /usr/include'
-	    ff_mpi_ldir=`echo $ff_MPI_LIB|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|sed -e 's/^-[Llp]//' -e 's/^-Wl,//'  |tr '\n' ' '`' /usr/lib']
-
-	    if  test -z "$ff_MPI_INCLUDE_DIR" ; then
-		for i in $ff_mpi_idir; do
-		    if test -f "$i/mpi.h" -a -z "$ff_MPI_INCLUDE_DIR"  ;then
-			ff_MPI_INCLUDE_DIR=$i
-		    fi
-		done
-	    fi
-	    for i in $ff_mpi_ldir; do
-		ff_tmp=`ls $i/libmpi.*|head -1`
-		if test  -f "$ff_tmp"  -a -z "$ff_MPI_LIB_DIRS"  ;then
-		    ff_MPI_LIB_DIRS=$i
-		fi
-	    done
-	fi
-	MPICXX=$MPICXX
-
-
-	if test -z "$MPICC" ; then
-	    for ac_prog in mpicc$ff_mpi_suffix hcc mpcc mpcc_r mpxlc cmpicc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MPICC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MPICC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MPICC="$MPICC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $ff_mpi_path
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MPICC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MPICC=$ac_cv_path_MPICC
-if test -n "$MPICC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPICC" >&5
-$as_echo "$MPICC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MPICC" && break
-done
-test -n "$MPICC" || MPICC=""""
-
-	fi
-	MPICC=$MPICC
-
-	PASTIX_HOSTARCH=$ff_HOSTARCH_pastix
-
-
-	if test ! -f "$ff_MPI_INCLUDE_DIR/mpif.h"  ; then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:  MPI without fortran no file \"$ff_MPI_INCLUDE_DIR/mpif.h\"  " >&5
-$as_echo "$as_me:  MPI without fortran no file \"$ff_MPI_INCLUDE_DIR/mpif.h\"  " >&6;}
-	else
-	    if test -n "$MPIFC" ; then
-	        	if test -z "$ff_where_lib_conf_mpifc" ; then
-	    echo "mpifc LD $ff_MPI_LIBFC"  >>$ff_where_lib_conf
-	    test -n "$ff_MPI_INCLUDE" && echo "mpifc INCLUDE $ff_MPI_INCLUDE "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mpifc=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mpifc : $ff_MPI_LIBFC $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mpifc : $ff_MPI_LIBFC $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mpifc : $ff_MPI_LIBFC $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mpifc : $ff_MPI_LIBFC $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-	        	if test -z "$ff_where_lib_conf_mpif77" ; then
-	    echo "mpif77 LD $ff_MPI_LIBFC"  >>$ff_where_lib_conf
-	    test -n "$ff_MPI_INCLUDE" && echo "mpif77 INCLUDE $ff_MPI_INCLUDE "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mpif77=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mpif77 : $ff_MPI_LIBFC $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mpif77 : $ff_MPI_LIBFC $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mpif77 : $ff_MPI_LIBFC $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mpif77 : $ff_MPI_LIBFC $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-	    fi
-  	fi
-	if test -n "$MPICXX" ; then
-            	if test -z "$ff_where_lib_conf_mpi" ; then
-	    echo "mpi LD $ff_MPI_LIB"  >>$ff_where_lib_conf
-	    test -n "$ff_MPI_INCLUDE" && echo "mpi INCLUDE $ff_MPI_INCLUDE "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mpi=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mpi : $ff_MPI_LIB $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mpi : $ff_MPI_LIB $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mpi : $ff_MPI_LIB $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mpi : $ff_MPI_LIB $ff_MPI_INCLUDE in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-	fi
-	MPI_INC_DIR=$ff_MPI_INCLUDE_DIR
-
-	MPI_INCLUDE=$ff_MPI_INCLUDE
-
-	MPI_LIB_DIRS=$ff_MPI_LIB_DIRS
-
-	MPI_LIB=$ff_MPI_LIB
-
-	MPI_LIBC=$ff_MPI_LIBC
-
-	MPI_LIBFC=$ff_MPI_LIBFC
-
-        SKIP_TESTS_MPI="no"
-
-	fi
-	CXX="$ff_save_cxx"
-	LIBS="$ff_save_libs"
-fi
-fi
-##  clean on MPI variable if not MPI ...
-if test "$ff_mpi" != yes ; then
-
-	  MPIRUN=""
-
-	  MPICC=""
-
-	  MPICXX=""
-
-	  MPIF77=""
-
-	  MPIFC=""
-
-	  MPI_INCLUDE=""
-
-	  MPI_LIB_DIRS=""
-
-	  MPI_LIB=""
-
-	  MPI_LIBC=""
-
-	  MPI_LIBFC=""
-
-          SKIP_TESTS_MPI="yes"
-
-	  ff_mpi=no
-
-fi
-
-# Local Variables:
-# mode:shell-script
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
-
-else
-    # FFCS - use the same MPI configuration choices as FFCS
-    ff_mpi=yes
-    MPICXX=$MPICXX
-
-    MPICC=$MPICC
-
-    MPIF77=$MPIF77
-
-    MPIFC=$MPIFC
-
-    MPIPROG="FreeFem++-mpi${EXEEXT}"
-
-    MPI_INCLUDE="-I $MPI_INC_DIR"
-
-    MPI_INC_DIR=$MPI_INC_DIR
-
-    MPI_LIB_DIRS=""
-
-    MPI_LIB=$MPI_LIB
-
-    MPI_LIBC=""
-
-    MPI_LIBFC=""
-
-
-    # Extra MPI-dependant configuration options that are set by FF during MPI configuration. FFCS - 25/2/13 - Fred
-    # noticed that if PASTIX_HOSTARCH stays blank, pastix compilation breaks. At least i686_pc_linux and i686_mac are
-    # required by pastix on the corresponding platforms.
-
-    if test"$ff_HOSTARCH_pastix" = ""
-    then
-	ff_HOSTARCH_pastix=i686_pc_linux
-    fi
-    PASTIX_HOSTARCH=$ff_HOSTARCH_pastix
-
-
-    # these values should not be empty otherwise examples++-load/ff-get-dep will think that they are not defined
-    	if test -z "$ff_where_lib_conf_mpi" ; then
-	    echo "mpi LD -DDUMMY"  >>$ff_where_lib_conf
-	    test -n "-I$MPI_INC_DIR" && echo "mpi INCLUDE -I$MPI_INC_DIR "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mpi=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mpi : -DDUMMY -I$MPI_INC_DIR in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mpi : -DDUMMY -I$MPI_INC_DIR in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mpi : -DDUMMY -I$MPI_INC_DIR in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mpi : -DDUMMY -I$MPI_INC_DIR in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-
-    # mpifc and mpif77 libraries should always be specified because FF never calls the Fortran MPI compiler. It always
-    # uses mpicxx in [[file:examples++-load/ff-c++]]. The resulting Fortran libraries (eg Mumps) would compile even
-    # without the proper Fortran libs, but they would not load properly.
-
-    # under Win32, libmpi_f77.a is not the right name and FFCS mingw/mpicxx adds the right libraries by itself
-
-    # With mpich2 Debian wheezy 32 bits, libmpi_f77.a is not available (request from Cico, 14/10/13)
-
-    if test -f /usr/lib/openmpi/lib/libmpi_f77.a
-    then
-        	if test -z "$ff_where_lib_conf_mpifc" ; then
-	    echo "mpifc LD -lmpi_f77"  >>$ff_where_lib_conf
-	    test -n "" && echo "mpifc INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mpifc=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mpifc : -lmpi_f77  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mpifc : -lmpi_f77  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mpifc : -lmpi_f77  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mpifc : -lmpi_f77  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    		if test -z "$ff_where_lib_conf_mpif77" ; then
-	    echo "mpif77 LD -lmpi_f77"  >>$ff_where_lib_conf
-	    test -n "" && echo "mpif77 INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mpif77=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mpif77 : -lmpi_f77  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mpif77 : -lmpi_f77  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mpif77 : -lmpi_f77  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mpif77 : -lmpi_f77  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    else
-        	if test -z "$ff_where_lib_conf_mpifc" ; then
-	    echo "mpifc LD -DDUMMY"  >>$ff_where_lib_conf
-	    test -n "" && echo "mpifc INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mpifc=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mpifc : -DDUMMY  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mpifc : -DDUMMY  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mpifc : -DDUMMY  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mpifc : -DDUMMY  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    		if test -z "$ff_where_lib_conf_mpif77" ; then
-	    echo "mpif77 LD -DDUMMY"  >>$ff_where_lib_conf
-	    test -n "" && echo "mpif77 INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mpif77=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mpif77 : -DDUMMY  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mpif77 : -DDUMMY  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mpif77 : -DDUMMY  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mpif77 : -DDUMMY  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    fi
-
-    # FFCS - MPI_DOUBLE_COMPLEX kept from original FF configure script
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking MPI_DOUBLE_COMPLEX" >&5
-$as_echo_n "checking MPI_DOUBLE_COMPLEX... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <mpi.h>
-		MPI_Datatype xxxx=MPI_DOUBLE_COMPLEX;
-
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ff_mpi_double_complex=yes
-else
-  ff_mpi_double_complex=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_mpi_double_complex" >&5
-$as_echo "$ff_mpi_double_complex" >&6; }
-    if test "$ff_mpi_double_complex" = yes  ; then
-
-$as_echo "#define HAVE_MPI_DOUBLE_COMPLEX 1" >>confdefs.h
-
-    fi
-fi
-
-# FFCS needs to change some of the FF makefiles to compile without MPI on MacOS
- if test $ff_mpi = yes; then
-  FFCS_MPIOK_TRUE=
-  FFCS_MPIOK_FALSE='#'
-else
-  FFCS_MPIOK_TRUE='#'
-  FFCS_MPIOK_FALSE=
-fi
-
-
-# Looking for useful configuration utilities
-# ------------------------------------------
-
-# Check whether --enable-download was given.
-if test "${enable_download+set}" = set; then :
-  enableval=$enable_download;
-fi
-
-## PETSc
-
-# Check whether --with-petsc was given.
-if test "${with_petsc+set}" = set; then :
-  withval=$with_petsc;
-fi
-
-# /usr/local/petsc/conf/petscvariables
-ff_petsc_ok=no
-## echo --$with_petsc--
-if test "$with_petsc" != no -a  $ff_mpi = yes; then
-    for d in "$with_petsc" /usr /usr/local /opt/usr  /opt/local ;do
-	for dd in "" "/petsc/conf/petscvariables" "/lib/petsc-conf/petscvariables" ; do
-	    ffconfpetsc="$d$dd"
-	    if test -f "$ffconfpetsc" ; then
-		if test  "$ff_petsc_ok" = no ; then
-		    PETSC_MPIRUN=`awk -F' *= *' '"MPIEXEC"==$1 {print $2}' "$ffconfpetsc"`
-		    cmp -s  "$PETSC_MPIRUN" "$MPIRUN"
-		    if test "$?"  -eq 0 ; then
-			PETSC_WITH_EXTERNAL_LIB=`awk -F'=' '"PETSC_WITH_EXTERNAL_LIB "==$1 {print $2}' $ffconfpetsc`
-			PETSC_CC_INCLUDES=`awk -F'=' '"PETSC_CC_INCLUDES "==$1 {print $2}' $ffconfpetsc`
-			if test -n "$PETSC_WITH_EXTERNAL_LIB"; then
-			    ff_petsc_ok=yes;
-			    	if test -z "$ff_where_lib_conf_petsc" ; then
-	    echo "petsc LD $PETSC_WITH_EXTERNAL_LIB"  >>$ff_where_lib_conf
-	    test -n "$PETSC_CC_INCLUDES" && echo "petsc INCLUDE $PETSC_CC_INCLUDES "  >>$ff_where_lib_conf
-            ff_where_lib_conf_petsc=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add petsc : $PETSC_WITH_EXTERNAL_LIB $PETSC_CC_INCLUDES in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add petsc : $PETSC_WITH_EXTERNAL_LIB $PETSC_CC_INCLUDES in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add petsc : $PETSC_WITH_EXTERNAL_LIB $PETSC_CC_INCLUDES in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add petsc : $PETSC_WITH_EXTERNAL_LIB $PETSC_CC_INCLUDES in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-			fi
-		    else
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: \" Warning PETSC MPI and FF++ MPI not the same: $PETSC_MPIRUN != $MPIRUN.\" " >&5
-$as_echo "$as_me: \" Warning PETSC MPI and FF++ MPI not the same: $PETSC_MPIRUN != $MPIRUN.\" " >&6;};
-		    fi
-		fi
-	    else
-		test  "$ff_petsc_ok" = no && echo "  *** try $ffconfpetsc"
-		ffconfpetsc="";
-
-	    fi
-	done
-    done
-fi
-
-if test "$ff_petsc_ok" != no ;   then
-    { $as_echo "$as_me:${as_lineno-$LINENO}:  with petsc  $ff_petsc_ok" >&5
-$as_echo "$as_me:  with petsc  $ff_petsc_ok" >&6;}
-else
-    { $as_echo "$as_me:${as_lineno-$LINENO}:  without petsc ***** " >&5
-$as_echo "$as_me:  without petsc ***** " >&6;}
-fi
-
-
-
-#replacing wget with another command
-ff_wget_command="wget --no-check-certificate"
-ff_wget=no
-
-
-# Check whether --with-wget was given.
-if test "${with_wget+set}" = set; then :
-  withval=$with_wget; enable_download=yes
-	   ff_wget=yes
-	   ff_wget_command="${withval}"
-fi
-
-
-ff_mkl_libpath=yes
-
-# Check whether --with-mkl was given.
-if test "${with_mkl+set}" = set; then :
-  withval=$with_mkl; ff_mkl_libpath="${withval}"
-fi
-
-
-# if enabling downloads find wget or curl to do download
-# ------------------------------------------------------
-
-if test  "$ff_wget" =  no
-then
-	ff_wget=""
-	# Extract the first word of "wget --no-check-certificate", so it can be a program name with args.
-set dummy wget --no-check-certificate; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_wget+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_wget"; then
-  ac_cv_prog_ff_wget="$ff_wget" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_wget="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_wget" && ac_cv_prog_ff_wget="no"
-fi
-fi
-ff_wget=$ac_cv_prog_ff_wget
-if test -n "$ff_wget"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_wget" >&5
-$as_echo "$ff_wget" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test  "$ff_wget" = no
-then
-        ff_wget_command="curl --fail -O "
-  	ff_curl=""
-	# Extract the first word of "curl -O", so it can be a program name with args.
-set dummy curl -O; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_curl+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_curl"; then
-  ac_cv_prog_ff_curl="$ff_curl" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_curl="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_curl" && ac_cv_prog_ff_curl="no"
-fi
-fi
-ff_curl=$ac_cv_prog_ff_curl
-if test -n "$ff_curl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_curl" >&5
-$as_echo "$ff_curl" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-	ff_wget="$ff_curl"
-fi
-
-# for automatique compilation of
-# lib in download
-if test  "$ff_wget" != yes  -a "$enable_download"  = "yes"  ; then
-  enable_download=no
-  as_fn_error 1 "   enable-download and no wget or curl. " "$LINENO" 5;
-fi
-if test "$enable_download"  = "yes" ; then
-DOWNLOADCOMPILE="compile-pkg install-other"
-else
-DOWNLOADCOMPILE=
-fi
-
-WGET=$ff_wget_command
-
-DOWNLOADCOMPILE=$DOWNLOADCOMPILE
-
-
-#  modif FH -----
-#  -- looking for cadna
-#  the round-off error propagation
-# the web site http://www-anp.lip6.fr/cadna/
-#  --------------------
-
-# Check whether --with-cadna was given.
-if test "${with_cadna+set}" = set; then :
-  withval=$with_cadna;
-fi
-
-if test "$with_cadna" != no -o -n  "$with_cadna"
-    then
-    ff_cadna="$with_cadna"
-fi
-ff_cadna_ok=no
-if test "$with_cadna" != no
-    then
-    ff_libs_old="$LIBS"
-    ff_ldflags_old="$LDFLAGS"
-    ff_cadna_dir="${curdir}/download/cadna"
-    LDFLAGS="$LDFLAGS -L$ff_cadna_dir"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for arit_zero in -lcadnafree" >&5
-$as_echo_n "checking for arit_zero in -lcadnafree... " >&6; }
-if ${ac_cv_lib_cadnafree_arit_zero+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcadnafree  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char arit_zero ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return arit_zero ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_cadnafree_arit_zero=yes
-else
-  ac_cv_lib_cadnafree_arit_zero=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cadnafree_arit_zero" >&5
-$as_echo "$ac_cv_lib_cadnafree_arit_zero" >&6; }
-if test "x$ac_cv_lib_cadnafree_arit_zero" = xyes; then :
-  ff_cadna_ok=yes
-fi
-
-    for ac_header in ${ff_cadna_dir}/cadnafree.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- ff_cadna_h=yes
-else
-  ff_cadna_h=no
-fi
-
-done
-
-
-    LIBS="$ff_libs_old"
-    LDFLAGS="$ff_ldflags_old"
-
-    if test "$ff_cadna_ok" = yes  -a "$ff_cadna_h" = yes
-	then
-
-$as_echo "#define HAVE_CADNA 1" >>confdefs.h
-
-	CPPFLAGS="$CPPFLAGS -I$ff_cadna_dir"
-	LIBS=" -L$ff_cadna_dir -lcadnafree $ff_libs_old"
-    else
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:  without cadna ***** " >&5
-$as_echo "$as_me:  without cadna ***** " >&6;}
-    fi
-else
-    { $as_echo "$as_me:${as_lineno-$LINENO}:  without cadna ***** " >&5
-$as_echo "$as_me:  without cadna ***** " >&6;}
-fi
-
-# Looking for FFTW
-# ----------------
-
-# ALH - 18/9/13 - deactivates FFTW detection for testing purposes
-
-# Check whether --enable-system_fftw was given.
-if test "${enable_system_fftw+set}" = set; then :
-  enableval=$enable_system_fftw;
-fi
-
-if test "$enable_system_fftw" != no
-then
-
-    # ALH - 4/9/13 - avoid recompiling FFTW if a copy was found on the system (request from Helmut Jarausch, 1/8/13)
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw_execute in -lfftw3" >&5
-$as_echo_n "checking for fftw_execute in -lfftw3... " >&6; }
-if ${ac_cv_lib_fftw3_fftw_execute+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lfftw3  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char fftw_execute ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return fftw_execute ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_fftw3_fftw_execute=yes
-else
-  ac_cv_lib_fftw3_fftw_execute=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fftw3_fftw_execute" >&5
-$as_echo "$ac_cv_lib_fftw3_fftw_execute" >&6; }
-if test "x$ac_cv_lib_fftw3_fftw_execute" = xyes; then :
-  ff_fftw_ok=yes
-fi
-
-    for ac_header in fftw3.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "fftw3.h" "ac_cv_header_fftw3_h" "$ac_includes_default"
-if test "x$ac_cv_header_fftw3_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_FFTW3_H 1
-_ACEOF
- ff_fftw_h=yes
-else
-  ff_fftw_h=no
-fi
-
-done
-
-fi
-
-if test "$ff_fftw_ok" = yes -a "$ff_fftw_h" = yes
-then
-    	if test -z "$ff_where_lib_conf_fftw3" ; then
-	    echo "fftw3 LD -lfftw3"  >>$ff_where_lib_conf
-	    test -n "" && echo "fftw3 INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_fftw3=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add fftw3 : -lfftw3  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add fftw3 : -lfftw3  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add fftw3 : -lfftw3  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add fftw3 : -lfftw3  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    fftw_download=
-else
-    if test "$enable_download" = yes
-    then
-	ff_DOWNLOAD_FFTW=fftw
-    fi
-fi
-
-# used in [[file:download/fftw/Makefile.am::DOWNLOAD_FFTW]]
-
-DOWNLOAD_FFTW=$ff_DOWNLOAD_FFTW
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tetrahedralize in -ltet" >&5
-$as_echo_n "checking for tetrahedralize in -ltet... " >&6; }
-if ${ac_cv_lib_tet_tetrahedralize+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ltet  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char tetrahedralize ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return tetrahedralize ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_tet_tetrahedralize=yes
-else
-  ac_cv_lib_tet_tetrahedralize=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tet_tetrahedralize" >&5
-$as_echo "$ac_cv_lib_tet_tetrahedralize" >&6; }
-if test "x$ac_cv_lib_tet_tetrahedralize" = xyes; then :
-  ff_fftet_ok=yes
-fi
-
-for ac_header in tetgen.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "tetgen.h" "ac_cv_header_tetgen_h" "$ac_includes_default"
-if test "x$ac_cv_header_tetgen_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_TETGEN_H 1
-_ACEOF
- ff_tet_h=yes
-else
-  ff_tet_h=no
-fi
-
-done
-
-if test "$ff_tet_ok" = yes -a "$ff_tet_h" = yes
-then
-    	if test -z "$ff_where_lib_conf_tetgen" ; then
-	    echo "tetgen LD -ltet"  >>$ff_where_lib_conf
-	    test -n "" && echo "tetgen INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_tetgen=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add tetgen : -ltet  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add tetgen : -ltet  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add tetgen : -ltet  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add tetgen : -ltet  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-
-$as_echo "#define HAVE_TETGEN 1" >>confdefs.h
-
-fi
-
-# Looking for the BLAS
-# --------------------
-
-ff_blas_ok=no
-ff_blas_inc=""
-
-# ALH - 18/9/13 - give the option to deactivate system blas for testing purposes
-# Check whether --enable-system-blas was given.
-if test "${enable_system_blas+set}" = set; then :
-  enableval=$enable_system_blas;
-fi
-
-
-if test "$enable_system_blas" != no
-then
-
-    # User-specified location
-    # add MKL  seach dec 2010  FH ....
-
-    ff_mkl_flags=""
-    if test "$ff_mkl_libpath" != "not" ; then
-	ff_CFLAGS="$CFLAGS"
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -mkl" >&5
-$as_echo_n "checking whether the C compiler accepts -mkl... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -mkl"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	if test  "$ff_CFLAGS" != "$CFLAGS" ; then
-	    ff_ff_mkl_flags="-mkl"
-	fi
-	CFLAGS="$ff_CFLAGS"
-    fi
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MKL" >&5
-$as_echo_n "checking for MKL... " >&6; }
-    ff_mkl_root=""
-    if test "$ff_mkl_libpath" != "not" -a -z "$ff_mkl_flags" ; then
-
-	if test "$ff_mkl_libpath"  = "yes"  ; then
-	    ff_IFS="$IFS"
-	    IFS=":"
-	    for i in $LD_LIBRARY_PATH:$LIBRARY_PATH ; do
-		case $i in
-		    */mkl/*) ff_mkl_libpath=$i;;
-		esac ;
-	    done;
-	    IFS="$ff_IFS"
-#	else
-#	    ff_mkl_libpath=no
-	fi
-
-	if test "$ff_mkl_libpath" != "no" -a -d "$ff_mkl_libpath" ; then
-	    ff_mkl_root=`expr "//$ff_mkl_libpath" : '//\(.*\)/lib.*'`
-	    ff_mkl_arch=`expr "//$ff_mkl_libpath" : '//.*/lib/\(.*\)'`
-            ff_mkl_lp=_lp64
-            case "$ff_mkl_arch" in
-		*64*)  ff_mkl_lp=_lp64
-	    esac
-            case $F77 in
-		*ifort*) ff_mkl_cc=intel;;
-		*) ff_mkl_cc=gf;;
-            esac
-            # bof bof ....
-	    case "$MPIRUN" in
-		*/sgi/*)         ff_mkl_mpi=_sgimpt;;
-		*/intel/*)         ff_mkl_mpi=_intelmpi;;
-		*)        ff_mkl_mpi=_openmpi;;
-	    esac
-#            echo ................  ff_mkl_root = $ff_mkl_root  .. $ff_mkl_arch
-	    if test ! -d "$ff_mkl_libpath" ; then
-		ff_mkl_libpath="$ff_mkl_root/lib/$ff_mkl_arch"
-	    fi
-
-	    if test  -f "$ff_mkl_libpath/libmkl_rt.$ff_suffix_dylib" ; then
-		mkl_blas=rt
-		mkl_lapack=rt
-		ff_mkl_mlt="-L$ff_mkl_libpath -lmkl_rt -lmkl_intel_thread -lmkl_core  $ff_iomp5 $ff_pthread"
-		ff_mkl_blas="-L$ff_mkl_libpath -lmkl_rt -lmkl_sequential -lmkl_core   $ff_iomp5 $ff_pthread"
-		ff_mkl_lapack="$ff_mkl_blas"
-	    elif test -f "$ff_mkl_libpath/libmkl_lapack.$ff_suffix_dylib" ; then
-		ff_mkl_mlt="-L$ff_mkl_libpath -lmkl_${ff_mkl_cc}${ff_mkl_lp} -lmkl_lapack -lmkl_intel${ff_mkl_lp} -lmkl_intel_thread  -lmkl_core -lguide  -lm -lpthread"
-		ff_mkl_blas="-L$ff_mkl_libpath -lmkl_${ff_mkl_cc}${ff_mkl_lp} -lmkl_lapack -lmkl_intel${ff_mkl_lp} -lmkl_sequential -lmkl_core -lguide -lm -lpthread"
-		ff_mkl_lapack="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_lapack"
-	    else
-		ff_mkl_mlt="$ff_ldbg  -L$ff_mkl_libpath -lmkl_${ff_mkl_cc}${ff_mkl_lp}  -lmkl_intel${ff_mkl_lp}  -lmkl_intel_thread  -lmkl_core -lmkl_intel_thread $ff_iomp5  $ff_ldeg  -lm $ff_pthread"
-		ff_mkl_blas="$ff_ldbg  -L$ff_mkl_libpath -lmkl_${ff_mkl_cc}${ff_mkl_lp}  -lmkl_intel${ff_mkl_lp} -lmkl_sequential -lmkl_core  -lmkl_sequential $ff_ldeg   -lm $ff_pthread"
-		ff_mkl_lapack="$ff_mkl_blas"
-	    fi
-	    if test -f "-L$ff_mkl_libpathmkl_scalapack${ff_mkl_lp}" ; then
-            ff_mkl_scalapack="-L$ff_mkl_libpath -lmkl_blacs${ff_mkl_mpi}${ff_mkl_lp} -lmkl_scalapack${ff_mkl_lp} "
-            ff_mkl_blacs="-L$ff_mkl_libpath -lmkl_blacs${ff_mkl_mpi}${ff_mkl_lp} -lmkl_scalapack${ff_mkl_lp}"
-	    fi
-	    ff_blas_ok=yes
-	    ff_lapack_ok=yes
-
-	    # <<enable_mkl_mlt>> ALH - 6/11/13 - request from Atsushi Suzuki - the default MKL library must be able to
-	    # handle threads when FF is connected to AS' solver. So we need an option to configure FF with the
-	    # multithreaded MKL by default.
-
-	    # Check whether --enable-mkl_mlt was given.
-if test "${enable_mkl_mlt+set}" = set; then :
-  enableval=$enable_mkl_mlt;
-fi
-
-
-	    if test "$enable_mkl_mlt" = yes
-	    then
-		ff_blas_libs="$ff_mkl_mlt"
-	    else
-		ff_blas_libs="$ff_mkl_blas"
-	    fi
-
-	    ff_blas_inc="-I$ff_mkl_root/include"
-	    	    if test "$ff_mkl_mpi" != "_sgimpt" ; then
-			if test -z "$ff_where_lib_conf_scalapack" ; then
-	    echo "scalapack LD $ff_mkl_scalapack"  >>$ff_where_lib_conf
-	    test -n "$ff_blas_inc" && echo "scalapack INCLUDE $ff_blas_inc "  >>$ff_where_lib_conf
-            ff_where_lib_conf_scalapack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add scalapack : $ff_mkl_scalapack $ff_blas_inc in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add scalapack : $ff_mkl_scalapack $ff_blas_inc in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add scalapack : $ff_mkl_scalapack $ff_blas_inc in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add scalapack : $ff_mkl_scalapack $ff_blas_inc in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-			if test -z "$ff_where_lib_conf_blacs" ; then
-	    echo "blacs LD $ff_mkl_blacs"  >>$ff_where_lib_conf
-	    test -n "$ff_blas_inc" && echo "blacs INCLUDE $ff_blas_inc "  >>$ff_where_lib_conf
-            ff_where_lib_conf_blacs=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add blacs : $ff_mkl_blacs $ff_blas_inc in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add blacs : $ff_mkl_blacs $ff_blas_inc in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add blacs : $ff_mkl_blacs $ff_blas_inc in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add blacs : $ff_mkl_blacs $ff_blas_inc in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-	    else
-		ff_warm=" (We do not use MKL scalapack and blacs with sgi MPI),  "
-	    fi
-	    	if test -z "$ff_where_lib_conf_lapack" ; then
-	    echo "lapack LD $ff_mkl_lapack"  >>$ff_where_lib_conf
-	    test -n "$ff_blas_inc" && echo "lapack INCLUDE $ff_blas_inc "  >>$ff_where_lib_conf
-            ff_where_lib_conf_lapack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add lapack : $ff_mkl_lapack $ff_blas_inc in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add lapack : $ff_mkl_lapack $ff_blas_inc in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add lapack : $ff_mkl_lapack $ff_blas_inc in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add lapack : $ff_mkl_lapack $ff_blas_inc in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-	    	if test -z "$ff_where_lib_conf_mkl" ; then
-	    echo "mkl LD $ff_mkl_mlt"  >>$ff_where_lib_conf
-	    test -n "$ff_blas_inc" && echo "mkl INCLUDE $ff_blas_inc "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mkl=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mkl : $ff_mkl_mlt $ff_blas_inc in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mkl : $ff_mkl_mlt $ff_blas_inc in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mkl : $ff_mkl_mlt $ff_blas_inc in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mkl : $ff_mkl_mlt $ff_blas_inc in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-
-$as_echo "#define HAVE_MKL 1" >>confdefs.h
-
-	else
-	    ff_mkl_libpath=no
-
-	# FH - pardiso is there as soon as mkl is
-            enable_pardiso=no
-	fi
-    fi
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:  $ff_warm  root: $ff_mkl_root , arch: $ff_mkl_arch , $ff_mkl_lp ...  " >&5
-$as_echo " $ff_warm  root: $ff_mkl_root , arch: $ff_mkl_arch , $ff_mkl_lp ...  " >&6; }
-
-
-# Check whether --with-blas was given.
-if test "${with_blas+set}" = set; then :
-  withval=$with_blas; ff_blas_ok=yes
-	ff_blas_libs="${withval}"
-fi
-
-
-    # Specific BLAS library location for FreeBSD
-    ff_freebsd_blas="-lf2c -lf77blas -latlas -lgslcblas"
-    #  zmach is in lapack
-    # Trying  blas library
-    # echo "LIBS =  $LIBS blas --- $ff_blas_ok"
-    for iblas in \
-	"-framework Accelerate" "$ff_mkl_blas" "-lblas"  "-L/usr/lib/atlas -lblas" \
-	$ff_freebsd_blas
-    do
-	if test "$ff_blas_ok" = no;
-	then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for daxpy_ in $iblas" >&5
-$as_echo_n "checking for daxpy_ in $iblas... " >&6; }
-            ff_save_libs="$LIBS"
-            LIBS="$LIBS $iblas"
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char daxpy_ ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return daxpy_ ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_blas_ok=yes
-		ff_blas_libs="$iblas"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-            LIBS="$ff_save_libs"
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_blas_ok" >&5
-$as_echo "$ff_blas_ok" >&6; }
-	fi
-    done
-
-    #cblas_zdotu_sub
-    #echo "LIBS = " $LIBS
-    ff_cblas_libs=no
-    if test "$ff_blas_ok" = yes
-    then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for blas_zdotu_sub in $ff_blas_libs" >&5
-$as_echo_n "checking for blas_zdotu_sub in $ff_blas_libs... " >&6; }
-	ff_save_libs="$LIBS"
-	LIBS="$LIBS $ff_blas_libs $FLIBS"
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char cblas_zdotu_sub ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return cblas_zdotu_sub ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_cblas_libs=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_cblas_libs" >&5
-$as_echo "$ff_cblas_libs" >&6; }
-	LIBS="$ff_save_libs"
-    fi
-fi
-
-# <<OpenBLAS>> ALH - 18/9/13 - option to compile the OpenBLAS moved from the FFCS tree to FF tree
-
-# Check whether --enable-openblas was given.
-if test "${enable_openblas+set}" = set; then :
-  enableval=$enable_openblas;
-fi
-
-if  test "$ff_blas_ok" = no && test "$enable_openblas" != no && test "$enable_download" = yes
-then
-    # Extract the first word of "git", so it can be a program name with args.
-set dummy git; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_git+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_git"; then
-  ac_cv_prog_ff_git="$ff_git" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_git="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_git" && ac_cv_prog_ff_git="no"
-fi
-fi
-ff_git=$ac_cv_prog_ff_git
-if test -n "$ff_git"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_git" >&5
-$as_echo "$ff_git" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking Activating the OpenBLAS (deactivate with --disable-openblas)" >&5
-$as_echo_n "checking Activating the OpenBLAS (deactivate with --disable-openblas)... " >&6; }
-    if test $ff_git = no
-    then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: git not found" >&5
-$as_echo "git not found" >&6; }
-    else
-	ff_download_blas=openblas
-
-	# it is necessary to split the library path into -L and -l otherwise ff/upstream/examples+++-load/ff-c++ will
-	# place -lgfortran in LIBS, .../libgoto___.lib in OTHER, and call the compiler with $LIBS before $OTHER, which
-	# will fail.
-
-	ff_blas_libs="-L${curdir}/download/blas/OpenBLAS -lopenblas -lgfortran $ff_pthread"
-	ff_blas_inc="-I${curdir}/download/blas/CBLAS/src"
-
-        # skip generic blas compilation and activate OpenBLAS (see [[file:download/blas/Makefile.am::OpenBLAS]])
-	DOWNLOADED_BLAS=""
-
-	COMPILE_OPENBLAS=openblas
-
-
-	ff_blas_ok=yes
-	ff_cblas_h=yes
-	ff_cblas_libs=yes
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-    fi
-fi
-
-# If all else fails, download a generic version
-
-if test "$ff_blas_ok" = no -a "$enable_download" = yes -a "$enable_fortran" != no -a "$enable_c" != no
-then
-    # Extract the first word of "unzip", so it can be a program name with args.
-set dummy unzip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_unzip+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_unzip"; then
-  ac_cv_prog_ff_unzip="$ff_unzip" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_unzip="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_unzip" && ac_cv_prog_ff_unzip="no"
-fi
-fi
-ff_unzip=$ac_cv_prog_ff_unzip
-if test -n "$ff_unzip"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_unzip" >&5
-$as_echo "$ff_unzip" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BLAS version to download" >&5
-$as_echo_n "checking for BLAS version to download... " >&6; }
-
-    # Do not update $LIBS, but create an extra LIB variable, because this lib does not exist yet, and this could make
-    # the following tests fail.
-
-    # When compiling a generic version, we do not need an optimized version of the BLAS.
-
-    ff_download_blas=generic
-    ff_blas_libs="-L${curdir}/download/blas -lcblas -lf77blas"
-    ff_blas_inc="-I${curdir}/download/blas/CBLAS/src"
-
-    DOWNLOADED_BLAS="libf77blas.a libcblas.a"
-
-    DOWNLOADED_BLAS_BUILT_SOURCES='BLAS CBLAS $(F77BLAS_SOURCES) $(CBLAS_SOURCES)'
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_download_blas" >&5
-$as_echo "$ff_download_blas" >&6; }
-    ff_blas_ok=yes
-    ff_cblas_h=yes
-    ff_cblas_libs=yes
-fi
-
-BLASLIBS=$ff_blas_libs
-
-BLASINC=$ff_blas_inc
-
-
-#looking for cblas.h  FH
-
-if test "$ff_blas_ok" = yes -a "$ff_cblas_libs" = yes ;
-then
-    for ac_header in cblas.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "cblas.h" "ac_cv_header_cblas_h" "$ac_includes_default"
-if test "x$ac_cv_header_cblas_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_CBLAS_H 1
-_ACEOF
- ff_cblas_h=yes
-else
-  ff_cblas_h=no
-fi
-
-done
-
-    for ac_header in Accelerate/cblas.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "Accelerate/cblas.h" "ac_cv_header_Accelerate_cblas_h" "$ac_includes_default"
-if test "x$ac_cv_header_Accelerate_cblas_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_ACCELERATE_CBLAS_H 1
-_ACEOF
- ff_cblas_h=yes
-	ff_cblas_h=no
-fi
-
-done
-
-    for ac_header in atlas/cblas.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "atlas/cblas.h" "ac_cv_header_atlas_cblas_h" "$ac_includes_default"
-if test "x$ac_cv_header_atlas_cblas_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_ATLAS_CBLAS_H 1
-_ACEOF
- ff_cblas_h=yes
-	ff_cblas_h=no
-fi
-
-done
-
-fi
-
-# ALH - 18/9/13 - [[file:download/blas/Makefile.am]] does not update the WHERE mechanism so it always needs to be set up
-# here even in the case of a downloaded blas library.
-
-	if test -z "$ff_where_lib_conf_blas" ; then
-	    echo "blas LD $ff_blas_libs"  >>$ff_where_lib_conf
-	    test -n "" && echo "blas INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_blas=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add blas : $ff_blas_libs  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add blas : $ff_blas_libs  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add blas : $ff_blas_libs  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add blas : $ff_blas_libs  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-
-# end of BLAS -------------------
-
-# Looking for ARPACK
-# ------------------
-
-# We need the following g77 libraries to connect to the Fortran 77
-# Arpack.
-
-if test "$ff_blas_ok" = yes;
-then
-  ff_g2c_lib="$FLIBS"
-       if test  -n "$ff_g2c_lib"
-       then
-           LIBS="$LIBS $ff_g2c_lib"
-       else
-	  ff_g2c_ok=no
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for G77_second_0 in -lg2c" >&5
-$as_echo_n "checking for G77_second_0 in -lg2c... " >&6; }
-if ${ac_cv_lib_g2c_G77_second_0+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lg2c  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char G77_second_0 ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return G77_second_0 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_g2c_G77_second_0=yes
-else
-  ac_cv_lib_g2c_G77_second_0=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_g2c_G77_second_0" >&5
-$as_echo "$ac_cv_lib_g2c_G77_second_0" >&6; }
-if test "x$ac_cv_lib_g2c_G77_second_0" = xyes; then :
-  LIBS="$LIBS -lg2c"
-		ff_g2c_lib="-lg2c"
-		ff_g2c_ok=yes
-fi
-
-
-	  if test "$ff_g2c_ok" = no;
-	     then
-	        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for G77_second_0 in /sw/lib/libg2c.a" >&5
-$as_echo_n "checking for G77_second_0 in /sw/lib/libg2c.a... " >&6; }
-		ff_save_libs="$LIBS"
-		LIBS="$LIBS -L/sw/lib -lg2c"
-		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char G77_second_0 ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return G77_second_0 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_g2c_lib="-L/sw/lib -lg2c"
-			ff_g2c_ok=yes
-else
-  LIBS="$ff_save_libs"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_g2c_ok" >&5
-$as_echo "$ff_g2c_ok" >&6; }
-	  fi
-	fi
-fi
-
-# Copy the result of g2c investigations into a separate variable
-# because BLAS compilation will need it.
-
-G2CLIB=$ff_g2c_lib
-
-#looking of  lapack if no compile the arpack lapack
-# warning $$ because the make eat one
-ff_lapack_ok=no;
-ff_lapack_lib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lapack in $LIBS, $ff_blas_libs and -llapack " >&5
-$as_echo_n "checking for lapack in $LIBS, $ff_blas_libs and -llapack ... " >&6; }
-    if test "$ff_blas_ok" = yes ; then
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dgeqr2_ ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return dgeqr2_ ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_lapack_ok=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_lapack_ok" = no ; then
-	    ff_save_libs=$LIBS
-	    LIBS="$ff_save_libs $ff_blas_libs"
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dgeqr2_ ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return dgeqr2_ ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_lapack_ok=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	    if test "$ff_lapack_ok" = no ; then
-	    LIBS="$ff_save_libs -llapack $ff_blas_libs"
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dgeqr2_ ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return dgeqr2_ ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_lapack_ok=yes
-	    ff_lapack_lib="-llapack"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	    fi
-	    LIBS="$ff_save_libs"
-	fi
-    fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_lapack_ok" >&5
-$as_echo "$ff_lapack_ok" >&6; }
-if test "$ff_lapack_ok" != no ; then
-LAPACKLIBS=$ff_lapack_lib
-
-fi
-if test "$ff_lapack_ok" = no; then
-
-# Check whether --with-lapack was given.
-if test "${with_lapack+set}" = set; then :
-  withval=$with_lapack; ff_lapack_ok=yes
-	ff_lapack_lib="${withval}"
-	LIBS="$ff_lapack_lib $LIBS"
-fi
-
-fi
-
-# Lapack configuration for Arpack
-
-ff_lapackdir='$$(LAPACKdir)'
-if test "$ff_lapack_ok" = yes
-then
-    # no compilation of lapack in arpack
-    ff_lapackdir=
-else
-    ff_lapack_lib="-L${curdir}/download/lib -llapack"
-fi
-
-# Arpack itself
-
-ff_arpack_ok=no
-ff_save_libs="$LIBS"
-ff_arpack_libs=
-if test "$ff_blas_ok" = yes;
-then
-
-	# User-specified location
-
-# Check whether --with-arpack was given.
-if test "${with_arpack+set}" = set; then :
-  withval=$with_arpack; ff_arpack_ok=yes
-		ff_arpack_libs="${withval}"
-fi
-
-
-	# Default locations
-	if test "$ff_arpack_ok" = no;
-	then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dsaupd_ in -larpack" >&5
-$as_echo_n "checking for dsaupd_ in -larpack... " >&6; }
-if ${ac_cv_lib_arpack_dsaupd_+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-larpack -llapack $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dsaupd_ ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return dsaupd_ ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_arpack_dsaupd_=yes
-else
-  ac_cv_lib_arpack_dsaupd_=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_arpack_dsaupd_" >&5
-$as_echo "$ac_cv_lib_arpack_dsaupd_" >&6; }
-if test "x$ac_cv_lib_arpack_dsaupd_" = xyes; then :
-  ff_arpack_libs="-larpack -llapack"
-			ff_arpack_ok=yes
-fi
-
-	fi
-
-   # Trying to "locate" Arpack
-   if test "$ff_arpack_ok" = no -a "$enable_download" != yes ;
-   then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libarpack with locate" >&5
-$as_echo_n "checking for libarpack with locate... " >&6; }
-        ff_lib_arpack=`locate libarpack|grep  'libarpack.*.a$'|head -1`
-	LIBS="$ff_lib_arpack $LIBS"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dsaupd_ ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return dsaupd_ ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_arpack_ok=yes
-                ff_arpack_libs="$ff_lib_arpack"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_arpack_ok" >&5
-$as_echo "$ff_arpack_ok" >&6; }
-    fi
-  if test "$ff_arpack_ok" = yes
-  then
-      	if test -z "$ff_where_lib_conf_arpack" ; then
-	    echo "arpack LD $ff_arpack_libs"  >>$ff_where_lib_conf
-	    test -n "" && echo "arpack INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_arpack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add arpack : $ff_arpack_libs  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add arpack : $ff_arpack_libs  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add arpack : $ff_arpack_libs  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add arpack : $ff_arpack_libs  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-      echo  arpack LD "'$ff_arpack_libs'"  >>$ff_where_lib_conf
-  fi
-
-	# If all else fails, download!
-	if test "$ff_arpack_ok" = no -a "$enable_download" = yes \
-	   -a "$enable_fortran" != no
-	then
-                ff_arpack_download=yes
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: using downloaded Arpack" >&5
-$as_echo "$as_me: using downloaded Arpack" >&6;}
-
-		# ALH - 6/11/13 - this install goal is the standard goal for all downloaded packages in
-		# [[file:download/common.mak::install]]
-
-		DOWNLOAD_ARPACK=install
-
-
-		FF_LAPACKdir=$ff_lapackdir
-
-		ARPACKLIB=${curdir}/download/lib/libarpack.a
-
-		LAPACK_arpack_LIB=${curdir}/download/lib/liblapack.a
-
-
-		# Do not update $LIBS, but create an extra LIB variable, because this lib does not exist yet, and this
-		# could make the following tests fail.
-
-		# ALH - 30/9/13 - do not use the "-L ${curdir}/download/lib" directive because it would allow other
-		# following -l directives (eg -lumfpack) to pick an old locally compiled library instead of the system
-		# ones.
-
-                ff_arpack_libs="${curdir}/download/lib/libarpack.a $ff_lapack_lib"
-		ff_arpack_ok=yes
-	fi
-fi
-if test  "$ff_arpack_ok" != yes
- then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: -- NO ARPACK --  enable_download : $enable_download , wget: $ff_wget " >&5
-$as_echo "$as_me: -- NO ARPACK --  enable_download : $enable_download , wget: $ff_wget " >&6;}
-fi
-
-# Do not insert ARPACK libs in $LIBS yet, because they may not exist
-# yet, and this could make the following tests fail.
-
-LIBS="$ff_save_libs"
-
-if test "$ff_arpack_ok" = yes;
-then
-        ARPACKLIBS=$ff_arpack_libs
-
-	EIGENOBJ='eigenvalue.$(OBJEXT)'
-
-$as_echo "#define HAVE_LIBARPACK 1" >>confdefs.h
-
-
-	# Determines whether to run the eigenvalue tests
-else
-# all eigen test fails
-	SKIP_TESTS_EIGEN=yes
-
-fi
-
-
-# ALH - 25/9/13 - <<WHERE_lapack>> always run the WHERE LD statement for lapack because some libraries in
-# examples++-load require it (eg [[file:examples++-load/Element_Mixte.cpp::lapack]]). Request from Fred.
-
-	if test -z "$ff_where_lib_conf_lapack" ; then
-	    echo "lapack LD $ff_lapack_lib"  >>$ff_where_lib_conf
-	    test -n "" && echo "lapack INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_lapack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add lapack : $ff_lapack_lib  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add lapack : $ff_lapack_lib  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add lapack : $ff_lapack_lib  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add lapack : $ff_lapack_lib  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-
-# Looking for UMFPACK
-# -------------------
-
-ff_amd_ok=no
-ff_umfpack_ok=no
-ff_save_libs="$LIBS"
-# Check whether --enable-system_umfpack was given.
-if test "${enable_system_umfpack+set}" = set; then :
-  enableval=$enable_system_umfpack;
-fi
-
-if test "$enable_system_umfpack" != no -a  "$ff_blas_ok" = yes;
-then
-    # User-specified location
-
-
-# Check whether --with-amd was given.
-if test "${with_amd+set}" = set; then :
-  withval=$with_amd; ff_amd_ok=yes
-	ff_umfpack_libs="${withval}"
-fi
-
-
-
-# Check whether --with-umfpack was given.
-if test "${with_umfpack+set}" = set; then :
-  withval=$with_umfpack; ff_umfpack_ok=yes
-        ff_umfpack_libs="${withval} $ff_umfpack_libs"
-fi
-
-
-    # Trying default locations for the headers
-
-    for ac_header in umfpack.h umfpack/umfpack.h ufsparse/umfpack.h suitesparse/umfpack.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- ff_umfpack_header=yes
-	ff_umfpack_dir=`dirname $ac_header`
-fi
-
-done
-
-
-    # Somes systems like FreeBSD hide umfpack.h in a directory called UMFPACK (all capitals). This breaks the
-    # standard #define produced by autoconf in config.h.in.
-
-    LIBS="$ff_blas_libs $LIBS"
-    if test "$ff_umfpack_header" != yes;
-    then
-	ac_fn_cxx_check_header_mongrel "$LINENO" "UMFPACK/umfpack.h" "ac_cv_header_UMFPACK_umfpack_h" "$ac_includes_default"
-if test "x$ac_cv_header_UMFPACK_umfpack_h" = xyes; then :
-  ff_umfpack_header=yes
-	    ff_umfpack_dir=UMFPACK
-
-$as_echo "#define HAVE_BIG_UMFPACK_UMFPACK_H 1" >>confdefs.h
-
-fi
-
-
-    fi
-
-    if test "$ff_amd_ok" = no;
-    then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for amd_info in -lamd" >&5
-$as_echo_n "checking for amd_info in -lamd... " >&6; }
-if ${ac_cv_lib_amd_amd_info+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lamd  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char amd_info ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return amd_info ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_amd_amd_info=yes
-else
-  ac_cv_lib_amd_amd_info=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_amd_amd_info" >&5
-$as_echo "$ac_cv_lib_amd_amd_info" >&6; }
-if test "x$ac_cv_lib_amd_amd_info" = xyes; then :
-  ff_umfpack_libs="$ff_umfpack_libs -lamd"
-	    ff_amd_ok=yes
-fi
-
-    fi
-
-    if test "$ff_umfpack_ok" = no -a "$ff_amd_ok" = yes;
-    then
-
-        # ALH - 30/9/13 - other libraries required by Umfpack
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cholmod_add in -lcholmod" >&5
-$as_echo_n "checking for cholmod_add in -lcholmod... " >&6; }
-if ${ac_cv_lib_cholmod_cholmod_add+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcholmod  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char cholmod_add ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return cholmod_add ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_cholmod_cholmod_add=yes
-else
-  ac_cv_lib_cholmod_cholmod_add=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cholmod_cholmod_add" >&5
-$as_echo "$ac_cv_lib_cholmod_cholmod_add" >&6; }
-if test "x$ac_cv_lib_cholmod_cholmod_add" = xyes; then :
-  ff_umfpack_libs="$ff_umfpack_libs -lcholmod"
-fi
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for colamd_set_defaults in -lcolamd" >&5
-$as_echo_n "checking for colamd_set_defaults in -lcolamd... " >&6; }
-if ${ac_cv_lib_colamd_colamd_set_defaults+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcolamd  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char colamd_set_defaults ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return colamd_set_defaults ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_colamd_colamd_set_defaults=yes
-else
-  ac_cv_lib_colamd_colamd_set_defaults=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_colamd_colamd_set_defaults" >&5
-$as_echo "$ac_cv_lib_colamd_colamd_set_defaults" >&6; }
-if test "x$ac_cv_lib_colamd_colamd_set_defaults" = xyes; then :
-  ff_umfpack_libs="$ff_umfpack_libs -lcolamd"
-fi
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for umf_i_malloc in -lumfpack" >&5
-$as_echo_n "checking for umf_i_malloc in -lumfpack... " >&6; }
-if ${ac_cv_lib_umfpack_umf_i_malloc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lumfpack $ff_umfpack_libs $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char umf_i_malloc ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return umf_i_malloc ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_umfpack_umf_i_malloc=yes
-else
-  ac_cv_lib_umfpack_umf_i_malloc=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_umfpack_umf_i_malloc" >&5
-$as_echo "$ac_cv_lib_umfpack_umf_i_malloc" >&6; }
-if test "x$ac_cv_lib_umfpack_umf_i_malloc" = xyes; then :
-  ff_umfpack_libs="-lumfpack $ff_umfpack_libs"
-	    ff_umfpack_ok=yes
-fi
-
-    fi
-
-    if test "$ff_umfpack_header" != yes -o "$ff_umfpack_ok" != yes; then
-        ff_umfpack_ok=no
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Sorry, we could not find the UMFPACK lib or the UMFPACK headers" >&5
-$as_echo "$as_me: WARNING: Sorry, we could not find the UMFPACK lib or the UMFPACK headers" >&2;}
-    fi
-
-    if test "$ff_umfpack_ok" = yes -a "$ff_amd_ok" = yes; then
-
-$as_echo "#define HAVE_LIBUMFPACK 1" >>confdefs.h
-
-    fi
-fi
-
-LIBS="$ff_save_libs"
-
-# If all else fails, download!
-
-if test "$ff_umfpack_ok" = no -a "$enable_download" = yes
-then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: using downloaded UMFPACK" >&5
-$as_echo "$as_me: using downloaded UMFPACK" >&6;}
-    DOWNLOAD_UMFPACK="umfpack"
-
-    ff_umfpack_download=yes
-
-    # Do not update $LIBS, but create an extra LIB variable, because this lib does not exist yet, and this could make
-    # the following tests fail.
-
-    ff_umfpack_libs="-L${curdir}/download/lib -lumfpack -lcholmod -lcolamd -lamd -lsuitesparseconfig"
-
-$as_echo "#define HAVE_LIBUMFPACK 1" >>confdefs.h
-
-    if test "$ff_win32" = yes; then
-  	FF_UMFPACK_CONFIG=-DCBLAS
-
-    fi
-    ff_umfpack_ok=yes
-fi
-
-# ALH - 17/9/13 - moved UMFPACK configuration settings in wherelib to _after_ configuring the download version because
-# [[file:download/umfpack/Makefile.am]] does not set the WHERE mechanism. Also removed -I/usr/include/$ff_umfpack_dir
-# from include options for FFCS because it breaks the MingW64 compilation process.
-
-if test "$ff_umfpack_ok" = yes
-then
-    if test $enable_ffcs = no
-    then
-		if test -z "$ff_where_lib_conf_amd" ; then
-	    echo "amd LD $ff_umfpack_libs"  >>$ff_where_lib_conf
-	    test -n "-I/usr/include/$ff_umfpack_dir" && echo "amd INCLUDE -I/usr/include/$ff_umfpack_dir "  >>$ff_where_lib_conf
-            ff_where_lib_conf_amd=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add amd : $ff_umfpack_libs -I/usr/include/$ff_umfpack_dir in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add amd : $ff_umfpack_libs -I/usr/include/$ff_umfpack_dir in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add amd : $ff_umfpack_libs -I/usr/include/$ff_umfpack_dir in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add amd : $ff_umfpack_libs -I/usr/include/$ff_umfpack_dir in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-		if test -z "$ff_where_lib_conf_umfpack" ; then
-	    echo "umfpack LD $ff_umfpack_libs"  >>$ff_where_lib_conf
-	    test -n "-I/usr/include/$ff_umfpack_dir" && echo "umfpack INCLUDE -I/usr/include/$ff_umfpack_dir "  >>$ff_where_lib_conf
-            ff_where_lib_conf_umfpack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add umfpack : $ff_umfpack_libs -I/usr/include/$ff_umfpack_dir in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add umfpack : $ff_umfpack_libs -I/usr/include/$ff_umfpack_dir in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add umfpack : $ff_umfpack_libs -I/usr/include/$ff_umfpack_dir in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add umfpack : $ff_umfpack_libs -I/usr/include/$ff_umfpack_dir in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    else
-		if test -z "$ff_where_lib_conf_amd" ; then
-	    echo "amd LD $ff_umfpack_libs"  >>$ff_where_lib_conf
-	    test -n "" && echo "amd INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_amd=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add amd : $ff_umfpack_libs  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add amd : $ff_umfpack_libs  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add amd : $ff_umfpack_libs  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add amd : $ff_umfpack_libs  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-		if test -z "$ff_where_lib_conf_umfpack" ; then
-	    echo "umfpack LD $ff_umfpack_libs"  >>$ff_where_lib_conf
-	    test -n "" && echo "umfpack INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_umfpack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add umfpack : $ff_umfpack_libs  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add umfpack : $ff_umfpack_libs  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add umfpack : $ff_umfpack_libs  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add umfpack : $ff_umfpack_libs  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    fi
-else
-    { $as_echo "$as_me:${as_lineno-$LINENO}:  -- NO UMFPACK (ff_wget = $ff_wget)" >&5
-$as_echo "$as_me:  -- NO UMFPACK (ff_wget = $ff_wget)" >&6;}
-fi
-
-UMFPACKLIBS=$ff_umfpack_libs
-
-
-# If times() and sysconf() are not here, UMFPACK should know
-
-if test "$ff_umfpack_ok" = yes
-then
-    for ac_func in times sysconf
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- ff_umfpack_posix_ok=yes
-else
-  ff_umfpack_posix_ok=no
-fi
-done
-
-
-    if test "$ff_umfpack_posix_ok" = no
-    then
-	FF_UMFPACK_CONFIG="-DCBLAS -DNPOSIX"
-
-    fi
-fi
-
-# Checking for some functions that may not appear everywhere
-# ----------------------------------------------------------
-for ac_header in unistd.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
-if test "x$ac_cv_header_unistd_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_UNISTD_H 1
-_ACEOF
-
-fi
-
-done
-
-# asinh acosh atanh are not in Mingw yet gettimeofday
-ff_malloc_h=""
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
-$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if ${ac_cv_header_time+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_header_time=yes
-else
-  ac_cv_header_time=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
-$as_echo "$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
-
-fi
-
-for ac_header in malloc.h
-do :
-  ac_fn_cxx_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default"
-if test "x$ac_cv_header_malloc_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_MALLOC_H 1
-_ACEOF
- ff_malloc_h=1
-fi
-
-done
-
-FF_MALLOC_H=$ff_malloc_h
-
-
-for ac_func in asinh acosh atanh getenv jn erfc tgamma gettimeofday mallinfo mstats
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-for ac_func in srandomdev
-do :
-  ac_fn_cxx_check_func "$LINENO" "srandomdev" "ac_cv_func_srandomdev"
-if test "x$ac_cv_func_srandomdev" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SRANDOMDEV 1
-_ACEOF
-
-fi
-done
-
-
-
-for ac_func in second_
-do :
-  ac_fn_cxx_check_func "$LINENO" "second_" "ac_cv_func_second_"
-if test "x$ac_cv_func_second_" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SECOND_ 1
-_ACEOF
- ff_second=""
-else
-  ff_second=second.o
-fi
-done
-
-FF_SECOND="$ff_second"
-
-
-# Enable static linking (no shared libraries)
-# -------------------------------------------
-# Extract the first word of "libtool", so it can be a program name with args.
-set dummy libtool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_libtool+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_libtool"; then
-  ac_cv_prog_ff_libtool="$ff_libtool" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_libtool="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_libtool" && ac_cv_prog_ff_libtool="no"
-fi
-fi
-ff_libtool=$ac_cv_prog_ff_libtool
-if test -n "$ff_libtool"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_libtool" >&5
-$as_echo "$ff_libtool" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-if test  "$ff_mac" = "yes"  -a "$ff_libtool" = yes ; then
-  ff_AR="libtool"
-  ff_ARFLAGS="-static -o"
-  ff_RANLIB="echo"
-fi
-
-# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
-  enableval=$enable_static;
-fi
-
-if test "$enable_static" = yes
-then
-	# Extract the first word of "libtool", so it can be a program name with args.
-set dummy libtool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_libtool+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_libtool"; then
-  ac_cv_prog_ff_libtool="$ff_libtool" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_libtool="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_libtool" && ac_cv_prog_ff_libtool="no"
-fi
-fi
-ff_libtool=$ac_cv_prog_ff_libtool
-if test -n "$ff_libtool"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_libtool" >&5
-$as_echo "$ff_libtool" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-	if test "$ff_libtool" = yes
-	then
-		LDFLAGS="$LDFLAGS -all-static"
-		STATICTOOL=libtool
-
-	else
-		as_fn_error $? "libtool not found" "$LINENO" 5
-	fi
-fi
-#  for compiation of  arpack  use libtool to bluid universal library on MacOs.
-AR=$ff_AR
-
-ARFLAGS=$ff_ARFLAGS
-
-RANLIN=$ff_RANLIB
-
-
-
-# Dynamic loading of compiled functions
-# -------------------------------------
-
-# Not if we don't want shared libraries (non FH  modif FH juin 2005)
-ff_dynload=no
-if test "$enable_static" != yes
-then
-
-	# Availability of dlopen(). Use AC_COMPILE rather than
-	# AC_CHECK_HEADERS because the latter has problems seeing it (in
-	# Cygwin) when it does not compile (in Mingw).
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlfcn.h" >&5
-$as_echo_n "checking for dlfcn.h... " >&6; }
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <dlfcn.h>
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ff_dynload=yes
-else
-  ff_dynload=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_dynload" >&5
-$as_echo "$ff_dynload" >&6; }
-fi
-
-# FFCS - -lm missing for ffmedit link stage on Debian Testing
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5
-$as_echo_n "checking for sin in -lm... " >&6; }
-if ${ac_cv_lib_m_sin+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sin ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return sin ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_m_sin=yes
-else
-  ac_cv_lib_m_sin=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5
-$as_echo "$ac_cv_lib_m_sin" >&6; }
-if test "x$ac_cv_lib_m_sin" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
-  LIBS="-lm $LIBS"
-
-fi
-
-
-# Checks that we also have the corresponding library
-if test "$ff_dynload" = yes
-then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlinfo in -ldl" >&5
-$as_echo_n "checking for dlinfo in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlinfo+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlinfo ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return dlinfo ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlinfo=yes
-else
-  ac_cv_lib_dl_dlinfo=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlinfo" >&5
-$as_echo "$ac_cv_lib_dl_dlinfo" >&6; }
-if test "x$ac_cv_lib_dl_dlinfo" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBDL 1
-_ACEOF
-
-  LIBS="-ldl $LIBS"
-
-fi
-
-
-	# Checks that everythings works ok
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dlopen links ok" >&5
-$as_echo_n "checking whether dlopen links ok... " >&6; }
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <dlfcn.h>
-int main(int argc,char **argv){
-  dlopen("",RTLD_LAZY);
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_dynload=yes
-else
-  ff_dynload=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_dynload" >&5
-$as_echo "$ff_dynload" >&6; }
-fi
-
-#  the -rdynamic don't exist on macos and sunOS
-if test "$ff_dynload" = yes
-then
-
-$as_echo "#define HAVE_DLFCN_H 1" >>confdefs.h
-
-	# Activate dynamic loading tests (see examples++-load/Makefile.am)
-	LOAD_TESTS=../regtests.sh
-
-	LOAD_COMPILE=load_compile
-
-
-	# gcc on MacOS does not produce an error with "-rdynamic" but
-	# still complains about it.
-	if test "$ff_mac" = "no" -a "$ff_win32"  = "no" -a "$ff_sunos"  = "no" ;
-	then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -rdynamic" >&5
-$as_echo_n "checking whether the C++ compiler accepts -rdynamic... " >&6; }
-	check_save_flags="$LDFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	LDFLAGS="$LDFLAGS -rdynamic"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		LDFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the C++ compiler accepts -fPIC... " >&6; }
-	check_save_flags="$CXXFLAGS"
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-	CXXFLAGS="$CXXFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CXXFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the C compiler accepts -fPIC... " >&6; }
-	check_save_flags="$CFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CFLAGS="$CFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the C compiler accepts -fPIC... " >&6; }
-	check_save_flags="$CNOFLAGS"
-	ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-	CNOFLAGS="$CNOFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		CNOFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	if test "$enable_fortran" != no
-	 then
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the Fortran compiler accepts -fPIC... " >&6; }
-	check_save_flags="$FFLAGS"
-	ac_ext=${ac_fc_srcext-f}
-ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
-ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_fc_compiler_gnu
-
-	FFLAGS="$FFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-if ac_fn_fc_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the Fortran compiler accepts -fPIC... " >&6; }
-	check_save_flags="$FNOFLAGS"
-	ac_ext=${ac_fc_srcext-f}
-ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
-ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_fc_compiler_gnu
-
-	FNOFLAGS="$FNOFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-if ac_fn_fc_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FNOFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the Fortran compiler accepts -fPIC... " >&6; }
-	check_save_flags="$FCFLAGS"
-	ac_ext=${ac_fc_srcext-f}
-ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
-ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_fc_compiler_gnu
-
-	FCFLAGS="$FCFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-if ac_fn_fc_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FCFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-	 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Fortran compiler accepts -fPIC" >&5
-$as_echo_n "checking whether the Fortran compiler accepts -fPIC... " >&6; }
-	check_save_flags="$FCNOFLAGS"
-	ac_ext=${ac_fc_srcext-f}
-ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
-ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_fc_compiler_gnu
-
-	FCNOFLAGS="$FCNOFLAGS -fPIC"
-
-	# The program needs to contain something for the test source
-	# file to be created by autoconf.
-
-	# Some options really need to be linked (not only compiled) to
-	# check whether they work.
-
-	cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-if ac_fn_fc_try_link "$LINENO"; then :
-  check_flag_ok=yes
-else
-  check_flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_flag_ok" >&5
-$as_echo "$check_flag_ok" >&6; }
-	if test "$check_flag_ok" = no;
-	then
-		FCNOFLAGS="$check_save_flags"
-	fi
-	if test -n "" ;
-         then
-	        ="$check_flag_ok"
-	fi
-
-	ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-	fi
-fi
-DYLIB_SUFFIX=$ff_suffix_dylib
-
-
-# Checking wether we can generate some documentation
-# --------------------------------------------------
-
-# Extract the first word of "latex", so it can be a program name with args.
-set dummy latex; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_latex+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_latex"; then
-  ac_cv_prog_ff_latex="$ff_latex" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_latex="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_latex" && ac_cv_prog_ff_latex="no"
-fi
-fi
-ff_latex=$ac_cv_prog_ff_latex
-if test -n "$ff_latex"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_latex" >&5
-$as_echo "$ff_latex" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "makeindex", so it can be a program name with args.
-set dummy makeindex; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_makeindex+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_makeindex"; then
-  ac_cv_prog_ff_makeindex="$ff_makeindex" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_makeindex="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_makeindex" && ac_cv_prog_ff_makeindex="no"
-fi
-fi
-ff_makeindex=$ac_cv_prog_ff_makeindex
-if test -n "$ff_makeindex"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_makeindex" >&5
-$as_echo "$ff_makeindex" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "dvips", so it can be a program name with args.
-set dummy dvips; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_dvips+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_dvips"; then
-  ac_cv_prog_ff_dvips="$ff_dvips" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_dvips="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_dvips" && ac_cv_prog_ff_dvips="no"
-fi
-fi
-ff_dvips=$ac_cv_prog_ff_dvips
-if test -n "$ff_dvips"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_dvips" >&5
-$as_echo "$ff_dvips" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# to translate the figure
-# Extract the first word of "pdf2ps", so it can be a program name with args.
-set dummy pdf2ps; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_pdf2ps+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_pdf2ps"; then
-  ac_cv_prog_ff_pdf2ps="$ff_pdf2ps" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_pdf2ps="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_pdf2ps" && ac_cv_prog_ff_pdf2ps="no"
-fi
-fi
-ff_pdf2ps=$ac_cv_prog_ff_pdf2ps
-if test -n "$ff_pdf2ps"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_pdf2ps" >&5
-$as_echo "$ff_pdf2ps" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-for ac_prog in epstopdf pstopdf
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_EPSTOPDF+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$EPSTOPDF"; then
-  ac_cv_prog_EPSTOPDF="$EPSTOPDF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_EPSTOPDF="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-EPSTOPDF=$ac_cv_prog_EPSTOPDF
-if test -n "$EPSTOPDF"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EPSTOPDF" >&5
-$as_echo "$EPSTOPDF" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$EPSTOPDF" && break
-done
-test -n "$EPSTOPDF" || EPSTOPDF="false"
-
-# Extract the first word of "convert", so it can be a program name with args.
-set dummy convert; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_convert+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_convert"; then
-  ac_cv_prog_ff_convert="$ff_convert" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_convert="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_convert" && ac_cv_prog_ff_convert="no"
-fi
-fi
-ff_convert=$ac_cv_prog_ff_convert
-if test -n "$ff_convert"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_convert" >&5
-$as_echo "$ff_convert" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-if test "$ff_latex" = yes -a "$ff_makeindex" = yes -a "$ff_dvips" = yes -a $ff_pdf2ps = yes -a $ff_convert = yes;
-then
-	DOCPS="freefem++doc.ps"
-
-
-	# Extract the first word of "gzip", so it can be a program name with args.
-set dummy gzip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_gzip+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_gzip"; then
-  ac_cv_prog_ff_gzip="$ff_gzip" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_gzip="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_gzip" && ac_cv_prog_ff_gzip="no"
-fi
-fi
-ff_gzip=$ac_cv_prog_ff_gzip
-if test -n "$ff_gzip"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_gzip" >&5
-$as_echo "$ff_gzip" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-	if test "$ff_gzip" = yes;
-	then
-		DOCPSGZ="freefem++doc.ps.gz"
-
-	fi
-fi
-
-# PDF documentation building sometimes poses problems because of
-# pdfsync.sty. So we need to be able to disable it.
-enable_pdf=yes
-# Check whether --enable-pdf was given.
-if test "${enable_pdf+set}" = set; then :
-  enableval=$enable_pdf;
-fi
-
-if test "$enable_pdf" != no
-then
-   # Extract the first word of "pdflatex", so it can be a program name with args.
-set dummy pdflatex; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_pdflatex+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_pdflatex"; then
-  ac_cv_prog_ff_pdflatex="$ff_pdflatex" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_pdflatex="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_pdflatex" && ac_cv_prog_ff_pdflatex="no"
-fi
-fi
-ff_pdflatex=$ac_cv_prog_ff_pdflatex
-if test -n "$ff_pdflatex"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_pdflatex" >&5
-$as_echo "$ff_pdflatex" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-   if test "$ff_pdflatex" = yes -a $EPSTOPDF != false -a $ff_convert = yes;
-   then
-	DOCPDF="freefem++doc.pdf"
-
-   fi
-fi
-
-# HISTORY logging through CVS, but only if we are in a CVS working area
-if test -d CVS
-then
-	# Extract the first word of "cvs2cl", so it can be a program name with args.
-set dummy cvs2cl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ff_history+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ff_history"; then
-  ac_cv_prog_ff_history="$ff_history" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ff_history="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_ff_history" && ac_cv_prog_ff_history="no"
-fi
-fi
-ff_history=$ac_cv_prog_ff_history
-if test -n "$ff_history"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_history" >&5
-$as_echo "$ff_history" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-	if test "$ff_history" = yes
-	then
-	   HISTORY=history
-
-	fi
-fi
-
-# Choosing compilation options for the standard version (in src/std)
-# ------------------------------------------------------------------
-
-# The "standard" configured version can use win32 (mingw)
-
-if test "$ff_mingw" = yes
-then
-
-    # FFCS does not use FreeFem++-std, and Pcrgraph.cpp does not compile under mingwin64
-    if test $enable_ffcs = no
-    then
-	ff_stdprog="FreeFem++-std${EXEEXT}"
-	ff_std_graph_obj=Pcrgraph.$OBJEXT
-    fi
-
-    # ALH - FFCS - 30/11/8 - I need to get the output from FF for FFCS regression tests
-    if test $enable_ffcs = yes
-    then
-	ff_std_ldflags="-mconsole -mwindows"
-    else
-	ff_std_ldflags=-mwindows
-    fi
-
-	ff_std_libs=
-fi
-STD_GRAPH_OBJ=$ff_std_graph_obj
-
-STD_LDFLAGS=$ff_std_ldflags
-
-
-STD_LIBS=$ff_std_libs
-
-
-# Allow some downloaded tools not to be compiled
-# ----------------------------------------------
-
-# ALH - this is required by FFCS that needs to deactivate some tools that do not work on all platforms. Some FF users
-# may also find interesting to specify a local version of a tool instead of downloading it.
-
-# m4 macro parameters: $1 = tool name, $2 = dynamic library name, $3 = download directory name if different from $1
-
-
-
-
-##  try to see pakage is hon computer  if the FH ZZZZ
-## FH to find gsl ...
-
-
-# Check whether --with-gsl-prefix was given.
-if test "${with_gsl_prefix+set}" = set; then :
-  withval=$with_gsl_prefix; gsl_prefix="$withval"
-else
-  gsl_prefix=""
-fi
-
-
-# Check whether --with-gsl-exec-prefix was given.
-if test "${with_gsl_exec_prefix+set}" = set; then :
-  withval=$with_gsl_exec_prefix; gsl_exec_prefix="$withval"
-else
-  gsl_exec_prefix=""
-fi
-
-# Check whether --enable-gsltest was given.
-if test "${enable_gsltest+set}" = set; then :
-  enableval=$enable_gsltest;
-else
-  enable_gsltest=yes
-fi
-
-
-  if test "x${GSL_CONFIG+set}" != xset ; then
-     if test "x$gsl_prefix" != x ; then
-         GSL_CONFIG="$gsl_prefix/bin/gsl-config"
-     fi
-     if test "x$gsl_exec_prefix" != x ; then
-        GSL_CONFIG="$gsl_exec_prefix/bin/gsl-config"
-     fi
-  fi
-
-  # Extract the first word of "gsl-config", so it can be a program name with args.
-set dummy gsl-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GSL_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $GSL_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GSL_CONFIG="$GSL_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GSL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GSL_CONFIG" && ac_cv_path_GSL_CONFIG="no"
-  ;;
-esac
-fi
-GSL_CONFIG=$ac_cv_path_GSL_CONFIG
-if test -n "$GSL_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_CONFIG" >&5
-$as_echo "$GSL_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  min_gsl_version=1.15
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSL - version >= $min_gsl_version" >&5
-$as_echo_n "checking for GSL - version >= $min_gsl_version... " >&6; }
-  no_gsl=""
-  if test "$GSL_CONFIG" = "no" ; then
-    no_gsl=yes
-  else
-    GSL_CFLAGS=`$GSL_CONFIG --cflags`
-    GSL_LIBS=`$GSL_CONFIG --libs`
-
-    gsl_major_version=`$GSL_CONFIG --version | \
-           sed 's/^\([0-9]*\).*/\1/'`
-    if test "x${gsl_major_version}" = "x" ; then
-       gsl_major_version=0
-    fi
-
-    gsl_minor_version=`$GSL_CONFIG --version | \
-           sed 's/^\([0-9]*\)\.\{0,1\}\([0-9]*\).*/\2/'`
-    if test "x${gsl_minor_version}" = "x" ; then
-       gsl_minor_version=0
-    fi
-
-    gsl_micro_version=`$GSL_CONFIG --version | \
-           sed 's/^\([0-9]*\)\.\{0,1\}\([0-9]*\)\.\{0,1\}\([0-9]*\).*/\3/'`
-    if test "x${gsl_micro_version}" = "x" ; then
-       gsl_micro_version=0
-    fi
-
-    if test "x$enable_gsltest" = "xyes" ; then
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $GSL_CFLAGS"
-      LIBS="$LIBS $GSL_LIBS"
-
-      rm -f conf.gsltest
-      if test "$cross_compiling" = yes; then :
-  echo $ac_n "cross compiling; assumed OK... $ac_c"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-char* my_strdup (const char *str);
-
-char*
-my_strdup (const char *str)
-{
-  char *new_str;
-
-  if (str)
-    {
-      new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
-      strcpy (new_str, str);
-    }
-  else
-    new_str = NULL;
-
-  return new_str;
-}
-
-int main (void)
-{
-  int major = 0, minor = 0, micro = 0;
-  int n;
-  char *tmp_version;
-
-  system ("touch conf.gsltest");
-
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = my_strdup("$min_gsl_version");
-
-  n = sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) ;
-
-  if (n != 2 && n != 3) {
-     printf("%s, bad version string\n", "$min_gsl_version");
-     exit(1);
-   }
-
-   if (($gsl_major_version > major) ||
-      (($gsl_major_version == major) && ($gsl_minor_version > minor)) ||
-      (($gsl_major_version == major) && ($gsl_minor_version == minor) && ($gsl_micro_version >= micro)))
-     {
-       exit(0);
-     }
-   else
-     {
-       exit(1);
-     }
-}
-
-
-_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
-
-else
-  no_gsl=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-     fi
-  fi
-  if test "x$no_gsl" = x ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-     ff_with_gsl=yes
-  else
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-     if test "$GSL_CONFIG" = "no" ; then
-       echo "*** The gsl-config script installed by GSL could not be found"
-       echo "*** If GSL was installed in PREFIX, make sure PREFIX/bin is in"
-       echo "*** your path, or set the GSL_CONFIG environment variable to the"
-       echo "*** full path to gsl-config."
-     else
-       if test -f conf.gsltest ; then
-        :
-       else
-          echo "*** Could not run GSL test program, checking why..."
-          CFLAGS="$CFLAGS $GSL_CFLAGS"
-          LIBS="$LIBS $GSL_LIBS"
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
- return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-   echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding GSL or finding the wrong"
-          echo "*** version of GSL. If it is not finding GSL, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system"
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
-else
-   echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means GSL was incorrectly installed"
-          echo "*** or that you have moved GSL since it was installed. In the latter case, you"
-          echo "*** may want to edit the gsl-config script: $GSL_CONFIG"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-       fi
-     fi
-#     GSL_CFLAGS=""
-#     GSL_LIBS=""
-     ff_with_gsl=no
-  fi
-
-
-  rm -f conf.gsltest
-
-if test "$ff_with_gsl" = "yes"; then
-  	if test -z "$ff_where_lib_conf_gsl" ; then
-	    echo "gsl LD $GSL_LIBS"  >>$ff_where_lib_conf
-	    test -n "$GSL_CFLAGS" && echo "gsl INCLUDE $GSL_CFLAGS "  >>$ff_where_lib_conf
-            ff_where_lib_conf_gsl=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add gsl : $GSL_LIBS $GSL_CFLAGS in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add gsl : $GSL_LIBS $GSL_CFLAGS in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add gsl : $GSL_LIBS $GSL_CFLAGS in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add gsl : $GSL_LIBS $GSL_CFLAGS in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-fi
-
-##
-
-
-  	if test -z "$ff_where_lib_conf_mumps" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check mumps" >&5
-$as_echo_n "checking check mumps... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -ldmumps -lzmumps  -lmumps_common  -lpord "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <dmumps_c.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "mumps LD -ldmumps -lzmumps  -lmumps_common  -lpord"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "dmumps_c.h" ||
-$as_expr X"dmumps_c.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"dmumps_c.h" : 'X\(//\)[^/]' \| \
-	 X"dmumps_c.h" : 'X\(//\)$' \| \
-	 X"dmumps_c.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"dmumps_c.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "mumps INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_mumps=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_mumps_ptscotch" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check mumps_ptscotch" >&5
-$as_echo_n "checking check mumps_ptscotch... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lpord_ptscotch -lmumps_common_ptscotch -ldmumps_ptscotch -lzmumps_ptscotch -lpord_ptscotch "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <dmumps_c.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "mumps_ptscotch LD -lpord_ptscotch -lmumps_common_ptscotch -ldmumps_ptscotch -lzmumps_ptscotch -lpord_ptscotch"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "dmumps_c.h" ||
-$as_expr X"dmumps_c.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"dmumps_c.h" : 'X\(//\)[^/]' \| \
-	 X"dmumps_c.h" : 'X\(//\)$' \| \
-	 X"dmumps_c.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"dmumps_c.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "mumps_ptscotch INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_mumps_ptscotch=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_mumps_scotch" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check mumps_scotch" >&5
-$as_echo_n "checking check mumps_scotch... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lpord_scotch -lmumps_common_scotch -ldmumps_scotch -lzmumps_scotch -lpord_scotch "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <dmumps_c.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "mumps_scotch LD -lpord_scotch -lmumps_common_scotch -ldmumps_scotch -lzmumps_scotch -lpord_scotch"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "dmumps_c.h" ||
-$as_expr X"dmumps_c.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"dmumps_c.h" : 'X\(//\)[^/]' \| \
-	 X"dmumps_c.h" : 'X\(//\)$' \| \
-	 X"dmumps_c.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"dmumps_c.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "mumps_scotch INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_mumps_scotch=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_hypre" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check hypre" >&5
-$as_echo_n "checking check hypre... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lHYPRE "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "hypre LD -lHYPRE"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "" ||
-$as_expr X"" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"" : 'X\(//\)[^/]' \| \
-	 X"" : 'X\(//\)$' \| \
-	 X"" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "hypre INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_hypre=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_fftw3" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check fftw3" >&5
-$as_echo_n "checking check fftw3... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lfftw3 "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include </usr/include/fftw3.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "fftw3 LD -lfftw3"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "/usr/include/fftw3.h" ||
-$as_expr X"/usr/include/fftw3.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"/usr/include/fftw3.h" : 'X\(//\)[^/]' \| \
-	 X"/usr/include/fftw3.h" : 'X\(//\)$' \| \
-	 X"/usr/include/fftw3.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"/usr/include/fftw3.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "fftw3 INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_fftw3=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_superlu_dist" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check superlu_dist" >&5
-$as_echo_n "checking check superlu_dist... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lsuperlu-dist "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include </usr/include/superlu-dist/superlu_defs.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "superlu_dist LD -lsuperlu-dist"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "/usr/include/superlu-dist/superlu_defs.h" ||
-$as_expr X"/usr/include/superlu-dist/superlu_defs.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"/usr/include/superlu-dist/superlu_defs.h" : 'X\(//\)[^/]' \| \
-	 X"/usr/include/superlu-dist/superlu_defs.h" : 'X\(//\)$' \| \
-	 X"/usr/include/superlu-dist/superlu_defs.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"/usr/include/superlu-dist/superlu_defs.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "superlu_dist INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_superlu_dist=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_superlu" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check superlu" >&5
-$as_echo_n "checking check superlu... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lsuperlu "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include </usr/include/superlu/superlu_enum_consts.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "superlu LD -lsuperlu"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "/usr/include/superlu/superlu_enum_consts.h" ||
-$as_expr X"/usr/include/superlu/superlu_enum_consts.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"/usr/include/superlu/superlu_enum_consts.h" : 'X\(//\)[^/]' \| \
-	 X"/usr/include/superlu/superlu_enum_consts.h" : 'X\(//\)$' \| \
-	 X"/usr/include/superlu/superlu_enum_consts.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"/usr/include/superlu/superlu_enum_consts.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "superlu INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_superlu=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_Superlu4" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check Superlu4" >&5
-$as_echo_n "checking check Superlu4... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lsuperlu4 "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include </usr/include/superlu4/superlu_enum_consts.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "Superlu4 LD -lsuperlu4"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "/usr/include/superlu4/superlu_enum_consts.h" ||
-$as_expr X"/usr/include/superlu4/superlu_enum_consts.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"/usr/include/superlu4/superlu_enum_consts.h" : 'X\(//\)[^/]' \| \
-	 X"/usr/include/superlu4/superlu_enum_consts.h" : 'X\(//\)$' \| \
-	 X"/usr/include/superlu4/superlu_enum_consts.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"/usr/include/superlu4/superlu_enum_consts.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "Superlu4 INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_Superlu4=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_blacs" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check blacs" >&5
-$as_echo_n "checking check blacs... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS  -lblacsCinit$ff_with_mpi	-lblacsF77init$ff_with_mpi	-lblacs$ff_with_mpi "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "blacs LD  -lblacsCinit$ff_with_mpi	-lblacsF77init$ff_with_mpi	-lblacs$ff_with_mpi"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "" ||
-$as_expr X"" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"" : 'X\(//\)[^/]' \| \
-	 X"" : 'X\(//\)$' \| \
-	 X"" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "blacs INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_blacs=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_scalapack" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check scalapack" >&5
-$as_echo_n "checking check scalapack... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lscalapack$ff_with_mpi "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "scalapack LD -lscalapack$ff_with_mpi"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "" ||
-$as_expr X"" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"" : 'X\(//\)[^/]' \| \
-	 X"" : 'X\(//\)$' \| \
-	 X"" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "scalapack INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_scalapack=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_scotch" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check scotch" >&5
-$as_echo_n "checking check scotch... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lscotch -lscotcherr "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <scotch.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "scotch LD -lscotch -lscotcherr"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "scotch.h" ||
-$as_expr X"scotch.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"scotch.h" : 'X\(//\)[^/]' \| \
-	 X"scotch.h" : 'X\(//\)$' \| \
-	 X"scotch.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"scotch.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "scotch INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_scotch=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_ptscotch" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check ptscotch" >&5
-$as_echo_n "checking check ptscotch... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lptscotch -lptscotcherr "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ptscotch.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "ptscotch LD -lptscotch -lptscotcherr"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "ptscotch.h" ||
-$as_expr X"ptscotch.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"ptscotch.h" : 'X\(//\)[^/]' \| \
-	 X"ptscotch.h" : 'X\(//\)$' \| \
-	 X"ptscotch.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"ptscotch.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "ptscotch INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_ptscotch=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_metis" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check metis" >&5
-$as_echo_n "checking check metis... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lscotch -lmetis "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include </usr/include/metis/metis.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "metis LD -lscotch -lmetis"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "/usr/include/metis/metis.h" ||
-$as_expr X"/usr/include/metis/metis.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"/usr/include/metis/metis.h" : 'X\(//\)[^/]' \| \
-	 X"/usr/include/metis/metis.h" : 'X\(//\)$' \| \
-	 X"/usr/include/metis/metis.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"/usr/include/metis/metis.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "metis INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_metis=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_metis" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check metis" >&5
-$as_echo_n "checking check metis... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lscotch -lmetis "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <metis.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "metis LD -lscotch -lmetis"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "metis.h" ||
-$as_expr X"metis.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"metis.h" : 'X\(//\)[^/]' \| \
-	 X"metis.h" : 'X\(//\)$' \| \
-	 X"metis.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"metis.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "metis INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_metis=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_parmetis" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check parmetis" >&5
-$as_echo_n "checking check parmetis... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lptscotch -lparmetis "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "parmetis LD -lptscotch -lparmetis"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "" ||
-$as_expr X"" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"" : 'X\(//\)[^/]' \| \
-	 X"" : 'X\(//\)$' \| \
-	 X"" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "parmetis INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_parmetis=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_freeyams" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check freeyams" >&5
-$as_echo_n "checking check freeyams... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lfreeyams "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <freeyamslib.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "freeyams LD -lfreeyams"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "freeyamslib.h" ||
-$as_expr X"freeyamslib.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"freeyamslib.h" : 'X\(//\)[^/]' \| \
-	 X"freeyamslib.h" : 'X\(//\)$' \| \
-	 X"freeyamslib.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"freeyamslib.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "freeyams INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_freeyams=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_mmg3d" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check mmg3d" >&5
-$as_echo_n "checking check mmg3d... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lmmg3d "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <libmmg3d.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "mmg3d LD -lmmg3d"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "libmmg3d.h" ||
-$as_expr X"libmmg3d.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"libmmg3d.h" : 'X\(//\)[^/]' \| \
-	 X"libmmg3d.h" : 'X\(//\)$' \| \
-	 X"libmmg3d.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"libmmg3d.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "mmg3d INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_mmg3d=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_mshmet" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check mshmet" >&5
-$as_echo_n "checking check mshmet... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lmshmet "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "mshmet LD -lmshmet"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "" ||
-$as_expr X"" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"" : 'X\(//\)[^/]' \| \
-	 X"" : 'X\(//\)$' \| \
-	 X"" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "mshmet INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_mshmet=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_parms" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check parms" >&5
-$as_echo_n "checking check parms... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -lparms -litsol -llapack -lblas -lm "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "parms LD -lparms -litsol -llapack -lblas -lm"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "" ||
-$as_expr X"" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"" : 'X\(//\)[^/]' \| \
-	 X"" : 'X\(//\)$' \| \
-	 X"" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "parms INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_parms=1
-	LIBS=$ff_save_libs
-	fi
-      	if test -z "$ff_where_lib_conf_tetgen" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking check tetgen" >&5
-$as_echo_n "checking check tetgen... " >&6; }
-	ff_save_libs=$LIBS
-	LIBS="$LIBS -ltet "
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <tetgen.h>
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ff_WHERE=yes
-else
-  ff_WHERE=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "tetgen LD -ltet"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`$as_dirname -- "tetgen.h" ||
-$as_expr X"tetgen.h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"tetgen.h" : 'X\(//\)[^/]' \| \
-	 X"tetgen.h" : 'X\(//\)$' \| \
-	 X"tetgen.h" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"tetgen.h" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-	    case "$ff_WHERE_INC" in
-		/*) echo "tetgen INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-	    esac
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_WHERE" >&5
-$as_echo "$ff_WHERE" >&6; }
-
-        ff_where_lib_conf_tetgen=1
-	LIBS=$ff_save_libs
-	fi
-
-## before try
-
-# Check whether --enable-fflapack was given.
-if test "${enable_fflapack+set}" = set; then :
-  enableval=$enable_fflapack;
-fi
-
-    if test "$enable_fflapack" = "no"
-    then
-        TOOL_COMPILE_fflapack=""
-
-        TOOL_DYLIB_fflapack=""
-
-    else
-        TOOL_COMPILE_fflapack=fflapack
-
-        TOOL_DYLIB_fflapack=fflapack.$DYLIB_SUFFIX
-
-	enable_fflapack_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-fflapack_include was given.
-if test "${with_fflapack_include+set}" = set; then :
-  withval=$with_fflapack_include;
-fi
-
-
-# Check whether --with-fflapack_ldflags was given.
-if test "${with_fflapack_ldflags+set}" = set; then :
-  withval=$with_fflapack_ldflags;
-fi
-
-
-    if test "$with_fflapack_include" != "" || test "$with_fflapack_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_fflapack" ; then
-	    echo "fflapack LD $with_fflapack_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_fflapack_include" && echo "fflapack INCLUDE $with_fflapack_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_fflapack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add fflapack : $with_fflapack_ldflags $with_fflapack_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add fflapack : $with_fflapack_ldflags $with_fflapack_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add fflapack : $with_fflapack_ldflags $with_fflapack_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add fflapack : $with_fflapack_ldflags $with_fflapack_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_fflapack=""
-
-	enable_fflapack_download=no
-    fi
-
-
-# Check whether --enable-hips was given.
-if test "${enable_hips+set}" = set; then :
-  enableval=$enable_hips;
-fi
-
-    if test "$enable_hips" = "no"
-    then
-        TOOL_COMPILE_hips=""
-
-        TOOL_DYLIB_hips=""
-
-    else
-        TOOL_COMPILE_hips=hips
-
-        TOOL_DYLIB_hips=hips_FreeFem.$DYLIB_SUFFIX
-
-	enable_hips_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-hips_include was given.
-if test "${with_hips_include+set}" = set; then :
-  withval=$with_hips_include;
-fi
-
-
-# Check whether --with-hips_ldflags was given.
-if test "${with_hips_ldflags+set}" = set; then :
-  withval=$with_hips_ldflags;
-fi
-
-
-    if test "$with_hips_include" != "" || test "$with_hips_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_hips" ; then
-	    echo "hips LD $with_hips_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_hips_include" && echo "hips INCLUDE $with_hips_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_hips=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add hips : $with_hips_ldflags $with_hips_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add hips : $with_hips_ldflags $with_hips_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add hips : $with_hips_ldflags $with_hips_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add hips : $with_hips_ldflags $with_hips_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_hips=""
-
-	enable_hips_download=no
-    fi
-
-
-# Check whether --enable-ipopt was given.
-if test "${enable_ipopt+set}" = set; then :
-  enableval=$enable_ipopt;
-fi
-
-    if test "$enable_ipopt" = "no"
-    then
-        TOOL_COMPILE_ipopt=""
-
-        TOOL_DYLIB_ipopt=""
-
-    else
-        TOOL_COMPILE_ipopt=ipopt
-
-        TOOL_DYLIB_ipopt=ff-Ipopt.$DYLIB_SUFFIX
-
-	enable_ipopt_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-ipopt_include was given.
-if test "${with_ipopt_include+set}" = set; then :
-  withval=$with_ipopt_include;
-fi
-
-
-# Check whether --with-ipopt_ldflags was given.
-if test "${with_ipopt_ldflags+set}" = set; then :
-  withval=$with_ipopt_ldflags;
-fi
-
-
-    if test "$with_ipopt_include" != "" || test "$with_ipopt_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_ipopt" ; then
-	    echo "ipopt LD $with_ipopt_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_ipopt_include" && echo "ipopt INCLUDE $with_ipopt_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_ipopt=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add ipopt : $with_ipopt_ldflags $with_ipopt_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add ipopt : $with_ipopt_ldflags $with_ipopt_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add ipopt : $with_ipopt_ldflags $with_ipopt_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add ipopt : $with_ipopt_ldflags $with_ipopt_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_ipopt=""
-
-	enable_ipopt_download=no
-    fi
-
-
-# Check whether --enable-lapack was given.
-if test "${enable_lapack+set}" = set; then :
-  enableval=$enable_lapack;
-fi
-
-    if test "$enable_lapack" = "no"
-    then
-        TOOL_COMPILE_lapack=""
-
-        TOOL_DYLIB_lapack=""
-
-    else
-        TOOL_COMPILE_lapack=lapack
-
-        TOOL_DYLIB_lapack=lapack.$DYLIB_SUFFIX
-
-	enable_lapack_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-lapack_include was given.
-if test "${with_lapack_include+set}" = set; then :
-  withval=$with_lapack_include;
-fi
-
-
-# Check whether --with-lapack_ldflags was given.
-if test "${with_lapack_ldflags+set}" = set; then :
-  withval=$with_lapack_ldflags;
-fi
-
-
-    if test "$with_lapack_include" != "" || test "$with_lapack_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_lapack" ; then
-	    echo "lapack LD $with_lapack_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_lapack_include" && echo "lapack INCLUDE $with_lapack_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_lapack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add lapack : $with_lapack_ldflags $with_lapack_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add lapack : $with_lapack_ldflags $with_lapack_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add lapack : $with_lapack_ldflags $with_lapack_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add lapack : $with_lapack_ldflags $with_lapack_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_lapack=""
-
-	enable_lapack_download=no
-    fi
-
-
-# Check whether --enable-metis was given.
-if test "${enable_metis+set}" = set; then :
-  enableval=$enable_metis;
-fi
-
-    if test "$enable_metis" = "no"
-    then
-        TOOL_COMPILE_metis=""
-
-        TOOL_DYLIB_metis=""
-
-    else
-        TOOL_COMPILE_metis=metis
-
-        TOOL_DYLIB_metis=metis.$DYLIB_SUFFIX
-
-	enable_metis_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-metis_include was given.
-if test "${with_metis_include+set}" = set; then :
-  withval=$with_metis_include;
-fi
-
-
-# Check whether --with-metis_ldflags was given.
-if test "${with_metis_ldflags+set}" = set; then :
-  withval=$with_metis_ldflags;
-fi
-
-
-    if test "$with_metis_include" != "" || test "$with_metis_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_metis" ; then
-	    echo "metis LD $with_metis_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_metis_include" && echo "metis INCLUDE $with_metis_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_metis=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add metis : $with_metis_ldflags $with_metis_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add metis : $with_metis_ldflags $with_metis_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add metis : $with_metis_ldflags $with_metis_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add metis : $with_metis_ldflags $with_metis_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_metis=""
-
-	enable_metis_download=no
-    fi
-
-
-# Check whether --enable-mmg3d was given.
-if test "${enable_mmg3d+set}" = set; then :
-  enableval=$enable_mmg3d;
-fi
-
-    if test "$enable_mmg3d" = "no"
-    then
-        TOOL_COMPILE_mmg3d=""
-
-        TOOL_DYLIB_mmg3d=""
-
-    else
-        TOOL_COMPILE_mmg3d=mmg3d
-
-        TOOL_DYLIB_mmg3d=mmg3d-v4.0.$DYLIB_SUFFIX
-
-	enable_mmg3d_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-mmg3d_include was given.
-if test "${with_mmg3d_include+set}" = set; then :
-  withval=$with_mmg3d_include;
-fi
-
-
-# Check whether --with-mmg3d_ldflags was given.
-if test "${with_mmg3d_ldflags+set}" = set; then :
-  withval=$with_mmg3d_ldflags;
-fi
-
-
-    if test "$with_mmg3d_include" != "" || test "$with_mmg3d_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_mmg3d" ; then
-	    echo "mmg3d LD $with_mmg3d_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_mmg3d_include" && echo "mmg3d INCLUDE $with_mmg3d_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mmg3d=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mmg3d : $with_mmg3d_ldflags $with_mmg3d_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mmg3d : $with_mmg3d_ldflags $with_mmg3d_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mmg3d : $with_mmg3d_ldflags $with_mmg3d_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mmg3d : $with_mmg3d_ldflags $with_mmg3d_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_mmg3d=""
-
-	enable_mmg3d_download=no
-    fi
-
-
-# Check whether --enable-mshmet was given.
-if test "${enable_mshmet+set}" = set; then :
-  enableval=$enable_mshmet;
-fi
-
-    if test "$enable_mshmet" = "no"
-    then
-        TOOL_COMPILE_mshmet=""
-
-        TOOL_DYLIB_mshmet=""
-
-    else
-        TOOL_COMPILE_mshmet=mshmet
-
-        TOOL_DYLIB_mshmet=mshmet.$DYLIB_SUFFIX
-
-	enable_mshmet_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-mshmet_include was given.
-if test "${with_mshmet_include+set}" = set; then :
-  withval=$with_mshmet_include;
-fi
-
-
-# Check whether --with-mshmet_ldflags was given.
-if test "${with_mshmet_ldflags+set}" = set; then :
-  withval=$with_mshmet_ldflags;
-fi
-
-
-    if test "$with_mshmet_include" != "" || test "$with_mshmet_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_mshmet" ; then
-	    echo "mshmet LD $with_mshmet_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_mshmet_include" && echo "mshmet INCLUDE $with_mshmet_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mshmet=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mshmet : $with_mshmet_ldflags $with_mshmet_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mshmet : $with_mshmet_ldflags $with_mshmet_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mshmet : $with_mshmet_ldflags $with_mshmet_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mshmet : $with_mshmet_ldflags $with_mshmet_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_mshmet=""
-
-	enable_mshmet_download=no
-    fi
-
-
-# Check whether --enable-mumps was given.
-if test "${enable_mumps+set}" = set; then :
-  enableval=$enable_mumps;
-fi
-
-    if test "$enable_mumps" = "no"
-    then
-        TOOL_COMPILE_mumps=""
-
-        TOOL_DYLIB_mumps=""
-
-    else
-        TOOL_COMPILE_mumps=mumps
-
-        TOOL_DYLIB_mumps="MUMPS_FreeFem.$DYLIB_SUFFIX MUMPS.$DYLIB_SUFFIX"
-
-	enable_mumps_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-mumps_include was given.
-if test "${with_mumps_include+set}" = set; then :
-  withval=$with_mumps_include;
-fi
-
-
-# Check whether --with-mumps_ldflags was given.
-if test "${with_mumps_ldflags+set}" = set; then :
-  withval=$with_mumps_ldflags;
-fi
-
-
-    if test "$with_mumps_include" != "" || test "$with_mumps_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_mumps" ; then
-	    echo "mumps LD $with_mumps_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_mumps_include" && echo "mumps INCLUDE $with_mumps_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mumps=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mumps : $with_mumps_ldflags $with_mumps_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mumps : $with_mumps_ldflags $with_mumps_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mumps : $with_mumps_ldflags $with_mumps_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mumps : $with_mumps_ldflags $with_mumps_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_mumps=""
-
-	enable_mumps_download=no
-    fi
-
-
-# Check whether --enable-mumps_seq was given.
-if test "${enable_mumps_seq+set}" = set; then :
-  enableval=$enable_mumps_seq;
-fi
-
-    if test "$enable_mumps_seq" = "no"
-    then
-        TOOL_COMPILE_mumps_seq=""
-
-        TOOL_DYLIB_mumps_seq=""
-
-    else
-        TOOL_COMPILE_mumps_seq=mumps-seq
-
-        TOOL_DYLIB_mumps_seq="MUMPS_seq.$DYLIB_SUFFIX MUMPS.$DYLIB_SUFFIX"
-
-	enable_mumps_seq_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-mumps_seq_include was given.
-if test "${with_mumps_seq_include+set}" = set; then :
-  withval=$with_mumps_seq_include;
-fi
-
-
-# Check whether --with-mumps_seq_ldflags was given.
-if test "${with_mumps_seq_ldflags+set}" = set; then :
-  withval=$with_mumps_seq_ldflags;
-fi
-
-
-    if test "$with_mumps_seq_include" != "" || test "$with_mumps_seq_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_mumps_seq" ; then
-	    echo "mumps_seq LD $with_mumps_seq_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_mumps_seq_include" && echo "mumps_seq INCLUDE $with_mumps_seq_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_mumps_seq=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add mumps_seq : $with_mumps_seq_ldflags $with_mumps_seq_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add mumps_seq : $with_mumps_seq_ldflags $with_mumps_seq_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add mumps_seq : $with_mumps_seq_ldflags $with_mumps_seq_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add mumps_seq : $with_mumps_seq_ldflags $with_mumps_seq_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_mumps_seq=""
-
-	enable_mumps_seq_download=no
-    fi
-
-
-# Check whether --enable-nlopt was given.
-if test "${enable_nlopt+set}" = set; then :
-  enableval=$enable_nlopt;
-fi
-
-    if test "$enable_nlopt" = "no"
-    then
-        TOOL_COMPILE_nlopt=""
-
-        TOOL_DYLIB_nlopt=""
-
-    else
-        TOOL_COMPILE_nlopt=nlopt
-
-        TOOL_DYLIB_nlopt=ff-NLopt.$DYLIB_SUFFIX
-
-	enable_nlopt_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-nlopt_include was given.
-if test "${with_nlopt_include+set}" = set; then :
-  withval=$with_nlopt_include;
-fi
-
-
-# Check whether --with-nlopt_ldflags was given.
-if test "${with_nlopt_ldflags+set}" = set; then :
-  withval=$with_nlopt_ldflags;
-fi
-
-
-    if test "$with_nlopt_include" != "" || test "$with_nlopt_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_nlopt" ; then
-	    echo "nlopt LD $with_nlopt_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_nlopt_include" && echo "nlopt INCLUDE $with_nlopt_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_nlopt=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add nlopt : $with_nlopt_ldflags $with_nlopt_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add nlopt : $with_nlopt_ldflags $with_nlopt_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add nlopt : $with_nlopt_ldflags $with_nlopt_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add nlopt : $with_nlopt_ldflags $with_nlopt_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_nlopt=""
-
-	enable_nlopt_download=no
-    fi
-
-
-# Check whether --enable-parmetis was given.
-if test "${enable_parmetis+set}" = set; then :
-  enableval=$enable_parmetis;
-fi
-
-    if test "$enable_parmetis" = "no"
-    then
-        TOOL_COMPILE_parmetis=""
-
-        TOOL_DYLIB_parmetis=""
-
-    else
-        TOOL_COMPILE_parmetis=parmetis
-
-
-	enable_parmetis_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-parmetis_include was given.
-if test "${with_parmetis_include+set}" = set; then :
-  withval=$with_parmetis_include;
-fi
-
-
-# Check whether --with-parmetis_ldflags was given.
-if test "${with_parmetis_ldflags+set}" = set; then :
-  withval=$with_parmetis_ldflags;
-fi
-
-
-    if test "$with_parmetis_include" != "" || test "$with_parmetis_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_parmetis" ; then
-	    echo "parmetis LD $with_parmetis_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_parmetis_include" && echo "parmetis INCLUDE $with_parmetis_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_parmetis=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add parmetis : $with_parmetis_ldflags $with_parmetis_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add parmetis : $with_parmetis_ldflags $with_parmetis_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add parmetis : $with_parmetis_ldflags $with_parmetis_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add parmetis : $with_parmetis_ldflags $with_parmetis_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_parmetis=""
-
-	enable_parmetis_download=no
-    fi
-
-
-# Check whether --enable-parms was given.
-if test "${enable_parms+set}" = set; then :
-  enableval=$enable_parms;
-fi
-
-    if test "$enable_parms" = "no"
-    then
-        TOOL_COMPILE_parms=""
-
-        TOOL_DYLIB_parms=""
-
-    else
-        TOOL_COMPILE_parms=parms
-
-        TOOL_DYLIB_parms=parms_FreeFem.$DYLIB_SUFFIX
-
-	enable_parms_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-parms_include was given.
-if test "${with_parms_include+set}" = set; then :
-  withval=$with_parms_include;
-fi
-
-
-# Check whether --with-parms_ldflags was given.
-if test "${with_parms_ldflags+set}" = set; then :
-  withval=$with_parms_ldflags;
-fi
-
-
-    if test "$with_parms_include" != "" || test "$with_parms_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_parms" ; then
-	    echo "parms LD $with_parms_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_parms_include" && echo "parms INCLUDE $with_parms_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_parms=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add parms : $with_parms_ldflags $with_parms_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add parms : $with_parms_ldflags $with_parms_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add parms : $with_parms_ldflags $with_parms_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add parms : $with_parms_ldflags $with_parms_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_parms=""
-
-	enable_parms_download=no
-    fi
-
-
-# Check whether --enable-pastix was given.
-if test "${enable_pastix+set}" = set; then :
-  enableval=$enable_pastix;
-fi
-
-    if test "$enable_pastix" = "no"
-    then
-        TOOL_COMPILE_pastix=""
-
-        TOOL_DYLIB_pastix=""
-
-    else
-        TOOL_COMPILE_pastix=pastix
-
-        TOOL_DYLIB_pastix="interfacepastix.$DYLIB_SUFFIX complex_pastix_FreeFem.$DYLIB_SUFFIX real_pastix_FreeFem.$DYLIB_SUFFIX"
-
-	enable_pastix_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-pastix_include was given.
-if test "${with_pastix_include+set}" = set; then :
-  withval=$with_pastix_include;
-fi
-
-
-# Check whether --with-pastix_ldflags was given.
-if test "${with_pastix_ldflags+set}" = set; then :
-  withval=$with_pastix_ldflags;
-fi
-
-
-    if test "$with_pastix_include" != "" || test "$with_pastix_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_pastix" ; then
-	    echo "pastix LD $with_pastix_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_pastix_include" && echo "pastix INCLUDE $with_pastix_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_pastix=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add pastix : $with_pastix_ldflags $with_pastix_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add pastix : $with_pastix_ldflags $with_pastix_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add pastix : $with_pastix_ldflags $with_pastix_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add pastix : $with_pastix_ldflags $with_pastix_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_pastix=""
-
-	enable_pastix_download=no
-    fi
-
-
-# Check whether --enable-pipe was given.
-if test "${enable_pipe+set}" = set; then :
-  enableval=$enable_pipe;
-fi
-
-    if test "$enable_pipe" = "no"
-    then
-        TOOL_COMPILE_pipe=""
-
-        TOOL_DYLIB_pipe=""
-
-    else
-        TOOL_COMPILE_pipe=pipe
-
-        TOOL_DYLIB_pipe=pipe.$DYLIB_SUFFIX
-
-	enable_pipe_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-pipe_include was given.
-if test "${with_pipe_include+set}" = set; then :
-  withval=$with_pipe_include;
-fi
-
-
-# Check whether --with-pipe_ldflags was given.
-if test "${with_pipe_ldflags+set}" = set; then :
-  withval=$with_pipe_ldflags;
-fi
-
-
-    if test "$with_pipe_include" != "" || test "$with_pipe_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_pipe" ; then
-	    echo "pipe LD $with_pipe_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_pipe_include" && echo "pipe INCLUDE $with_pipe_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_pipe=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add pipe : $with_pipe_ldflags $with_pipe_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add pipe : $with_pipe_ldflags $with_pipe_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add pipe : $with_pipe_ldflags $with_pipe_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add pipe : $with_pipe_ldflags $with_pipe_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_pipe=""
-
-	enable_pipe_download=no
-    fi
-
-
-# Check whether --enable-scotch was given.
-if test "${enable_scotch+set}" = set; then :
-  enableval=$enable_scotch;
-fi
-
-    if test "$enable_scotch" = "no"
-    then
-        TOOL_COMPILE_scotch=""
-
-        TOOL_DYLIB_scotch=""
-
-    else
-        TOOL_COMPILE_scotch=scotch
-
-        TOOL_DYLIB_scotch=scotch.$DYLIB_SUFFIX
-
-	enable_scotch_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-scotch_include was given.
-if test "${with_scotch_include+set}" = set; then :
-  withval=$with_scotch_include;
-fi
-
-
-# Check whether --with-scotch_ldflags was given.
-if test "${with_scotch_ldflags+set}" = set; then :
-  withval=$with_scotch_ldflags;
-fi
-
-
-    if test "$with_scotch_include" != "" || test "$with_scotch_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_scotch" ; then
-	    echo "scotch LD $with_scotch_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_scotch_include" && echo "scotch INCLUDE $with_scotch_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_scotch=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add scotch : $with_scotch_ldflags $with_scotch_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add scotch : $with_scotch_ldflags $with_scotch_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add scotch : $with_scotch_ldflags $with_scotch_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add scotch : $with_scotch_ldflags $with_scotch_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_scotch=""
-
-	enable_scotch_download=no
-    fi
-
-
-# Check whether --enable-superlu was given.
-if test "${enable_superlu+set}" = set; then :
-  enableval=$enable_superlu;
-fi
-
-    if test "$enable_superlu" = "no"
-    then
-        TOOL_COMPILE_superlu=""
-
-        TOOL_DYLIB_superlu=""
-
-    else
-        TOOL_COMPILE_superlu=superlu
-
-        TOOL_DYLIB_superlu=SuperLu.$DYLIB_SUFFIX
-
-	enable_superlu_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-superlu_include was given.
-if test "${with_superlu_include+set}" = set; then :
-  withval=$with_superlu_include;
-fi
-
-
-# Check whether --with-superlu_ldflags was given.
-if test "${with_superlu_ldflags+set}" = set; then :
-  withval=$with_superlu_ldflags;
-fi
-
-
-    if test "$with_superlu_include" != "" || test "$with_superlu_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_superlu" ; then
-	    echo "superlu LD $with_superlu_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_superlu_include" && echo "superlu INCLUDE $with_superlu_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_superlu=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add superlu : $with_superlu_ldflags $with_superlu_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add superlu : $with_superlu_ldflags $with_superlu_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add superlu : $with_superlu_ldflags $with_superlu_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add superlu : $with_superlu_ldflags $with_superlu_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_superlu=""
-
-	enable_superlu_download=no
-    fi
-
-
-# Check whether --enable-superludist was given.
-if test "${enable_superludist+set}" = set; then :
-  enableval=$enable_superludist;
-fi
-
-    if test "$enable_superludist" = "no"
-    then
-        TOOL_COMPILE_superludist=""
-
-        TOOL_DYLIB_superludist=""
-
-    else
-        TOOL_COMPILE_superludist=superludist
-
-        TOOL_DYLIB_superludist="complex_SuperLU_DIST_FreeFem.$DYLIB_SUFFIX real_SuperLU_DIST_FreeFem.$DYLIB_SUFFIX dSuperLU_DIST.$DYLIB_SUFFIX"
-
-	enable_superludist_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-superludist_include was given.
-if test "${with_superludist_include+set}" = set; then :
-  withval=$with_superludist_include;
-fi
-
-
-# Check whether --with-superludist_ldflags was given.
-if test "${with_superludist_ldflags+set}" = set; then :
-  withval=$with_superludist_ldflags;
-fi
-
-
-    if test "$with_superludist_include" != "" || test "$with_superludist_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_superludist" ; then
-	    echo "superludist LD $with_superludist_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_superludist_include" && echo "superludist INCLUDE $with_superludist_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_superludist=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add superludist : $with_superludist_ldflags $with_superludist_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add superludist : $with_superludist_ldflags $with_superludist_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add superludist : $with_superludist_ldflags $with_superludist_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add superludist : $with_superludist_ldflags $with_superludist_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_superludist=""
-
-	enable_superludist_download=no
-    fi
-
-
-# Check whether --enable-umfpack was given.
-if test "${enable_umfpack+set}" = set; then :
-  enableval=$enable_umfpack;
-fi
-
-    if test "$enable_umfpack" = "no"
-    then
-        TOOL_COMPILE_umfpack=""
-
-        TOOL_DYLIB_umfpack=""
-
-    else
-        TOOL_COMPILE_umfpack=umfpack
-
-        TOOL_DYLIB_umfpack=UMFPACK64.$DYLIB_SUFFIX
-
-	enable_umfpack_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-umfpack_include was given.
-if test "${with_umfpack_include+set}" = set; then :
-  withval=$with_umfpack_include;
-fi
-
-
-# Check whether --with-umfpack_ldflags was given.
-if test "${with_umfpack_ldflags+set}" = set; then :
-  withval=$with_umfpack_ldflags;
-fi
-
-
-    if test "$with_umfpack_include" != "" || test "$with_umfpack_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_umfpack" ; then
-	    echo "umfpack LD $with_umfpack_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_umfpack_include" && echo "umfpack INCLUDE $with_umfpack_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_umfpack=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add umfpack : $with_umfpack_ldflags $with_umfpack_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add umfpack : $with_umfpack_ldflags $with_umfpack_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add umfpack : $with_umfpack_ldflags $with_umfpack_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add umfpack : $with_umfpack_ldflags $with_umfpack_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_umfpack=""
-
-	enable_umfpack_download=no
-    fi
-
-
-# Check whether --enable-yams was given.
-if test "${enable_yams+set}" = set; then :
-  enableval=$enable_yams;
-fi
-
-    if test "$enable_yams" = "no"
-    then
-        TOOL_COMPILE_yams=""
-
-        TOOL_DYLIB_yams=""
-
-    else
-        TOOL_COMPILE_yams=yams
-
-        TOOL_DYLIB_yams=freeyams.$DYLIB_SUFFIX
-
-	enable_yams_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-yams_include was given.
-if test "${with_yams_include+set}" = set; then :
-  withval=$with_yams_include;
-fi
-
-
-# Check whether --with-yams_ldflags was given.
-if test "${with_yams_ldflags+set}" = set; then :
-  withval=$with_yams_ldflags;
-fi
-
-
-    if test "$with_yams_include" != "" || test "$with_yams_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_yams" ; then
-	    echo "yams LD $with_yams_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_yams_include" && echo "yams INCLUDE $with_yams_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_yams=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add yams : $with_yams_ldflags $with_yams_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add yams : $with_yams_ldflags $with_yams_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add yams : $with_yams_ldflags $with_yams_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add yams : $with_yams_ldflags $with_yams_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_yams=""
-
-	enable_yams_download=no
-    fi
-
-
-# Check whether --enable-pipe was given.
-if test "${enable_pipe+set}" = set; then :
-  enableval=$enable_pipe;
-fi
-
-    if test "$enable_pipe" = "no"
-    then
-        TOOL_COMPILE_pipe=""
-
-        TOOL_DYLIB_pipe=""
-
-    else
-        TOOL_COMPILE_pipe=pipe
-
-        TOOL_DYLIB_pipe=pipe.$DYLIB_SUFFIX
-
-	enable_pipe_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-pipe_include was given.
-if test "${with_pipe_include+set}" = set; then :
-  withval=$with_pipe_include;
-fi
-
-
-# Check whether --with-pipe_ldflags was given.
-if test "${with_pipe_ldflags+set}" = set; then :
-  withval=$with_pipe_ldflags;
-fi
-
-
-    if test "$with_pipe_include" != "" || test "$with_pipe_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_pipe" ; then
-	    echo "pipe LD $with_pipe_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_pipe_include" && echo "pipe INCLUDE $with_pipe_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_pipe=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add pipe : $with_pipe_ldflags $with_pipe_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add pipe : $with_pipe_ldflags $with_pipe_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add pipe : $with_pipe_ldflags $with_pipe_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add pipe : $with_pipe_ldflags $with_pipe_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_pipe=""
-
-	enable_pipe_download=no
-    fi
-
-
-
-# FFCS - MUMPS_seq has a different Win32 compiler setup from FFCS, so we need to add some extra parameters
-
-if test "$OS" = Windows_NT
-then
-    CFLAGS="$CFLAGS -DWITHOUT_PTHREAD -DAdd_"
-
-    # we also need to satisfy ff-c++ that the pthread are not a blocking point
-    if test -n "$ff_pthread"  ; then
-       	if test -z "$ff_where_lib_conf_pthread" ; then
-	    echo "pthread LD """  >>$ff_where_lib_conf
-	    test -n "" && echo "pthread INCLUDE  "  >>$ff_where_lib_conf
-            ff_where_lib_conf_pthread=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add pthread : \"\"  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add pthread : \"\"  in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add pthread : \"\"  in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add pthread : \"\"  in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-    fi
-fi
-
-# ALH - pARMS needs "-fno-range-check" on Windows, but this options fails on MacOS 10.8.  Add no-range-check for Windows
-# for hexadecimal parameter constants like:
-#
-# [[file:c:/cygwin/home/alh/ffcs/rel/mingw/mpif.h::PARAMETER MPI_SHORT_INT z 8c000003]]
-#
-# Such constants are rejected without [[file:download/parms/makefile-parms.in::NO_RANGE_CHECK]]
-
-if test "$OS" = Windows_NT
-then
-    NO_RANGE_CHECK=-fno-range-check
-
-fi
-
-# ALH - 4/9/13 - request from Helmut Jarausch - allow to change Scotch include path
-if test "$with_scotch_include" = ""
-then
-    with_scotch_include=$ac_pwd/download/include/scotch
-fi
-SCOTCH_INCLUDE=$with_scotch_include
-
-
-# Find out kernel and libc versions
-# ---------------------------------
-
-if test "$ff_win32" != yes -a "$ff_mac" != yes
-then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel version" >&5
-$as_echo_n "checking kernel version... " >&6; }
-	ff_kernel_version=`cat /proc/version|perl -e '<STDIN>=~/(\d+\.\d+\.\d+)/;print $1;'`
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_kernel_version" >&5
-$as_echo "$ff_kernel_version" >&6; }
-	KERNEL_VERSION=$ff_kernel_version
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking libc version" >&5
-$as_echo_n "checking libc version... " >&6; }
-	ff_libc_version=`ldd /bin/sh | awk '/libc/{print $3}' | xargs readlink | sed -e 's/\.so$//'`
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ff_libc_version" >&5
-$as_echo "$ff_libc_version" >&6; }
-	LIBC_VERSION=$ff_libc_version
-
-fi
-#  def variable pour les makefiles
-
-# creating all makefiles
-# ----------------------
-
-ff_bamgprog="bamg${EXEEXT} cvmsh2${EXEEXT}"
-
-CNOFLAGS=$CNOFLAGS
- FNOFLAGS=$FNOFLAGS
-
-# The final list of executable programs
-
-MEDITPROG=$ff_meditprog
-
-FFGLUTPROG=$ff_ffglutprog
-
-BAMGPROG=$ff_bamgprog
-
-STDPROG=$ff_stdprog
-
-ff_progs="FreeFem++-nw $ff_bamgprog  $ff_mpiprog $ff_meditprog $ff_ffglutprog"
-
-TEST_FFPP=$ff_TEST_FFPP
-
-TEST_FFPP_MPI=$ff_TEST_FFPP_MPI
-
-TEST_FFPPMPI="../src/mpi/ff-mpirun"
-
-
-ff_with_mpi=-openmpi;
-
-ff_blacs="-lblacsCinit$ff_with_mpi     -lblacsF77init$ff_with_mpi      -lblacs$ff_with_mpi"
-ff_scalapack=-lscalapack
-
-# change MKL interface ...
-test -n "$ff_mkl_blacs" && ff_blacs="$ff_mkl_blacs"
-test -n "$ff_mkl_scalapack" && ff_scalapack="$ff_mkl_scalapack"
-test -n "$ff_mkl_root" && ff_winc="$ff_mkl_root/include/mkl_blas.h"
-
-# FFCS - 27/10/11 - Some extra conditionals for things that do not work on certain systems (eg MPI libraries under
-# Windows)
-
-##  search of HDF5 ....
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-
-
-
-
-
-
-if   test "" = ""        ; then
-    : # Recognized value
-elif test "" = "serial"  ; then
-    : # Recognized value
-elif test "" = "parallel"; then
-    : # Recognized value
-else
-    as_fn_error $? "
-Unrecognized value for AX_LIB_HDF5 within configure.ac.
-If supplied, argument 1 must be either 'serial' or 'parallel'.
-" "$LINENO" 5
-fi
-
-
-# Check whether --with-hdf5 was given.
-if test "${with_hdf5+set}" = set; then :
-  withval=$with_hdf5; if test "$withval" = "no"; then
-     with_hdf5="no"
-   elif test "$withval" = "yes"; then
-     with_hdf5="yes"
-   else
-     with_hdf5="yes"
-     H5CC="$withval"
-   fi
-else
-  with_hdf5="yes"
-
-fi
-
-
-HDF5_CC=""
-HDF5_VERSION=""
-HDF5_CFLAGS=""
-HDF5_CPPFLAGS=""
-HDF5_LDFLAGS=""
-HDF5_LIBS=""
-HDF5_FC=""
-HDF5_FFLAGS=""
-HDF5_FLIBS=""
-
-if test "$with_hdf5" = "yes"; then
-    if test -z "$H5CC"; then
-                for ac_prog in h5cc h5pcc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_H5CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $H5CC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_H5CC="$H5CC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_H5CC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-H5CC=$ac_cv_path_H5CC
-if test -n "$H5CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $H5CC" >&5
-$as_echo "$H5CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$H5CC" && break
-done
-
-    else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking Using provided HDF5 C wrapper" >&5
-$as_echo_n "checking Using provided HDF5 C wrapper... " >&6; }
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $H5CC" >&5
-$as_echo "$H5CC" >&6; }
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HDF5 libraries" >&5
-$as_echo_n "checking for HDF5 libraries... " >&6; }
-    if test ! -f "$H5CC" || test ! -x "$H5CC"; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
-Unable to locate HDF5 compilation helper scripts 'h5cc' or 'h5pcc'.
-Please specify --with-hdf5=<LOCATION> as the full path to h5cc or h5pcc.
-HDF5 support is being disabled (equivalent to --with-hdf5=no).
-" >&5
-$as_echo "$as_me: WARNING:
-Unable to locate HDF5 compilation helper scripts 'h5cc' or 'h5pcc'.
-Please specify --with-hdf5=<LOCATION> as the full path to h5cc or h5pcc.
-HDF5 support is being disabled (equivalent to --with-hdf5=no).
-" >&2;}
-        with_hdf5="no"
-        with_hdf5_fortran="no"
-    else
-                HDF5_SHOW=$(eval $H5CC -show)
-
-                HDF5_CC=$(eval $H5CC -show | $AWK '{print $1}')
-        if test "$HDF5_CC" = "ccache"; then
-            HDF5_CC=$(eval $H5CC -show | $AWK '{print $2}')
-        fi
-
-
-                HDF5_VERSION=$(eval $H5CC -showconfig | $GREP 'HDF5 Version:' \
-            | $AWK '{print $3}')
-
-                                                                                HDF5_tmp_flags=$(eval $H5CC -showconfig \
-            | $GREP 'FLAGS\|Extra libraries:' \
-            | $AWK -F: '{printf("%s "), $2}' )
-
-                HDF5_tmp_inst=$(eval $H5CC -showconfig \
-            | $GREP 'Installation point:' \
-            | $AWK '{print $NF}' )
-
-                HDF5_CPPFLAGS="-I${HDF5_tmp_inst}/include"
-
-                for arg in $HDF5_SHOW $HDF5_tmp_flags ; do
-          case "$arg" in
-            -I*) echo $HDF5_CPPFLAGS | $GREP -e "$arg" 2>&1 >/dev/null \
-                  || HDF5_CPPFLAGS="$arg $HDF5_CPPFLAGS"
-              ;;
-            -L*) echo $HDF5_LDFLAGS | $GREP -e "$arg" 2>&1 >/dev/null \
-                  || HDF5_LDFLAGS="$arg $HDF5_LDFLAGS"
-              ;;
-            -l*) echo $HDF5_LIBS | $GREP -e "$arg" 2>&1 >/dev/null \
-                  || HDF5_LIBS="$arg $HDF5_LIBS"
-              ;;
-          esac
-        done
-
-        HDF5_LIBS="$HDF5_LIBS -lhdf5"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $HDF5_VERSION)" >&5
-$as_echo "yes (version $HDF5_VERSION)" >&6; }
-
-                ax_lib_hdf5_save_CC=$CC
-        ax_lib_hdf5_save_CPPFLAGS=$CPPFLAGS
-        ax_lib_hdf5_save_LIBS=$LIBS
-        ax_lib_hdf5_save_LDFLAGS=$LDFLAGS
-        CC=$HDF5_CC
-        CPPFLAGS=$HDF5_CPPFLAGS
-        LIBS=$HDF5_LIBS
-        LDFLAGS=$HDF5_LDFLAGS
-        ac_fn_cxx_check_header_mongrel "$LINENO" "hdf5.h" "ac_cv_header_hdf5_h" "$ac_includes_default"
-if test "x$ac_cv_header_hdf5_h" = xyes; then :
-  ac_cv_hadf5_h=yes
-else
-  ac_cv_hadf5_h=no
-fi
-
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for H5Fcreate in -lhdf5" >&5
-$as_echo_n "checking for H5Fcreate in -lhdf5... " >&6; }
-if ${ac_cv_lib_hdf5_H5Fcreate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lhdf5  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char H5Fcreate ();
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return H5Fcreate ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_hdf5_H5Fcreate=yes
-else
-  ac_cv_lib_hdf5_H5Fcreate=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hdf5_H5Fcreate" >&5
-$as_echo "$ac_cv_lib_hdf5_H5Fcreate" >&6; }
-if test "x$ac_cv_lib_hdf5_H5Fcreate" = xyes; then :
-  ac_cv_libhdf5=yes
-else
-  ac_cv_libhdf5=no
-fi
-
-        if test "$ac_cv_hadf5_h" = "no" && test "$ac_cv_libhdf5" = "no" ; then
-          { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to compile HDF5 test program" >&5
-$as_echo "$as_me: WARNING: Unable to compile HDF5 test program" >&2;}
-        fi
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lhdf5_hl" >&5
-$as_echo_n "checking for main in -lhdf5_hl... " >&6; }
-if ${ac_cv_lib_hdf5_hl_main+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lhdf5_hl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-#ifdef F77_DUMMY_MAIN
-
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ac_cv_lib_hdf5_hl_main=yes
-else
-  ac_cv_lib_hdf5_hl_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hdf5_hl_main" >&5
-$as_echo "$ac_cv_lib_hdf5_hl_main" >&6; }
-if test "x$ac_cv_lib_hdf5_hl_main" = xyes; then :
-  HDF5_LIBS="$HDF5_LIBS -lhdf5_hl"
-fi
-ac_cv_lib_hdf5_hl=ac_cv_lib_hdf5_hl_main
-
-
-        CC=$ax_lib_hdf5_save_CC
-        CPPFLAGS=$ax_lib_hdf5_save_CPPFLAGS
-        LIBS=$ax_lib_hdf5_save_LIBS
-        LDFLAGS=$ax_lib_hdf5_save_LDFLAGS
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for matching HDF5 Fortran wrapper" >&5
-$as_echo_n "checking for matching HDF5 Fortran wrapper... " >&6; }
-                H5FC=$(eval echo -n $H5CC | $SED -n 's/cc$/fc/p')
-        if test -x "$H5FC"; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $H5FC" >&5
-$as_echo "$H5FC" >&6; }
-            with_hdf5_fortran="yes"
-
-
-                        for arg in `$H5FC -show`
-            do
-              case "$arg" in #(
-                -I*) echo $HDF5_FFLAGS | $GREP -e "$arg" >/dev/null \
-                      || HDF5_FFLAGS="$arg $HDF5_FFLAGS"
-                  ;;#(
-                -L*) echo $HDF5_FFLAGS | $GREP -e "$arg" >/dev/null \
-                      || HDF5_FFLAGS="$arg $HDF5_FFLAGS"
-                                                               echo $HDF5_FFLAGS | $GREP -e "-I${arg#-L}" >/dev/null \
-                      || HDF5_FFLAGS="-I${arg#-L} $HDF5_FFLAGS"
-                  ;;
-              esac
-            done
-
-                        for arg in $HDF5_LIBS
-            do
-              case "$arg" in #(
-                -lhdf5_hl) HDF5_FLIBS="$HDF5_FLIBS -lhdf5hl_fortran $arg"
-                  ;; #(
-                -lhdf5)    HDF5_FLIBS="$HDF5_FLIBS -lhdf5_fortran $arg"
-                  ;; #(
-                *) HDF5_FLIBS="$HDF5_FLIBS $arg"
-                  ;;
-              esac
-            done
-        else
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-            with_hdf5_fortran="no"
-        fi
-
-
-
-
-
-
-
-
-
-
-
-$as_echo "#define HAVE_HDF5 1" >>confdefs.h
-
-    fi
-fi
-
-if test "$with_hdf5" = "yes"; then
-  	if test -z "$ff_where_lib_conf_hdf5" ; then
-	    echo "hdf5 LD $HDF5_LDFLAGS  $HDF5_LIBS"  >>$ff_where_lib_conf
-	    test -n "$HDF5_CPPFLAGS" && echo "hdf5 INCLUDE $HDF5_CPPFLAGS "  >>$ff_where_lib_conf
-            ff_where_lib_conf_hdf5=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add hdf5 : $HDF5_LDFLAGS  $HDF5_LIBS $HDF5_CPPFLAGS in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add hdf5 : $HDF5_LDFLAGS  $HDF5_LIBS $HDF5_CPPFLAGS in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add hdf5 : $HDF5_LDFLAGS  $HDF5_LIBS $HDF5_CPPFLAGS in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add hdf5 : $HDF5_LDFLAGS  $HDF5_LIBS $HDF5_CPPFLAGS in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-  LIBS="$LIBS $HDF5_LDFLAGS  $HDF5_LIBS"
-else
-  enable_iohdf5=no
-fi
-# Check whether --enable-iohdf5 was given.
-if test "${enable_iohdf5+set}" = set; then :
-  enableval=$enable_iohdf5;
-fi
-
-    if test "$enable_iohdf5" = "no"
-    then
-        TOOL_COMPILE_iohdf5=""
-
-        TOOL_DYLIB_iohdf5=""
-
-    else
-        TOOL_COMPILE_iohdf5=iohdf5
-
-        TOOL_DYLIB_iohdf5=iohdf5.$DYLIB_SUFFIX
-
-	enable_iohdf5_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-iohdf5_include was given.
-if test "${with_iohdf5_include+set}" = set; then :
-  withval=$with_iohdf5_include;
-fi
-
-
-# Check whether --with-iohdf5_ldflags was given.
-if test "${with_iohdf5_ldflags+set}" = set; then :
-  withval=$with_iohdf5_ldflags;
-fi
-
-
-    if test "$with_iohdf5_include" != "" || test "$with_iohdf5_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_iohdf5" ; then
-	    echo "iohdf5 LD $with_iohdf5_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_iohdf5_include" && echo "iohdf5 INCLUDE $with_iohdf5_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_iohdf5=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add iohdf5 : $with_iohdf5_ldflags $with_iohdf5_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add iohdf5 : $with_iohdf5_ldflags $with_iohdf5_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add iohdf5 : $with_iohdf5_ldflags $with_iohdf5_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add iohdf5 : $with_iohdf5_ldflags $with_iohdf5_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_iohdf5=""
-
-	enable_iohdf5_download=no
-    fi
-
-
-
-
- if test "$OS" = Windows_NT; then
-  FFCS_WINDOWS_TRUE=
-  FFCS_WINDOWS_FALSE='#'
-else
-  FFCS_WINDOWS_TRUE='#'
-  FFCS_WINDOWS_FALSE=
-fi
-
-
-#  remove gsl if not find ... FH
-# correction FH .. 18/12/2013.
-# ALH - 7/1/14 - not able to compile gsl or pardiso with FFCS on Windows
-if test "$enable_ffcs" != yes
-then
-    if test  "$ff_where_lib_conf_gsl" == 1  -a  "$enable_gsl"!="no" ; then enable_gsl=yes; fi;
-    if test  "$ff_where_lib_conf_mkl" == 1  -a  "$enable_mkl"!=no ; then enable_pardiso=yes; fi;
-fi
-# Check whether --enable-gsl was given.
-if test "${enable_gsl+set}" = set; then :
-  enableval=$enable_gsl;
-fi
-
-    if test "$enable_gsl" = "no"
-    then
-        TOOL_COMPILE_gsl=""
-
-        TOOL_DYLIB_gsl=""
-
-    else
-        TOOL_COMPILE_gsl=gsl
-
-        TOOL_DYLIB_gsl="gsl.$DYLIB_SUFFIX"
-
-	enable_gsl_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-gsl_include was given.
-if test "${with_gsl_include+set}" = set; then :
-  withval=$with_gsl_include;
-fi
-
-
-# Check whether --with-gsl_ldflags was given.
-if test "${with_gsl_ldflags+set}" = set; then :
-  withval=$with_gsl_ldflags;
-fi
-
-
-    if test "$with_gsl_include" != "" || test "$with_gsl_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_gsl" ; then
-	    echo "gsl LD $with_gsl_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_gsl_include" && echo "gsl INCLUDE $with_gsl_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_gsl=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add gsl : $with_gsl_ldflags $with_gsl_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add gsl : $with_gsl_ldflags $with_gsl_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add gsl : $with_gsl_ldflags $with_gsl_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add gsl : $with_gsl_ldflags $with_gsl_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_gsl=""
-
-	enable_gsl_download=no
-    fi
-
-
-# Check whether --enable-NewSolver was given.
-if test "${enable_NewSolver+set}" = set; then :
-  enableval=$enable_NewSolver;
-fi
-
-    if test "$enable_NewSolver" = "no"
-    then
-        TOOL_COMPILE_NewSolver=""
-
-        TOOL_DYLIB_NewSolver=""
-
-    else
-        TOOL_COMPILE_NewSolver=NewSolver
-
-        TOOL_DYLIB_NewSolver="NewSolver.$DYLIB_SUFFIX"
-
-	enable_NewSolver_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-NewSolver_include was given.
-if test "${with_NewSolver_include+set}" = set; then :
-  withval=$with_NewSolver_include;
-fi
-
-
-# Check whether --with-NewSolver_ldflags was given.
-if test "${with_NewSolver_ldflags+set}" = set; then :
-  withval=$with_NewSolver_ldflags;
-fi
-
-
-    if test "$with_NewSolver_include" != "" || test "$with_NewSolver_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_NewSolver" ; then
-	    echo "NewSolver LD $with_NewSolver_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_NewSolver_include" && echo "NewSolver INCLUDE $with_NewSolver_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_NewSolver=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add NewSolver : $with_NewSolver_ldflags $with_NewSolver_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add NewSolver : $with_NewSolver_ldflags $with_NewSolver_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add NewSolver : $with_NewSolver_ldflags $with_NewSolver_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add NewSolver : $with_NewSolver_ldflags $with_NewSolver_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_NewSolver=""
-
-	enable_NewSolver_download=no
-    fi
-
-
-# Check whether --enable-pardiso was given.
-if test "${enable_pardiso+set}" = set; then :
-  enableval=$enable_pardiso;
-fi
-
-    if test "$enable_pardiso" = "no"
-    then
-        TOOL_COMPILE_pardiso=""
-
-        TOOL_DYLIB_pardiso=""
-
-    else
-        TOOL_COMPILE_pardiso=pardiso
-
-        TOOL_DYLIB_pardiso="PARDISO.$DYLIB_SUFFIX"
-
-	enable_pardiso_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-pardiso_include was given.
-if test "${with_pardiso_include+set}" = set; then :
-  withval=$with_pardiso_include;
-fi
-
-
-# Check whether --with-pardiso_ldflags was given.
-if test "${with_pardiso_ldflags+set}" = set; then :
-  withval=$with_pardiso_ldflags;
-fi
-
-
-    if test "$with_pardiso_include" != "" || test "$with_pardiso_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_pardiso" ; then
-	    echo "pardiso LD $with_pardiso_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_pardiso_include" && echo "pardiso INCLUDE $with_pardiso_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_pardiso=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add pardiso : $with_pardiso_ldflags $with_pardiso_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add pardiso : $with_pardiso_ldflags $with_pardiso_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add pardiso : $with_pardiso_ldflags $with_pardiso_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add pardiso : $with_pardiso_ldflags $with_pardiso_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_pardiso=""
-
-	enable_pardiso_download=no
-    fi
-
-
-
-# echo "debug cxxx11: $ff_cxx11 mpi: $ff_mpi petsc: $ff_petsc_ok "
-
-test "$ff_cxx11" != yes -o  "$ff_mpi" != yes -o  "$enable_download"  != "yes"  &&  enable_schwarz=no
-
-# Check whether --enable-schwarz was given.
-if test "${enable_schwarz+set}" = set; then :
-  enableval=$enable_schwarz;
-fi
-
-    if test "$enable_schwarz" = "no"
-    then
-        TOOL_COMPILE_schwarz=""
-
-        TOOL_DYLIB_schwarz=""
-
-    else
-        TOOL_COMPILE_schwarz=schwarz
-
-        TOOL_DYLIB_schwarz="schwarz.$DYLIB_SUFFIX removeDOF.$DYLIB_SUFFIX utility.$DYLIB_SUFFIX"
-
-	enable_schwarz_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-
-# Check whether --with-schwarz_include was given.
-if test "${with_schwarz_include+set}" = set; then :
-  withval=$with_schwarz_include;
-fi
-
-
-# Check whether --with-schwarz_ldflags was given.
-if test "${with_schwarz_ldflags+set}" = set; then :
-  withval=$with_schwarz_ldflags;
-fi
-
-
-    if test "$with_schwarz_include" != "" || test "$with_schwarz_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-		if test -z "$ff_where_lib_conf_schwarz" ; then
-	    echo "schwarz LD $with_schwarz_ldflags"  >>$ff_where_lib_conf
-	    test -n "$with_schwarz_include" && echo "schwarz INCLUDE $with_schwarz_include "  >>$ff_where_lib_conf
-            ff_where_lib_conf_schwarz=1
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     ++ add schwarz : $with_schwarz_ldflags $with_schwarz_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     ++ add schwarz : $with_schwarz_ldflags $with_schwarz_include in  $ff_where_lib_conf \"" >&6;}
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}:     -- do not add schwarz : $with_schwarz_ldflags $with_schwarz_include in  $ff_where_lib_conf \"" >&5
-$as_echo "$as_me:     -- do not add schwarz : $with_schwarz_ldflags $with_schwarz_include in  $ff_where_lib_conf \"" >&6;}
-        fi
-
-        TOOL_COMPILE_schwarz=""
-
-	enable_schwarz_download=no
-    fi
-
-
-
-
-# All makefiles
-ac_config_files="$ac_config_files Makefile download/Makefile download/blas/Makefile download/arpack/Makefile download/umfpack/Makefile download/fftw/Makefile src/Makefile src/bamglib/Makefile src/Graphics/Makefile src/femlib/Makefile src/Algo/Makefile src/lglib/Makefile src/fflib/Makefile src/nw/Makefile src/mpi/Makefile src/bamg/Makefile src/libMesh/Makefile src/medit/Makefile src/bin-win32/Makefile examples++/Makefile examples++-eigen/Makefile examples++-tutorial/Makefile examples++-mp [...]
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
-   if test -n "$am_sleep_pid"; then
-     # Hide warnings about reused PIDs.
-     wait $am_sleep_pid 2>/dev/null
-   fi
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
-  am__EXEEXT_TRUE=
-  am__EXEEXT_FALSE='#'
-else
-  am__EXEEXT_TRUE='#'
-  am__EXEEXT_FALSE=
-fi
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
-  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${ENABLE_FFCS_TRUE}" && test -z "${ENABLE_FFCS_FALSE}"; then
-  as_fn_error $? "conditional \"ENABLE_FFCS\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${FFCS_MPIOK_TRUE}" && test -z "${FFCS_MPIOK_FALSE}"; then
-  as_fn_error $? "conditional \"FFCS_MPIOK\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${FFCS_WINDOWS_TRUE}" && test -z "${FFCS_WINDOWS_FALSE}"; then
-  as_fn_error $? "conditional \"FFCS_WINDOWS\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by FreeFem++ $as_me 3.35, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-      --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <hecht at ann.jussieu.fr>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-FreeFem++ config.status 3.35
-configured by $0, generated by GNU Autoconf 2.69,
-  with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
-  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "download/Makefile") CONFIG_FILES="$CONFIG_FILES download/Makefile" ;;
-    "download/blas/Makefile") CONFIG_FILES="$CONFIG_FILES download/blas/Makefile" ;;
-    "download/arpack/Makefile") CONFIG_FILES="$CONFIG_FILES download/arpack/Makefile" ;;
-    "download/umfpack/Makefile") CONFIG_FILES="$CONFIG_FILES download/umfpack/Makefile" ;;
-    "download/fftw/Makefile") CONFIG_FILES="$CONFIG_FILES download/fftw/Makefile" ;;
-    "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
-    "src/bamglib/Makefile") CONFIG_FILES="$CONFIG_FILES src/bamglib/Makefile" ;;
-    "src/Graphics/Makefile") CONFIG_FILES="$CONFIG_FILES src/Graphics/Makefile" ;;
-    "src/femlib/Makefile") CONFIG_FILES="$CONFIG_FILES src/femlib/Makefile" ;;
-    "src/Algo/Makefile") CONFIG_FILES="$CONFIG_FILES src/Algo/Makefile" ;;
-    "src/lglib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lglib/Makefile" ;;
-    "src/fflib/Makefile") CONFIG_FILES="$CONFIG_FILES src/fflib/Makefile" ;;
-    "src/nw/Makefile") CONFIG_FILES="$CONFIG_FILES src/nw/Makefile" ;;
-    "src/mpi/Makefile") CONFIG_FILES="$CONFIG_FILES src/mpi/Makefile" ;;
-    "src/bamg/Makefile") CONFIG_FILES="$CONFIG_FILES src/bamg/Makefile" ;;
-    "src/libMesh/Makefile") CONFIG_FILES="$CONFIG_FILES src/libMesh/Makefile" ;;
-    "src/medit/Makefile") CONFIG_FILES="$CONFIG_FILES src/medit/Makefile" ;;
-    "src/bin-win32/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin-win32/Makefile" ;;
-    "examples++/Makefile") CONFIG_FILES="$CONFIG_FILES examples++/Makefile" ;;
-    "examples++-eigen/Makefile") CONFIG_FILES="$CONFIG_FILES examples++-eigen/Makefile" ;;
-    "examples++-tutorial/Makefile") CONFIG_FILES="$CONFIG_FILES examples++-tutorial/Makefile" ;;
-    "examples++-mpi/Makefile") CONFIG_FILES="$CONFIG_FILES examples++-mpi/Makefile" ;;
-    "examples++-load/Makefile") CONFIG_FILES="$CONFIG_FILES examples++-load/Makefile" ;;
-    "examples++-chapt3/Makefile") CONFIG_FILES="$CONFIG_FILES examples++-chapt3/Makefile" ;;
-    "examples++-bug/Makefile") CONFIG_FILES="$CONFIG_FILES examples++-bug/Makefile" ;;
-    "examples++-other/Makefile") CONFIG_FILES="$CONFIG_FILES examples++-other/Makefile" ;;
-    "examples++-3d/Makefile") CONFIG_FILES="$CONFIG_FILES examples++-3d/Makefile" ;;
-    "DOC/Makefile") CONFIG_FILES="$CONFIG_FILES DOC/Makefile" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp= ac_tmp=
-  trap 'exit_status=$?
-  : "${ac_tmp:=$tmp}"
-  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
-else
-  ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
-  N
-  s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-
-  print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
-  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_tt"; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any.  Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  for (key in D) D_is_set[key] = 1
-  FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-  line = \$ 0
-  split(line, arg, " ")
-  if (arg[1] == "#") {
-    defundef = arg[2]
-    mac1 = arg[3]
-  } else {
-    defundef = substr(arg[1], 2)
-    mac1 = arg[2]
-  }
-  split(mac1, mac2, "(") #)
-  macro = mac2[1]
-  prefix = substr(line, 1, index(line, defundef) - 1)
-  if (D_is_set[macro]) {
-    # Preserve the white space surrounding the "#".
-    print prefix "define", macro P[macro] D[macro]
-    next
-  } else {
-    # Replace #undef with comments.  This is necessary, for example,
-    # in the case of _POSIX_SOURCE, which is predefined and required
-    # on some systems where configure will not decide to define it.
-    if (defundef == "undef") {
-      print "/*", prefix defundef, macro, "*/"
-      next
-    }
-  }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$ac_tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$ac_tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
-  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
-      "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$ac_tmp/stdin"
-  case $ac_file in
-  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
-  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-  if test x"$ac_file" != x-; then
-    {
-      $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
-    } >"$ac_tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f "$ac_file"
-      mv "$ac_tmp/config.h" "$ac_file" \
-	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    fi
-  else
-    $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5
-  fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $_am_arg | $_am_arg:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$_am_arg" : 'X\(//\)[^/]' \| \
-	 X"$_am_arg" : 'X\(//\)$' \| \
-	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Older Autoconf quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$mf" : 'X\(//\)[^/]' \| \
-	 X"$mf" : 'X\(//\)$' \| \
-	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$file" : 'X\(//\)[^/]' \| \
-	 X"$file" : 'X\(//\)$' \| \
-	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
- ;;
-
-  esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}:   freefem++ used  download : $enable_download " >&5
-$as_echo "$as_me:   freefem++ used  download : $enable_download " >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: 	 	 --  Dynamic load facility: $ff_dynload " >&5
-$as_echo "$as_me: 	 	 --  Dynamic load facility: $ff_dynload " >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: 		 --  ARPACK (eigen value): $ff_arpack_ok " >&5
-$as_echo "$as_me: 		 --  ARPACK (eigen value): $ff_arpack_ok " >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: 		 --  UMFPACK (sparse solver) $ff_umfpack_ok " >&5
-$as_echo "$as_me: 		 --  UMFPACK (sparse solver) $ff_umfpack_ok " >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: 		 --  BLAS $ff_blas_ok " >&5
-$as_echo "$as_me: 		 --  BLAS $ff_blas_ok " >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: 		 --  with MPI             $ff_mpi" >&5
-$as_echo "$as_me: 		 --  with MPI             $ff_mpi" >&6;}
-{ $as_echo "$as_me:${as_lineno-$LINENO}:           --  with PETSC $ff_petsc_ok " >&5
-$as_echo "$as_me:           --  with PETSC $ff_petsc_ok " >&6;};
-{ $as_echo "$as_me:${as_lineno-$LINENO}:           --  with schwarz (HPDDM) $enable_schwarz (need MPI & c++11 :  $ff_cxx11 ) " >&5
-$as_echo "$as_me:           --  with schwarz (HPDDM) $enable_schwarz (need MPI & c++11 :  $ff_cxx11 ) " >&6;};
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}:     progs: $ff_progs " >&5
-$as_echo "$as_me:     progs: $ff_progs " >&6;}
-if test  "$ff_umfpack_download" = yes  ;then
-    { $as_echo "$as_me:${as_lineno-$LINENO}:       use of download UMFPACK see  download/umfpack/SuiteSparse/UMFPACK/README.txt for the License" >&5
-$as_echo "$as_me:       use of download UMFPACK see  download/umfpack/SuiteSparse/UMFPACK/README.txt for the License" >&6;}
-fi
-if test "$ff_arpack_download" = yes  ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}:       use of download ARPACK see  download/arpack/ARPACK/README  no License " >&5
-$as_echo "$as_me:       use of download ARPACK see  download/arpack/ARPACK/README  no License " >&6;}
-fi
-
-if test "$enable_download" = yes  ;then
-    { $as_echo "$as_me:${as_lineno-$LINENO}:       use of download fftw   see  download/fftw/fftw-3.2/COPYRIGHT " >&5
-$as_echo "$as_me:       use of download fftw   see  download/fftw/fftw-3.2/COPYRIGHT " >&6;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}:       use of download tetgen  see download/tetgen/tetgen1.4.3/LICENSE " >&5
-$as_echo "$as_me:       use of download tetgen  see download/tetgen/tetgen1.4.3/LICENSE " >&6;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}:       use of download freeyams  see download/yams/freeyams.2011.02.22 (suface mesh adaptation)  " >&5
-$as_echo "$as_me:       use of download freeyams  see download/yams/freeyams.2011.02.22 (suface mesh adaptation)  " >&6;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}:       use of download mmg3d (v4)   see download/mmg3d/mmg3d4/LICENCE.txt  " >&5
-$as_echo "$as_me:       use of download mmg3d (v4)   see download/mmg3d/mmg3d4/LICENCE.txt  " >&6;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}:       use of download metis" >&5
-$as_echo "$as_me:       use of download metis" >&6;}
-
-    # ALH - some tools may be activated but not downloaded if a local version is specified (see
-    # [[TOOL_PARAMETERS]])
-
-    if test "$enable_superlu_download" = yes
-    then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:       use of download superlu" >&5
-$as_echo "$as_me:       use of download superlu" >&6;}
-    fi
-
-    if test -n "$MPICC" ; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}:       try to download: blacs parmetis  scalapack scotch superludist pastix hypre hips library" >&5
-$as_echo "$as_me:       try to download: blacs parmetis  scalapack scotch superludist pastix hypre hips library" >&6;}
-    fi
-
-    if test "$ff_download_blas" = "generic"  ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}:       use of download generic blas and cblas freefem may be slow  " >&5
-$as_echo "$as_me:       use of download generic blas and cblas freefem may be slow  " >&6;}
-        { $as_echo "$as_me:${as_lineno-$LINENO}:       you can try to use the  Kazushige Goto s BLAS at http://www.cs.utexas.edu/users/flame/goto/  " >&5
-$as_echo "$as_me:       you can try to use the  Kazushige Goto s BLAS at http://www.cs.utexas.edu/users/flame/goto/  " >&6;}
-        { $as_echo "$as_me:${as_lineno-$LINENO}:           or at  http://www.tacc.utexas.edu/~kgoto/ for the best BLAS ." >&5
-$as_echo "$as_me:           or at  http://www.tacc.utexas.edu/~kgoto/ for the best BLAS ." >&6;}
-        { $as_echo "$as_me:${as_lineno-$LINENO}:       or try to download/compile the altas blas ." >&5
-$as_echo "$as_me:       or try to download/compile the altas blas ." >&6;}
-    fi
-
-    # ALH - 30/10/13 - (request from FH) all downloads are now part of a separate script ([[file:download/getall]])
-    # which needs to be run before make for the user to specify whether he is ok with each of the package licences.
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}:       Please run \"download/getall\" to download all necessary packages before running make" >&5
-$as_echo "$as_me:       Please run \"download/getall\" to download all necessary packages before running make" >&6;}
-fi
-
-# FFCS does not use glut, so remove this message because it could make the user think that something is broken
-
-if test $enable_ffcs = no
-then
-    if test "$ff_glut_ok" != yes  ; then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:      *********************************************** " >&5
-$as_echo "$as_me:      *********************************************** " >&6;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:      WARNING: you do not have the new grachics tools " >&5
-$as_echo "$as_me:      WARNING: you do not have the new grachics tools " >&6;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:          because the configure do not find OpenGL, GLUT or pthread  developer stuff " >&5
-$as_echo "$as_me:          because the configure do not find OpenGL, GLUT or pthread  developer stuff " >&6;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:          read the README to find missing package  " >&5
-$as_echo "$as_me:          read the README to find missing package  " >&6;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:          F. Hecht  " >&5
-$as_echo "$as_me:          F. Hecht  " >&6;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:  to install missing package  under debian or ubuntu, try: sudo apt-get install freeglut3-dev " >&5
-$as_echo "$as_me:  to install missing package  under debian or ubuntu, try: sudo apt-get install freeglut3-dev " >&6;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:      *********************************************** " >&5
-$as_echo "$as_me:      *********************************************** " >&6;}
-    fi
-fi
-
-# Local Variables:
-# mode:shell-script
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
diff --git a/configure.ac.orig b/configure.ac.orig
deleted file mode 100644
index ee4a075..0000000
--- a/configure.ac.orig
+++ /dev/null
@@ -1,2082 +0,0 @@
-<<<<<<< HEAD
-=======
-# Configuration script using Automake + Autoconf for FreeFem++
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-# ------------------------------------------------------------
-
-# Antoine Le Hyaric - LJLL Paris 6 - lehyaric at ann.jussieu.fr - 13/5/04
-# $Id: configure.ac,v 1.338 2010/05/10 21:35:07 hecht Exp $
-
-# Version numbering: x.xx-pp where "pp" is the package version (when
-# the same FreeFem++ version is packaged several times). For
-# coherency, this should have the same value as the top-most package
-# number in debian/changelog.
-
-
-<<<<<<< HEAD
-AC_INIT(FreeFem++,3.34-1,hecht at ann.jussieu.fr,freefem++)
-=======
-AC_INIT(FreeFem++,3.32-1,hecht at ann.jussieu.fr,freefem++)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-dnl : ${CFLAGS=""}
-dnl : ${CXXFLAGS=""}
-dnl : ${FCFLAGS=""}
-dnl : ${FFLAGS=""}
-
-# progg test  expact under windows 
-ff_TEST_FFPP="../src/nw/FreeFem++"
-
-AC_PREREQ(2.50) dnl for AC_LANG_CASE
-dnl AC_CONFIG_SRCDIR(src/FreeFem++-CoCoa)
-
-# Automake 1.11 is too old for check ...
-
-# ALH - 10/9/13 - FFCS needs to skip this automake version requirement when compiling on older platforms (eg cygwin or
-# last Ubuntu LTS). So we fix a low hardcoded requirement and test for higher versions when not in FFCS.
-
-AM_INIT_AUTOMAKE(1.11 dist-zip)
-
-if test "$enable_ffcs" != yes
-then
-    if test `echo $am__api_version|awk '{if($1>1.13)print "ok";}'` != ok
-    then
-	AC_MSG_ERROR([Automake version needs to be 1.13 or later to enable "make check"])
-    fi
-fi
-
-AC_CONFIG_HEADERS(config.h)
-AC_PROG_MAKE_SET
-dnl AM_COLOR_TESTS=always
-AC_PROG_RANLIB
-
-ff_where_lib_conf=examples++-load/WHERE_LIBRARY-config
-dnl search of associad software
-m4_define([AC_FF_ADDWHERELIB],
-  [	if test -z "$ff_where_lib_conf_$1" ; then
-	    echo "$1 LD $2"  >>$ff_where_lib_conf
-	    test -n "$3" && echo "$1 INCLUDE $3 "  >>$ff_where_lib_conf
-            ff_where_lib_conf_$1=1
-	    AC_MSG_NOTICE([    ++ add $1 : $2 $3 in  $ff_where_lib_conf "])
-	else
-	    AC_MSG_NOTICE([    -- do not add $1 : $2 $3 in  $ff_where_lib_conf "])
-        fi
-]) dnl
-m4_define([AC_FF_WHERELIB],
-    [  	if test -z "$ff_where_lib_conf_$1" ; then
-        AC_MSG_CHECKING(check $1)
-	ff_save_libs=$LIBS
-	LIBS="$LIBS $2 $4"
-	AC_LINK_IFELSE([AC_LANG_PROGRAM([m4_if($3,,,[#include <$3>])],[])], [ff_WHERE=yes],[ff_WHERE=no])
-	if test "$ff_WHERE" = "yes" ; then
-	    echo "$1 LD $2"  >>$ff_where_lib_conf
-	    ff_WHERE_INC=`AS_DIRNAME(["$3"])`
-	    case "$ff_WHERE_INC" in 
-<<<<<<< HEAD
-		/*) echo "$1 INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
-=======
-		/*)e cho "$1 INCLUDE -I$ff_WHERE_INC"  >>$ff_where_lib_conf ;;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	    esac
-	fi
-	AC_MSG_RESULT($ff_WHERE)
-
-        ff_where_lib_conf_$1=1
-	LIBS=$ff_save_libs
-	fi
-    ])dnl end m4_define AC_FF_WHERELIB
-
-
-ff_HOSTARCH_pastix=
-echo "#  Build with freefem++ with ./configure " `date`  >$ff_where_lib_conf
-# To allow anonymous CVS version to contain a "./configure" and
-# Makefiles
-
-AM_MAINTAINER_MODE
-
-echo >config_LIB_INFO
-
-# Necessary compilers
-
-AC_PROG_CC
-AC_PROG_CXX
-AC_LANG(C++)
-<<<<<<< HEAD
-if test `uname` != Darwin; then
- ff_ldeg="-Wl,--end-group"
- ff_ldbg="-Wl,--start-group"
-fi
-
-
-
-
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-AC_CHECK_PROG(ff_m4,m4,yes,no)
-AC_CHECK_PROG(ff_bison,bison,yes,no)
-dnl AC_CHECK_PROG(ff_cmake,cmake,yes,no)
-AC_CHECK_PROG(ff_patch,patch,yes,no)
-case "$ff_m4 $ff_bison $ff_patch "  in
-*no*)
-    AC_MSG_NOTICE([ to install missing package  under debian or ubuntu, try: sudo apt-get install m4 bison patch cmake ])
-    AC_MSG_ERROR([ Sorry missing  m4,bison,patch command !]);;
-esac
-
-
-if test -z "$CXX"; then
-  AC_MSG_NOTICE( [ fatal error : c++ compiler ! ] );
-  AC_MSG_ERROR([ Sorry no c++ compiler !])
-fi
-
-AC_COMPUTE_INT(ff_size_long,[sizeof(long)])
-AC_COMPUTE_INT(ff_size_int,[sizeof(int)])
-AC_COMPUTE_INT(ff_size_ptr,[sizeof(int*)])
-
-AC_SUBST(SIZEOF_LONG,$ff_size_long)
-AC_SUBST(SIZEOF_INT,$ff_size_int)
-AC_SUBST(SIZEOF_PTR,$ff_size_ptr)
-if test "$ff_size_ptr" -eq 4  ;then
- AC_SUBST(SIZEOF_PTRINBIT,32)
-elif test  "$ff_size_ptr" -eq 8  ;then
- AC_SUBST(SIZEOF_PTRINBIT,64)
-else
-  AC_MSG_NOTICE( [ fatal error : sizeof pointer $ff_size_ptr !  or no c++ compiler: $CXX] );
-  AC_MSG_ERROR([ Sorry  sizeof c++ pointer $ff_size_ptr are not  4 or 8 ])
-fi
-
-# FFCS - build the code for FreeFem++-cs
-AC_ARG_ENABLE(ffcs,AC_HELP_STRING([--enable-ffcs],[build FreeFem++ for use by FreeFem++-cs]))
-if test "$enable_ffcs" = yes
-then
-	AC_DEFINE_UNQUOTED(ENABLE_FFCS,$enable_ffcs,[build FreeFem++ for use by FreeFem++-cs])
-else
-	enable_ffcs=no
-fi
-AC_SUBST(ENABLE_FFCS,"$enable_ffcs")
-AM_CONDITIONAL([ENABLE_FFCS],[test $enable_ffcs = yes])
-
-# dur dur car sous MacOsX le fortran n'est pas standard.
-ff_AR="ar"
-ff_ARFLAGS="rv"
-ff_RANLIB="ranlib"
-AC_ARG_ENABLE(fortran,AC_HELP_STRING([--disable-fortran],[No Fortran compiler available ( ARPACK need it)]))
-
-ff_g2c_lib="";
-if test "$enable_fortran" != no
-then
-
-    # ALH-FFCS-2/3/10: add gfortran-mp-4.4 for MacPorts on MacOS 10.6
-    AC_PROG_FC(gfortran  f90  xlf90 g95 gfortran-mp-4.4)
-    AC_PROG_F77(gfortran f90 xlf xlf90 g95 f77 fort77 "$FC" gfortran-mp-4.4)
-
-#	if test -n "$F77"
-#	then
-    ff_flibs=""
-        # modif FH
-    AC_F77_LIBRARY_LDFLAGS
-    dnl	AC_F77_WRAPPERS
-	# correct pb of double def under macos
-    case $F77 in
-	 *fort77)
-	    if test -z "$FLIBS" ; then
-#             FLIBS=`fort77 -v  a.out  2>&1|awk '/a.out/ && /fort77/  { print $(NF-2),$(NF-1)}'`
-#  FH to remove " "
-		FLIBS=`fort77 -v  a.out  2>&1|awk '/a.out/ && /fort77/  { print "echo",$(NF-2),$(NF-1)}'|sh`
-
-		AC_MSG_WARN([  fort77   FLIBS :  $FLIBS ])
-	    fi
-	    ;;
-	*g77)
-	    for i in $FLIBS; do
-		case $i in
-# save last directory of the list
-		    -L*)
-			d=`expr $i : '-L\(.*\)'`;
-			echo " try $d "
-			if test -e "$d/libg2c.so" ; then
-			    ff_flibs="$d/libg2c.so"
-			elif test -e "$d/libg2c.dylib" ; then
-			    ff_flibs="$d/libg2c.dylib"
-			elif test -e "$d/libg2c.a" ; then
-			    ff_flibs="$d/libg2c.a"
-			elif test  -e $d/libg2c.so -o	-e $d/libg2c.a ; then
-			    ff_flibs="$i"
-			fi;;
-		esac
-	    done
-	    if test -e "$ff_flibs"  ;then
-		FLIBS="$ff_flibs"
-	    else
-		FLIBS="$ff_flibs -lg2c"
-	    fi
-	    AC_MSG_WARN([  get dir of -lg2c  FLIBS :  $FLIBS ])
-	    ;;
-# add FH sep 2006 / modif  2009
-        *gfortran)
-            for i in $FLIBS; do
-		case $i in
-		    -L*)
-			d=`expr $i : '-L\(.*\)'`;
-			if test -e "$d/libgfortran.so" ; then
-			    ff_flibs="$d/libgfortran.so"
-			elif test -e "$d/libgfortran.dylib" ; then
-			    ff_flibs="$d/libgfortran.dylib"
-			elif test -e "$d/libgfortran.a" ; then
-			    ff_flibs="$d/libgfortran.a"
-			elif test -e $d/libgfortran.so -o -e $d/libgfortran.a -o -e $d/libgfortran.dylib ; then
-			    ff_flibs="$i"
-			fi;;
-		esac
-            done
-	    if test -e "$ff_flibs"  ;then
-		FLIBS="$ff_flibs"
-	    else
-		FLIBS="$ff_flibs -lgfortran"
-	    fi
-            AC_MSG_WARN([  get dir of -lgfortran  FLIBS :  $FLIBS ])
-            ;;
-    esac
-    AC_ARG_WITH(flib,[  --with-flib= the fortran library ])
-#  correct FH sep 2006 -o -> -a
-    if test "$with_flib" != no -a -n  "$with_flib"
-    then
-	ff_g2c_lib="$with_flib"
-	FLIBS="$with_flib"
-    fi
-# add FH oct 2007 for download f2c
-    if test -z "$F77"  ; then
-	ff_f77=`pwd`/download/bin/fort77
-	ff_flibs=`pwd`/download/lib/libf2c.a
-	if test -x $ff_f77  -a -f $ff_flibs ; then
-	    AC_MSG_WARN([ no fortran, but find download f2c/fort]);
-	    F77=$ff_f77
-	    FLIBS=$ff_flibs
-	else
-	    AC_MSG_NOTICE( [ fatal error : no fortran ] );
-	    AC_MSG_NOTICE( [add --disable-fortran  ] );
-	    AC_MSG_NOTICE( [or try to compile f2c in directory download/f2c  ] );
-	    AC_MSG_NOTICE( [  just do:  make install ] );
-	    AC_MSG_ERROR([ Fatal error No Fortran compiler . ],1);
-	fi
-    fi
-#  check if the FLIBS is correct
-    ff_libs="$LIBS"
-    LIBS="$ff_libs $FLIBS"
-    AC_TRY_LINK_FUNC(exit,ff_err=,ff_err=ok);
-    if test "$ff_err" = "ok" ; then  AC_MSG_ERROR([ Fatal FLIBS: $FLIBS is incorrect. ],1); fi
-    LIBS="$ff_libs"
-    echo "F77 LD $ff_libs" >config_LIB_INFO
-
-    AC_MSG_CHECKING([ Size of fortran 77 integer ])
-
-
-
-##   AC_LANG(fortran);
-    AC_LANG_PUSH([Fortran 77])
-    AC_RUN_IFELSE([AC_LANG_SOURCE([[
-		program test
-		integer  p,i
-		p=1024*1024
-		i= p*p
-		open(7,file="conftest.out")
-		if (i>0) then
-		    write(7,*) 8
-		else
-         write(7,*) 4
-	 endif
-	 close(7)
-	 end
- ]])] ,ff_f77intsize=`cat conftest.out`,ff_f77intsize=4,ff_f77intsize=4)
-## AC_LANG(C++)
-    AC_LANG_POP([Fortran 77])
-    AC_MSG_RESULT($ff_f77intsize)
-    AC_F77_WRAPPERS
-
-    ff_cfagsf77=""
-    case $ac_cv_f77_mangling in
-#  "lower case, no underscore, no extra underscore")
-#  "lower case, no underscore, extra underscore")
-# ;;
-	"lower case, underscore, no extra underscore") 	ff_cfagsf77="-DAdd_";;
-	"lower case, underscore, extra underscore")       	ff_cfagsf77="-DAdd__ -Df77IsF2C";;
-	"upper case, no underscore, no extra underscore")     ff_cfagsf77="-DUPPER";;
-	"upper case, no underscore, extra underscore")        ff_cfagsf77="-DUPPER -DAdd__";;
-	"upper case, underscore, no extra underscore")      ff_cfagsf77="-DUPPER -DAdd_";;
-	"upper case, underscore, extra underscore")           ff_cfagsf77="-DUPPER -DAdd__";;
-	*) ;;
-    esac
-    AC_SUBST(CFLAGSF77,$ff_cfagsf77)
-    if test $ff_f77intsize -ne  4
-    then
-	AC_MSG_ERROR([ Fatal Error: Your fortran 77  compiler have by not 4 bytes integer ( $ff_f77intsize bytes) ],1);
-    fi
-    test -f /mingw/bin/libpthread-2.dll && ff_pthread_dll=/mingw/bin/libpthread-2.dll ; \
-    AC_FF_ADDWHERELIB(f77,$FLIBS,$ff_cfagsf77 $ff_pthread_dll)
-    AC_FF_ADDWHERELIB(fc,$FLIBS,$ff_cfagsf77 $ff_pthread_dll)
-fi
-
-#  fin test FORTRAN ..........
-# ----------------------------
-
-AC_ARG_ENABLE(c,AC_HELP_STRING([--disable-c],[No C compiler available (C BLAS need it)]))
-if test "$enable_c" != no
-then
-    AC_PROG_CC
-    AM_PROG_CC_C_O
-else
-
-	# We need to define this otherwise ./configure crashes with
-	# the message "configure: error: conditional "am__fastdepCC"
-	# was never defined".
-
-    am__fastdepCC_TRUE=
-    am__fastdepCC_FALSE='#'
-fi
-
-AM_PROG_LEX
-AC_PROG_YACC
-AC_LANG(C++)
-
-
-# Some useful libraries
-
-AC_CHECK_LIB(pthread,pthread_create,ff_pthread="-lpthread",ff_pthread="")
-<<<<<<< HEAD
-AC_CHECK_LIB(iomp5,omp_get_wtime,ff_iomp5="-liomp5",ff_iomp5="")
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-if test -n "$ff_pthread"  ; then
-    AC_FF_ADDWHERELIB(pthread,$ff_pthread,)
-fi
-
-# Necessary absolute pathname for local directory when some libraries
-# are used from several different locations (for instance locally in
-# configure.ac and in a subdir).
-curdir=`pwd`
-
-# Configure options
-# -----------------
-
-echo $ac_configure_args > configure.param
-# by default the suffix of the  .so lib file is .so
-#      it is .dll   under windows
-#      it is .dylib under macos X
-ff_suffix_dylib="so";
-# Checking wether we can produce a MacIntosh-specific version
-# -----------------------------------------------------------
-
-AC_MSG_CHECKING(wether we are on a MacIntosh)
-ff_mac=no
-if test `uname` = Darwin;
-then
-	ff_HOSTARCH_pastix=i686_mac
-	ff_suffix_dylib="dylib"
-	ff_mac=yes
-AC_DEFINE_UNQUOTED(FF_PREFIX_DIR_APPLE,"/Applications/FreeFem++.app/Contents/",FreeFem prefix  dir)
-fi
-AC_MSG_RESULT($ff_mac)
-
-AC_MSG_CHECKING(wether we are on  SunOS)
-ff_sunos=no
-if test `uname -s` = SunOS;
-then
-	ff_sunos=yes
-fi
-AC_MSG_RESULT($ff_sunos)
-
-# Checking wether we can produce a Microsoft Windows-specific version
-# -------------------------------------------------------------------
-
-AC_ARG_ENABLE(cygwindll,
-	[  --enable-cygwindll	Forces the use of the Cygwin DLL (not recommended)])
-
-AC_MSG_CHECKING(wether we are on Microsoft Windows)
-ff_uname=`uname`
-#  flag to build window 32   version   ff_mingw = yes
-ff_mingw=no
-case $ff_uname in
-    CYGWIN*)
-
-    	# FFCS - 17/1/12 - -mno-cygwin is not recognised by the latest version of mingw32
-	if test $enable_ffcs = no
-	then
-	    ff_nocygwin=-mno-cygwin
-	fi
-
-	AC_SUBST(GCCNOCYGWIN,$ff_nocygwin);;
-    MINGW*)
-        enable_cygwindll=no;;
-esac
-case $ff_uname in
-CYGWIN*|MINGW*)
-
-	ff_suffix_dylib="dll";
-        ff_win32=yes;
-
-	# FFCS - 8/3/12 - remove -D_MSC_VER under MinGW64 because it forces system calls to be compiled into any object
-	# (which creates thousands of duplicate definitions for sytem calls like time()).
-
-	if test $enable_ffcs = yes
-	then
-	    AC_SUBST(FFMETIS_CFLAGS,"-D__VC__")
-	else
-	    AC_SUBST(FFMETIS_CFLAGS,"-D__VC__ -D_MSC_VER")
-	fi
-
-	# We need Mingw to avoid Cygwin's extra DLLs
-	if test "$enable_cygwindll" != yes
-	then
-# 	        CHECK_COMPILE_FLAG(C++,-mwindows,CXXFLAGS)
-	        ff_glut_ok=yes
-
-		# FFCS: on Windows, FF crashes when compiling GL/glut.h and the option "--disable-opengl" is not
-		# operational because ff_glut_ok is forced to yes here.
-		if test $enable_ffcs = yes
-		then
-	            ff_glut_ok=no
-		    enable_opengl=no
-		fi
-
-                ff_mingw=yes
-                enable_cygwindll=no;
-		ff_pthread="-mthreads"
-
-		# FFCS does not use the Cygwin MinGW compilers any more
-		if test $enable_ffcs = no
-		then
-		    CXXFLAGS="$CXXFLAGS $ff_nocygwin -I/usr/include/mingw"
-		    FFLAGS="$FFLAGS $ff_nocygwin"
-		    CFLAGS="$CFLAGS $ff_nocygwin -I/usr/include/mingw"
-                    AC_COMPILE_IFELSE([AC_LANG_SOURCE([int a;])],[],
-			[ff_nocygwin="";
-			    AC_MSG_NOTICE([Sorry $ff_nocygwin optio is wrong try whitout , but try with gcc-3.3])
-			    ])
-		    CXXFLAGS="$CXXFLAGS $ff_nocygwin -I/usr/include/mingw"
-		    FFLAGS="$FFLAGS $ff_nocygwin"
-		    CFLAGS="$CFLAGS $ff_nocygwin -I/usr/include/mingw"
-		    CNOFLAGS="$CNOFLAGS $ff_nocygwin -I/usr/include/mingw"
-		fi
-
-		LIBS="$LIBS $ff_nocygwin -mthreads -lws2_32 -lcomdlg32"
-		LIBSNOCONSOLE="-mwindows"
-
-		# FFCS uses a specific compiler, so we specify its libraries explicitely
-		if test $enable_ffcs = no
-		then
-		    test -z "$MPIRUN" &&  MPIRUN=`which mpiexe.exe`
-		    if test "$enable_fortran" != no  -o  "$with_flib" != no ;   then
-			case "$F77" in
-	 		    *gfortran) FLIBS="$ff_nocygwin -lgfortran";;
-	 		    *g77) FLIBS="$ff_nocygwin -lg2c";;
-			    *)   AC_MSG_ERROR([ Sorry no known FLIBS with this $F77  !]) ;;
-			esac
-		    fi
-		fi
-
-                ff_glutname="glut32"
-		#  check abort a existing function just to find in glut32.dll exist in the path
-		#  because glutInit is not the real symbol on win32 dur dur FH !!!!!!!!!
-		AC_CHECK_LIB(glut32,abort,ff_glut="-l$ff_glutname -mthreads -lglu32 -lopengl32",ff_glut="")
-		if test -z "$ff_glut" ; then
-                ff_glutname="freeglut"
-		AC_CHECK_LIB(freeglut,abort,ff_glut="-l$ff_glutname -mthreads -lglu32 -lopengl32",ff_glut_ok=no)
-                fi
-         	# Resources for FreeFem++-cs in Microsoft Windows format
-	        AC_SUBST(FFGLUTNAME,$ff_glutname)
-	        AC_SUBST(WINDRESOBJ,windres.o)
-	        AC_SUBST(LIBSNOCONSOLE,$LIBSNOCONSOLE)
-                AC_SUBST(WIN32DLLTARGET,win32-dll-target)
-		ff_TEST_FFPP="../src/bin-win32/FreeFem++.exe"
-                AC_DEFINE(PURE_WIN32,1,A pure windows applications no cygwin dll)
-		ff_dynload=yes
-	fi
-
-
-	;;
-*)ff_win32=no;;
-esac
-AC_MSG_RESULT($ff_win32)
-
-if test "$ff_win32" = no
-then
-	enable_cygwindll=no
-fi
-
-# FreeFem++-specific version information
-# --------------------------------------
-
-# Version numbering, converted to a floating point value
-ff_numver="`echo $VERSION|sed 's/-\(.*\)/+\1.0*0.000001/'`"
-AC_DEFINE_UNQUOTED(VersionFreeFempp,$ff_numver,FreeFem++ version as a float)
-
-# Since src/fflib/strversionnumber.cpp is recreated at each build, this
-# date is only useful for config-version.h
-
-test "$prefix" = NONE && prefix="$ac_default_prefix"
-ff_prefix_dir="${prefix}/lib/ff++/$VERSION"
-AC_MSG_CHECKING(prefix dir freefem++  )
-AC_MSG_RESULT($ff_prefix_dir)
-
-FF_DATE=`date`
-AC_DEFINE_UNQUOTED(VersionFreeFemDate,"$FF_DATE",FreeFem++ build date)
-AC_DEFINE_UNQUOTED(FF_PREFIX_DIR,"${ff_prefix_dir}",FreeFem prefix  dir)
-AC_SUBST(ff_prefix_dir,$ff_prefix_dir)
-
-# Separate configuration header file for version information, included
-# in config-macos9.h
-
-cat << EOF > config-version.h
-/* FreeFem++ version information for MacOS 9 configuration */
-/* File generated by configure.ac */
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "$PACKAGE_STRING"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-
-/* Version number of package */
-#define VERSION "$VERSION"
-
-/* FreeFem++ build date */
-#define VersionFreeFemDate "$FF_DATE"
-
-/* FreeFem++ version as a float */
-#define VersionFreeFempp ($ff_numver)
-EOF
-
-# Checking wether to produce a debug version
-# ------------------------------------------
-
-# Generic or hardware-dependant optimization
-m4_include(acmacros.m4)
-m4_include(acoptim.m4)
-<<<<<<< HEAD
-m4_include(ax_lib_hdf5.m4)
-m4_include(ax_lib_gsl.m4)
-# Checking c++11 for schwarz interface of P. Jolivet ...
-
-CHECK_COMPILE_FLAG(C++,[-std=c++11],CXXFLAGS,ff_cxx11)
-dnl CXXFLAGS="$CXX11FLAGS $CXXFLAGS"
-dnl ff_cxx11="no"
-dnl if test -n "$CXX11FLAGS" ; then ff_cxx11="yes" ; fi
-AC_SUBST(WITH_CXX11,$ff_cxx11)
-#end Checking  c++11
-=======
-
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-# ------------------------------
-# compilation flags of FreeFem++
-# ------------------------------
-#  -DDRAWING  bamg active some drawing facility in bamg (inquire mesh)
-#  -DBAMG_LONG_LONG active the use of  long long in bamg
-#  -DDEBUG active the  checking in bamg
-#  -DNCHECKPTR remove check pointer facility
-#  -DCHECK_KN active subscripting of some array
-#  -DWITHCHECK of the dynamic type ckecking of the langague (very slow)
-#  -DEIGENVALUE  to compile the eigen value part
-#  ------------------------------------------------
-
-# FreeFrem++-specific optimizations -fpascal-strings
-<<<<<<< HEAD
-
-
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-if test "$enable_debug" = yes;
-then
-	CXXFLAGS="$CXXFLAGS  -DBAMG_LONG_LONG -DCHECK_KN"
-	if test "$ff_mac" = yes;
-	then
-		CXXFLAGS="$CXXFLAGS -fno-inline  -fexceptions"
-	fi
-else
-	CXXFLAGS="$CXXFLAGS -DBAMG_LONG_LONG  -DNCHECKPTR"
-	if test "$ff_mac" = yes;
-	then
-		CXXFLAGS="$CXXFLAGS "
-	fi
-fi
-
-#whether or not to add a suffix to the package name
-#--------------------------------------------------
-
-AC_ARG_WITH(suffix,[  --with-suffix=[G3/G4/G4,P4,..] or --without-suffix (default no suffix to package name)])
-
-AC_MSG_CHECKING(suffix to add to package name)
-ff_suffix=
-if test "$with_suffix" = yes -o "$with_suffix" = no -o "$with_suffix" = ""
-then
-  AC_MSG_RESULT(none)
-else
-  ff_suffix="-$with_suffix"
-  AC_MSG_RESULT($ff_suffix)
-fi
-AC_SUBST(ADD_PACKAGE_NAME,$ff_suffix)
-
-
-
-
-# Checking that OpenGL is accessible
-# ----------------------------------
-
-ff_gl_ok=no
-ff_glx_ok=no
-
-ff_libs="$LIBS"
-AC_ARG_WITH(flib,[  --with-flib= the fortran library ])
-AC_ARG_ENABLE([opengl],AS_HELP_STRING([--enable-opengl],
-                                      [Enable/disable support for OpenGL]))
-
-# echo "  .... LIBS = $LIBS .... "
-if test x$enable_opengl != xno; then
-# GL libraries seem to depend on some dlopen capabilities
-if test "$enable_static" != yes -a "$ff_glut_ok" != yes
-then
-	# If we cannot find gl.h, no OpenGL version can be produced
-    AC_CHECK_HEADERS(OpenGL/gl.h,
-        ff_gl_ok=yes
-        ,
-        ff_gl_ok=no
-        )
-
-
-    if test "$ff_gl_ok" = no
-    then
-	AC_CHECK_HEADERS(GL/gl.h,
-	    ff_gl_ok=yes
-	    ,
-	    ff_gl_ok=no
-	    )
-    fi
-    AC_CHECK_HEADERS(GLUT/glut.h,
-        ff_glut_ok=yes,
-        ff_glut_ok=no)
-
-    if test "$ff_glut_ok" = no
-    then
-	AC_CHECK_HEADERS(GL/glut.h,
-	    ff_glut_ok=yes,
-	    ff_glut_ok=no)
-    fi
-
-# GLUT .....
-    if test "$ff_glut_ok" =	yes
-    then
-	for glut in \
-	    "-framework GLUT -framework OpenGL -framework Cocoa" \
-	    "-lglut -lGLU -lGL"
-	do
-	    ff_glut="$glut"
-	    ff_libs1="$LIBS"
-     	    LIBS="$LIBS $ff_glut"
-	    AC_TRY_LINK_FUNC(glutInit,
-		ff_glut_ok=yes
-	        LIBS="$ff_libs1"
-		break,
-		ff_glut_ok=next);
-	    LIBS="$ff_libs1"
-	done
-    fi
-
-
-fi
-fi
-AC_SUBST(LIBSPTHREAD,$ff_pthread)
-
-# ALH - 16/9/13 - at the moment the requirements for medit (glut) are not compatible with FFCS so medit is
-# only compiled with FF.
-
-if test $enable_ffcs = no
-then
-    if test "$ff_glut_ok" = yes
-    then
-	AC_SUBST(LIBSGLUT,$ff_glut)
-	if test -n  "$ff_pthread" ; then
-	    ff_ffglutprog="ffglut${EXEEXT}"
-	    AC_DEFINE_UNQUOTED(PROG_FFGLUT,"$ff_ffglutprog", the ffglut application for the new graphics )
-	fi
-	ff_meditprog="ffmedit${EXEEXT}"
-    fi
-fi
-
-AC_ARG_WITH(suffix,[  --with-suffix=[G3/G4/G4,P4,..] or --without-suffix (default no suffix package name)])
-if test "$with_suffix" = yes
-then
-  with_suffix=""
-elif test "$with_suffix" = no -o -z "$with_suffix"
-then
-  with_suffix=""
-else
-  with_suffix="-$with_suffix"
-fi
-  AC_MSG_CHECKING(add suffix $with_suffix )
-  AC_SUBST(ADD_PACKAGE_NAME,$with_suffix)
-  AC_MSG_RESULT(yes)
-
-
-# Checking wether we can produce a parallel version
-# -------------------------------------------------
-
-if test $enable_ffcs = no
-then
-    # FF case
-    m4_include(acmpi.m4)
-else
-    # FFCS - use the same MPI configuration choices as FFCS
-    ff_mpi=yes
-    AC_SUBST(MPICXX,$MPICXX)
-    AC_SUBST(MPICC,$MPICC)
-    AC_SUBST(MPIF77,$MPIF77)
-    AC_SUBST(MPIFC,$MPIFC)
-    AC_SUBST(MPIPROG,"FreeFem++-mpi${EXEEXT}")
-    AC_SUBST(MPI_INCLUDE,"-I $MPI_INC_DIR")
-    AC_SUBST(MPI_INC_DIR,$MPI_INC_DIR)
-    AC_SUBST(MPI_LIB_DIRS,"")
-    AC_SUBST(MPI_LIB,$MPI_LIB)
-    AC_SUBST(MPI_LIBC,"")
-    AC_SUBST(MPI_LIBFC,"")
-
-    # Extra MPI-dependant configuration options that are set by FF during MPI configuration. FFCS - 25/2/13 - Fred
-    # noticed that if PASTIX_HOSTARCH stays blank, pastix compilation breaks. At least i686_pc_linux and i686_mac are
-    # required by pastix on the corresponding platforms.
-
-    if test"$ff_HOSTARCH_pastix" = ""
-    then
-	ff_HOSTARCH_pastix=i686_pc_linux
-    fi
-    AC_SUBST(PASTIX_HOSTARCH,$ff_HOSTARCH_pastix)
-
-    # these values should not be empty otherwise examples++-load/ff-get-dep will think that they are not defined
-    AC_FF_ADDWHERELIB(mpi,-DDUMMY,-I$MPI_INC_DIR)
-
-    # mpifc and mpif77 libraries should always be specified because FF never calls the Fortran MPI compiler. It always
-    # uses mpicxx in [[file:examples++-load/ff-c++]]. The resulting Fortran libraries (eg Mumps) would compile even
-    # without the proper Fortran libs, but they would not load properly.
-
-    # under Win32, libmpi_f77.a is not the right name and FFCS mingw/mpicxx adds the right libraries by itself
-
-    # With mpich2 Debian wheezy 32 bits, libmpi_f77.a is not available (request from Cico, 14/10/13)
-
-    if test -f /usr/lib/openmpi/lib/libmpi_f77.a
-    then
-        AC_FF_ADDWHERELIB(mpifc,-lmpi_f77,)
-    	AC_FF_ADDWHERELIB(mpif77,-lmpi_f77,)
-    else
-        AC_FF_ADDWHERELIB(mpifc,-DDUMMY,)
-    	AC_FF_ADDWHERELIB(mpif77,-DDUMMY,)
-    fi
-
-    # FFCS - MPI_DOUBLE_COMPLEX kept from original FF configure script
-    AC_MSG_CHECKING( MPI_DOUBLE_COMPLEX)
-    AC_COMPILE_IFELSE(
-    [AC_LANG_SOURCE([
-#include <mpi.h>
-		MPI_Datatype xxxx=MPI_DOUBLE_COMPLEX;
-		])],
-    ff_mpi_double_complex=yes,
-    ff_mpi_double_complex=no)
-    AC_MSG_RESULT($ff_mpi_double_complex)
-    if test "$ff_mpi_double_complex" = yes  ; then
-	AC_DEFINE(HAVE_MPI_DOUBLE_COMPLEX,1, mpi_double_complex)
-    fi
-fi
-
-# FFCS needs to change some of the FF makefiles to compile without MPI on MacOS
-AM_CONDITIONAL([FFCS_MPIOK],[test $ff_mpi = yes])
-
-# Looking for useful configuration utilities
-# ------------------------------------------
-
-AC_ARG_ENABLE(download,AC_HELP_STRING([--enable-download],[Download missing libraries (BLAS,ARPACK,UMFPACK,...)]))
-<<<<<<< HEAD
-## PETSc
-AC_ARG_WITH(petsc,[  --with-petsc= /usr/local/petsc   --without-petsc  ])
-# /usr/local/petsc/conf/petscvariables 
-ff_petsc_ok=no
-## echo --$with_petsc--
-if test "$with_petsc" != no -a  $ff_mpi = yes; then
-    ff_petsc=""
-    for d in "$with_petsc" /usr /usr/local /opt/usr  /opt/local 
-    do
-	if test -f ; then
-	    ffconfpetsc="$d"		
-        elif test -f "$d/petsc/petscvariables"  ; then 
-  	    ffconfpetsc="$d/petsc/petscvariables"
-	elif test -f  "$d/petsc-conf/petscvariables"   ; then
-  	    ffconfpetsc="$d/petsc-conf/petscvariables" 
-	else
-	    ffconfpetsc=""
-	fi
-	if test -f "$ffconfpetsc" ; then 
-	    if test  "$ff_petsc_ok" = no ; then
-		PETSC_MPIRUN=`awk -F'=' '"MPIEXEC "==$1 {print $2}' $ff_petsc`
-		cmp -s  $PETSC_MPIRUN $MPIRUN
-		if test $?  -eq 0 ; then 
-		    PETSC_WITH_EXTERNAL_LIB=`awk -F'=' '"PETSC_WITH_EXTERNAL_LIB "==$1 {print $2}' $ff_petsc`
-		    PETSC_CC_INCLUDES=`awk -F'=' '"PETSC_CC_INCLUDES "==$1 {print $2}' $ff_petsc`
-		    if test -n "$PETSC_WITH_EXTERNAL_LIB"; then 
-			ff_petsc_ok=yes;
-			AC_FF_ADDWHERELIB(petsc,$PETSC_WITH_EXTERNAL_LIB,$PETSC_CC_INCLUDES)
-		    fi
-		fi
-	    fi
-	fi
-    done
-fi
-
-if test "$ff_petsc_ok" != no ;   then
-    AC_MSG_NOTICE([ with petsc  $ff_petsc])
-else
-    AC_MSG_NOTICE([ without petsc ***** ])
-fi
-
-
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-#replacing wget with another command
-ff_wget_command="wget --no-check-certificate"
-ff_wget=no
-
-AC_ARG_WITH(wget,
-	[  --with-wget=command	Replace "wget" with another command. Implies --enable-download],
-	   enable_download=yes
-	   ff_wget=yes
-	   ff_wget_command="${withval}")
-
-ff_mkl_libpath=yes
-AC_ARG_WITH(mkl,
-	[  --with-mkl= the  MKL LIBPATH : (ie. /opt/intel/mkl/RR.r.y.xxx/lib/<arch>)],
-	   ff_mkl_libpath="${withval}")
-
-# if enabling downloads find wget or curl to do download
-# ------------------------------------------------------
-
-if test  "$ff_wget" =  no
-then
-	ff_wget=""
-	AC_CHECK_PROG(ff_wget,wget --no-check-certificate,yes,no)
-fi
-if test  "$ff_wget" = no
-then
-        ff_wget_command="curl --fail -O "
-  	ff_curl=""
-	AC_CHECK_PROG(ff_curl,curl -O,yes,no)
-	ff_wget="$ff_curl"
-fi
-
-# for automatique compilation of
-# lib in download
-if test  "$ff_wget" != yes  -a "$enable_download"  = "yes"  ; then
-  enable_download=no
-  AC_MSG_ERROR([   enable-download and no wget or curl. ],1);
-fi
-if test "$enable_download"  = "yes" ; then
-<<<<<<< HEAD
-DOWNLOADCOMPILE="compile-pkg install-other"
-=======
-DOWNLOADCOMPILE=compile-pkg
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-else
-DOWNLOADCOMPILE=
-fi
-
-AC_SUBST(WGET,$ff_wget_command)
-AC_SUBST(DOWNLOADCOMPILE,$DOWNLOADCOMPILE)
-
-#  modif FH -----
-#  -- looking for cadna
-#  the round-off error propagation
-# the web site http://www-anp.lip6.fr/cadna/
-#  --------------------
-AC_ARG_WITH(cadna,[  --with-cadna= cadna library --without-cadna  ])
-if test "$with_cadna" != no -o -n  "$with_cadna"
-    then
-    ff_cadna="$with_cadna"
-fi
-ff_cadna_ok=no
-if test "$with_cadna" != no
-    then
-    ff_libs_old="$LIBS"
-    ff_ldflags_old="$LDFLAGS"
-    ff_cadna_dir="${curdir}/download/cadna"
-    LDFLAGS="$LDFLAGS -L$ff_cadna_dir"
-    AC_CHECK_LIB(cadnafree,arit_zero,
-	ff_cadna_ok=yes)
-    AC_CHECK_HEADERS(${ff_cadna_dir}/cadnafree.h,
-	ff_cadna_h=yes, ff_cadna_h=no)
-
-    LIBS="$ff_libs_old"
-    LDFLAGS="$ff_ldflags_old"
-
-    if test "$ff_cadna_ok" = yes  -a "$ff_cadna_h" = yes
-	then
-	AC_DEFINE(HAVE_CADNA,1, freecadna is use to evalute the round-off error propagation )
-	CPPFLAGS="$CPPFLAGS -I$ff_cadna_dir"
-	LIBS=" -L$ff_cadna_dir -lcadnafree $ff_libs_old"
-    else
-	AC_MSG_NOTICE([ without cadna ***** ])
-    fi
-else
-    AC_MSG_NOTICE([ without cadna ***** ])
-fi
-
-# Looking for FFTW
-# ----------------
-
-# ALH - 18/9/13 - deactivates FFTW detection for testing purposes
-
-AC_ARG_ENABLE(system_fftw,AC_HELP_STRING([--disable-system-fftw],[Disable the automatic detection of FFTW]))
-if test "$enable_system_fftw" != no
-then
-
-    # ALH - 4/9/13 - avoid recompiling FFTW if a copy was found on the system (request from Helmut Jarausch, 1/8/13)
-
-    AC_CHECK_LIB(fftw3,fftw_execute,ff_fftw_ok=yes)
-    AC_CHECK_HEADERS(fftw3.h,ff_fftw_h=yes, ff_fftw_h=no)
-fi
-
-if test "$ff_fftw_ok" = yes -a "$ff_fftw_h" = yes
-then
-    AC_FF_ADDWHERELIB(fftw3,-lfftw3,)
-    fftw_download=
-else
-    if test "$enable_download" = yes
-    then
-	ff_DOWNLOAD_FFTW=fftw
-    fi
-fi
-
-# used in [[file:download/fftw/Makefile.am::DOWNLOAD_FFTW]]
-
-AC_SUBST(DOWNLOAD_FFTW,$ff_DOWNLOAD_FFTW)
-
-dnl ---------------------------
-dnl   Looking for the tetgen
-dnl --------------------------
-AC_CHECK_LIB(tet,tetrahedralize,ff_fftet_ok=yes)
-AC_CHECK_HEADERS(tetgen.h,ff_tet_h=yes, ff_tet_h=no)
-if test "$ff_tet_ok" = yes -a "$ff_tet_h" = yes
-then
-    AC_FF_ADDWHERELIB(tetgen,-ltet,)
-    AC_DEFINE(HAVE_TETGEN,1, tetgen is compute tetrahedralize volume of an enclosed surface)
-fi
-
-# Looking for the BLAS
-# --------------------
-
-ff_blas_ok=no
-ff_blas_inc=""
-
-# ALH - 18/9/13 - give the option to deactivate system blas for testing purposes
-AC_ARG_ENABLE(system-blas,AC_HELP_STRING([--disable-system-blas],[Disable the search for a system-wide BLAS library]))
-
-if test "$enable_system_blas" != no
-then
-
-    # User-specified location
-    # add MKL  seach dec 2010  FH ....
-
-    ff_mkl_flags=""
-    if test "$ff_mkl_libpath" != "not" ; then
-	ff_CFLAGS="$CFLAGS"
-	CHECK_COMPILE_FLAG(C,-mkl,CFLAGS)
-	if test  "$ff_CFLAGS" != "$CFLAGS" ; then
-	    ff_ff_mkl_flags="-mkl"
-	fi
-	CFLAGS="$ff_CFLAGS"
-    fi
-
-    AC_MSG_CHECKING(for MKL)
-    ff_mkl_root=""
-    if test "$ff_mkl_libpath" != "not" -a -z "$ff_mkl_flags" ; then
-<<<<<<< HEAD
-	
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	if test "$ff_mkl_libpath"  = "yes"  ; then
-	    ff_IFS="$IFS"
-	    IFS=":"
-	    for i in $LD_LIBRARY_PATH:$LIBRARY_PATH ; do
-		case $i in
-		    */mkl/*) ff_mkl_libpath=$i;;
-		esac ;
-	    done;
-	    IFS="$ff_IFS"
-<<<<<<< HEAD
-#	else
-#	    ff_mkl_libpath=no
-	fi
-
-	if test "$ff_mkl_libpath" != "no" -a -d "$ff_mkl_libpath" ; then
-	    ff_mkl_root=`expr "//$ff_mkl_libpath" : '//\(.*\)/lib.*'`
-	    ff_mkl_arch=`expr "//$ff_mkl_libpath" : '//.*/lib/\(.*\)'`
-            ff_mkl_lp=_lp64
-=======
-	else
-	    ff_mkl_libpath=no
-	fi
-	if test "$ff_mkl_libpath" != "no" -a -d "$ff_mkl_libpath" ; then
-	    ff_mkl_root=`expr "//$ff_mkl_libpath" : '//\(.*\)/lib/.*'`
-	    ff_mkl_arch=`expr "//$ff_mkl_libpath" : '//.*/lib/\(.*\)'`
-            ff_mkl_lp=
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-            case "$ff_mkl_arch" in
-		*64*)  ff_mkl_lp=_lp64
-	    esac
-            case $F77 in
-		*ifort*) ff_mkl_cc=intel;;
-		*) ff_mkl_cc=gf;;
-            esac
-            # bof bof ....
-	    case "$MPIRUN" in
-		*/sgi/*)         ff_mkl_mpi=_sgimpt;;
-		*/intel/*)         ff_mkl_mpi=_intelmpi;;
-		*)        ff_mkl_mpi=_openmpi;;
-	    esac
-<<<<<<< HEAD
-#            echo ................  ff_mkl_root = $ff_mkl_root  .. $ff_mkl_arch
-	    if test ! -d "$ff_mkl_libpath" ; then
-		ff_mkl_libpath="$ff_mkl_root/lib/$ff_mkl_arch"
-	    fi
-	    
-	    if test  -f "$ff_mkl_libpath/libmkl_rt.$ff_suffix_dylib" ; then
-		mkl_blas=rt
-		mkl_lapack=rt
-		ff_mkl_mlt="-L$ff_mkl_libpath -lmkl_rt -lmkl_intel_thread -lmkl_core  $ff_iomp5 $ff_pthread"
-		ff_mkl_blas="-L$ff_mkl_libpath -lmkl_rt -lmkl_sequential -lmkl_core   $ff_iomp5 $ff_pthread"
-		ff_mkl_lapack="$ff_mkl_blas"
-	    elif test -f "$ff_mkl_libpath/libmkl_lapack.$ff_suffix_dylib" ; then
-		ff_mkl_mlt="-L$ff_mkl_libpath -lmkl_${ff_mkl_cc}${ff_mkl_lp} -lmkl_lapack -lmkl_intel${ff_mkl_lp} -lmkl_intel_thread  -lmkl_core -lguide  -lm -lpthread"
-		ff_mkl_blas="-L$ff_mkl_libpath -lmkl_${ff_mkl_cc}${ff_mkl_lp} -lmkl_lapack -lmkl_intel${ff_mkl_lp} -lmkl_sequential -lmkl_core -lguide -lm -lpthread"
-		ff_mkl_lapack="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_lapack"
-	    else
-		ff_mkl_mlt="$ff_ldbg  -L$ff_mkl_libpath -lmkl_${ff_mkl_cc}${ff_mkl_lp}  -lmkl_intel${ff_mkl_lp}  -lmkl_intel_thread  -lmkl_core -lmkl_intel_thread $ff_iomp5  $ff_ldeg  -lm $ff_pthread"
-		ff_mkl_blas="$ff_ldbg  -L$ff_mkl_libpath -lmkl_${ff_mkl_cc}${ff_mkl_lp}  -lmkl_intel${ff_mkl_lp} -lmkl_sequential -lmkl_core  -lmkl_sequential $ff_ldeg   -lm $ff_pthread"
-		ff_mkl_lapack="$ff_mkl_blas"
-	    fi
-	    if test -f "-L$ff_mkl_libpathmkl_scalapack${ff_mkl_lp}" ; then 
-            ff_mkl_scalapack="-L$ff_mkl_libpath -lmkl_blacs${ff_mkl_mpi}${ff_mkl_lp} -lmkl_scalapack${ff_mkl_lp} "
-            ff_mkl_blacs="-L$ff_mkl_libpath -lmkl_blacs${ff_mkl_mpi}${ff_mkl_lp} -lmkl_scalapack${ff_mkl_lp}"
-	    fi
-=======
-            # echo ................  ff_mkl_root = $ff_mkl_root  .. $ff_mkl_arch
-	    if test  -f $ff_mkl_root/lib/$ff_mkl_arch/libmkl_rt.a ; then
-		mkl_blas=rt
-		mkk_lapack=rt
-		ff_mkl_mlt="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_rt -lmkl_intel_thread -lmkl_core  -liomp5 -lpthread"
-		ff_mkl_blas="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_rt -lmkl_sequential -lmkl_core  -liomp5 -lpthread"
-		ff_mkl_lapack="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_rt -lmkl_sequential -lmkl_core -liomp5 -lpthread"
-	    else
-		if test -f $ff_mkl_root/lib/$ff_mkl_arch/libmkl_lapack.a ; then
-		    ff_mkl_mlt="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_${ff_mkl_cc}${ff_mkl_lp} -lmkl_lapack -lmkl_intel${ff_mkl_lp} -lmkl_intel_thread  -lmkl_core -lguide  -lm -lpthread"
-		    ff_mkl_blas="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_${ff_mkl_cc}${ff_mkl_lp} -lmkl_lapack -lmkl_intel${ff_mkl_lp} -lmkl_sequential -lmkl_core -lguide -lm -lpthread"
-		    ff_mkl_lapack="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_lapack"
-		else
-		    ff_mkl_mlt="-Wl,--start-group  -L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_${ff_mkl_cc}${ff_mkl_lp}  -lmkl_intel${ff_mkl_lp}  -lmkl_intel_thread  -lmkl_core -lmkl_intel_thread -liomp5  -Wl,--end-group  -lm -lpthread"
-		    ff_mkl_blas="-Wl,--start-group  -L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_${ff_mkl_cc}${ff_mkl_lp}  -lmkl_intel${ff_mkl_lp} -lmkl_sequential -lmkl_core  -lmkl_sequential -Wl,--end-group  -lm -lpthread"
-		    ff_mkl_lapack="$ff_mkl_blas"
-		fi
-	    fi
-            ff_mkl_scalapack="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_blacs${ff_mkl_mpi}${ff_mkl_lp} -lmkl_scalapack${ff_mkl_lp} "
-            ff_mkl_blacs="-L$ff_mkl_root/lib/$ff_mkl_arch -lmkl_blacs${ff_mkl_mpi}${ff_mkl_lp} -lmkl_scalapack${ff_mkl_lp}"
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	    ff_blas_ok=yes
-	    ff_lapack_ok=yes
-
-	    # <<enable_mkl_mlt>> ALH - 6/11/13 - request from Atsushi Suzuki - the default MKL library must be able to
-	    # handle threads when FF is connected to AS' solver. So we need an option to configure FF with the
-	    # multithreaded MKL by default.
-
-	    AC_ARG_ENABLE(mkl_mlt,AC_HELP_STRING([--enable-mkl-mlt],[Link with the multithreaded instead of the monothreaded version of the MKL]))
-
-	    if test "$enable_mkl_mlt" = yes
-	    then
-		ff_blas_libs="$ff_mkl_mlt"
-	    else
-		ff_blas_libs="$ff_mkl_blas"
-	    fi
-
-	    ff_blas_inc="-I$ff_mkl_root/include"
-	    dnl  scalapack, and blacs don not work with mlk and sgi
-	    if test "$ff_mkl_mpi" != "_sgimpt" ; then
-		AC_FF_ADDWHERELIB(scalapack,$ff_mkl_scalapack,$ff_blas_inc)
-		AC_FF_ADDWHERELIB(blacs,$ff_mkl_blacs,$ff_blas_inc)
-	    else
-		ff_warm=" (We do not use MKL scalapack and blacs with sgi MPI),  "
-	    fi
-	    AC_FF_ADDWHERELIB(lapack,$ff_mkl_lapack,$ff_blas_inc)
-	    AC_FF_ADDWHERELIB(mkl,$ff_mkl_mlt,$ff_blas_inc)
-<<<<<<< HEAD
-            AC_DEFINE(HAVE_MKL,1, the MKL intel lib is present for BLAS and LAPACK  )
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	else
-	    ff_mkl_libpath=no
-
-	# FH - pardiso is there as soon as mkl is
-            enable_pardiso=no
-	fi
-    fi
-
-
-    AC_MSG_RESULT( [ $ff_warm  root: $ff_mkl_root , arch: $ff_mkl_arch , $ff_mkl_lp ...  ])
-
-    AC_ARG_WITH(blas,
-	AC_HELP_STRING([--with-blas=library],[Use a specific version of the Blas]),
-	ff_blas_ok=yes
-	ff_blas_libs="${withval}")
-
-    # Specific BLAS library location for FreeBSD
-    ff_freebsd_blas="-lf2c -lf77blas -latlas -lgslcblas"
-    #  zmach is in lapack
-    # Trying  blas library
-    # echo "LIBS =  $LIBS blas --- $ff_blas_ok"
-    for iblas in \
-<<<<<<< HEAD
-	"-framework Accelerate" "$ff_mkl_blas" "-lblas"  "-L/usr/lib/atlas -lblas" \
-=======
-	"-framework vecLib" "$ff_mkl_blas" "-lblas"  "-L/usr/lib/atlas -lblas" \
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	$ff_freebsd_blas
-    do
-	if test "$ff_blas_ok" = no;
-	then
-            AC_MSG_CHECKING(for daxpy_ in $iblas)
-            ff_save_libs="$LIBS"
-            LIBS="$LIBS $iblas"
-            AC_LINK_IFELSE(
-		[AC_LANG_CALL(,daxpy_)],
-		ff_blas_ok=yes
-		ff_blas_libs="$iblas",)
-            LIBS="$ff_save_libs"
-            AC_MSG_RESULT($ff_blas_ok)
-	fi
-    done
-
-    #cblas_zdotu_sub
-    #echo "LIBS = " $LIBS
-    ff_cblas_libs=no
-    if test "$ff_blas_ok" = yes
-    then
-	AC_MSG_CHECKING(for blas_zdotu_sub in $ff_blas_libs)
-	ff_save_libs="$LIBS"
-	LIBS="$LIBS $ff_blas_libs $FLIBS"
-	AC_LINK_IFELSE(
-            [AC_LANG_CALL(,cblas_zdotu_sub)],
-            ff_cblas_libs=yes)
-	AC_MSG_RESULT($ff_cblas_libs)
-	LIBS="$ff_save_libs"
-    fi
-fi
-
-# <<OpenBLAS>> ALH - 18/9/13 - option to compile the OpenBLAS moved from the FFCS tree to FF tree
-
-AC_ARG_ENABLE(openblas,AC_HELP_STRING([--disable-openblas],[Disable the automatic download of OpenBLAS]))
-if  test "$ff_blas_ok" = no && test "$enable_openblas" != no && test "$enable_download" = yes
-then
-    AC_CHECK_PROG(ff_git,git,yes,no)
-    AC_MSG_CHECKING([Activating the OpenBLAS (deactivate with --disable-openblas)])
-    if test $ff_git = no
-    then
-	AC_MSG_RESULT([git not found])
-    else
-	ff_download_blas=openblas
-
-	# it is necessary to split the library path into -L and -l otherwise ff/upstream/examples+++-load/ff-c++ will
-	# place -lgfortran in LIBS, .../libgoto___.lib in OTHER, and call the compiler with $LIBS before $OTHER, which
-	# will fail.
-
-	ff_blas_libs="-L${curdir}/download/blas/OpenBLAS -lopenblas -lgfortran $ff_pthread"
-	ff_blas_inc="-I${curdir}/download/blas/CBLAS/src"
-
-        # skip generic blas compilation and activate OpenBLAS (see [[file:download/blas/Makefile.am::OpenBLAS]])
-	AC_SUBST(DOWNLOADED_BLAS,"")
-	AC_SUBST(COMPILE_OPENBLAS,openblas)
-
-	ff_blas_ok=yes
-	ff_cblas_h=yes
-	ff_cblas_libs=yes
-
-	AC_MSG_RESULT([ok])
-    fi
-fi
-
-# If all else fails, download a generic version
-
-if test "$ff_blas_ok" = no -a "$enable_download" = yes -a "$enable_fortran" != no -a "$enable_c" != no
-then
-    AC_CHECK_PROG(ff_unzip,unzip,yes,no)
-
-    AC_MSG_CHECKING(for BLAS version to download)
-
-    # Do not update $LIBS, but create an extra LIB variable, because this lib does not exist yet, and this could make
-    # the following tests fail.
-
-    # When compiling a generic version, we do not need an optimized version of the BLAS.
-
-    ff_download_blas=generic
-    ff_blas_libs="-L${curdir}/download/blas -lcblas -lf77blas"
-    ff_blas_inc="-I${curdir}/download/blas/CBLAS/src"
-
-    AC_SUBST(DOWNLOADED_BLAS,"libf77blas.a libcblas.a")
-    AC_SUBST(DOWNLOADED_BLAS_BUILT_SOURCES,'BLAS CBLAS $(F77BLAS_SOURCES) $(CBLAS_SOURCES)')
-
-    AC_MSG_RESULT($ff_download_blas)
-    ff_blas_ok=yes
-    ff_cblas_h=yes
-    ff_cblas_libs=yes
-fi
-
-AC_SUBST(BLASLIBS,$ff_blas_libs)
-AC_SUBST(BLASINC,$ff_blas_inc)
-
-#looking for cblas.h  FH
-
-if test "$ff_blas_ok" = yes -a "$ff_cblas_libs" = yes ;
-then
-    AC_CHECK_HEADERS(cblas.h,
-	ff_cblas_h=yes,
-	ff_cblas_h=no)
-<<<<<<< HEAD
-    AC_CHECK_HEADERS(Accelerate/cblas.h,
-=======
-    AC_CHECK_HEADERS(vecLib/cblas.h,
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	ff_cblas_h=yes
-	ff_cblas_h=no)
-    AC_CHECK_HEADERS(atlas/cblas.h,
-	ff_cblas_h=yes
-	ff_cblas_h=no)
-fi
-
-# ALH - 18/9/13 - [[file:download/blas/Makefile.am]] does not update the WHERE mechanism so it always needs to be set up
-# here even in the case of a downloaded blas library.
-
-AC_FF_ADDWHERELIB(blas,$ff_blas_libs,)
-
-# end of BLAS -------------------
-
-# Looking for ARPACK
-# ------------------
-
-# We need the following g77 libraries to connect to the Fortran 77
-# Arpack.
-
-if test "$ff_blas_ok" = yes;
-then
-  ff_g2c_lib="$FLIBS"
-       if test  -n "$ff_g2c_lib"
-       then
-           LIBS="$LIBS $ff_g2c_lib"
-       else
-	  ff_g2c_ok=no
-	  AC_CHECK_LIB(g2c,G77_second_0,
-		LIBS="$LIBS -lg2c"
-		ff_g2c_lib="-lg2c"
-		ff_g2c_ok=yes)
-
-	  if test "$ff_g2c_ok" = no;
-	     then
-	        AC_MSG_CHECKING(for G77_second_0 in /sw/lib/libg2c.a)
-		ff_save_libs="$LIBS"
-		LIBS="$LIBS -L/sw/lib -lg2c"
-		AC_LINK_IFELSE(
-			[AC_LANG_CALL(,G77_second_0)],
-			ff_g2c_lib="-L/sw/lib -lg2c"
-			ff_g2c_ok=yes,
-			LIBS="$ff_save_libs")
-		AC_MSG_RESULT($ff_g2c_ok)
-	  fi
-	fi
-fi
-
-# Copy the result of g2c investigations into a separate variable
-# because BLAS compilation will need it.
-
-AC_SUBST(G2CLIB,$ff_g2c_lib)
-#looking of  lapack if no compile the arpack lapack
-# warning $$ because the make eat one
-ff_lapack_ok=no;
-ff_lapack_lib=
-AC_MSG_CHECKING([for lapack in $LIBS, $ff_blas_libs and -llapack] )
-    if test "$ff_blas_ok" = yes ; then
-        AC_LINK_IFELSE( [AC_LANG_CALL(,dgeqr2_)], ff_lapack_ok=yes)
-	if test "$ff_lapack_ok" = no ; then
-	    ff_save_libs=$LIBS
-	    LIBS="$ff_save_libs $ff_blas_libs"
-            AC_LINK_IFELSE( [AC_LANG_CALL(,dgeqr2_)], ff_lapack_ok=yes)
-	    if test "$ff_lapack_ok" = no ; then
-	    LIBS="$ff_save_libs -llapack $ff_blas_libs"
-            AC_LINK_IFELSE( [AC_LANG_CALL(,dgeqr2_)], [ff_lapack_ok=yes
-	    ff_lapack_lib="-llapack"] )
-	    fi
-	    LIBS="$ff_save_libs"
-	fi
-    fi
-
-AC_MSG_RESULT($ff_lapack_ok)
-if test "$ff_lapack_ok" != no ; then
-AC_SUBST(LAPACKLIBS,$ff_lapack_lib)
-fi
-if test "$ff_lapack_ok" = no; then
-    AC_ARG_WITH(lapack,
-	AC_HELP_STRING([--with-lapack=library],[Use a specific version of Lapack]),
-	ff_lapack_ok=yes
-	ff_lapack_lib="${withval}"
-	LIBS="$ff_lapack_lib $LIBS")
-fi
-
-# Lapack configuration for Arpack
-
-ff_lapackdir='$$(LAPACKdir)'
-if test "$ff_lapack_ok" = yes
-then
-    # no compilation of lapack in arpack
-    ff_lapackdir=
-else
-    ff_lapack_lib="-L${curdir}/download/lib -llapack"
-fi
-
-# Arpack itself
-
-ff_arpack_ok=no
-ff_save_libs="$LIBS"
-ff_arpack_libs=
-if test "$ff_blas_ok" = yes;
-then
-
-	# User-specified location
-	AC_ARG_WITH(arpack,
-		[  --with-arpack=library	Use a specific version of Arpack],
-		ff_arpack_ok=yes
-		ff_arpack_libs="${withval}")
-
-	# Default locations
-	if test "$ff_arpack_ok" = no;
-	then
-		AC_CHECK_LIB(arpack,dsaupd_,
-			ff_arpack_libs="-larpack -llapack"
-			ff_arpack_ok=yes,,
-			-llapack)
-	fi
-
-   # Trying to "locate" Arpack
-   if test "$ff_arpack_ok" = no -a "$enable_download" != yes ;
-   then
-        AC_MSG_CHECKING(for libarpack with locate)
-        ff_lib_arpack=`locate libarpack|grep  'libarpack.*.a$'|head -1`
-	LIBS="$ff_lib_arpack $LIBS"
-        AC_LINK_IFELSE(
-                [AC_LANG_CALL(,dsaupd_)],
-                ff_arpack_ok=yes
-                ff_arpack_libs="$ff_lib_arpack")
-        AC_MSG_RESULT($ff_arpack_ok)
-    fi
-  if test "$ff_arpack_ok" = yes
-  then
-      AC_FF_ADDWHERELIB(arpack,$ff_arpack_libs,)
-      echo  arpack LD "'$ff_arpack_libs'"  >>$ff_where_lib_conf
-  fi
-
-	# If all else fails, download!
-	if test "$ff_arpack_ok" = no -a "$enable_download" = yes \
-	   -a "$enable_fortran" != no
-	then
-                ff_arpack_download=yes
-		AC_MSG_NOTICE(using downloaded Arpack)
-
-		# ALH - 6/11/13 - this install goal is the standard goal for all downloaded packages in
-		# [[file:download/common.mak::install]]
-
-		AC_SUBST(DOWNLOAD_ARPACK,install)
-
-		AC_SUBST(FF_LAPACKdir,$ff_lapackdir)
-		AC_SUBST(ARPACKLIB,${curdir}/download/lib/libarpack.a)
-		AC_SUBST(LAPACK_arpack_LIB,${curdir}/download/lib/liblapack.a)
-
-		# Do not update $LIBS, but create an extra LIB variable, because this lib does not exist yet, and this
-		# could make the following tests fail.
-
-		# ALH - 30/9/13 - do not use the "-L ${curdir}/download/lib" directive because it would allow other
-		# following -l directives (eg -lumfpack) to pick an old locally compiled library instead of the system
-		# ones.
-
-                ff_arpack_libs="${curdir}/download/lib/libarpack.a $ff_lapack_lib"
-		ff_arpack_ok=yes
-	fi
-fi
-if test  "$ff_arpack_ok" != yes
- then
-	    AC_MSG_NOTICE([-- NO ARPACK --  enable_download : $enable_download , wget: $ff_wget ])
-fi
-
-# Do not insert ARPACK libs in $LIBS yet, because they may not exist
-# yet, and this could make the following tests fail.
-
-LIBS="$ff_save_libs"
-
-if test "$ff_arpack_ok" = yes;
-then
-        AC_SUBST(ARPACKLIBS,$ff_arpack_libs)
-	EIGENOBJ='eigenvalue.$(OBJEXT)'
-	AC_DEFINE(HAVE_LIBARPACK,1,Arpack is used for eigenvalue computation)
-
-	# Determines whether to run the eigenvalue tests
-else
-# all eigen test fails
-	AC_SUBST([SKIP_TESTS_EIGEN],[yes])
-fi
-AC_SUBST([EIGENOBJ])
-
-# ALH - 25/9/13 - <<WHERE_lapack>> always run the WHERE LD statement for lapack because some libraries in
-# examples++-load require it (eg [[file:examples++-load/Element_Mixte.cpp::lapack]]). Request from Fred.
-
-AC_FF_ADDWHERELIB(lapack,$ff_lapack_lib,)
-
-# Looking for UMFPACK
-# -------------------
-
-ff_amd_ok=no
-ff_umfpack_ok=no
-ff_save_libs="$LIBS"
-if test "$ff_blas_ok" = yes;
-then
-
-    # User-specified location
-
-    AC_ARG_WITH(amd,
-	AC_HELP_STRING([--with-amd=library],[Use a specific version of AMD]),
-        ff_amd_ok=yes
-	ff_umfpack_libs="${withval}")
-
-    AC_ARG_WITH(umfpack,
-        AC_HELP_STRING([--with-umfpack=library],[Use a specific version of Umfpack]),
-        ff_umfpack_ok=yes
-        ff_umfpack_libs="${withval} $ff_umfpack_libs")
-
-    # Trying default locations for the headers
-
-    AC_CHECK_HEADERS(umfpack.h umfpack/umfpack.h ufsparse/umfpack.h suitesparse/umfpack.h,
-	ff_umfpack_header=yes
-	ff_umfpack_dir=`dirname $ac_header`)
-
-    # Somes systems like FreeBSD hide umfpack.h in a directory called UMFPACK (all capitals). This breaks the
-    # standard #define produced by autoconf in config.h.in.
-
-    LIBS="$ff_blas_libs $LIBS"
-    if test "$ff_umfpack_header" != yes;
-    then
-	AC_CHECK_HEADER(UMFPACK/umfpack.h,
-	    ff_umfpack_header=yes
-	    ff_umfpack_dir=UMFPACK
-	    AC_DEFINE(HAVE_BIG_UMFPACK_UMFPACK_H,1,If umfpack.h is located in UMFPACK subdir))
-    fi
-
-    if test "$ff_amd_ok" = no;
-    then
-	AC_CHECK_LIB(amd,amd_info,
-	    ff_umfpack_libs="$ff_umfpack_libs -lamd"
-	    ff_amd_ok=yes)
-    fi
-
-    if test "$ff_umfpack_ok" = no -a "$ff_amd_ok" = yes;
-    then
-
-        # ALH - 30/9/13 - other libraries required by Umfpack
-
-	AC_CHECK_LIB(cholmod,cholmod_add,ff_umfpack_libs="$ff_umfpack_libs -lcholmod")
-	AC_CHECK_LIB(colamd,colamd_set_defaults,ff_umfpack_libs="$ff_umfpack_libs -lcolamd")
-
-	AC_CHECK_LIB(umfpack,umf_i_malloc,
-	    ff_umfpack_libs="-lumfpack $ff_umfpack_libs"
-	    ff_umfpack_ok=yes,,$ff_umfpack_libs)
-    fi
-
-    if test "$ff_umfpack_header" != yes -o "$ff_umfpack_ok" != yes; then
-        ff_umfpack_ok=no
-	AC_MSG_WARN([Sorry, we could not find the UMFPACK lib or the UMFPACK headers])
-    fi
-
-    if test "$ff_umfpack_ok" = yes -a "$ff_amd_ok" = yes; then
-	AC_DEFINE(HAVE_LIBUMFPACK,1,Umfpack is used for sparse matrices computations)
-    fi
-fi
-
-LIBS="$ff_save_libs"
-
-# If all else fails, download!
-
-if test "$ff_umfpack_ok" = no -a "$enable_download" = yes
-then
-    AC_MSG_NOTICE(using downloaded UMFPACK)
-    AC_SUBST(DOWNLOAD_UMFPACK,"umfpack")
-    ff_umfpack_download=yes
-
-    # Do not update $LIBS, but create an extra LIB variable, because this lib does not exist yet, and this could make
-    # the following tests fail.
-
-    ff_umfpack_libs="-L${curdir}/download/lib -lumfpack -lcholmod -lcolamd -lamd -lsuitesparseconfig"
-    AC_DEFINE(HAVE_LIBUMFPACK,1,UMFPACK)
-    if test "$ff_win32" = yes; then
-  	AC_SUBST(FF_UMFPACK_CONFIG,-DCBLAS)
-    fi
-    ff_umfpack_ok=yes
-fi
-
-# ALH - 17/9/13 - moved UMFPACK configuration settings in wherelib to _after_ configuring the download version because
-# [[file:download/umfpack/Makefile.am]] does not set the WHERE mechanism. Also removed -I/usr/include/$ff_umfpack_dir
-# from include options for FFCS because it breaks the MingW64 compilation process.
-
-if test "$ff_umfpack_ok" = yes
-then
-    if test $enable_ffcs = no
-    then
-	AC_FF_ADDWHERELIB(amd,$ff_umfpack_libs,-I/usr/include/$ff_umfpack_dir)
-	AC_FF_ADDWHERELIB(umfpack,$ff_umfpack_libs,-I/usr/include/$ff_umfpack_dir)
-    else
-	AC_FF_ADDWHERELIB(amd,$ff_umfpack_libs,)
-	AC_FF_ADDWHERELIB(umfpack,$ff_umfpack_libs,)
-    fi
-else
-    AC_MSG_NOTICE([ -- NO UMFPACK (ff_wget = $ff_wget)])
-fi
-
-AC_SUBST(UMFPACKLIBS,$ff_umfpack_libs)
-
-# If times() and sysconf() are not here, UMFPACK should know
-
-if test "$ff_umfpack_ok" = yes
-then
-    AC_CHECK_FUNCS(times sysconf,
-	ff_umfpack_posix_ok=yes,
-	ff_umfpack_posix_ok=no)
-
-    if test "$ff_umfpack_posix_ok" = no
-    then
-	AC_SUBST(FF_UMFPACK_CONFIG,"-DCBLAS -DNPOSIX")
-    fi
-fi
-
-# Checking for some functions that may not appear everywhere
-# ----------------------------------------------------------
-AC_CHECK_HEADERS([unistd.h])
-# asinh acosh atanh are not in Mingw yet gettimeofday
-ff_malloc_h=""
-AC_HEADER_TIME
-AC_CHECK_HEADERS(malloc.h,ff_malloc_h=1)
-AC_SUBST(FF_MALLOC_H,$ff_malloc_h)
-
-AC_CHECK_FUNCS(asinh acosh atanh getenv jn erfc tgamma gettimeofday mallinfo mstats)
-AC_CHECK_FUNCS(srandomdev)
-
-
-AC_CHECK_FUNCS(second_,ff_second="",ff_second=second.o)
-AC_SUBST(FF_SECOND,"$ff_second")
-
-# Enable static linking (no shared libraries)
-# -------------------------------------------
-AC_CHECK_PROG(ff_libtool,libtool,yes,no)
-if test  "$ff_mac" = "yes"  -a "$ff_libtool" = yes ; then
-  ff_AR="libtool"
-  ff_ARFLAGS="-static -o"
-  ff_RANLIB="echo"
-fi
-
-AC_ARG_ENABLE(static,
-	[  --enable-static	Build binaries with no shared library dependencies])
-if test "$enable_static" = yes
-then
-	AC_CHECK_PROG(ff_libtool,libtool,yes,no)
-	if test "$ff_libtool" = yes
-	then
-		LDFLAGS="$LDFLAGS -all-static"
-		AC_SUBST(STATICTOOL,libtool)
-	else
-		AC_MSG_ERROR(libtool not found)
-	fi
-fi
-#  for compiation of  arpack  use libtool to bluid universal library on MacOs.
-AC_SUBST(AR,$ff_AR)
-AC_SUBST(ARFLAGS,$ff_ARFLAGS)
-AC_SUBST(RANLIN,$ff_RANLIB)
-
-
-# Dynamic loading of compiled functions
-# -------------------------------------
-
-# Not if we don't want shared libraries (non FH  modif FH juin 2005)
-ff_dynload=no
-if test "$enable_static" != yes
-then
-
-	# Availability of dlopen(). Use AC_COMPILE rather than
-	# AC_CHECK_HEADERS because the latter has problems seeing it (in
-	# Cygwin) when it does not compile (in Mingw).
-
-	AC_MSG_CHECKING(for dlfcn.h)
-	AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <dlfcn.h>]])],
-		ff_dynload=yes,
-		ff_dynload=no)
-	AC_MSG_RESULT($ff_dynload)
-fi
-
-# FFCS - -lm missing for ffmedit link stage on Debian Testing
-AC_CHECK_LIB(m,sin)
-
-# Checks that we also have the corresponding library
-if test "$ff_dynload" = yes
-then
-	AC_CHECK_LIB(dl,dlinfo)
-
-	# Checks that everythings works ok
-	AC_MSG_CHECKING(whether dlopen links ok)
-	AC_LINK_IFELSE(
-[AC_LANG_SOURCE([[#include <dlfcn.h>
-int main(int argc,char **argv){
-  dlopen("",RTLD_LAZY);
-  return 0;
-}]])],
-	ff_dynload=yes,
-	ff_dynload=no)
-	AC_MSG_RESULT($ff_dynload)
-fi
-
-#  the -rdynamic don't exist on macos and sunOS
-if test "$ff_dynload" = yes
-then
-	AC_DEFINE(HAVE_DLFCN_H,1,Dynamic loading - not mandatory)
-	# Activate dynamic loading tests (see examples++-load/Makefile.am)
-	AC_SUBST(LOAD_TESTS,../regtests.sh)
-	AC_SUBST(LOAD_COMPILE,load_compile)
-
-	# gcc on MacOS does not produce an error with "-rdynamic" but
-	# still complains about it.
-	if test "$ff_mac" = "no" -a "$ff_win32"  = "no" -a "$ff_sunos"  = "no" ;
-	then
-		CHECK_COMPILE_FLAG(C++,-rdynamic,LDFLAGS)
-dnl		CHECK_COMPILE_FLAG(C,-rdynamic,CNOFLAGS)
-dnl		CHECK_COMPILE_FLAG(C,-rdynamic,CFLAGS)
-	fi
-	CHECK_COMPILE_FLAG(C++,-fPIC,CXXFLAGS)
-	CHECK_COMPILE_FLAG(C,-fPIC,CFLAGS)
-	CHECK_COMPILE_FLAG(C,-fPIC,CNOFLAGS)
-	if test "$enable_fortran" != no
-	 then
-	 CHECK_COMPILE_FLAG(Fortran,-fPIC,FFLAGS)
-	 CHECK_COMPILE_FLAG(Fortran,-fPIC,FNOFLAGS)
-	 CHECK_COMPILE_FLAG(Fortran,-fPIC,FCFLAGS)
-	 CHECK_COMPILE_FLAG(Fortran,-fPIC,FCNOFLAGS)
-dnl	 CHECK_COMPILE_FLAG(Fortran,-rdynamic,FNOFLAGS)
-dnl	 CHECK_COMPILE_FLAG(Fortran,-rdynamic,FFLAGS)
-
-	fi
-fi
-AC_SUBST(DYLIB_SUFFIX,$ff_suffix_dylib)
-
-# Checking wether we can generate some documentation
-# --------------------------------------------------
-
-AC_CHECK_PROG(ff_latex,latex,yes,no)
-AC_CHECK_PROG(ff_makeindex,makeindex,yes,no)
-AC_CHECK_PROG(ff_dvips,dvips,yes,no)
-# to translate the figure
-AC_CHECK_PROG(ff_pdf2ps,pdf2ps,yes,no)
-AC_CHECK_PROGS(EPSTOPDF,[epstopdf pstopdf],[false])
-AC_CHECK_PROG(ff_convert,convert,yes,no)
-if test "$ff_latex" = yes -a "$ff_makeindex" = yes -a "$ff_dvips" = yes -a $ff_pdf2ps = yes -a $ff_convert = yes;
-then
-	AC_SUBST(DOCPS,"freefem++doc.ps")
-
-	AC_CHECK_PROG(ff_gzip,gzip,yes,no)
-	if test "$ff_gzip" = yes;
-	then
-		AC_SUBST(DOCPSGZ,"freefem++doc.ps.gz")
-	fi
-fi
-
-# PDF documentation building sometimes poses problems because of
-# pdfsync.sty. So we need to be able to disable it.
-enable_pdf=yes
-AC_ARG_ENABLE(pdf,[  --disable-pdf	Disable PDF documentation building])
-if test "$enable_pdf" != no
-then
-   AC_CHECK_PROG(ff_pdflatex,pdflatex,yes,no)
-   if test "$ff_pdflatex" = yes -a $EPSTOPDF != false -a $ff_convert = yes;
-   then
-	AC_SUBST(DOCPDF,"freefem++doc.pdf")
-   fi
-fi
-
-# HISTORY logging through CVS, but only if we are in a CVS working area
-if test -d CVS
-then
-	AC_CHECK_PROG(ff_history,cvs2cl,yes,no)
-	if test "$ff_history" = yes
-	then
-	   AC_SUBST(HISTORY,history)
-	fi
-fi
-
-# Choosing compilation options for the standard version (in src/std)
-# ------------------------------------------------------------------
-
-# The "standard" configured version can use win32 (mingw)
-
-if test "$ff_mingw" = yes
-then
-
-    # FFCS does not use FreeFem++-std, and Pcrgraph.cpp does not compile under mingwin64
-    if test $enable_ffcs = no
-    then
-	ff_stdprog="FreeFem++-std${EXEEXT}"
-	ff_std_graph_obj=Pcrgraph.$OBJEXT
-    fi
-
-    # ALH - FFCS - 30/11/8 - I need to get the output from FF for FFCS regression tests
-    if test $enable_ffcs = yes
-    then
-	ff_std_ldflags="-mconsole -mwindows"
-    else
-	ff_std_ldflags=-mwindows
-    fi
-
-	ff_std_libs=
-fi
-AC_SUBST(STD_GRAPH_OBJ,$ff_std_graph_obj)
-AC_SUBST(STD_LDFLAGS,$ff_std_ldflags)
-
-AC_SUBST(STD_LIBS,$ff_std_libs)
-
-# Allow some downloaded tools not to be compiled
-# ----------------------------------------------
-
-# ALH - this is required by FFCS that needs to deactivate some tools that do not work on all platforms. Some FF users
-# may also find interesting to specify a local version of a tool instead of downloading it.
-
-# m4 macro parameters: $1 = tool name, $2 = dynamic library name, $3 = download directory name if different from $1
-
-m4_define([TOOL_PARAMETERS],
-    [AC_ARG_WITH($1_include,AC_HELP_STRING([--with-$1-include=],[Include directives for $1 instead of automatic download]))
-    AC_ARG_WITH($1_ldflags,AC_HELP_STRING([--with-$1-ldflags=],[Link-time directives for $1 instead of automatic download]))
-
-    if test "$with_$1_include" != "" || test "$with_$1_ldflags" != ""
-    then
-
-	# some directives have been specified, use them instead of downloading
-
-	AC_FF_ADDWHERELIB($1,$with_$1_ldflags,$with_$1_include)
-        AC_SUBST([TOOL_COMPILE_$1],"")
-	enable_$1_download=no
-    fi
-])
-
-m4_define([TOOL_DISABLE],
-    [AC_ARG_ENABLE($1,AC_HELP_STRING([--disable-$1],[Do not use $1]))
-    if test "$enable_$1" = "no"
-    then
-        AC_SUBST([TOOL_COMPILE_$1],"")
-        AC_SUBST([TOOL_DYLIB_$1],"")
-    else
-        AC_SUBST([TOOL_COMPILE_$1],ifelse($3,,$1,$3))
-        AC_SUBST([TOOL_DYLIB_$1],$2)
-	enable_$1_download=yes
-    fi
-
-    # Also allow to disable the download of one tool if it is already locally installed
-
-    TOOL_PARAMETERS($1,$2,$3)
-])
-##  try to see pakage is hon computer  if the FH ZZZZ 
-<<<<<<< HEAD
-## FH to find gsl ... 
-AX_PATH_GSL(1.15, ff_with_gsl=yes, ff_with_gsl=no)
-if test "$ff_with_gsl" = "yes"; then  
-  AC_FF_ADDWHERELIB(gsl,$GSL_LIBS,$GSL_CFLAGS)
-fi
-
-##
-
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-m4_map([AC_FF_WHERELIB],[
-	[[mumps],[-ldmumps -lzmumps  -lmumps_common  -lpord],[dmumps_c.h],[]],
-	[[mumps_ptscotch],[-lpord_ptscotch -lmumps_common_ptscotch -ldmumps_ptscotch -lzmumps_ptscotch -lpord_ptscotch],[dmumps_c.h]],
-	[[mumps_scotch],[-lpord_scotch -lmumps_common_scotch -ldmumps_scotch -lzmumps_scotch -lpord_scotch],[dmumps_c.h]],
-	[[hypre],[-lHYPRE]],
-	[[fftw3],[-lfftw3],[/usr/include/fftw3.h],[]],
-	[[superlu_dist],[-lsuperlu-dist],[/usr/include/superlu-dist/superlu_defs.h],[]],
-	[[superlu],[-lsuperlu],[/usr/include/superlu/superlu_enum_consts.h],[]],
-	[[Superlu4],[-lsuperlu4],[/usr/include/superlu4/superlu_enum_consts.h],[]],
-        [[blacs],[ -lblacsCinit$ff_with_mpi	-lblacsF77init$ff_with_mpi	-lblacs$ff_with_mpi],[]],
-        [[scalapack],[-lscalapack$ff_with_mpi],[]],
-        [[scotch],[-lscotch -lscotcherr],[scotch.h]],
-        [[ptscotch],[-lptscotch -lptscotcherr],[ptscotch.h]],
-	[[metis],[-lscotch -lmetis],[/usr/include/metis/metis.h],[]],
-	[[metis],[-lscotch -lmetis],[metis.h],[]],
-	[[parmetis],[-lptscotch -lparmetis],[],[]],
-	[[freeyams],[-lfreeyams],[freeyamslib.h],[]],
-	[[mmg3d],[-lmmg3d],[libmmg3d.h],[]],
-	[[mshmet],[-lmshmet],[],[]],
-<<<<<<< HEAD
-dnl	[[gsl],[-lgsl -lgslcblas -lm],[gsl/gsl_sf.h],[]],
-=======
-	[[gsl],[-lgsl -lgslcblas -lm],[gsl/gsl_sf.h],[]],
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	[[parms],[-lparms -litsol -llapack -lblas -lm],[],[]],
-	[[tetgen],[-ltet],[tetgen.h],[]],
-    ]
-    )
-## before try 
-
-TOOL_DISABLE(fflapack,fflapack.$DYLIB_SUFFIX)
-TOOL_DISABLE(hips,hips_FreeFem.$DYLIB_SUFFIX)
-TOOL_DISABLE(ipopt,ff-Ipopt.$DYLIB_SUFFIX)
-TOOL_DISABLE(lapack,lapack.$DYLIB_SUFFIX)
-TOOL_DISABLE(metis,metis.$DYLIB_SUFFIX)
-TOOL_DISABLE(mmg3d,mmg3d-v4.0.$DYLIB_SUFFIX)
-TOOL_DISABLE(mshmet,mshmet.$DYLIB_SUFFIX)
-TOOL_DISABLE(mumps,"MUMPS_FreeFem.$DYLIB_SUFFIX MUMPS.$DYLIB_SUFFIX")
-TOOL_DISABLE(mumps_seq,"MUMPS_seq.$DYLIB_SUFFIX MUMPS.$DYLIB_SUFFIX",mumps-seq)
-TOOL_DISABLE(nlopt,ff-NLopt.$DYLIB_SUFFIX)
-TOOL_DISABLE(parmetis)
-TOOL_DISABLE(parms,parms_FreeFem.$DYLIB_SUFFIX)
-TOOL_DISABLE(pastix,"interfacepastix.$DYLIB_SUFFIX complex_pastix_FreeFem.$DYLIB_SUFFIX real_pastix_FreeFem.$DYLIB_SUFFIX")
-TOOL_DISABLE(pipe,pipe.$DYLIB_SUFFIX)
-TOOL_DISABLE(scotch,scotch.$DYLIB_SUFFIX)
-TOOL_DISABLE(superlu,SuperLu.$DYLIB_SUFFIX)
-TOOL_DISABLE(superludist,"complex_SuperLU_DIST_FreeFem.$DYLIB_SUFFIX real_SuperLU_DIST_FreeFem.$DYLIB_SUFFIX dSuperLU_DIST.$DYLIB_SUFFIX")
-TOOL_DISABLE(umfpack,UMFPACK64.$DYLIB_SUFFIX)
-TOOL_DISABLE(yams,freeyams.$DYLIB_SUFFIX)
-TOOL_DISABLE(pipe,pipe.$DYLIB_SUFFIX)
-
-# FFCS - MUMPS_seq has a different Win32 compiler setup from FFCS, so we need to add some extra parameters
-
-if test "$OS" = Windows_NT
-then
-    CFLAGS="$CFLAGS -DWITHOUT_PTHREAD -DAdd_"
-
-    # we also need to satisfy ff-c++ that the pthread are not a blocking point
-    if test -n "$ff_pthread"  ; then
-       AC_FF_ADDWHERELIB(pthread,"",)
-    fi
-fi
-
-# ALH - pARMS needs "-fno-range-check" on Windows, but this options fails on MacOS 10.8.  Add no-range-check for Windows
-# for hexadecimal parameter constants like:
-#
-# [[file:c:/cygwin/home/alh/ffcs/rel/mingw/mpif.h::PARAMETER MPI_SHORT_INT z 8c000003]]
-#
-# Such constants are rejected without [[file:download/parms/makefile-parms.in::NO_RANGE_CHECK]]
-
-if test "$OS" = Windows_NT
-then
-    AC_SUBST(NO_RANGE_CHECK,-fno-range-check)
-fi
-
-# ALH - 4/9/13 - request from Helmut Jarausch - allow to change Scotch include path
-if test "$with_scotch_include" = "" 
-then
-    with_scotch_include=$ac_pwd/download/include/scotch
-fi
-AC_SUBST(SCOTCH_INCLUDE,$with_scotch_include)
-
-# Find out kernel and libc versions
-# ---------------------------------
-
-if test "$ff_win32" != yes -a "$ff_mac" != yes
-then
-	AC_MSG_CHECKING(kernel version)
-	ff_kernel_version=`cat /proc/version|perl -e '<STDIN>=~/(\d+\.\d+\.\d+)/;print $1;'`
-	AC_MSG_RESULT($ff_kernel_version)
-	AC_SUBST(KERNEL_VERSION,$ff_kernel_version)
-
-	AC_MSG_CHECKING(libc version)
-	ff_libc_version=`ldd /bin/sh | awk '/libc/{print $3}' | xargs readlink | sed -e 's/\.so$//'`
-	AC_MSG_RESULT($ff_libc_version)
-	AC_SUBST(LIBC_VERSION,$ff_libc_version)
-fi
-#  def variable pour les makefiles
-
-# creating all makefiles
-# ----------------------
-
-ff_bamgprog="bamg${EXEEXT} cvmsh2${EXEEXT}"
-
-AC_SUBST(CNOFLAGS,$CNOFLAGS) dnl for superludist CFLAGS without optim  ...
-AC_SUBST(FNOFLAGS,$FNOFLAGS) dnl for blacs CFLAGS without optim  ...
-
-# The final list of executable programs
-
-AC_SUBST(MEDITPROG,$ff_meditprog)
-AC_SUBST(FFGLUTPROG,$ff_ffglutprog)
-AC_SUBST(BAMGPROG,$ff_bamgprog)
-AC_SUBST(STDPROG,$ff_stdprog)
-ff_progs="FreeFem++-nw $ff_bamgprog  $ff_mpiprog $ff_meditprog $ff_ffglutprog"
-
-AC_SUBST(TEST_FFPP,$ff_TEST_FFPP)
-AC_SUBST(TEST_FFPPMPI,"../src/mpi/ff-mpirun")
-
-ff_with_mpi=-openmpi;
-
-ff_blacs="-lblacsCinit$ff_with_mpi     -lblacsF77init$ff_with_mpi      -lblacs$ff_with_mpi"
-ff_scalapack=-lscalapack
-
-# change MKL interface ...
-test -n "$ff_mkl_blacs" && ff_blacs="$ff_mkl_blacs"
-test -n "$ff_mkl_scalapack" && ff_scalapack="$ff_mkl_scalapack"
-test -n "$ff_mkl_root" && ff_winc="$ff_mkl_root/include/mkl_blas.h"
-
-# FFCS - 27/10/11 - Some extra conditionals for things that do not work on certain systems (eg MPI libraries under
-# Windows)
-
-<<<<<<< HEAD
-##  search of HDF5 ....
-AX_LIB_HDF5()
-if test "$with_hdf5" = "yes"; then  
-  AC_FF_ADDWHERELIB(hdf5,$HDF5_LDFLAGS  $HDF5_LIBS,$HDF5_CPPFLAGS)
-  LIBS="$LIBS $HDF5_LDFLAGS  $HDF5_LIBS"
-else
-  enable_iohdf5=no  
-fi
-TOOL_DISABLE(iohdf5,iohdf5.$DYLIB_SUFFIX)
-
-
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-AM_CONDITIONAL([FFCS_WINDOWS],[test "$OS" = Windows_NT])
-
-#  remove gsl if not find ... FH
-# correction FH .. 18/12/2013. 
-# ALH - 7/1/14 - not able to compile gsl or pardiso with FFCS on Windows
-if test "$enable_ffcs" != yes
-then
-    if test  "$ff_where_lib_conf_gsl" == 1  -a  "$enable_gsl"!="no" ; then enable_gsl=yes; fi;
-    if test  "$ff_where_lib_conf_mkl" == 1  -a  "$enable_mkl"!=no ; then enable_pardiso=yes; fi;
-fi
-<<<<<<< HEAD
-TOOL_DISABLE(gsl,"gsl.$DYLIB_SUFFIX")
-TOOL_DISABLE(NewSolver,"NewSolver.$DYLIB_SUFFIX")
-TOOL_DISABLE(pardiso,"PARDISO.$DYLIB_SUFFIX")
-
-# echo "debug cxxx11: $ff_cxx11 mpi: $ff_mpi petsc: $ff_petsc_ok "
-
-test "$ff_cxx11" != yes -o  "$ff_mpi" != yes &&  enable_schwarz=no
-
-TOOL_DISABLE(schwarz,"schwarz.$DYLIB_SUFFIX removeDOF.$DYLIB_SUFFIX utility.$DYLIB_SUFFIX")
-
-=======
-TOOL_DISABLE(gsl,"gsl.$DYLIB_SUFFIX NewSolver.$DYLIB_SUFFIX")
-TOOL_DISABLE(pardiso,PARDISO.$DYLIB_SUFFIX)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-# All makefiles
-AC_OUTPUT(Makefile
-    download/Makefile
-    download/blas/Makefile
-    download/arpack/Makefile
-    download/umfpack/Makefile
-    download/fftw/Makefile
-    src/Makefile
-    src/bamglib/Makefile
-    src/Graphics/Makefile
-    src/femlib/Makefile
-    src/Algo/Makefile
-    src/lglib/Makefile
-    src/fflib/Makefile
-    src/nw/Makefile
-    src/mpi/Makefile
-    src/bamg/Makefile
-    src/libMesh/Makefile
-    src/medit/Makefile
-    src/bin-win32/Makefile
-    examples++/Makefile
-    examples++-eigen/Makefile
-    examples++-tutorial/Makefile
-    examples++-mpi/Makefile
-    examples++-load/Makefile
-    examples++-chapt3/Makefile
-    examples++-bug/Makefile
-    examples++-other/Makefile
-    examples++-3d/Makefile
-    DOC/Makefile)
-AC_MSG_NOTICE([  freefem++ used  download : $enable_download ])
-AC_MSG_NOTICE([	 	 --  Dynamic load facility: $ff_dynload ])
-AC_MSG_NOTICE([		 --  ARPACK (eigen value): $ff_arpack_ok ])
-AC_MSG_NOTICE([		 --  UMFPACK (sparse solver) $ff_umfpack_ok ])
-AC_MSG_NOTICE([		 --  BLAS $ff_blas_ok ])
-AC_MSG_NOTICE([		 --  with MPI             $ff_mpi])
-<<<<<<< HEAD
-AC_MSG_NOTICE([          --  with PETSC $ff_petsc_ok ]);
-AC_MSG_NOTICE([          --  with schwarz (HPDDM) $enable_schwarz (need MPI & c++11 :  $ff_cxx11 ) ]);
-
-
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-AC_MSG_NOTICE([    progs: $ff_progs ])
-if test  "$ff_umfpack_download" = yes  ;then
-    AC_MSG_NOTICE([      use of download UMFPACK see  download/umfpack/SuiteSparse/UMFPACK/README.txt for the License])
-fi
-if test "$ff_arpack_download" = yes  ; then
-    AC_MSG_NOTICE([      use of download ARPACK see  download/arpack/ARPACK/README  no License ])
-fi
-
-if test "$enable_download" = yes  ;then
-    AC_MSG_NOTICE([      use of download fftw   see  download/fftw/fftw-3.2/COPYRIGHT ])
-    AC_MSG_NOTICE([      use of download tetgen  see download/tetgen/tetgen1.4.3/LICENSE ])
-    AC_MSG_NOTICE([      use of download freeyams  see download/yams/freeyams.2011.02.22 (suface mesh adaptation)  ])
-    AC_MSG_NOTICE([      use of download mmg3d (v4)   see download/mmg3d/mmg3d4/LICENCE.txt  ])
-    AC_MSG_NOTICE([      use of download metis])
-
-    # ALH - some tools may be activated but not downloaded if a local version is specified (see
-    # [[TOOL_PARAMETERS]])
-
-    if test "$enable_superlu_download" = yes
-    then
-	AC_MSG_NOTICE([      use of download superlu])
-    fi
-
-    if test -n "$MPICC" ; then
-   	AC_MSG_NOTICE([      try to download: blacs parmetis  scalapack scotch superludist pastix hypre hips library])
-    fi
-
-    if test "$ff_download_blas" = "generic"  ; then
-        AC_MSG_NOTICE([      use of download generic blas and cblas freefem may be slow  ])
-        AC_MSG_NOTICE([      you can try to use the  Kazushige Goto s BLAS at http://www.cs.utexas.edu/users/flame/goto/  ])
-        AC_MSG_NOTICE([          or at  http://www.tacc.utexas.edu/~kgoto/ for the best BLAS .])
-        AC_MSG_NOTICE([      or try to download/compile the altas blas .])
-    fi
-
-    # ALH - 30/10/13 - (request from FH) all downloads are now part of a separate script ([[file:download/getall]])
-    # which needs to be run before make for the user to specify whether he is ok with each of the package licences.
-
-    AC_MSG_NOTICE([      Please run "download/getall" to download all necessary packages before running make])
-fi
-
-# FFCS does not use glut, so remove this message because it could make the user think that something is broken
-
-if test $enable_ffcs = no
-then
-    if test "$ff_glut_ok" != yes  ; then
-	AC_MSG_NOTICE([     *********************************************** ])
-	AC_MSG_NOTICE([     WARNING: you do not have the new grachics tools ])
-	AC_MSG_NOTICE([         because the configure do not find OpenGL, GLUT or pthread  developer stuff ])
-	AC_MSG_NOTICE([         read the README to find missing package  ])
-	AC_MSG_NOTICE([         F. Hecht  ])
-	AC_MSG_NOTICE([ to install missing package  under debian or ubuntu, try: sudo apt-get install freeglut3-dev ])
-	AC_MSG_NOTICE([     *********************************************** ])
-    fi
-fi
-
-# Local Variables:
-# mode:shell-script
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
diff --git a/debian/changelog.orig b/debian/changelog.orig
deleted file mode 100644
index 97eae4f..0000000
--- a/debian/changelog.orig
+++ /dev/null
@@ -1,193 +0,0 @@
-<<<<<<< HEAD
-freefem++ (3.34.1-1) UNRELEASED; urgency=medium
-
-  * Imported Upstream version 3.34.1
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Sun, 22 Feb 2015 11:50:14 +0200
-
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-freefem++ (3.32.1-1) experimental; urgency=medium
-
-  * Edit d/watch file to fix broken downloaded upstream tarball
-  * Imported Upstream version 3.32.1
-  * Update standards version
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Tue, 30 Dec 2014 16:21:29 +0200
-
-freefem++ (3.31-2-1) unstable; urgency=low
-
-  * Imported Upstream version 3.31-2
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Mon, 21 Jul 2014 14:15:13 +0300
-
-freefem++ (3.30-1) unstable; urgency=medium
-
-  * Imported Upstream version 3.30
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Fri, 25 Apr 2014 13:47:29 +0300
-
-freefem++ (3.27-1) unstable; urgency=medium
-
-  * Imported Upstream version 3.27
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Mon, 03 Mar 2014 13:31:46 +0200
-
-freefem++ (3.26-2-3) unstable; urgency=low
-
-  * Change package urgency from medium to low
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Thu, 26 Dec 2013 19:30:00 +0200
-
-freefem++ (3.26-2-2) unstable; urgency=medium
-
-  [ Dimitrios Eftaxiopoulos ]
-  * Enable build with metis
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Thu, 26 Dec 2013 16:13:46 +0200
-
-freefem++ (3.26-2-1) unstable; urgency=low
-
-  * Imported Upstream version 3.26-2 (Closes: #706714)
-  * Disable make check execution in d/rules (Closes: #730739)
-  * Correct architecture names for hurd and kfreebsd (Closes: #730738)
-  * Make libmesh.a install only in libfreefem++ binary
-  * Fix duplication of executables (Closes: #701161)
-  * Update standards version
-  * Set installation dir of WHERE* scripts to /usr/include/freefem++
-  * Add rdfind and symlinks to build deps in d/control
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Thu, 19 Dec 2013 22:38:49 +0200
-
-freefem++ (3.25-1) unstable; urgency=low
-
-  [ Dimitrios Eftaxiopoulos ]
-  * Imported Upstream version 3.25 (Closes: #701161 #706714)
-  * Change installation directory of header-like *.idp files
-    from /usr/lib/freefem++ to /usr/include/freefem++, in order
-    to fix a lintian warning
-  * Update patch to examples++-load/Makefile.am in order to enable
-    functioning of load *.so and include *.idp commands in *.edp
-    scripts
-  * Delete patches to src/Graphics/sansgraph.cpp and
-    src/Graphics/xglrgraph.cpp because they are not needed any more
-  * Fix lintian warning about missing LDFLAGS
-  * Override dh_auto_test in debian/rules, such that in case it is 
-    used, it completes executing all *.edp example files, regardless
-    of aborting on some of them
-  * Add libmetis-dev to build-deps in d/control
-  * Remove libparmetis-dev from build deps
-  * Add --parallel option to dh $@ in debian/rules
-  * Add hardening compilation flags to mpic++
-  * Allow testing of compiling and running the example files after build
-
-  [ Christophe Trophime ]
-  * update C. Trophime email
-  * add support for nlopt, ipopt - simplify debian/rules
-  * upload CT changes to 3.20
-  * add patch for configure
-  * add patch for examples++-mpi
-  * fix bamg install
-  * add corrected scripts to build plugins
-  * add patch for properly build examples++-load
-  * add lintian overrides for libfreefem++
-  * add some missing files
-  * update patches
-  * update rules
-  * reorder BuildDepends - comment out unsupported libs
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Thu, 12 Sep 2013 00:02:58 +0300
-
-freefem++ (3.20-1) experimental; urgency=low
-
-  * New upstream release.
-  * Add libnlopt-dev and coinor-libipopt-dev to build-deps.
-  * Update patch examples++-load-Makefile.patch.
-  * Remove patch examples-load-WHERE-LIBRARY.patch.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Thu, 18 Oct 2012 14:14:12 +0300
-
-freefem++ (3.19.1-1) unstable; urgency=low
-
-  * New upstream release.
-  * Make debian/compat=9.
-  * Make debhelper (>= 9~) in Build-Depends in debian/control.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Sun, 03 Jun 2012 22:16:18 +0300
-
-freefem++ (3.19-1) unstable; urgency=low
-
-  * New upstream release.
-  * Add libmumps-seq-dev to build-deps.
-  * Update standards version to 3.9.3.
-  * Fix FTBFS due to new g++-4.7 (Closes: #672612).
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Sun, 12 May 2012 03:59:00 +0200
-
-freefem++ (3.18.1-1) unstable; urgency=low
-
-  * New upstream release.
-  * Create new patch for documentation build.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Fri, 17 Feb 2012 21:29:00 +0200
-
-freefem++ (3.18-1) unstable; urgency=low
-
-  * New upstream release.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Sat, 4 Feb 2012 21:10:00 +0200
-
-freefem++ (3.17-2) unstable; urgency=low
-
-  * Fix build failure on hurd-i386 architecture.
-  * Rename kfreebsd.patch to examples++-load-load-link-in.patch and ammend it.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Thu, 29 Dec 2011 16:31:00 +0200
-
-freefem++ (3.17-1) unstable; urgency=low
-
-  * New upstream release.
-  * Add build-deps for libgmm++-dev.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Sun, 27 Nov 2011 14:17:00 +0200
-
-freefem++ (3.14-1) unstable; urgency=low
-
-  * Add build-deps for mumps_ptscotch, mumps_scotch and hypre.
-  * Change build-dep libfltk1.1-dev to libfltk1.3-dev | libfltk-dev in debian/
-    control file.
-  * New upstream release.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Wed, 14 Sep 2011 19:11:00 +0300
-
-freefem++ (3.13.3-1) unstable; urgency=low
-
-  * Add patch for the location of file freefem++.pref.
-  * New upstream release.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Tue, 9 Aug 2011 15:31:00 +0300
-
-freefem++ (3.13.2-1) unreleased; urgency=low
-
-  * Revert to gcc-4.6 for building.
-  * New upstream release.
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Sun, 3 Jul 2011 21:51:00 +0300
-
-freefem++ (3.13-2) unstable; urgency=low
-
-  * Change build-dep from openmpi-bin to mpi-default-dev to effect build on 
-    more arches.
-  * Apply patch kfreebsd.patch to fix build failure on kfreebsd arches.
-  * Rename /usr/bin/bamg to /usr/bin/ffbamg to fix double occurence of the 
-    former, in both rheolef and freefem++ packages (Closes: #630864).
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Mon, 20 Jun 2011 23:00:00 +0200
-
-freefem++ (3.13-1) unstable; urgency=low
-
-  * Initial release (Closes: #500755).
-  * Built with gcc-4.5 (see bug report 49264 submitted to the gcc bugzilla 
-    upstream).
-
- -- Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>  Mon, 13 Jun 2011 11:10:00 +0200
diff --git a/debian/control b/debian/control
index dfcb8f4..c72f723 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
 Uploaders: Christophe Trophime <christophe.trophime at lncmi.cnrs.fr>, 
  Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>
-Build-Depends: debhelper (>= 9~), dh-autoreconf, libsuperlu-dev,
+Build-Depends: debhelper (>= 9~), dh-autoreconf, libsuperlu-dev, 
  quilt, gawk, gfortran, rdfind, symlinks,
  flex, bison, libxt-dev, libxext-dev, libxxf86vm-dev, 
  libxpm-dev, libmumps-scotch-dev, libmumps-ptscotch-dev,
diff --git a/debian/patches/configure.patch.orig b/debian/patches/configure.patch.orig
deleted file mode 100644
index da4349a..0000000
--- a/debian/patches/configure.patch.orig
+++ /dev/null
@@ -1,28 +0,0 @@
-<<<<<<< HEAD
-Change the path name for finding the superlu libraries
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
---- a/configure.ac
-+++ b/configure.ac
-@@ -1653,8 +1653,8 @@
- 	[[hypre],[-lHYPRE]],
- 	[[fftw3],[-lfftw3],[/usr/include/fftw3.h],[]],
- 	[[superlu_dist],[-lsuperlu-dist],[/usr/include/superlu-dist/superlu_defs.h],[]],
--	[[superlu],[-lsuperlu],[/usr/include/superlu/superlu_enum_consts.h],[]],
--	[[Superlu4],[-lsuperlu4],[/usr/include/superlu4/superlu_enum_consts.h],[]],
-+	[[superlu],[-lsuperlu4],[/usr/include/superlu/superlu_enum_consts.h],[]],
-+	[[superlu],[-lsuperlu4],[/usr/include/superlu/slu_ddefs.h],[]],
-         [[blacs],[ -lblacsCinit$ff_with_mpi	-lblacsF77init$ff_with_mpi	-lblacs$ff_with_mpi],[]],
-         [[scalapack],[-lscalapack$ff_with_mpi],[]],
-         [[scotch],[-lscotch -lscotcherr],[scotch.h]],
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -6,7 +6,7 @@
- 
- # $Id$
- 
--SUBDIRS=download src  examples++-tutorial examples++	\
-+SUBDIRS=src  examples++-tutorial examples++	\
- 	examples++-eigen examples++-load examples++-mpi	\
- 	examples++-bug examples++-chapt3 examples++-other \
- 	examples++-3d DOC 
diff --git a/debian/patches/examples++-load.patch b/debian/patches/examples++-load.patch
index 6033f8e..7a4788c 100644
--- a/debian/patches/examples++-load.patch
+++ b/debian/patches/examples++-load.patch
@@ -1,6 +1,6 @@
 --- a/examples++-load/Makefile.am
 +++ b/examples++-load/Makefile.am
-@@ -205,8 +205,8 @@
+@@ -212,8 +212,8 @@
  	  sed <$$i >$(DESTDIR)$(ff_prefix_dir)/lib/$$i 's#$(abs_top_builddir)/download#$(ff_prefix_dir)#' ;\
  	 done
  	echo loadpath += \"./\"  >$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
@@ -10,10 +10,10 @@
 +	echo includepath += \"$(prefix)/include/freefem++/idp\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
  	$(INSTALL_SCRIPT) ff-c++  $(DESTDIR)${bindir}
  	$(INSTALL_SCRIPT) ff-pkg-download  $(DESTDIR)${bindir}
- 	$(INSTALL_SCRIPT) ff-get-dep  $(DESTDIR)${bindir}
+ 	$(INSTALL_SCRIPT) ff-get-dep   $(DESTDIR)${bindir}
 --- a/examples++-load/load.link.in
 +++ b/examples++-load/load.link.in
-@@ -216,7 +216,7 @@
+@@ -227,7 +227,7 @@
          LIBS="'$b/libff.dll' $LIBS $DLL"
  #        SUF=dll
  	;;
diff --git a/debian/patches/examples++-load.patch.orig b/debian/patches/examples++-load.patch.orig
deleted file mode 100644
index 10017fb..0000000
--- a/debian/patches/examples++-load.patch.orig
+++ /dev/null
@@ -1,38 +0,0 @@
-<<<<<<< HEAD
-Ensure build on Hurd and kfreebsd arches and find header and library paths  
---- a/examples++-load/Makefile.am
-+++ b/examples++-load/Makefile.am
-@@ -212,8 +212,8 @@
-=======
---- a/examples++-load/Makefile.am
-+++ b/examples++-load/Makefile.am
-@@ -205,8 +205,8 @@
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
- 	  sed <$$i >$(DESTDIR)$(ff_prefix_dir)/lib/$$i 's#$(abs_top_builddir)/download#$(ff_prefix_dir)#' ;\
- 	 done
- 	echo loadpath += \"./\"  >$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
--	echo loadpath += \"$(ff_prefix_dir)/lib\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
--	echo includepath += \"$(ff_prefix_dir)/idp\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-+	echo loadpath += \"$(prefix)/lib/freefem++\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-+	echo includepath += \"$(prefix)/include/freefem++/idp\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
- 	$(INSTALL_SCRIPT) ff-c++  $(DESTDIR)${bindir}
- 	$(INSTALL_SCRIPT) ff-pkg-download  $(DESTDIR)${bindir}
-<<<<<<< HEAD
- 	$(INSTALL_SCRIPT) ff-get-dep   $(DESTDIR)${bindir}
---- a/examples++-load/load.link.in
-+++ b/examples++-load/load.link.in
-@@ -225,7 +225,7 @@
-=======
- 	$(INSTALL_SCRIPT) ff-get-dep  $(DESTDIR)${bindir}
---- a/examples++-load/load.link.in
-+++ b/examples++-load/load.link.in
-@@ -216,7 +216,7 @@
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-         LIBS="'$b/libff.dll' $LIBS $DLL"
- #        SUF=dll
- 	;;
--    FreeBSD|NetBSD)
-+    FreeBSD|NetBSD|GNU|GNU/kFreeBSD)
- 	SHARED="-shared" 
- 	FLAGS='-fPIC';;
- 	# 64 bit Linux needs -fPIC (ALH)
diff --git a/debian/patches/examples-bamg.patch.orig b/debian/patches/examples-bamg.patch.orig
deleted file mode 100644
index d6f9d33..0000000
--- a/debian/patches/examples-bamg.patch.orig
+++ /dev/null
@@ -1,12 +0,0 @@
-<<<<<<< HEAD
-Set proper path for perl executable
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
---- a/examples-bamg/test/dotest.pl
-+++ b/examples-bamg/test/dotest.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl
-+#!/usr/bin/perl
- # -----  clean ---
- unlink <*.mesh>;
- unlink <*.am_fmt>;
diff --git a/debian/source/options b/debian/source/options
index 8aa68ab..38a8aee 100644
--- a/debian/source/options
+++ b/debian/source/options
@@ -1 +1 @@
- extend-diff-ignore = "(^|/)(examples\+\+-load/all\.edp|examples\+\+-3d/all\.edp|DOC/freefem\+\+doc\.pdf|download/gmm/cxxflags|src/fflib/strversionnumber\.cpp|download/nlopt/config\.log|examples\+\+-eigen/freefem\+\+\.pref|examples\+\+-load/Missing-plugins-so\.log|examples\+\+-load/WHERE_LIBRARY-download-new|examples\+\+/freefem\+\+\.pref|configure\.ac|examples\+\+-chapt3/freefem\+\+\.pref|examples\+\+-mpi/Missing-plugins-so\.log|download/pkg/MUMPS_4\.10\.0\.tar\.gz|download/fftw/Makefil [...]
\ No newline at end of file
+ extend-diff-ignore = "(^|/)(examples\+\+-load/all\.edp|examples\+\+-3d/all\.edp|DOC/freefem\+\+doc\.pdf|download/gmm/cxxflags|src/fflib/strversionnumber\.cpp|download/nlopt/config\.log|examples\+\+-eigen/freefem\+\+\.pref|examples\+\+-load/Missing-plugins-so\.log|examples\+\+-load/WHERE_LIBRARY-download-new|examples\+\+/freefem\+\+\.pref|configure\.ac|examples\+\+-chapt3/freefem\+\+\.pref|examples\+\+-mpi/Missing-plugins-so\.log|download/pkg/MUMPS_4\.10\.0\.tar\.gz|download/fftw/Makefil [...]
\ No newline at end of file
diff --git a/download/Makefile b/download/Makefile
index c9bc727..01c4178 100644
--- a/download/Makefile
+++ b/download/Makefile
@@ -1,5 +1,5 @@
 # Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
+# download/Makefile.  Generated from Makefile.in by configure.
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
@@ -12,13 +12,13 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
- at SET_MAKE@
+
 
 # Downloading and compiling extra libraries
 # -----------------------------------------
 
 # $Id: Makefile.am,v 1.16 2010/05/06 21:20:38 hecht Exp $
-VPATH = @srcdir@
+
 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
 am__make_running_with_option = \
   case $${target_option-} in \
@@ -64,10 +64,10 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgdatadir = $(datadir)/freefem++
+pkgincludedir = $(includedir)/freefem++
+pkglibdir = $(libdir)/freefem++
+pkglibexecdir = $(libexecdir)/freefem++
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -80,11 +80,10 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
 subdir = download
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs AUTHORS
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am AUTHORS
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
 	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
@@ -92,20 +91,20 @@ am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
 am__v_P_0 = false
 am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN     " $@;
 am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
 am__v_at_0 = @
 am__v_at_1 = 
 SOURCES =
@@ -177,282 +176,282 @@ am__relativize = \
     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
   done; \
   reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
+ACLOCAL = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing aclocal-1.14
+ADD_PACKAGE_NAME = 
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rv
+ARPACKLIB = 
+ARPACKLIBS = -larpack -llapack
+AUTOCONF = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing automake-1.14
+AWK = gawk
+BAMGPROG = bamg cvmsh2
+BLASINC = 
+BLASLIBS = -lblas
+CC = gcc -Wl,-z,relro
+CCDEPMODE = depmode=none
+CFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
+CFLAGSF77 = -DAdd_
+CNOFLAGS =  -fPIC
+COMPILE_OPENBLAS = 
+CPPFLAGS = -D_FORTIFY_SOURCE=2
+CXX = g++ -Wl,-z,relro
+CXX11FLAGS = -std=c++11
+CXXCPP = g++ -Wl,-z,relro -E
+CXXDEPMODE = depmode=none
+CXXFLAGS =  -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOCPDF = freefem++doc.pdf
+DOCPS = freefem++doc.ps
+DOCPSGZ = freefem++doc.ps.gz
+DOWNLOADCOMPILE = 
+DOWNLOADED_BLAS = 
+DOWNLOADED_BLAS_BUILT_SOURCES = 
+DOWNLOAD_ARPACK = 
+DOWNLOAD_FFTW = 
+DOWNLOAD_UMFPACK = 
+DYLIB_SUFFIX = so
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EIGENOBJ = eigenvalue.$(OBJEXT)
+ENABLE_FFCS = no
+EPSTOPDF = epstopdf
+EXEEXT = 
+F77 = gfortran
+FC = gfortran
+FCFLAGS = -g -O2 -fstack-protector-strong -fPIC
+FFGLUTNAME = 
+FFGLUTPROG = ffglut
+FFLAGS = -g  -fstack-protector-strong -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
+FFMETIS_CFLAGS = 
+FF_LAPACKdir = 
+FF_MALLOC_H = 1
+FF_SECOND = second.o
+FF_UMFPACK_CONFIG = 
+FLIBS = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+FNOFLAGS =  -fPIC
+G2CLIB = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+GCCNOCYGWIN = 
+GREP = /bin/grep
+GSL_CFLAGS = -I/usr/include
+GSL_CONFIG = /usr/bin/gsl-config
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+H5CC = /usr/bin/h5cc
+H5FC = /usr/bin/h5fc
+HDF5_CC = /usr/bin/cc
+HDF5_CFLAGS = 
+HDF5_CPPFLAGS = -I/usr/include/hdf5/serial -I/usr/include
+HDF5_FC = 
+HDF5_FFLAGS = -I/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/lib/x86_64-linux-gnu/hdf5/serial -I/usr/include/hdf5/serial 
+HDF5_FLIBS =  -lm -ldl -lz -lpthread -lhdf5_fortran -lhdf5 -lhdf5hl_fortran -lhdf5_hl
+HDF5_LDFLAGS = -L/usr/lib/x86_64-linux-gnu/hdf5/serial 
+HDF5_LIBS = -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+HDF5_VERSION = 1.8.13
+HISTORY = 
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KERNEL_VERSION = 3.16.0
+LAPACKLIBS = -llapack
+LAPACK_arpack_LIB = 
+LDFLAGS = -Wl,-z,relro -rdynamic
+LEX = flex
+LEXLIB = 
+LEX_OUTPUT_ROOT = lex.yy
+LIBC_VERSION = libc-2.19
+LIBOBJS = 
+LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so -L/usr/lib/x86_64-linux-gnu/hdf5/serial   -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+LIBSGLUT = -lglut -lGLU -lGL
+LIBSNOCONSOLE = 
+LIBSPTHREAD = -lpthread
+LOAD_COMPILE = load_compile
+LOAD_TESTS = ../regtests.sh
+LTLIBOBJS = 
+MAINT = #
+MAKEINFO = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing makeinfo
+MEDITPROG = ffmedit
+MKDIR_P = /bin/mkdir -p
+MPICC = /usr/bin/mpicc
+MPICXX = mpic++ -Wl,-z,relro
+MPIF77 = /usr/bin/mpif90
+MPIFC = /usr/bin/mpif90
+MPIPROG = FreeFem++-mpi
+MPIRUN = /usr/bin/mpirun
+MPISCRIPT = ff-mpirun
+MPI_INCLUDE = 
+MPI_INC_DIR = 
+MPI_LIB = -Wl,-z,relro 
+MPI_LIBC = 
+MPI_LIBFC = -pthread -L/usr//lib -L/usr/lib/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lhwloc 
+MPI_LIB_DIRS = 
+NO_RANGE_CHECK = 
+OBJEXT = o
+OPTIM_TYPE = 
+PACKAGE = freefem++
+PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
+PACKAGE_NAME = FreeFem++
+PACKAGE_STRING = FreeFem++ 3.35
+PACKAGE_TARNAME = freefem++
+PACKAGE_URL = 
+PACKAGE_VERSION = 3.35
+PASTIX_HOSTARCH = 
+PATH_SEPARATOR = :
+RANLIB = ranlib
+RANLIN = ranlib
+SCOTCH_INCLUDE = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/include/scotch
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+SIZEOF_INT = 4
+SIZEOF_LONG = 8
+SIZEOF_PTR = 8
+SIZEOF_PTRINBIT = 64
+SKIP_TESTS_EIGEN = 
+SKIP_TESTS_MPI = no
+STATICTOOL = 
+STDPROG = 
+STD_GRAPH_OBJ = 
+STD_LDFLAGS = 
+STD_LIBS = 
+STRIP = 
+TEST_FFPP = ../src/nw/FreeFem++
+TEST_FFPPMPI = ../src/mpi/ff-mpirun
+TEST_FFPP_MPI = ../src/mpi/FreeFem++-mpi
+TOOL_COMPILE_NewSolver = NewSolver
+TOOL_COMPILE_fflapack = fflapack
+TOOL_COMPILE_gsl = gsl
+TOOL_COMPILE_hips = hips
+TOOL_COMPILE_iohdf5 = iohdf5
+TOOL_COMPILE_ipopt = ipopt
+TOOL_COMPILE_lapack = lapack
+TOOL_COMPILE_metis = metis
+TOOL_COMPILE_mmg3d = mmg3d
+TOOL_COMPILE_mshmet = mshmet
+TOOL_COMPILE_mumps = mumps
+TOOL_COMPILE_mumps_seq = mumps-seq
+TOOL_COMPILE_nlopt = nlopt
+TOOL_COMPILE_pardiso = 
+TOOL_COMPILE_parmetis = parmetis
+TOOL_COMPILE_parms = parms
+TOOL_COMPILE_pastix = pastix
+TOOL_COMPILE_pipe = pipe
+TOOL_COMPILE_schwarz = 
+TOOL_COMPILE_scotch = scotch
+TOOL_COMPILE_superlu = superlu
+TOOL_COMPILE_superludist = superludist
+TOOL_COMPILE_umfpack = umfpack
+TOOL_COMPILE_yams = yams
+TOOL_DYLIB_NewSolver = NewSolver.so
+TOOL_DYLIB_fflapack = fflapack.so
+TOOL_DYLIB_gsl = gsl.so
+TOOL_DYLIB_hips = hips_FreeFem.so
+TOOL_DYLIB_iohdf5 = iohdf5.so
+TOOL_DYLIB_ipopt = ff-Ipopt.so
+TOOL_DYLIB_lapack = lapack.so
+TOOL_DYLIB_metis = metis.so
+TOOL_DYLIB_mmg3d = mmg3d-v4.0.so
+TOOL_DYLIB_mshmet = mshmet.so
+TOOL_DYLIB_mumps = MUMPS_FreeFem.so MUMPS.so
+TOOL_DYLIB_mumps_seq = MUMPS_seq.so MUMPS.so
+TOOL_DYLIB_nlopt = ff-NLopt.so
+TOOL_DYLIB_pardiso = 
+TOOL_DYLIB_parmetis = 
+TOOL_DYLIB_parms = parms_FreeFem.so
+TOOL_DYLIB_pastix = interfacepastix.so complex_pastix_FreeFem.so real_pastix_FreeFem.so
+TOOL_DYLIB_pipe = pipe.so
+TOOL_DYLIB_schwarz = 
+TOOL_DYLIB_scotch = scotch.so
+TOOL_DYLIB_superlu = SuperLu.so
+TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.so real_SuperLU_DIST_FreeFem.so dSuperLU_DIST.so
+TOOL_DYLIB_umfpack = UMFPACK64.so
+TOOL_DYLIB_yams = freeyams.so
+UMFPACKLIBS = -lumfpack  -lamd -lcholmod -lcolamd
+VERSION = 3.35
+WGET = wget --no-check-certificate
+WIN32DLLTARGET = 
+WINDRESOBJ = 
+WITH_CXX11 = yes
+YACC = bison -y
+YFLAGS = 
+abs_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download
+abs_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download
+abs_top_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
+abs_top_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
+ac_ct_CC = gcc -Wl,-z,relro
+ac_ct_CXX = 
+ac_ct_F77 = gfortran
+ac_ct_FC = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+ff_bison = yes
+ff_convert = yes
+ff_curl = 
+ff_dvips = yes
+ff_git = 
+ff_gzip = yes
+ff_history = 
+ff_latex = yes
+ff_libtool = yes
+ff_m4 = yes
+ff_makeindex = yes
+ff_patch = yes
+ff_pdf2ps = yes
+ff_pdflatex = yes
+ff_prefix_dir = /usr/lib/ff++/3.35
+ff_unzip = 
+ff_wget = yes
+host = x86_64-pc-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/install-sh
+libdir = ${prefix}/lib/x86_64-linux-gnu
+libexecdir = ${prefix}/lib/x86_64-linux-gnu
+localedir = ${datarootdir}/locale
+localstatedir = /var
+mandir = ${prefix}/share/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = /etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
 SUBDIRS = blas arpack umfpack  
 EXTRA_DIST = \
 ./nlopt/Make.inc ./nlopt/Makefile \
@@ -538,20 +537,20 @@ getall
 # FFCS: See [[file:../../../configure.ac::tools_problems_all_platforms]] for reasons why some tools may be deactivated
 
 # <<no_more_blacs>> blacs is included in scalapack 2.0.2
-MPI_SOFT = @TOOL_COMPILE_parmetis@ scalapack @TOOL_COMPILE_superludist@	\
-	@TOOL_COMPILE_mumps@ @TOOL_COMPILE_pastix@			\
-	@TOOL_COMPILE_hips@ @TOOL_COMPILE_parms@
+MPI_SOFT = parmetis scalapack superludist	\
+	mumps pastix			\
+	hips parms
 
-LIST_SOFT = tetgen @TOOL_COMPILE_superlu@ fftw @TOOL_COMPILE_metis@	\
-	@TOOL_COMPILE_scotch@ @TOOL_COMPILE_mshmet@			\
-	@TOOL_COMPILE_yams@ @TOOL_COMPILE_mmg3d@ gmm			\
-	@TOOL_COMPILE_nlopt@ @TOOL_COMPILE_mumps_seq@			\
-	@TOOL_COMPILE_ipopt@ 
+LIST_SOFT = tetgen superlu fftw metis	\
+	scotch mshmet			\
+	yams mmg3d gmm			\
+	nlopt mumps-seq			\
+	ipopt 
 
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -576,9 +575,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+$(top_srcdir)/configure: # $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/download/Makefile.am.orig b/download/Makefile.am.orig
deleted file mode 100755
index 14badf7..0000000
--- a/download/Makefile.am.orig
+++ /dev/null
@@ -1,207 +0,0 @@
-# Downloading and compiling extra libraries
-# -----------------------------------------
-
-# $Id: Makefile.am,v 1.16 2010/05/06 21:20:38 hecht Exp $
-
-SUBDIRS=blas arpack umfpack  
-EXTRA_DIST= \
-./nlopt/Make.inc ./nlopt/Makefile \
-./blacs/BLACS.patch \
-./blacs/BLACS_gridinit_.c-return-values.patch \
-./blacs/Bmake-blacs.inc \
-./blacs/Makefile \
-./f2c/Makefile \
-./f2c/Makefile-MacOs \
-./f2c/f2c.h-int \
-./f2c/fort77.sed \
-./f2c/tt.f \
-./fftw/Makefile.am \
-./fftw/Makefile.in \
-./gmm/Makefile \
-./gmm/cxxflags \
-./headers-sparsesolver.inc \
-./hips/Makefile \
-./hips/SRC_SPKIT_makefile \
-./hips/hips-1.2b-rc4.patch \
-./hips/makefile-hips.inc \
-./hypre/Makefile \
-./hypre/ff-flags.inc \
-./metis/Makefile \
-./metis/Makefile-metis.in \
-./metis/patch-metis \
-./metis/metis-4.0_main_return.patch \
-./mmg3d/Makefile \
-./mmg3d/patch-mmg3dv4.diff \
-./mshmet/Makefile \
-./mshmet/Makefile-mshmet.inc \
-./mshmet/mshmet.2011.03.06.patch \
-./mshmet/mshmet.2012.04.25_i586.patch \
-./mshmet/mshmetlib-internal.h \
-./mshmet/mshmetlib.c \
-./mshmet/mshmetlib.h \
-./mumps/Makefile \
-./mumps-seq/Makefile-mumps-4.10.0.inc \
-./mumps-seq/Makefile \
-./mumps/Makefile-mumps-4.10.0.inc \
-./mumps/MUMPS_4.10.0.patch \
-./parmetis/Makefile-parmetis.in \
-./parmetis/makefile \
-./parmetis/parmetis-3.1.1.patch \
-./parms/Makefile \
-./parms/makefile-parms.in \
-./pastix/Makefile \
-./pastix/config-pastix-complex.in \
-./pastix/config-pastix-real.in \
-./pastix/pastix_release_2200-blend.patch \
-./pastix/patch-pastix_long_complex.h \
-./pastix//all_macros.diff \
-./scalapack/Makefile \
-./scalapack/SLmake-scalapack.inc \
-./scotch/Makefile \
-./scotch/Makefile-scotch.inc \
-./scotch/Makefile.patch \
-./scotch/scotch_5.1_esmumps.patch \
-./superlu/Makefile \
-./superlu/make.inc \
-./superludist/Makefile \
-./superludist/make-superlu.inc \
-./superludist/superludist_2.3.patch \
-./superludist/superludist_3.0-printf.patch \
-./superludist/superludist_3.0-cast_warning.patch \
-./superludist/superludist_3.0-return_values.patch \
-./superludist/superludist_3.0-operation_undefined.patch \
-./tetgen/Makefile \
-./tetgen/tetgen1.4.2.patch \
-./tetgen/patches.win64 \
-./yams/Makefile \
-./yams/freeyams.2012.02.05.patch \
-./yams/freeyams.2012.02.05-return-values.patch \
-./yams/makefile-yams.inc \
-./yams/yamslib.c \
-./yams/yamslib.h \
-./yams/yamslib_internal.h \
-ipopt/Makefile	\
-ipopt/Makefile.inc.in \
-ipopt/patch-IpBlas  \
-getall 
-
-# FFCS: See [[file:../../../configure.ac::tools_problems_all_platforms]] for reasons why some tools may be deactivated
-
-# <<no_more_blacs>> blacs is included in scalapack 2.0.2
-
-MPI_SOFT=@TOOL_COMPILE_parmetis@ scalapack @TOOL_COMPILE_superludist@	\
-	@TOOL_COMPILE_mumps@ @TOOL_COMPILE_pastix@			\
-	@TOOL_COMPILE_hips@ @TOOL_COMPILE_parms@
-
-LIST_SOFT=tetgen @TOOL_COMPILE_superlu@ fftw @TOOL_COMPILE_metis@	\
-	@TOOL_COMPILE_scotch@ @TOOL_COMPILE_mshmet@			\
-	@TOOL_COMPILE_yams@ @TOOL_COMPILE_mmg3d@ gmm			\
-	@TOOL_COMPILE_nlopt@ @TOOL_COMPILE_mumps_seq@			\
-<<<<<<< HEAD
-	@TOOL_COMPILE_ipopt@ 
-=======
-	@TOOL_COMPILE_ipopt@
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-all-recursive: bin lib include pkg
-
-lib: 
-	mkdir lib
-bin: 
-	mkdir bin
-include:
-	mkdir  include
-pkg:
-	mkdir pkg
-
-# ALH - /download/yams and /download/mshmet need /src/libMesh/libmesh.a but /src is compiled after /download, so we
-# need to compile it now
-
-lib/libMesh.a:lib include
-	cd ../src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	test -f ../src/libMesh/libMesh.a
-	mkdir -p include/libMesh
-	cp ../src/libMesh/*h  include/libMesh
-	echo libMesh  LD -L at DIR@/lib -lMesh  > lib/WHERE.libMesh
-	echo libMesh INCLUDE -I at DIR@/include/libMesh >> lib/WHERE.libMesh
-	cp ../src/libMesh/libMesh.a lib/libMesh.a
-
-<<<<<<< HEAD
-all-local:bin lib include lib/libMesh.a  pkg  $(DOWNLOADCOMPILE)  install-other
-
-install-other: tag-install-other
-
-tag-install-other:
-	test -n "$(TOOL_COMPILE_schwarz)" && $(MAKE) install-hpddm
-	touch tag-install-other
-
-WHERE-OTHER: lib/WHERE.hpddm
-WHERE-LD: tag-compile-pkg  WHERE-OTHER
-	touch ../examples++-load/WHERE_LIBRARY-config ../examples++-load/WHERE_LIBRARY		
-	grep LD ../examples++-load/WHERE_LIBRARY ../examples++-load/WHERE_LIBRARY-config >WHERE-LD
-install-hpddm:
-	 test -n "$(TOOL_COMPILE_schwarz)" && ./getall hpddm -a  && $(MAKE) include/hpddm-master  lib/WHERE.hpddm
-reinstall-hpddm:
-	-rm ../pkg/hpddm.zip 
-	-rm -rf include/hpddm-master
-	test -n "$(TOOL_COMPILE_schwarz)" && $(MAKE) install-hpddm
-include/hpddm-master:
-	-if test -f ../pkg/hpddm.zip ; then cd include; unzip ../pkg/hpddm.zip ; fi
-
-lib/WHERE.hpddm: 
-	if test -d include/hpddm-master ; then \
-	echo hpddm LD -L at DIR@/lib > $@ ;\
-	echo hpddm  INCLUDE -I at DIR@/include/hpddm-master/src >> $@ ;\
-	fi
-=======
-all-local:bin lib include lib/libMesh.a pkg  $(DOWNLOADCOMPILE) 
-
-WHERE-LD: tag-compile-pkg
-	touch ../examples++-load/WHERE_LIBRARY-config ../examples++-load/WHERE_LIBRARY		
-	grep LD ../examples++-load/WHERE_LIBRARY ../examples++-load/WHERE_LIBRARY-config >WHERE-LD
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-# FFCS: need to stop at the first error to make sure that all libraries are correctly compiled
-compile-dir: 
-	@echo "\n\n ****** $(COMPILEDIR) ****** \n\n";
-	@if [ 0 -eq `egrep ':$(COMPILEDIR)' WHERE-LD | wc -l` ] ;then \
-	  cd $(COMPILEDIR) && $(MAKE) $(DIRTARGET) ; \
-	else \
-	 echo $(COMPILEDIR) is in WHERE- files ;\
-	fi 
-compile-pkg: tag-compile-pkg WHERE-LD
-
-# FFCS: need to stop at the first error to make sure that all libraries are correctly compiled
-tag-compile-pkg: bin lib include pkg FORCE
-	@if [ -n "$(WGET)" ] ; then \
-	for d in $(LIST_SOFT) ; do $(MAKE) compile-dir COMPILEDIR=$$d || exit 1;done ;\
-	if [ -n "$(MPICC)" ] ; then \
-	for d in $(MPI_SOFT) ; do 	$(MAKE) compile-dir COMPILEDIR=$$d || exit 1; done;\
-	fi;fi
-	touch tag-compile-pkg
-FORCE:
-
-re-install: 
-	$(MAKE) compile-pkg DIRTARGET=install
-WHERE:
-<<<<<<< HEAD
-	$(MAKE) compile-pkg DIRTARGET=WHERE 
-=======
-	$(MAKE) compile-pkg DIRTARGET=WHERE
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-install-exec-local:	
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/bin
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/include
-	cp -rp lib $(DESTDIR)$(ff_prefix_dir)
-	cp -rp include  $(DESTDIR)$(ff_prefix_dir)
-	cp -rp bin  $(DESTDIR)$(ff_prefix_dir)
-
-clean-local:
-	-rm -rf	 tag-* include lib bin 
-	-mkdir   include lib bin 	
-	-rm */FAIT */FAIRE 
-# 	FFCS - make sure that all directories are cleaned. Thisis especially important under Windows because there is no
-# 	compilation dependencies control there (see
-# 	[[file:c:/cygwin/home/alh/ffcs/dist/configure.ac::dependency_tracking]])
-	for d in $(LIST_SOFT) $(MPI_SOFT) ; do $(MAKE) clean -C $$d ; done
diff --git a/download/Makefile.orig b/download/Makefile.orig
deleted file mode 100644
index 9dd1ab9..0000000
--- a/download/Makefile.orig
+++ /dev/null
@@ -1,1211 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# download/Makefile.  Generated from Makefile.in by configure.
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-# Downloading and compiling extra libraries
-# -----------------------------------------
-
-# $Id: Makefile.am,v 1.16 2010/05/06 21:20:38 hecht Exp $
-
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/freefem++
-pkgincludedir = $(includedir)/freefem++
-pkglibdir = $(libdir)/freefem++
-pkglibexecdir = $(libexecdir)/freefem++
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = x86_64-pc-linux-gnu
-host_triplet = x86_64-pc-linux-gnu
-subdir = download
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am AUTHORS
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_$(V))
-am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-	ctags-recursive dvi-recursive html-recursive info-recursive \
-	install-data-recursive install-dvi-recursive \
-	install-exec-recursive install-html-recursive \
-	install-info-recursive install-pdf-recursive \
-	install-ps-recursive install-recursive installcheck-recursive \
-	installdirs-recursive pdf-recursive ps-recursive \
-	tags-recursive uninstall-recursive
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-	distdir
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-<<<<<<< HEAD:download/Makefile
-ACLOCAL = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing aclocal-1.14
-ADD_PACKAGE_NAME = 
-AMTAR = $${TAR-tar}
-AM_DEFAULT_VERBOSITY = 1
-AR = ar
-ARFLAGS = rv
-ARPACKLIB = 
-ARPACKLIBS = -larpack -llapack
-AUTOCONF = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoconf
-AUTOHEADER = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoheader
-AUTOMAKE = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing automake-1.14
-AWK = gawk
-BAMGPROG = bamg cvmsh2
-BLASINC = 
-BLASLIBS = -lblas
-CC = gcc -Wl,-z,relro
-CCDEPMODE = depmode=none
-CFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
-CFLAGSF77 = -DAdd_
-CNOFLAGS =  -fPIC
-COMPILE_OPENBLAS = 
-CPPFLAGS = -D_FORTIFY_SOURCE=2
-CXX = g++ -Wl,-z,relro
-CXXCPP = g++ -Wl,-z,relro -E
-CXXDEPMODE = depmode=none
-CXXFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
-CYGPATH_W = echo
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-DOCPDF = freefem++doc.pdf
-DOCPS = freefem++doc.ps
-DOCPSGZ = freefem++doc.ps.gz
-DOWNLOADCOMPILE = 
-DOWNLOADED_BLAS = 
-DOWNLOADED_BLAS_BUILT_SOURCES = 
-DOWNLOAD_ARPACK = 
-DOWNLOAD_FFTW = 
-DOWNLOAD_UMFPACK = 
-DYLIB_SUFFIX = so
-ECHO_C = 
-ECHO_N = -n
-ECHO_T = 
-EGREP = /bin/grep -E
-EIGENOBJ = eigenvalue.$(OBJEXT)
-ENABLE_FFCS = no
-EPSTOPDF = epstopdf
-EXEEXT = 
-F77 = gfortran
-FC = gfortran
-FCFLAGS = -g -O2 -fstack-protector-strong -fPIC
-FFGLUTNAME = 
-FFGLUTPROG = ffglut
-FFLAGS = -g  -fstack-protector-strong -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
-FFMETIS_CFLAGS = 
-FF_LAPACKdir = 
-FF_MALLOC_H = 1
-FF_SECOND = second.o
-FF_UMFPACK_CONFIG = 
-FLIBS = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-FNOFLAGS =  -fPIC
-G2CLIB = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-GCCNOCYGWIN = 
-GREP = /bin/grep
-HISTORY = 
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-KERNEL_VERSION = 3.16.0
-LAPACKLIBS = -llapack
-LAPACK_arpack_LIB = 
-LDFLAGS = -Wl,-z,relro -rdynamic
-LEX = flex
-LEXLIB = 
-LEX_OUTPUT_ROOT = lex.yy
-LIBC_VERSION = libc-2.19
-LIBOBJS = 
-LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-LIBSGLUT = -lglut -lGLU -lGL
-LIBSNOCONSOLE = 
-LIBSPTHREAD = -lpthread
-LOAD_COMPILE = load_compile
-LOAD_TESTS = ../regtests.sh
-LTLIBOBJS = 
-MAINT = #
-MAKEINFO = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing makeinfo
-MEDITPROG = ffmedit
-MKDIR_P = /bin/mkdir -p
-MPICC = /usr/bin/mpicc
-MPICXX = mpic++ -Wl,-z,relro
-MPIF77 = /usr/bin/mpif90
-MPIFC = /usr/bin/mpif90
-MPIPROG = FreeFem++-mpi
-MPIRUN = /usr/bin/mpirun
-MPISCRIPT = ff-mpirun
-MPI_INCLUDE = 
-MPI_INC_DIR = 
-MPI_LIB = -Wl,-z,relro 
-MPI_LIBC = 
-MPI_LIBFC = -pthread -L/usr//lib -L/usr/lib/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lhwloc 
-MPI_LIB_DIRS = 
-NO_RANGE_CHECK = 
-OBJEXT = o
-OPTIM_TYPE = 
-PACKAGE = freefem++
-PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
-PACKAGE_NAME = FreeFem++
-PACKAGE_STRING = FreeFem++ 3.32-1
-PACKAGE_TARNAME = freefem++
-PACKAGE_URL = 
-PACKAGE_VERSION = 3.32-1
-PASTIX_HOSTARCH = 
-PATH_SEPARATOR = :
-RANLIB = ranlib
-RANLIN = ranlib
-SCOTCH_INCLUDE = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/include/scotch
-SET_MAKE = 
-SHELL = /bin/bash
-SIZEOF_INT = 4
-SIZEOF_LONG = 8
-SIZEOF_PTR = 8
-SIZEOF_PTRINBIT = 64
-SKIP_TESTS_EIGEN = 
-SKIP_TESTS_MPI = no
-STATICTOOL = 
-STDPROG = 
-STD_GRAPH_OBJ = 
-STD_LDFLAGS = 
-STD_LIBS = 
-STRIP = 
-TEST_FFPP = ../src/nw/FreeFem++
-TEST_FFPPMPI = ../src/mpi/ff-mpirun
-TOOL_COMPILE_fflapack = fflapack
-TOOL_COMPILE_gsl = gsl
-TOOL_COMPILE_hips = hips
-TOOL_COMPILE_ipopt = ipopt
-TOOL_COMPILE_lapack = lapack
-TOOL_COMPILE_metis = metis
-TOOL_COMPILE_mmg3d = mmg3d
-TOOL_COMPILE_mshmet = mshmet
-TOOL_COMPILE_mumps = mumps
-TOOL_COMPILE_mumps_seq = mumps-seq
-TOOL_COMPILE_nlopt = nlopt
-TOOL_COMPILE_pardiso = 
-TOOL_COMPILE_parmetis = parmetis
-TOOL_COMPILE_parms = parms
-TOOL_COMPILE_pastix = pastix
-TOOL_COMPILE_pipe = pipe
-TOOL_COMPILE_scotch = scotch
-TOOL_COMPILE_superlu = superlu
-TOOL_COMPILE_superludist = superludist
-TOOL_COMPILE_umfpack = umfpack
-TOOL_COMPILE_yams = yams
-TOOL_DYLIB_fflapack = fflapack.so
-TOOL_DYLIB_gsl = gsl.so NewSolver.so
-TOOL_DYLIB_hips = hips_FreeFem.so
-TOOL_DYLIB_ipopt = ff-Ipopt.so
-TOOL_DYLIB_lapack = lapack.so
-TOOL_DYLIB_metis = metis.so
-TOOL_DYLIB_mmg3d = mmg3d-v4.0.so
-TOOL_DYLIB_mshmet = mshmet.so
-TOOL_DYLIB_mumps = MUMPS_FreeFem.so MUMPS.so
-TOOL_DYLIB_mumps_seq = MUMPS_seq.so MUMPS.so
-TOOL_DYLIB_nlopt = ff-NLopt.so
-TOOL_DYLIB_pardiso = 
-TOOL_DYLIB_parmetis = 
-TOOL_DYLIB_parms = parms_FreeFem.so
-TOOL_DYLIB_pastix = interfacepastix.so complex_pastix_FreeFem.so real_pastix_FreeFem.so
-TOOL_DYLIB_pipe = pipe.so
-TOOL_DYLIB_scotch = scotch.so
-TOOL_DYLIB_superlu = SuperLu.so
-TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.so real_SuperLU_DIST_FreeFem.so dSuperLU_DIST.so
-TOOL_DYLIB_umfpack = UMFPACK64.so
-TOOL_DYLIB_yams = freeyams.so
-UMFPACKLIBS = -lumfpack  -lamd -lcholmod -lcolamd
-VERSION = 3.32-1
-WGET = wget --no-check-certificate
-WIN32DLLTARGET = 
-WINDRESOBJ = 
-YACC = bison -y
-YFLAGS = 
-abs_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download
-abs_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download
-abs_top_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
-abs_top_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
-ac_ct_CC = gcc -Wl,-z,relro
-ac_ct_CXX = 
-ac_ct_F77 = gfortran
-ac_ct_FC = gfortran
-am__include = include
-am__leading_dot = .
-am__quote = 
-am__tar = $${TAR-tar} chof - "$$tardir"
-am__untar = $${TAR-tar} xf -
-bindir = ${exec_prefix}/bin
-build = x86_64-pc-linux-gnu
-build_alias = x86_64-linux-gnu
-build_cpu = x86_64
-build_os = linux-gnu
-build_vendor = pc
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-ff_bison = yes
-ff_convert = yes
-ff_curl = 
-ff_dvips = yes
-ff_git = 
-ff_gzip = yes
-ff_history = 
-ff_latex = yes
-ff_libtool = yes
-ff_m4 = yes
-ff_makeindex = yes
-ff_patch = yes
-ff_pdf2ps = yes
-ff_pdflatex = yes
-ff_prefix_dir = /usr/lib/ff++/3.32-1
-ff_unzip = 
-ff_wget = yes
-host = x86_64-pc-linux-gnu
-host_alias = 
-host_cpu = x86_64
-host_os = linux-gnu
-host_vendor = pc
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${prefix}/share/info
-install_sh = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/install-sh
-libdir = ${prefix}/lib/x86_64-linux-gnu
-libexecdir = ${prefix}/lib/x86_64-linux-gnu
-localedir = ${datarootdir}/locale
-localstatedir = /var
-mandir = ${prefix}/share/man
-mkdir_p = $(MKDIR_P)
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /usr
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = /etc
-target_alias = 
-top_build_prefix = ../
-top_builddir = ..
-top_srcdir = ..
-=======
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
->>>>>>> upstream/3.34.2:download/Makefile.in
-SUBDIRS = blas arpack umfpack  
-EXTRA_DIST = \
-./nlopt/Make.inc ./nlopt/Makefile \
-./blacs/BLACS.patch \
-./blacs/BLACS_gridinit_.c-return-values.patch \
-./blacs/Bmake-blacs.inc \
-./blacs/Makefile \
-./f2c/Makefile \
-./f2c/Makefile-MacOs \
-./f2c/f2c.h-int \
-./f2c/fort77.sed \
-./f2c/tt.f \
-./fftw/Makefile.am \
-./fftw/Makefile.in \
-./gmm/Makefile \
-./gmm/cxxflags \
-./headers-sparsesolver.inc \
-./hips/Makefile \
-./hips/SRC_SPKIT_makefile \
-./hips/hips-1.2b-rc4.patch \
-./hips/makefile-hips.inc \
-./hypre/Makefile \
-./hypre/ff-flags.inc \
-./metis/Makefile \
-./metis/Makefile-metis.in \
-./metis/patch-metis \
-./metis/metis-4.0_main_return.patch \
-./mmg3d/Makefile \
-./mmg3d/patch-mmg3dv4.diff \
-./mshmet/Makefile \
-./mshmet/Makefile-mshmet.inc \
-./mshmet/mshmet.2011.03.06.patch \
-./mshmet/mshmet.2012.04.25_i586.patch \
-./mshmet/mshmetlib-internal.h \
-./mshmet/mshmetlib.c \
-./mshmet/mshmetlib.h \
-./mumps/Makefile \
-./mumps-seq/Makefile-mumps-4.10.0.inc \
-./mumps-seq/Makefile \
-./mumps/Makefile-mumps-4.10.0.inc \
-./mumps/MUMPS_4.10.0.patch \
-./parmetis/Makefile-parmetis.in \
-./parmetis/makefile \
-./parmetis/parmetis-3.1.1.patch \
-./parms/Makefile \
-./parms/makefile-parms.in \
-./pastix/Makefile \
-./pastix/config-pastix-complex.in \
-./pastix/config-pastix-real.in \
-./pastix/pastix_release_2200-blend.patch \
-./pastix/patch-pastix_long_complex.h \
-./pastix//all_macros.diff \
-./scalapack/Makefile \
-./scalapack/SLmake-scalapack.inc \
-./scotch/Makefile \
-./scotch/Makefile-scotch.inc \
-./scotch/Makefile.patch \
-./scotch/scotch_5.1_esmumps.patch \
-./superlu/Makefile \
-./superlu/make.inc \
-./superludist/Makefile \
-./superludist/make-superlu.inc \
-./superludist/superludist_2.3.patch \
-./superludist/superludist_3.0-printf.patch \
-./superludist/superludist_3.0-cast_warning.patch \
-./superludist/superludist_3.0-return_values.patch \
-./superludist/superludist_3.0-operation_undefined.patch \
-./tetgen/Makefile \
-./tetgen/tetgen1.4.2.patch \
-./tetgen/patches.win64 \
-./yams/Makefile \
-./yams/freeyams.2012.02.05.patch \
-./yams/freeyams.2012.02.05-return-values.patch \
-./yams/makefile-yams.inc \
-./yams/yamslib.c \
-./yams/yamslib.h \
-./yams/yamslib_internal.h \
-ipopt/Makefile	\
-ipopt/Makefile.inc.in \
-ipopt/patch-IpBlas  \
-getall 
-
-
-# FFCS: See [[file:../../../configure.ac::tools_problems_all_platforms]] for reasons why some tools may be deactivated
-
-# <<no_more_blacs>> blacs is included in scalapack 2.0.2
-MPI_SOFT = parmetis scalapack superludist	\
-	mumps pastix			\
-	hips parms
-
-<<<<<<< HEAD:download/Makefile
-LIST_SOFT = tetgen superlu fftw metis	\
-	scotch mshmet			\
-	yams mmg3d gmm			\
-	nlopt mumps-seq			\
-	ipopt
-=======
-LIST_SOFT = tetgen @TOOL_COMPILE_superlu@ fftw @TOOL_COMPILE_metis@	\
-	@TOOL_COMPILE_scotch@ @TOOL_COMPILE_mshmet@			\
-	@TOOL_COMPILE_yams@ @TOOL_COMPILE_mmg3d@ gmm			\
-	@TOOL_COMPILE_nlopt@ @TOOL_COMPILE_mumps_seq@			\
-	@TOOL_COMPILE_ipopt@ 
->>>>>>> upstream/3.34.2:download/Makefile.in
-
-all: all-recursive
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu download/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu download/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: # $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-	@fail=; \
-	if $(am__make_keepgoing); then \
-	  failcom='fail=yes'; \
-	else \
-	  failcom='exit 1'; \
-	fi; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    $(am__make_dryrun) \
-	      || test -d "$(distdir)/$$subdir" \
-	      || $(MKDIR_P) "$(distdir)/$$subdir" \
-	      || exit 1; \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-recursive
-all-am: Makefile all-local
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am: install-exec-local
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
-	check check-am clean clean-generic clean-local cscopelist-am \
-	ctags ctags-am distclean distclean-generic distclean-tags \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-exec-local \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am tags tags-am uninstall uninstall-am
-
-
-all-recursive: bin lib include pkg
-
-lib: 
-	mkdir lib
-bin: 
-	mkdir bin
-include:
-	mkdir  include
-pkg:
-	mkdir pkg
-
-# ALH - /download/yams and /download/mshmet need /src/libMesh/libmesh.a but /src is compiled after /download, so we
-# need to compile it now
-
-lib/libMesh.a:lib include
-	cd ../src/libMesh && $(MAKE) $(AM_MAKEFLAGS)
-	test -f ../src/libMesh/libMesh.a
-	mkdir -p include/libMesh
-	cp ../src/libMesh/*h  include/libMesh
-	echo libMesh  LD -L at DIR@/lib -lMesh  > lib/WHERE.libMesh
-	echo libMesh INCLUDE -I at DIR@/include/libMesh >> lib/WHERE.libMesh
-	cp ../src/libMesh/libMesh.a lib/libMesh.a
-
-all-local:bin lib include lib/libMesh.a  pkg  $(DOWNLOADCOMPILE)  install-other
-
-install-other: tag-install-other
-
-tag-install-other:
-	if test -n "$(TOOL_COMPILE_schwarz)" ; then  $(MAKE) install-hpddm; else true; fi
-	touch tag-install-other
-
-WHERE-OTHER: lib/WHERE.hpddm
-WHERE-LD: tag-compile-pkg  WHERE-OTHER
-	touch ../examples++-load/WHERE_LIBRARY-config ../examples++-load/WHERE_LIBRARY		
-	grep LD ../examples++-load/WHERE_LIBRARY ../examples++-load/WHERE_LIBRARY-config >WHERE-LD
-install-hpddm:
-	 if test -n "$(TOOL_COMPILE_schwarz)"; then   ./getall hpddm -a ;  $(MAKE) include/hpddm-master  lib/WHERE.hpddm; else true;fi
-reinstall-hpddm:
-	-rm ./pkg/hpddm.zip 
-	-rm -rf include/hpddm-master
-	-test -n "$(TOOL_COMPILE_schwarz)" && $(MAKE) install-hpddm
-include/hpddm-master:
-	-if test -f ./pkg/hpddm.zip ; then cd include; unzip ../pkg/hpddm.zip ; else true;  fi
-
-lib/WHERE.hpddm: 
-	if test -d include/hpddm-master ; then \
-	echo hpddm LD -L at DIR@/lib > $@ ;\
-	echo hpddm  INCLUDE -I at DIR@/include/hpddm-master/src >> $@ ;\
-	else true; 	fi
-
-# FFCS: need to stop at the first error to make sure that all libraries are correctly compiled
-compile-dir: 
-	@echo "\n\n ****** $(COMPILEDIR) ****** \n\n";
-	@if [ 0 -eq `egrep ':$(COMPILEDIR)' WHERE-LD | wc -l` ] ;then \
-	  cd $(COMPILEDIR) && $(MAKE) $(DIRTARGET) ; \
-	else \
-	 echo $(COMPILEDIR) is in WHERE- files ;\
-	fi 
-compile-pkg: tag-compile-pkg WHERE-LD
-
-# FFCS: need to stop at the first error to make sure that all libraries are correctly compiled
-tag-compile-pkg: bin lib include pkg FORCE
-	@if [ -n "$(WGET)" ] ; then \
-	for d in $(LIST_SOFT) ; do $(MAKE) compile-dir COMPILEDIR=$$d || exit 1;done ;\
-	if [ -n "$(MPICC)" ] ; then \
-	for d in $(MPI_SOFT) ; do 	$(MAKE) compile-dir COMPILEDIR=$$d || exit 1; done;\
-	fi;fi
-	touch tag-compile-pkg
-FORCE:
-
-re-install: 
-	$(MAKE) compile-pkg DIRTARGET=install
-WHERE:
-	$(MAKE) compile-pkg DIRTARGET=WHERE 
-install-exec-local:	
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/bin
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/include
-	cp -rp lib $(DESTDIR)$(ff_prefix_dir)
-	cp -rp include  $(DESTDIR)$(ff_prefix_dir)
-	cp -rp bin  $(DESTDIR)$(ff_prefix_dir)
-
-clean-local:
-	-rm -rf	 tag-* include lib bin 
-	-mkdir   include lib bin 	
-	-rm */FAIT */FAIRE 
-# 	FFCS - make sure that all directories are cleaned. Thisis especially important under Windows because there is no
-# 	compilation dependencies control there (see
-# 	[[file:c:/cygwin/home/alh/ffcs/dist/configure.ac::dependency_tracking]])
-	for d in $(LIST_SOFT) $(MPI_SOFT) ; do $(MAKE) clean -C $$d ; done
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/download/arpack/Makefile b/download/arpack/Makefile
index 0beaded..92fd4a5 100644
--- a/download/arpack/Makefile
+++ b/download/arpack/Makefile
@@ -1,5 +1,5 @@
 # Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
+# download/arpack/Makefile.  Generated from Makefile.in by configure.
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
@@ -12,7 +12,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
- at SET_MAKE@
+
 
 # ======================================================================
 # Laboratoire Jacques-Louis Lions
@@ -65,7 +65,7 @@
 # download compile install reinstall clean veryclean
 
 # <<download>>
-VPATH = @srcdir@
+
 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
 am__make_running_with_option = \
   case $${target_option-} in \
@@ -111,10 +111,10 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgdatadir = $(datadir)/freefem++
+pkgincludedir = $(includedir)/freefem++
+pkglibdir = $(libdir)/freefem++
+pkglibexecdir = $(libexecdir)/freefem++
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -127,10 +127,10 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
 DIST_COMMON = $(srcdir)/../common.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs
+	$(srcdir)/Makefile.am
 subdir = download/arpack
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
@@ -139,20 +139,20 @@ am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
 am__v_P_0 = false
 am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN     " $@;
 am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
 am__v_at_0 = @
 am__v_at_1 = 
 SOURCES =
@@ -164,282 +164,282 @@ am__can_run_installinfo = \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
+ACLOCAL = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing aclocal-1.14
+ADD_PACKAGE_NAME = 
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rv
+ARPACKLIB = 
+ARPACKLIBS = -larpack -llapack
+AUTOCONF = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing automake-1.14
+AWK = gawk
+BAMGPROG = bamg cvmsh2
+BLASINC = 
+BLASLIBS = -lblas
+CC = gcc -Wl,-z,relro
+CCDEPMODE = depmode=none
+CFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
+CFLAGSF77 = -DAdd_
+CNOFLAGS =  -fPIC
+COMPILE_OPENBLAS = 
+CPPFLAGS = -D_FORTIFY_SOURCE=2
+CXX = g++ -Wl,-z,relro
+CXX11FLAGS = -std=c++11
+CXXCPP = g++ -Wl,-z,relro -E
+CXXDEPMODE = depmode=none
+CXXFLAGS =  -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOCPDF = freefem++doc.pdf
+DOCPS = freefem++doc.ps
+DOCPSGZ = freefem++doc.ps.gz
+DOWNLOADCOMPILE = 
+DOWNLOADED_BLAS = 
+DOWNLOADED_BLAS_BUILT_SOURCES = 
+DOWNLOAD_ARPACK = 
+DOWNLOAD_FFTW = 
+DOWNLOAD_UMFPACK = 
+DYLIB_SUFFIX = so
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EIGENOBJ = eigenvalue.$(OBJEXT)
+ENABLE_FFCS = no
+EPSTOPDF = epstopdf
+EXEEXT = 
+F77 = gfortran
+FC = gfortran
+FCFLAGS = -g -O2 -fstack-protector-strong -fPIC
+FFGLUTNAME = 
+FFGLUTPROG = ffglut
+FFLAGS = -g  -fstack-protector-strong -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
+FFMETIS_CFLAGS = 
+FF_LAPACKdir = 
+FF_MALLOC_H = 1
+FF_SECOND = second.o
+FF_UMFPACK_CONFIG = 
+FLIBS = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+FNOFLAGS =  -fPIC
+G2CLIB = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+GCCNOCYGWIN = 
+GREP = /bin/grep
+GSL_CFLAGS = -I/usr/include
+GSL_CONFIG = /usr/bin/gsl-config
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+H5CC = /usr/bin/h5cc
+H5FC = /usr/bin/h5fc
+HDF5_CC = /usr/bin/cc
+HDF5_CFLAGS = 
+HDF5_CPPFLAGS = -I/usr/include/hdf5/serial -I/usr/include
+HDF5_FC = 
+HDF5_FFLAGS = -I/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/lib/x86_64-linux-gnu/hdf5/serial -I/usr/include/hdf5/serial 
+HDF5_FLIBS =  -lm -ldl -lz -lpthread -lhdf5_fortran -lhdf5 -lhdf5hl_fortran -lhdf5_hl
+HDF5_LDFLAGS = -L/usr/lib/x86_64-linux-gnu/hdf5/serial 
+HDF5_LIBS = -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+HDF5_VERSION = 1.8.13
+HISTORY = 
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KERNEL_VERSION = 3.16.0
+LAPACKLIBS = -llapack
+LAPACK_arpack_LIB = 
+LDFLAGS = -Wl,-z,relro -rdynamic
+LEX = flex
+LEXLIB = 
+LEX_OUTPUT_ROOT = lex.yy
+LIBC_VERSION = libc-2.19
+LIBOBJS = 
+LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so -L/usr/lib/x86_64-linux-gnu/hdf5/serial   -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+LIBSGLUT = -lglut -lGLU -lGL
+LIBSNOCONSOLE = 
+LIBSPTHREAD = -lpthread
+LOAD_COMPILE = load_compile
+LOAD_TESTS = ../regtests.sh
+LTLIBOBJS = 
+MAINT = #
+MAKEINFO = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing makeinfo
+MEDITPROG = ffmedit
+MKDIR_P = /bin/mkdir -p
+MPICC = /usr/bin/mpicc
+MPICXX = mpic++ -Wl,-z,relro
+MPIF77 = /usr/bin/mpif90
+MPIFC = /usr/bin/mpif90
+MPIPROG = FreeFem++-mpi
+MPIRUN = /usr/bin/mpirun
+MPISCRIPT = ff-mpirun
+MPI_INCLUDE = 
+MPI_INC_DIR = 
+MPI_LIB = -Wl,-z,relro 
+MPI_LIBC = 
+MPI_LIBFC = -pthread -L/usr//lib -L/usr/lib/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lhwloc 
+MPI_LIB_DIRS = 
+NO_RANGE_CHECK = 
+OBJEXT = o
+OPTIM_TYPE = 
+PACKAGE = freefem++
+PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
+PACKAGE_NAME = FreeFem++
+PACKAGE_STRING = FreeFem++ 3.35
+PACKAGE_TARNAME = freefem++
+PACKAGE_URL = 
+PACKAGE_VERSION = 3.35
+PASTIX_HOSTARCH = 
+PATH_SEPARATOR = :
+RANLIB = ranlib
+RANLIN = ranlib
+SCOTCH_INCLUDE = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/include/scotch
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+SIZEOF_INT = 4
+SIZEOF_LONG = 8
+SIZEOF_PTR = 8
+SIZEOF_PTRINBIT = 64
+SKIP_TESTS_EIGEN = 
+SKIP_TESTS_MPI = no
+STATICTOOL = 
+STDPROG = 
+STD_GRAPH_OBJ = 
+STD_LDFLAGS = 
+STD_LIBS = 
+STRIP = 
+TEST_FFPP = ../src/nw/FreeFem++
+TEST_FFPPMPI = ../src/mpi/ff-mpirun
+TEST_FFPP_MPI = ../src/mpi/FreeFem++-mpi
+TOOL_COMPILE_NewSolver = NewSolver
+TOOL_COMPILE_fflapack = fflapack
+TOOL_COMPILE_gsl = gsl
+TOOL_COMPILE_hips = hips
+TOOL_COMPILE_iohdf5 = iohdf5
+TOOL_COMPILE_ipopt = ipopt
+TOOL_COMPILE_lapack = lapack
+TOOL_COMPILE_metis = metis
+TOOL_COMPILE_mmg3d = mmg3d
+TOOL_COMPILE_mshmet = mshmet
+TOOL_COMPILE_mumps = mumps
+TOOL_COMPILE_mumps_seq = mumps-seq
+TOOL_COMPILE_nlopt = nlopt
+TOOL_COMPILE_pardiso = 
+TOOL_COMPILE_parmetis = parmetis
+TOOL_COMPILE_parms = parms
+TOOL_COMPILE_pastix = pastix
+TOOL_COMPILE_pipe = pipe
+TOOL_COMPILE_schwarz = 
+TOOL_COMPILE_scotch = scotch
+TOOL_COMPILE_superlu = superlu
+TOOL_COMPILE_superludist = superludist
+TOOL_COMPILE_umfpack = umfpack
+TOOL_COMPILE_yams = yams
+TOOL_DYLIB_NewSolver = NewSolver.so
+TOOL_DYLIB_fflapack = fflapack.so
+TOOL_DYLIB_gsl = gsl.so
+TOOL_DYLIB_hips = hips_FreeFem.so
+TOOL_DYLIB_iohdf5 = iohdf5.so
+TOOL_DYLIB_ipopt = ff-Ipopt.so
+TOOL_DYLIB_lapack = lapack.so
+TOOL_DYLIB_metis = metis.so
+TOOL_DYLIB_mmg3d = mmg3d-v4.0.so
+TOOL_DYLIB_mshmet = mshmet.so
+TOOL_DYLIB_mumps = MUMPS_FreeFem.so MUMPS.so
+TOOL_DYLIB_mumps_seq = MUMPS_seq.so MUMPS.so
+TOOL_DYLIB_nlopt = ff-NLopt.so
+TOOL_DYLIB_pardiso = 
+TOOL_DYLIB_parmetis = 
+TOOL_DYLIB_parms = parms_FreeFem.so
+TOOL_DYLIB_pastix = interfacepastix.so complex_pastix_FreeFem.so real_pastix_FreeFem.so
+TOOL_DYLIB_pipe = pipe.so
+TOOL_DYLIB_schwarz = 
+TOOL_DYLIB_scotch = scotch.so
+TOOL_DYLIB_superlu = SuperLu.so
+TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.so real_SuperLU_DIST_FreeFem.so dSuperLU_DIST.so
+TOOL_DYLIB_umfpack = UMFPACK64.so
+TOOL_DYLIB_yams = freeyams.so
+UMFPACKLIBS = -lumfpack  -lamd -lcholmod -lcolamd
+VERSION = 3.35
+WGET = wget --no-check-certificate
+WIN32DLLTARGET = 
+WINDRESOBJ = 
+WITH_CXX11 = yes
+YACC = bison -y
+YFLAGS = 
+abs_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/arpack
+abs_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/arpack
+abs_top_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
+abs_top_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
+ac_ct_CC = gcc -Wl,-z,relro
+ac_ct_CXX = 
+ac_ct_F77 = gfortran
+ac_ct_FC = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+ff_bison = yes
+ff_convert = yes
+ff_curl = 
+ff_dvips = yes
+ff_git = 
+ff_gzip = yes
+ff_history = 
+ff_latex = yes
+ff_libtool = yes
+ff_m4 = yes
+ff_makeindex = yes
+ff_patch = yes
+ff_pdf2ps = yes
+ff_pdflatex = yes
+ff_prefix_dir = /usr/lib/ff++/3.35
+ff_unzip = 
+ff_wget = yes
+host = x86_64-pc-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/install-sh
+libdir = ${prefix}/lib/x86_64-linux-gnu
+libexecdir = ${prefix}/lib/x86_64-linux-gnu
+localedir = ${datarootdir}/locale
+localstatedir = /var
+mandir = ${prefix}/share/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = /etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
 EXTRA_DIST = ARmake.m4 arpack-patch-lapack.tar.gz  veclib_zdotc.f
 PKGCOMMON_PACKTITLE = ARPACK
 
@@ -455,7 +455,7 @@ PKGCOMMON_PACKAGES = $(ARPACK96_TAR_GZ) $(PATCH_TAR_GZ)
 all: all-am
 
 .SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../common.mak $(am__configure_deps)
+$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(srcdir)/../common.mak $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -481,9 +481,9 @@ $(srcdir)/../common.mak:
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+$(top_srcdir)/configure: # $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 tags TAGS:
@@ -675,11 +675,11 @@ compilepkg::$(ARPACKLIB)
 $(ARPACKLIB): ARPACK/fait
 	case '$(BLASLIBS)' in *vecLib*|*Accelerate*) $(F77) -c $(FFLAGS) veclib_zdotc.f -o ARPACK/SRC/veclib_zdotc.o ;; esac; 
 	mkdir -p ../include ../lib
-	if [ -n '@FF_LAPACKdir@' ] ; then \
+	if [ -n '' ] ; then \
 	$(F77) -c `echo $(FFLAGS)\ |sed -e s/-O.\*\ // ` ARPACK/LAPACK/dlamch.f -o ARPACK/LAPACK/dlamch.o; \
 	fi; \
 	cd ARPACK && make lib 
-	if test -n '@FF_LAPACKdir@' ; then \
+	if test -n '' ; then \
 	$(AR) $(ARFLAGS) $(LAPACK_arpack_LIB)  ARPACK/SRC/*.o  ARPACK/UTIL/*.o ARPACK/LAPACK/*.o ;\
 	$(RANLIB) $(LAPACK_arpack_LIB) ;\
 	else \
@@ -704,15 +704,15 @@ ARPACK/fait: $(ARPACK96_TAR_GZ) $(PATCH_TAR_GZ) ARmake.m4 Makefile
 	m4  -DFF_BLASLIB="$(BLASLIB)" \
 	    -DFF_ARPACKLIB="$(ARPACKLIB)" \
             -DFF_LAPACK_arpack_LIB="$(LAPACK_arpack_LIB)" \
-	    -DFF_FC="@F77@" \
-            -DFF_FFLAGS="@FFLAGS@" \
-	    -DFF_LAPACKdir='@FF_LAPACKdir@' \
-            -DFF_LDFLAGS="@LDFLAGS@" \
+	    -DFF_FC="gfortran" \
+            -DFF_FFLAGS="-g  -fstack-protector-strong -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC" \
+	    -DFF_LAPACKdir='' \
+            -DFF_LDFLAGS="-Wl,-z,relro -rdynamic" \
             -DFF_HOME=`pwd`/ARPACK \
-	    -DFF_SECOND="@FF_SECOND@" \
-	    -DFF_AR="@AR@" \
-	    -DFF_ARFLAGS="@ARFLAGS@" \
-	    -DFF_RANLIB="@RANLIB@" \
+	    -DFF_SECOND="second.o" \
+	    -DFF_AR="ar" \
+	    -DFF_ARFLAGS="rv" \
+	    -DFF_RANLIB="ranlib" \
 	    ARmake.m4 >ARPACK/ARmake.inc
 	touch ARPACK/fait
 
diff --git a/download/bin/ff-pkg-download b/download/bin
similarity index 99%
rename from download/bin/ff-pkg-download
rename to download/bin
index 7b1e2fc..fbe9645 100755
--- a/download/bin/ff-pkg-download
+++ b/download/bin
@@ -50,7 +50,7 @@ elif [ -d "$DESTDIR$DIRP/lib" -a -d "$DESTDIR$DIRP/include"  ] ; then
     DIR="$DIRP"
     DIRW="$DIR/lib"
 else
-  DIR=/usr/lib/ff++/3.32-1
+  DIR=/usr/lib/ff++/3.35
   DIRW="$DIRW/lib"
 fi
 
diff --git a/download/bin/ff-get-dep b/download/bin/ff-get-dep
deleted file mode 100755
index 529b9d8..0000000
--- a/download/bin/ff-get-dep
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-# ff-c++ `./ff-get-dep -ff metis.cpp`
-
-case "$1" in
-    -dlib)
-	shift
-	awk -F:  '/ff-c[+][+]-LIBRARY-dep/  { print $2}' $@
-	exit 0; 
-	;;
-    -dcpp)
-	shift
-	awk -F:  '/ff-c[+][+]-cpp-dep/  { print $2}' $@
-	echo $@
-	exit 0; 
-	;;
-    -ff)
-	shift;
-	libs=`$0 -dlib $@`
-	cpp=`$0 -dcpp $@`
-	inclins=`$0 -i $libs` 
-	ldlibs=`$0 -l $libs`
-	if [ -n "$ldlibs" -o -z "$libs" ]; then
-	    echo "$cpp" "$inclins" "$ldlibs"
-	else
-	     # FFCS - we need errors returns to insure that all compilations run well. ERROR is detected by ff-c++
-	    echo "ERROR: find libs of $0 :  $libs "
-	fi
-	exit 0;
-	;;
-esac 
-dircommand=`dirname $0`
-if [   -f "WHERE_LIBRARY-download" ] ; then
-    dirwhere=.
-elif [   -f "$dircommand/WHERE_LIBRARY-download" ] ; then
-    dirwhere=$dircommand
-elif [ -f '/usr/lib/ff++/3.32-1/lib/WHERE_LIBRARY-download' ] ; then
-    dirwhere='/usr/lib/ff++/3.32-1/lib'
-else
-   echo " error no WHERE_LIBRARY  file "
-   exit 1;
-fi
-cd "$dirwhere"
-wherel=WHERE_LIBRARY-download
-test -f WHERE_LIBRARY-config && wherel="$wherel  WHERE_LIBRARY-config"
-test -f WHERE_LIBRARY && wherel="$wherel WHERE_LIBRARY"
-
-
-case "$1" in
-    -i*)
-	shift;
-	for i in $@ ; do
-	#    echo "$1" 
-	#    echo 	awk -v p="$1" -v m=INCLUDE ' ($1 == p) && ($2 == m) { for (i=3;i<=NF;++i) {print $i," ";}}' WHERE_LIBRARY  WHERE_LIBRARY-download
-	    
-	    # FFCS: print everything on the same line to avoid splitting paths containing spaces
-         awk -v p="$i" -v m=INCLUDE ' ($1 == p) && ($2 == m) && (!first){ first=1;for (i=3;i<=NF;++i) {printf("%s ",$i);}}' $wherel
-	done
-	
-	;;
-    -l*)
-	shift;
-	for i in $@ ; do   
-
-	    # FFCS: print everything on the same line to avoid splitting paths containing spaces
-	    awk -v p="$i" -v  m=LD ' ($1 == p) && ($2 == m) && (!first) {first=1; for (i=3;i<=NF;++i) {printf("%s ",$i);}} 
-          END  { if(!first) print "ERROR-missing-lib:" p;} ' $wherel
-	done
-	;;
-  *)  
-	for i in $@ ; do   
-	    awk -v p="$i" ' ($1 == p) { k=0;  for (i=3;i<=NF;++i) {k=1;} print k}' $wherel
-	done
-	
-shift;;
-esac
-
diff --git a/download/blas/Makefile b/download/blas/Makefile
index da2e446..119bc13 100644
--- a/download/blas/Makefile
+++ b/download/blas/Makefile
@@ -136,7 +136,8 @@ DIST_COMMON = $(srcdir)/../common.mak $(srcdir)/Makefile.in \
 subdir = download/blas
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/acmpi.m4 \
+	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
+	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -442,9 +443,10 @@ CNOFLAGS =  -fPIC
 COMPILE_OPENBLAS = 
 CPPFLAGS = -D_FORTIFY_SOURCE=2
 CXX = g++ -Wl,-z,relro
+CXX11FLAGS = -std=c++11
 CXXCPP = g++ -Wl,-z,relro -E
 CXXDEPMODE = depmode=none
-CXXFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
+CXXFLAGS =  -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
 CYGPATH_W = echo
 DEFS = -DHAVE_CONFIG_H
 DEPDIR = .deps
@@ -482,6 +484,20 @@ FNOFLAGS =  -fPIC
 G2CLIB = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
 GCCNOCYGWIN = 
 GREP = /bin/grep
+GSL_CFLAGS = -I/usr/include
+GSL_CONFIG = /usr/bin/gsl-config
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+H5CC = /usr/bin/h5cc
+H5FC = /usr/bin/h5fc
+HDF5_CC = /usr/bin/cc
+HDF5_CFLAGS = 
+HDF5_CPPFLAGS = -I/usr/include/hdf5/serial -I/usr/include
+HDF5_FC = 
+HDF5_FFLAGS = -I/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/lib/x86_64-linux-gnu/hdf5/serial -I/usr/include/hdf5/serial 
+HDF5_FLIBS =  -lm -ldl -lz -lpthread -lhdf5_fortran -lhdf5 -lhdf5hl_fortran -lhdf5_hl
+HDF5_LDFLAGS = -L/usr/lib/x86_64-linux-gnu/hdf5/serial 
+HDF5_LIBS = -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+HDF5_VERSION = 1.8.13
 HISTORY = 
 INSTALL = /usr/bin/install -c
 INSTALL_DATA = ${INSTALL} -m 644
@@ -497,7 +513,7 @@ LEXLIB =
 LEX_OUTPUT_ROOT = lex.yy
 LIBC_VERSION = libc-2.19
 LIBOBJS = 
-LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so -L/usr/lib/x86_64-linux-gnu/hdf5/serial   -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
 LIBSGLUT = -lglut -lGLU -lGL
 LIBSNOCONSOLE = 
 LIBSPTHREAD = -lpthread
@@ -527,15 +543,16 @@ OPTIM_TYPE =
 PACKAGE = freefem++
 PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
 PACKAGE_NAME = FreeFem++
-PACKAGE_STRING = FreeFem++ 3.32-1
+PACKAGE_STRING = FreeFem++ 3.35
 PACKAGE_TARNAME = freefem++
 PACKAGE_URL = 
-PACKAGE_VERSION = 3.32-1
+PACKAGE_VERSION = 3.35
 PASTIX_HOSTARCH = 
 PATH_SEPARATOR = :
 RANLIB = ranlib
 RANLIN = ranlib
 SCOTCH_INCLUDE = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/include/scotch
+SED = /bin/sed
 SET_MAKE = 
 SHELL = /bin/bash
 SIZEOF_INT = 4
@@ -552,9 +569,12 @@ STD_LIBS =
 STRIP = 
 TEST_FFPP = ../src/nw/FreeFem++
 TEST_FFPPMPI = ../src/mpi/ff-mpirun
+TEST_FFPP_MPI = ../src/mpi/FreeFem++-mpi
+TOOL_COMPILE_NewSolver = NewSolver
 TOOL_COMPILE_fflapack = fflapack
 TOOL_COMPILE_gsl = gsl
 TOOL_COMPILE_hips = hips
+TOOL_COMPILE_iohdf5 = iohdf5
 TOOL_COMPILE_ipopt = ipopt
 TOOL_COMPILE_lapack = lapack
 TOOL_COMPILE_metis = metis
@@ -568,14 +588,17 @@ TOOL_COMPILE_parmetis = parmetis
 TOOL_COMPILE_parms = parms
 TOOL_COMPILE_pastix = pastix
 TOOL_COMPILE_pipe = pipe
+TOOL_COMPILE_schwarz = 
 TOOL_COMPILE_scotch = scotch
 TOOL_COMPILE_superlu = superlu
 TOOL_COMPILE_superludist = superludist
 TOOL_COMPILE_umfpack = umfpack
 TOOL_COMPILE_yams = yams
+TOOL_DYLIB_NewSolver = NewSolver.so
 TOOL_DYLIB_fflapack = fflapack.so
-TOOL_DYLIB_gsl = gsl.so NewSolver.so
+TOOL_DYLIB_gsl = gsl.so
 TOOL_DYLIB_hips = hips_FreeFem.so
+TOOL_DYLIB_iohdf5 = iohdf5.so
 TOOL_DYLIB_ipopt = ff-Ipopt.so
 TOOL_DYLIB_lapack = lapack.so
 TOOL_DYLIB_metis = metis.so
@@ -589,16 +612,18 @@ TOOL_DYLIB_parmetis =
 TOOL_DYLIB_parms = parms_FreeFem.so
 TOOL_DYLIB_pastix = interfacepastix.so complex_pastix_FreeFem.so real_pastix_FreeFem.so
 TOOL_DYLIB_pipe = pipe.so
+TOOL_DYLIB_schwarz = 
 TOOL_DYLIB_scotch = scotch.so
 TOOL_DYLIB_superlu = SuperLu.so
 TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.so real_SuperLU_DIST_FreeFem.so dSuperLU_DIST.so
 TOOL_DYLIB_umfpack = UMFPACK64.so
 TOOL_DYLIB_yams = freeyams.so
 UMFPACKLIBS = -lumfpack  -lamd -lcholmod -lcolamd
-VERSION = 3.32-1
+VERSION = 3.35
 WGET = wget --no-check-certificate
 WIN32DLLTARGET = 
 WINDRESOBJ = 
+WITH_CXX11 = yes
 YACC = bison -y
 YFLAGS = 
 abs_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/blas
@@ -640,7 +665,7 @@ ff_makeindex = yes
 ff_patch = yes
 ff_pdf2ps = yes
 ff_pdflatex = yes
-ff_prefix_dir = /usr/lib/ff++/3.32-1
+ff_prefix_dir = /usr/lib/ff++/3.35
 ff_unzip = 
 ff_wget = yes
 host = x86_64-pc-linux-gnu
diff --git a/download/blas/Makefile.in b/download/blas/Makefile.in
deleted file mode 100644
index 1fd0275..0000000
--- a/download/blas/Makefile.in
+++ /dev/null
@@ -1,4348 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Downloading and compiling extra BLAS libraries
-# ======================================================================
-# Laboratoire Jacques-Louis Lions
-# Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-# ======================================================================
-# This file is part of Freefem++
-# 
-# Freefem++ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-# 
-# Freefem++ is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-# 
-# You should have received a copy of the GNU Lesser General Public
-# License along with Freefem++; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# ======================================================================
-# headeralh brief="Downloading and compiling extra BLAS libraries" default=0 freefem make multipleauthors start=04/06/04 upmc
-
-# Common make rules for all downloaded packages (request from FH)
-# ======================================================================
-# Written by Antoine Le Hyaric
-# http://www.ljll.math.upmc.fr/lehyaric
-# Laboratoire Jacques-Louis Lions
-# Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-# ======================================================================
-# This file is part of Freefem++
-# 
-# Freefem++ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-# 
-# Freefem++ is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-# 
-# You should have received a copy of the GNU Lesser General Public
-# License along with Freefem++; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# ======================================================================
-# headeralh brief="Common make rules for all downloaded packages (request from FH)" default=0 freefem make start=06/11/2013 upmc written
-
-# Common goals for all packages:
-# download compile install reinstall clean veryclean
-
-# <<download>>
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-DIST_COMMON = $(srcdir)/../common.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \
-	$(top_srcdir)/depcomp
-subdir = download/blas
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AM_V_AR = $(am__v_AR_ at AM_V@)
-am__v_AR_ = $(am__v_AR_ at AM_DEFAULT_V@)
-am__v_AR_0 = @echo "  AR      " $@;
-am__v_AR_1 = 
-libcblas_a_AR = $(AR) $(ARFLAGS)
-libcblas_a_LIBADD =
-am__objects_1 = libcblas_a-cblas_caxpy.$(OBJEXT) \
-	libcblas_a-cblas_drot.$(OBJEXT) \
-	libcblas_a-cblas_sgemm.$(OBJEXT) \
-	libcblas_a-cblas_zher2.$(OBJEXT) \
-	libcblas_a-cblas_ccopy.$(OBJEXT) \
-	libcblas_a-cblas_drotg.$(OBJEXT) \
-	libcblas_a-cblas_sgemv.$(OBJEXT) \
-	libcblas_a-cblas_zher2k.$(OBJEXT) \
-	libcblas_a-cblas_cdotc_sub.$(OBJEXT) \
-	libcblas_a-cblas_drotm.$(OBJEXT) \
-	libcblas_a-cblas_sger.$(OBJEXT) \
-	libcblas_a-cblas_zher.$(OBJEXT) \
-	libcblas_a-cblas_cdotu_sub.$(OBJEXT) \
-	libcblas_a-cblas_drotmg.$(OBJEXT) \
-	libcblas_a-cblas_snrm2.$(OBJEXT) \
-	libcblas_a-cblas_zherk.$(OBJEXT) \
-	libcblas_a-cblas_cgbmv.$(OBJEXT) \
-	libcblas_a-cblas_dsbmv.$(OBJEXT) \
-	libcblas_a-cblas_srot.$(OBJEXT) \
-	libcblas_a-cblas_zhpmv.$(OBJEXT) \
-	libcblas_a-cblas_cgemm.$(OBJEXT) \
-	libcblas_a-cblas_dscal.$(OBJEXT) \
-	libcblas_a-cblas_srotg.$(OBJEXT) \
-	libcblas_a-cblas_zhpr2.$(OBJEXT) \
-	libcblas_a-cblas_cgemv.$(OBJEXT) \
-	libcblas_a-cblas_dsdot.$(OBJEXT) \
-	libcblas_a-cblas_srotm.$(OBJEXT) \
-	libcblas_a-cblas_zhpr.$(OBJEXT) \
-	libcblas_a-cblas_cgerc.$(OBJEXT) \
-	libcblas_a-cblas_dspmv.$(OBJEXT) \
-	libcblas_a-cblas_srotmg.$(OBJEXT) \
-	libcblas_a-cblas_zscal.$(OBJEXT) \
-	libcblas_a-cblas_cgeru.$(OBJEXT) \
-	libcblas_a-cblas_dspr2.$(OBJEXT) \
-	libcblas_a-cblas_ssbmv.$(OBJEXT) \
-	libcblas_a-cblas_zswap.$(OBJEXT) \
-	libcblas_a-cblas_chbmv.$(OBJEXT) \
-	libcblas_a-cblas_dspr.$(OBJEXT) \
-	libcblas_a-cblas_sscal.$(OBJEXT) \
-	libcblas_a-cblas_zsymm.$(OBJEXT) \
-	libcblas_a-cblas_chemm.$(OBJEXT) \
-	libcblas_a-cblas_dswap.$(OBJEXT) \
-	libcblas_a-cblas_sspmv.$(OBJEXT) \
-	libcblas_a-cblas_zsyr2k.$(OBJEXT) \
-	libcblas_a-cblas_chemv.$(OBJEXT) \
-	libcblas_a-cblas_dsymm.$(OBJEXT) \
-	libcblas_a-cblas_sspr2.$(OBJEXT) \
-	libcblas_a-cblas_zsyrk.$(OBJEXT) \
-	libcblas_a-cblas_cher2.$(OBJEXT) \
-	libcblas_a-cblas_dsymv.$(OBJEXT) \
-	libcblas_a-cblas_sspr.$(OBJEXT) \
-	libcblas_a-cblas_ztbmv.$(OBJEXT) \
-	libcblas_a-cblas_cher2k.$(OBJEXT) \
-	libcblas_a-cblas_dsyr2.$(OBJEXT) \
-	libcblas_a-cblas_sswap.$(OBJEXT) \
-	libcblas_a-cblas_ztbsv.$(OBJEXT) \
-	libcblas_a-cblas_cher.$(OBJEXT) \
-	libcblas_a-cblas_dsyr2k.$(OBJEXT) \
-	libcblas_a-cblas_ssymm.$(OBJEXT) \
-	libcblas_a-cblas_ztpmv.$(OBJEXT) \
-	libcblas_a-cblas_cherk.$(OBJEXT) \
-	libcblas_a-cblas_dsyr.$(OBJEXT) \
-	libcblas_a-cblas_ssymv.$(OBJEXT) \
-	libcblas_a-cblas_ztpsv.$(OBJEXT) \
-	libcblas_a-cblas_chpmv.$(OBJEXT) \
-	libcblas_a-cblas_dsyrk.$(OBJEXT) \
-	libcblas_a-cblas_ssyr2.$(OBJEXT) \
-	libcblas_a-cblas_ztrmm.$(OBJEXT) \
-	libcblas_a-cblas_chpr2.$(OBJEXT) \
-	libcblas_a-cblas_dtbmv.$(OBJEXT) \
-	libcblas_a-cblas_ssyr2k.$(OBJEXT) \
-	libcblas_a-cblas_ztrmv.$(OBJEXT) \
-	libcblas_a-cblas_chpr.$(OBJEXT) \
-	libcblas_a-cblas_dtbsv.$(OBJEXT) \
-	libcblas_a-cblas_ssyr.$(OBJEXT) \
-	libcblas_a-cblas_ztrsm.$(OBJEXT) \
-	libcblas_a-cblas_cscal.$(OBJEXT) \
-	libcblas_a-cblas_dtpmv.$(OBJEXT) \
-	libcblas_a-cblas_ssyrk.$(OBJEXT) \
-	libcblas_a-cblas_ztrsv.$(OBJEXT) \
-	libcblas_a-cblas_csscal.$(OBJEXT) \
-	libcblas_a-cblas_dtpsv.$(OBJEXT) \
-	libcblas_a-cblas_stbmv.$(OBJEXT) cdotcsub.$(OBJEXT) \
-	libcblas_a-cblas_cswap.$(OBJEXT) \
-	libcblas_a-cblas_dtrmm.$(OBJEXT) \
-	libcblas_a-cblas_stbsv.$(OBJEXT) cdotusub.$(OBJEXT) \
-	libcblas_a-cblas_csymm.$(OBJEXT) \
-	libcblas_a-cblas_dtrmv.$(OBJEXT) \
-	libcblas_a-cblas_stpmv.$(OBJEXT) dasumsub.$(OBJEXT) \
-	libcblas_a-cblas_csyr2k.$(OBJEXT) \
-	libcblas_a-cblas_dtrsm.$(OBJEXT) \
-	libcblas_a-cblas_stpsv.$(OBJEXT) ddotsub.$(OBJEXT) \
-	libcblas_a-cblas_csyrk.$(OBJEXT) \
-	libcblas_a-cblas_dtrsv.$(OBJEXT) \
-	libcblas_a-cblas_strmm.$(OBJEXT) dnrm2sub.$(OBJEXT) \
-	libcblas_a-cblas_ctbmv.$(OBJEXT) \
-	libcblas_a-cblas_dzasum.$(OBJEXT) \
-	libcblas_a-cblas_strmv.$(OBJEXT) dsdotsub.$(OBJEXT) \
-	libcblas_a-cblas_ctbsv.$(OBJEXT) \
-	libcblas_a-cblas_dznrm2.$(OBJEXT) \
-	libcblas_a-cblas_strsm.$(OBJEXT) dzasumsub.$(OBJEXT) \
-	libcblas_a-cblas_ctpmv.$(OBJEXT) \
-	libcblas_a-cblas_strsv.$(OBJEXT) dznrm2sub.$(OBJEXT) \
-	libcblas_a-cblas_ctpsv.$(OBJEXT) \
-	libcblas_a-cblas_globals.$(OBJEXT) \
-	libcblas_a-cblas_xerbla.$(OBJEXT) icamaxsub.$(OBJEXT) \
-	libcblas_a-cblas_ctrmm.$(OBJEXT) \
-	libcblas_a-cblas_zaxpy.$(OBJEXT) idamaxsub.$(OBJEXT) \
-	libcblas_a-cblas_ctrmv.$(OBJEXT) \
-	libcblas_a-cblas_icamax.$(OBJEXT) \
-	libcblas_a-cblas_zcopy.$(OBJEXT) isamaxsub.$(OBJEXT) \
-	libcblas_a-cblas_ctrsm.$(OBJEXT) \
-	libcblas_a-cblas_idamax.$(OBJEXT) \
-	libcblas_a-cblas_zdotc_sub.$(OBJEXT) izamaxsub.$(OBJEXT) \
-	libcblas_a-cblas_ctrsv.$(OBJEXT) \
-	libcblas_a-cblas_isamax.$(OBJEXT) \
-	libcblas_a-cblas_zdotu_sub.$(OBJEXT) \
-	libcblas_a-cblas_dasum.$(OBJEXT) \
-	libcblas_a-cblas_izamax.$(OBJEXT) \
-	libcblas_a-cblas_zdscal.$(OBJEXT) sasumsub.$(OBJEXT) \
-	libcblas_a-cblas_daxpy.$(OBJEXT) \
-	libcblas_a-cblas_sasum.$(OBJEXT) \
-	libcblas_a-cblas_zgbmv.$(OBJEXT) scasumsub.$(OBJEXT) \
-	libcblas_a-cblas_dcopy.$(OBJEXT) \
-	libcblas_a-cblas_saxpy.$(OBJEXT) \
-	libcblas_a-cblas_zgemm.$(OBJEXT) scnrm2sub.$(OBJEXT) \
-	libcblas_a-cblas_ddot.$(OBJEXT) \
-	libcblas_a-cblas_scasum.$(OBJEXT) \
-	libcblas_a-cblas_zgemv.$(OBJEXT) sdotsub.$(OBJEXT) \
-	libcblas_a-cblas_dgbmv.$(OBJEXT) \
-	libcblas_a-cblas_scnrm2.$(OBJEXT) \
-	libcblas_a-cblas_zgerc.$(OBJEXT) sdsdotsub.$(OBJEXT) \
-	libcblas_a-cblas_dgemm.$(OBJEXT) \
-	libcblas_a-cblas_scopy.$(OBJEXT) \
-	libcblas_a-cblas_zgeru.$(OBJEXT) snrm2sub.$(OBJEXT) \
-	libcblas_a-cblas_dgemv.$(OBJEXT) \
-	libcblas_a-cblas_sdot.$(OBJEXT) \
-	libcblas_a-cblas_zhbmv.$(OBJEXT) libcblas_a-xerbla.$(OBJEXT) \
-	libcblas_a-cblas_dger.$(OBJEXT) \
-	libcblas_a-cblas_sdsdot.$(OBJEXT) \
-	libcblas_a-cblas_zhemm.$(OBJEXT) zdotcsub.$(OBJEXT) \
-	libcblas_a-cblas_dnrm2.$(OBJEXT) \
-	libcblas_a-cblas_sgbmv.$(OBJEXT) \
-	libcblas_a-cblas_zhemv.$(OBJEXT) zdotusub.$(OBJEXT)
-nodist_libcblas_a_OBJECTS = $(am__objects_1)
-libcblas_a_OBJECTS = $(nodist_libcblas_a_OBJECTS)
-libf77blas_a_AR = $(AR) $(ARFLAGS)
-libf77blas_a_LIBADD =
-am__objects_2 = caxpy.$(OBJEXT) crotg.$(OBJEXT) dcopy.$(OBJEXT) \
-	dsymv.$(OBJEXT) lsame.$(OBJEXT) sspmv.$(OBJEXT) \
-	zaxpy.$(OBJEXT) zhpr2.$(OBJEXT) ccopy.$(OBJEXT) \
-	cscal.$(OBJEXT) ddot.$(OBJEXT) dsyr2.$(OBJEXT) sasum.$(OBJEXT) \
-	sspr2.$(OBJEXT) zcopy.$(OBJEXT) zhpr.$(OBJEXT) cdotc.$(OBJEXT) \
-	csrot.$(OBJEXT) dgbmv.$(OBJEXT) dsyr2k.$(OBJEXT) \
-	saxpy.$(OBJEXT) sspr.$(OBJEXT) zdotc.$(OBJEXT) zrotg.$(OBJEXT) \
-	cdotu.$(OBJEXT) csscal.$(OBJEXT) dgemm.$(OBJEXT) \
-	dsyr.$(OBJEXT) scasum.$(OBJEXT) sswap.$(OBJEXT) \
-	zdotu.$(OBJEXT) zscal.$(OBJEXT) cgbmv.$(OBJEXT) \
-	cswap.$(OBJEXT) dgemv.$(OBJEXT) dsyrk.$(OBJEXT) \
-	scnrm2.$(OBJEXT) ssymm.$(OBJEXT) zdrot.$(OBJEXT) \
-	zswap.$(OBJEXT) cgemm.$(OBJEXT) csymm.$(OBJEXT) dger.$(OBJEXT) \
-	dtbmv.$(OBJEXT) scopy.$(OBJEXT) ssymv.$(OBJEXT) \
-	zdscal.$(OBJEXT) zsymm.$(OBJEXT) cgemv.$(OBJEXT) \
-	csyr2k.$(OBJEXT) dnrm2.$(OBJEXT) dtbsv.$(OBJEXT) \
-	sdot.$(OBJEXT) ssyr2.$(OBJEXT) zgbmv.$(OBJEXT) \
-	zsyr2k.$(OBJEXT) cgerc.$(OBJEXT) csyrk.$(OBJEXT) \
-	drot.$(OBJEXT) dtpmv.$(OBJEXT) sdsdot.$(OBJEXT) \
-	ssyr2k.$(OBJEXT) zgemm.$(OBJEXT) zsyrk.$(OBJEXT) \
-	cgeru.$(OBJEXT) ctbmv.$(OBJEXT) drotg.$(OBJEXT) \
-	dtpsv.$(OBJEXT) sgbmv.$(OBJEXT) ssyr.$(OBJEXT) zgemv.$(OBJEXT) \
-	ztbmv.$(OBJEXT) chbmv.$(OBJEXT) ctbsv.$(OBJEXT) \
-	drotm.$(OBJEXT) dtrmm.$(OBJEXT) sgemm.$(OBJEXT) \
-	ssyrk.$(OBJEXT) zgerc.$(OBJEXT) ztbsv.$(OBJEXT) \
-	chemm.$(OBJEXT) ctpmv.$(OBJEXT) drotmg.$(OBJEXT) \
-	dtrmv.$(OBJEXT) sgemv.$(OBJEXT) stbmv.$(OBJEXT) \
-	zgeru.$(OBJEXT) ztpmv.$(OBJEXT) chemv.$(OBJEXT) \
-	ctpsv.$(OBJEXT) dsbmv.$(OBJEXT) dtrsm.$(OBJEXT) sger.$(OBJEXT) \
-	stbsv.$(OBJEXT) zhbmv.$(OBJEXT) ztpsv.$(OBJEXT) \
-	cher2.$(OBJEXT) ctrmm.$(OBJEXT) dscal.$(OBJEXT) \
-	dtrsv.$(OBJEXT) snrm2.$(OBJEXT) stpmv.$(OBJEXT) \
-	zhemm.$(OBJEXT) ztrmm.$(OBJEXT) cher2k.$(OBJEXT) \
-	ctrmv.$(OBJEXT) dsdot.$(OBJEXT) dzasum.$(OBJEXT) \
-	srot.$(OBJEXT) stpsv.$(OBJEXT) zhemv.$(OBJEXT) ztrmv.$(OBJEXT) \
-	cher.$(OBJEXT) ctrsm.$(OBJEXT) dspmv.$(OBJEXT) \
-	dznrm2.$(OBJEXT) srotg.$(OBJEXT) strmm.$(OBJEXT) \
-	zher2.$(OBJEXT) ztrsm.$(OBJEXT) cherk.$(OBJEXT) \
-	ctrsv.$(OBJEXT) dspr2.$(OBJEXT) icamax.$(OBJEXT) \
-	srotm.$(OBJEXT) strmv.$(OBJEXT) zher2k.$(OBJEXT) \
-	ztrsv.$(OBJEXT) chpmv.$(OBJEXT) dasum.$(OBJEXT) dspr.$(OBJEXT) \
-	idamax.$(OBJEXT) srotmg.$(OBJEXT) strsm.$(OBJEXT) \
-	zher.$(OBJEXT) chpr2.$(OBJEXT) daxpy.$(OBJEXT) dswap.$(OBJEXT) \
-	isamax.$(OBJEXT) ssbmv.$(OBJEXT) strsv.$(OBJEXT) \
-	zherk.$(OBJEXT) chpr.$(OBJEXT) dcabs1.$(OBJEXT) \
-	dsymm.$(OBJEXT) izamax.$(OBJEXT) sscal.$(OBJEXT) \
-	blas_xerbla.$(OBJEXT) zhpmv.$(OBJEXT)
-nodist_libf77blas_a_OBJECTS = $(am__objects_2)
-libf77blas_a_OBJECTS = $(nodist_libf77blas_a_OBJECTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS)
-AM_V_F77 = $(am__v_F77_ at AM_V@)
-am__v_F77_ = $(am__v_F77_ at AM_DEFAULT_V@)
-am__v_F77_0 = @echo "  F77     " $@;
-am__v_F77_1 = 
-F77LD = $(F77)
-F77LINK = $(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
-	$@
-AM_V_F77LD = $(am__v_F77LD_ at AM_V@)
-am__v_F77LD_ = $(am__v_F77LD_ at AM_DEFAULT_V@)
-am__v_F77LD_0 = @echo "  F77LD   " $@;
-am__v_F77LD_1 = 
-SOURCES = $(nodist_libcblas_a_SOURCES) $(nodist_libf77blas_a_SOURCES)
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-DIRPKG = ../pkg
-BLAS_TGZ = $(DIRPKG)/blas.tgz
-CBLAS_TGZ = $(DIRPKG)/cblas.tgz
-PKGCOMMON_PACKTITLE = BLAS
-PKGCOMMON_PACKAGES = $(BLAS_TGZ) $(CBLAS_TGZ) ../pkg/OpenBLAS.tar.gz
-EXTRA_DIST = \
-openblas.patches 
-
-
-# Downloading and compiling the Generic Blas
-# ------------------------------------------
-noinst_LIBRARIES = @DOWNLOADED_BLAS@
-EXTRA_LIBRARIES = libf77blas.a libcblas.a
-
-# List of files to compile (do not list them in *_SOURCES to prevent them from being included in distributions).
-F77BLAS_SOURCES = BLAS/caxpy.f BLAS/crotg.f BLAS/dcopy.f BLAS/dsymv.f BLAS/lsame.f BLAS/sspmv.f BLAS/zaxpy.f BLAS/zhpr2.f	\
-BLAS/ccopy.f BLAS/cscal.f BLAS/ddot.f BLAS/dsyr2.f BLAS/sasum.f BLAS/sspr2.f BLAS/zcopy.f BLAS/zhpr.f BLAS/cdotc.f	\
-BLAS/csrot.f BLAS/dgbmv.f BLAS/dsyr2k.f BLAS/saxpy.f BLAS/sspr.f BLAS/zdotc.f BLAS/zrotg.f BLAS/cdotu.f BLAS/csscal.f	\
-BLAS/dgemm.f BLAS/dsyr.f BLAS/scasum.f BLAS/sswap.f BLAS/zdotu.f BLAS/zscal.f BLAS/cgbmv.f BLAS/cswap.f BLAS/dgemv.f	\
-BLAS/dsyrk.f BLAS/scnrm2.f BLAS/ssymm.f BLAS/zdrot.f BLAS/zswap.f BLAS/cgemm.f BLAS/csymm.f BLAS/dger.f BLAS/dtbmv.f	\
-BLAS/scopy.f BLAS/ssymv.f BLAS/zdscal.f BLAS/zsymm.f BLAS/cgemv.f BLAS/csyr2k.f BLAS/dnrm2.f BLAS/dtbsv.f BLAS/sdot.f	\
-BLAS/ssyr2.f BLAS/zgbmv.f BLAS/zsyr2k.f BLAS/cgerc.f BLAS/csyrk.f BLAS/drot.f BLAS/dtpmv.f BLAS/sdsdot.f BLAS/ssyr2k.f	\
-BLAS/zgemm.f BLAS/zsyrk.f BLAS/cgeru.f BLAS/ctbmv.f BLAS/drotg.f BLAS/dtpsv.f BLAS/sgbmv.f BLAS/ssyr.f BLAS/zgemv.f	\
-BLAS/ztbmv.f BLAS/chbmv.f BLAS/ctbsv.f BLAS/drotm.f BLAS/dtrmm.f BLAS/sgemm.f BLAS/ssyrk.f BLAS/zgerc.f BLAS/ztbsv.f	\
-BLAS/chemm.f BLAS/ctpmv.f BLAS/drotmg.f BLAS/dtrmv.f BLAS/sgemv.f BLAS/stbmv.f BLAS/zgeru.f BLAS/ztpmv.f BLAS/chemv.f	\
-BLAS/ctpsv.f BLAS/dsbmv.f BLAS/dtrsm.f BLAS/sger.f BLAS/stbsv.f BLAS/zhbmv.f BLAS/ztpsv.f BLAS/cher2.f BLAS/ctrmm.f	\
-BLAS/dscal.f BLAS/dtrsv.f BLAS/snrm2.f BLAS/stpmv.f BLAS/zhemm.f BLAS/ztrmm.f BLAS/cher2k.f BLAS/ctrmv.f BLAS/dsdot.f	\
-BLAS/dzasum.f BLAS/srot.f BLAS/stpsv.f BLAS/zhemv.f BLAS/ztrmv.f BLAS/cher.f BLAS/ctrsm.f BLAS/dspmv.f BLAS/dznrm2.f	\
-BLAS/srotg.f BLAS/strmm.f BLAS/zher2.f BLAS/ztrsm.f BLAS/cherk.f BLAS/ctrsv.f BLAS/dspr2.f BLAS/icamax.f BLAS/srotm.f	\
-BLAS/strmv.f BLAS/zher2k.f BLAS/ztrsv.f BLAS/chpmv.f BLAS/dasum.f BLAS/dspr.f BLAS/idamax.f BLAS/srotmg.f BLAS/strsm.f	\
-BLAS/zher.f BLAS/chpr2.f BLAS/daxpy.f BLAS/dswap.f BLAS/isamax.f BLAS/ssbmv.f BLAS/strsv.f BLAS/zherk.f BLAS/chpr.f	\
-BLAS/dcabs1.f BLAS/dsymm.f BLAS/izamax.f BLAS/sscal.f blas_xerbla.f BLAS/zhpmv.f
-
-CBLAS_SOURCES = CBLAS/src/cblas_caxpy.c CBLAS/src/cblas_drot.c CBLAS/src/cblas_sgemm.c CBLAS/src/cblas_zher2.c		\
-CBLAS/src/cblas_ccopy.c CBLAS/src/cblas_drotg.c CBLAS/src/cblas_sgemv.c CBLAS/src/cblas_zher2k.c			\
-CBLAS/src/cblas_cdotc_sub.c CBLAS/src/cblas_drotm.c CBLAS/src/cblas_sger.c CBLAS/src/cblas_zher.c			\
-CBLAS/src/cblas_cdotu_sub.c CBLAS/src/cblas_drotmg.c CBLAS/src/cblas_snrm2.c CBLAS/src/cblas_zherk.c			\
-CBLAS/src/cblas_cgbmv.c CBLAS/src/cblas_dsbmv.c CBLAS/src/cblas_srot.c CBLAS/src/cblas_zhpmv.c CBLAS/src/cblas_cgemm.c	\
-CBLAS/src/cblas_dscal.c CBLAS/src/cblas_srotg.c CBLAS/src/cblas_zhpr2.c CBLAS/src/cblas_cgemv.c CBLAS/src/cblas_dsdot.c	\
-CBLAS/src/cblas_srotm.c CBLAS/src/cblas_zhpr.c CBLAS/src/cblas_cgerc.c CBLAS/src/cblas_dspmv.c CBLAS/src/cblas_srotmg.c	\
-CBLAS/src/cblas_zscal.c CBLAS/src/cblas_cgeru.c CBLAS/src/cblas_dspr2.c CBLAS/src/cblas_ssbmv.c CBLAS/src/cblas_zswap.c	\
-CBLAS/src/cblas_chbmv.c CBLAS/src/cblas_dspr.c CBLAS/src/cblas_sscal.c CBLAS/src/cblas_zsymm.c CBLAS/src/cblas_chemm.c	\
-CBLAS/src/cblas_dswap.c CBLAS/src/cblas_sspmv.c CBLAS/src/cblas_zsyr2k.c CBLAS/src/cblas_chemv.c			\
-CBLAS/src/cblas_dsymm.c CBLAS/src/cblas_sspr2.c CBLAS/src/cblas_zsyrk.c CBLAS/src/cblas_cher2.c CBLAS/src/cblas_dsymv.c	\
-CBLAS/src/cblas_sspr.c CBLAS/src/cblas_ztbmv.c CBLAS/src/cblas_cher2k.c CBLAS/src/cblas_dsyr2.c CBLAS/src/cblas_sswap.c	\
-CBLAS/src/cblas_ztbsv.c CBLAS/src/cblas_cher.c CBLAS/src/cblas_dsyr2k.c CBLAS/src/cblas_ssymm.c CBLAS/src/cblas_ztpmv.c	\
-CBLAS/src/cblas_cherk.c CBLAS/src/cblas_dsyr.c CBLAS/src/cblas_ssymv.c CBLAS/src/cblas_ztpsv.c CBLAS/src/cblas_chpmv.c	\
-CBLAS/src/cblas_dsyrk.c CBLAS/src/cblas_ssyr2.c CBLAS/src/cblas_ztrmm.c CBLAS/src/cblas_chpr2.c CBLAS/src/cblas_dtbmv.c	\
-CBLAS/src/cblas_ssyr2k.c CBLAS/src/cblas_ztrmv.c CBLAS/src/cblas_chpr.c CBLAS/src/cblas_dtbsv.c CBLAS/src/cblas_ssyr.c	\
-CBLAS/src/cblas_ztrsm.c CBLAS/src/cblas_cscal.c CBLAS/src/cblas_dtpmv.c CBLAS/src/cblas_ssyrk.c CBLAS/src/cblas_ztrsv.c	\
-CBLAS/src/cblas_csscal.c CBLAS/src/cblas_dtpsv.c CBLAS/src/cblas_stbmv.c CBLAS/src/cdotcsub.f CBLAS/src/cblas_cswap.c	\
-CBLAS/src/cblas_dtrmm.c CBLAS/src/cblas_stbsv.c CBLAS/src/cdotusub.f CBLAS/src/cblas_csymm.c CBLAS/src/cblas_dtrmv.c	\
-CBLAS/src/cblas_stpmv.c CBLAS/src/dasumsub.f CBLAS/src/cblas_csyr2k.c CBLAS/src/cblas_dtrsm.c CBLAS/src/cblas_stpsv.c	\
-CBLAS/src/ddotsub.f CBLAS/src/cblas_csyrk.c CBLAS/src/cblas_dtrsv.c CBLAS/src/cblas_strmm.c CBLAS/src/dnrm2sub.f	\
-CBLAS/src/cblas_ctbmv.c CBLAS/src/cblas_dzasum.c CBLAS/src/cblas_strmv.c CBLAS/src/dsdotsub.f CBLAS/src/cblas_ctbsv.c	\
-CBLAS/src/cblas_dznrm2.c CBLAS/src/cblas_strsm.c CBLAS/src/dzasumsub.f CBLAS/src/cblas_ctpmv.c CBLAS/src/cblas_f77.h	\
-CBLAS/src/cblas_strsv.c CBLAS/src/dznrm2sub.f CBLAS/src/cblas_ctpsv.c CBLAS/src/cblas_globals.c				\
-CBLAS/src/cblas_xerbla.c CBLAS/src/icamaxsub.f CBLAS/src/cblas_ctrmm.c CBLAS/src/cblas.h CBLAS/src/cblas_zaxpy.c	\
-CBLAS/src/idamaxsub.f CBLAS/src/cblas_ctrmv.c CBLAS/src/cblas_icamax.c CBLAS/src/cblas_zcopy.c CBLAS/src/isamaxsub.f	\
-CBLAS/src/cblas_ctrsm.c CBLAS/src/cblas_idamax.c CBLAS/src/cblas_zdotc_sub.c CBLAS/src/izamaxsub.f			\
-CBLAS/src/cblas_ctrsv.c CBLAS/src/cblas_isamax.c CBLAS/src/cblas_zdotu_sub.c CBLAS/src/Makefile CBLAS/src/cblas_dasum.c	\
-CBLAS/src/cblas_izamax.c CBLAS/src/cblas_zdscal.c CBLAS/src/sasumsub.f CBLAS/src/cblas_daxpy.c CBLAS/src/cblas_sasum.c	\
-CBLAS/src/cblas_zgbmv.c CBLAS/src/scasumsub.f CBLAS/src/cblas_dcopy.c CBLAS/src/cblas_saxpy.c CBLAS/src/cblas_zgemm.c	\
-CBLAS/src/scnrm2sub.f CBLAS/src/cblas_ddot.c CBLAS/src/cblas_scasum.c CBLAS/src/cblas_zgemv.c CBLAS/src/sdotsub.f	\
-CBLAS/src/cblas_dgbmv.c CBLAS/src/cblas_scnrm2.c CBLAS/src/cblas_zgerc.c CBLAS/src/sdsdotsub.f CBLAS/src/cblas_dgemm.c	\
-CBLAS/src/cblas_scopy.c CBLAS/src/cblas_zgeru.c CBLAS/src/snrm2sub.f CBLAS/src/cblas_dgemv.c CBLAS/src/cblas_sdot.c	\
-CBLAS/src/cblas_zhbmv.c CBLAS/src/xerbla.c CBLAS/src/cblas_dger.c CBLAS/src/cblas_sdsdot.c CBLAS/src/cblas_zhemm.c	\
-CBLAS/src/zdotcsub.f CBLAS/src/cblas_dnrm2.c CBLAS/src/cblas_sgbmv.c CBLAS/src/cblas_zhemv.c CBLAS/src/zdotusub.f
-
-nodist_libf77blas_a_SOURCES = $(F77BLAS_SOURCES)
-nodist_libcblas_a_SOURCES = $(CBLAS_SOURCES)
-BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-
-# -ICBLAS/include to find cblas.h
-libcblas_a_CFLAGS = -DADD_ -ICBLAS/include
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .f .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../common.mak $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu download/blas/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu download/blas/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-$(srcdir)/../common.mak:
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-libcblas.a: $(libcblas_a_OBJECTS) $(libcblas_a_DEPENDENCIES) $(EXTRA_libcblas_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libcblas.a
-	$(AM_V_AR)$(libcblas_a_AR) libcblas.a $(libcblas_a_OBJECTS) $(libcblas_a_LIBADD)
-	$(AM_V_at)$(RANLIB) libcblas.a
-
-libf77blas.a: $(libf77blas_a_OBJECTS) $(libf77blas_a_DEPENDENCIES) $(EXTRA_libf77blas_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libf77blas.a
-	$(AM_V_AR)$(libf77blas_a_AR) libf77blas.a $(libf77blas_a_OBJECTS) $(libf77blas_a_LIBADD)
-	$(AM_V_at)$(RANLIB) libf77blas.a
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_caxpy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ccopy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cdotc_sub.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cdotu_sub.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cgbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cgemm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cgemv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cgerc.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cgeru.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_chbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_chemm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_chemv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cher.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cher2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cher2k.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cherk.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_chpmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_chpr.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_chpr2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cscal.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_csscal.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_cswap.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_csymm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_csyr2k.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_csyrk.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ctbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ctbsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ctpmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ctpsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ctrmm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ctrmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ctrsm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ctrsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dasum.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_daxpy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dcopy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ddot.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dgbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dgemm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dgemv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dger.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dnrm2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_drot.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_drotg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_drotm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_drotmg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dsbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dscal.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dsdot.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dspmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dspr.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dspr2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dswap.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dsymm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dsymv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dsyr.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dsyr2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dsyr2k.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dsyrk.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dtbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dtbsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dtpmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dtpsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dtrmm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dtrmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dtrsm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dtrsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dzasum.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_dznrm2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_globals.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_icamax.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_idamax.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_isamax.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_izamax.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sasum.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_saxpy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_scasum.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_scnrm2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_scopy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sdot.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sdsdot.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sgbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sgemm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sgemv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sger.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_snrm2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_srot.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_srotg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_srotm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_srotmg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ssbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sscal.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sspmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sspr.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sspr2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_sswap.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ssymm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ssymv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ssyr.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ssyr2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ssyr2k.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ssyrk.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_stbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_stbsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_stpmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_stpsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_strmm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_strmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_strsm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_strsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_xerbla.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zaxpy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zcopy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zdotc_sub.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zdotu_sub.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zdscal.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zgbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zgemm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zgemv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zgerc.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zgeru.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zhbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zhemm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zhemv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zher.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zher2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zher2k.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zherk.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zhpmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zhpr.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zhpr2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zscal.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zswap.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zsymm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zsyr2k.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_zsyrk.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ztbmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ztbsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ztpmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ztpsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ztrmm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ztrmv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ztrsm.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-cblas_ztrsv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libcblas_a-xerbla.Po at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-libcblas_a-cblas_caxpy.o: CBLAS/src/cblas_caxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_caxpy.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_caxpy.Tpo -c -o libcblas_a-cblas_caxpy.o `test -f 'CBLAS/src/cblas_caxpy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_caxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_caxpy.Tpo $(DEPDIR)/libcblas_a-cblas_caxpy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_caxpy.c' object='libcblas_a-cblas_caxpy.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_caxpy.o `test -f 'CBLAS/src/cblas_caxpy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_caxpy.c
-
-libcblas_a-cblas_caxpy.obj: CBLAS/src/cblas_caxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_caxpy.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_caxpy.Tpo -c -o libcblas_a-cblas_caxpy.obj `if test -f 'CBLAS/src/cblas_caxpy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_caxpy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_caxpy.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_caxpy.Tpo $(DEPDIR)/libcblas_a-cblas_caxpy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_caxpy.c' object='libcblas_a-cblas_caxpy.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_caxpy.obj `if test -f 'CBLAS/src/cblas_caxpy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_caxpy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_caxpy.c'; fi`
-
-libcblas_a-cblas_drot.o: CBLAS/src/cblas_drot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_drot.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_drot.Tpo -c -o libcblas_a-cblas_drot.o `test -f 'CBLAS/src/cblas_drot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_drot.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_drot.Tpo $(DEPDIR)/libcblas_a-cblas_drot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_drot.c' object='libcblas_a-cblas_drot.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_drot.o `test -f 'CBLAS/src/cblas_drot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_drot.c
-
-libcblas_a-cblas_drot.obj: CBLAS/src/cblas_drot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_drot.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_drot.Tpo -c -o libcblas_a-cblas_drot.obj `if test -f 'CBLAS/src/cblas_drot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_drot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_drot.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_drot.Tpo $(DEPDIR)/libcblas_a-cblas_drot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_drot.c' object='libcblas_a-cblas_drot.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_drot.obj `if test -f 'CBLAS/src/cblas_drot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_drot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_drot.c'; fi`
-
-libcblas_a-cblas_sgemm.o: CBLAS/src/cblas_sgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sgemm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sgemm.Tpo -c -o libcblas_a-cblas_sgemm.o `test -f 'CBLAS/src/cblas_sgemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sgemm.Tpo $(DEPDIR)/libcblas_a-cblas_sgemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sgemm.c' object='libcblas_a-cblas_sgemm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sgemm.o `test -f 'CBLAS/src/cblas_sgemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sgemm.c
-
-libcblas_a-cblas_sgemm.obj: CBLAS/src/cblas_sgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sgemm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sgemm.Tpo -c -o libcblas_a-cblas_sgemm.obj `if test -f 'CBLAS/src/cblas_sgemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sgemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sgemm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sgemm.Tpo $(DEPDIR)/libcblas_a-cblas_sgemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sgemm.c' object='libcblas_a-cblas_sgemm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sgemm.obj `if test -f 'CBLAS/src/cblas_sgemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sgemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sgemm.c'; fi`
-
-libcblas_a-cblas_zher2.o: CBLAS/src/cblas_zher2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zher2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zher2.Tpo -c -o libcblas_a-cblas_zher2.o `test -f 'CBLAS/src/cblas_zher2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zher2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zher2.Tpo $(DEPDIR)/libcblas_a-cblas_zher2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zher2.c' object='libcblas_a-cblas_zher2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zher2.o `test -f 'CBLAS/src/cblas_zher2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zher2.c
-
-libcblas_a-cblas_zher2.obj: CBLAS/src/cblas_zher2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zher2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zher2.Tpo -c -o libcblas_a-cblas_zher2.obj `if test -f 'CBLAS/src/cblas_zher2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zher2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zher2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zher2.Tpo $(DEPDIR)/libcblas_a-cblas_zher2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zher2.c' object='libcblas_a-cblas_zher2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zher2.obj `if test -f 'CBLAS/src/cblas_zher2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zher2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zher2.c'; fi`
-
-libcblas_a-cblas_ccopy.o: CBLAS/src/cblas_ccopy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ccopy.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ccopy.Tpo -c -o libcblas_a-cblas_ccopy.o `test -f 'CBLAS/src/cblas_ccopy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ccopy.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ccopy.Tpo $(DEPDIR)/libcblas_a-cblas_ccopy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ccopy.c' object='libcblas_a-cblas_ccopy.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ccopy.o `test -f 'CBLAS/src/cblas_ccopy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ccopy.c
-
-libcblas_a-cblas_ccopy.obj: CBLAS/src/cblas_ccopy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ccopy.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ccopy.Tpo -c -o libcblas_a-cblas_ccopy.obj `if test -f 'CBLAS/src/cblas_ccopy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ccopy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ccopy.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ccopy.Tpo $(DEPDIR)/libcblas_a-cblas_ccopy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ccopy.c' object='libcblas_a-cblas_ccopy.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ccopy.obj `if test -f 'CBLAS/src/cblas_ccopy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ccopy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ccopy.c'; fi`
-
-libcblas_a-cblas_drotg.o: CBLAS/src/cblas_drotg.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_drotg.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_drotg.Tpo -c -o libcblas_a-cblas_drotg.o `test -f 'CBLAS/src/cblas_drotg.c' || echo '$(srcdir)/'`CBLAS/src/cblas_drotg.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_drotg.Tpo $(DEPDIR)/libcblas_a-cblas_drotg.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_drotg.c' object='libcblas_a-cblas_drotg.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_drotg.o `test -f 'CBLAS/src/cblas_drotg.c' || echo '$(srcdir)/'`CBLAS/src/cblas_drotg.c
-
-libcblas_a-cblas_drotg.obj: CBLAS/src/cblas_drotg.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_drotg.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_drotg.Tpo -c -o libcblas_a-cblas_drotg.obj `if test -f 'CBLAS/src/cblas_drotg.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_drotg.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_drotg.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_drotg.Tpo $(DEPDIR)/libcblas_a-cblas_drotg.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_drotg.c' object='libcblas_a-cblas_drotg.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_drotg.obj `if test -f 'CBLAS/src/cblas_drotg.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_drotg.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_drotg.c'; fi`
-
-libcblas_a-cblas_sgemv.o: CBLAS/src/cblas_sgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sgemv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sgemv.Tpo -c -o libcblas_a-cblas_sgemv.o `test -f 'CBLAS/src/cblas_sgemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sgemv.Tpo $(DEPDIR)/libcblas_a-cblas_sgemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sgemv.c' object='libcblas_a-cblas_sgemv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sgemv.o `test -f 'CBLAS/src/cblas_sgemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sgemv.c
-
-libcblas_a-cblas_sgemv.obj: CBLAS/src/cblas_sgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sgemv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sgemv.Tpo -c -o libcblas_a-cblas_sgemv.obj `if test -f 'CBLAS/src/cblas_sgemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sgemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sgemv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sgemv.Tpo $(DEPDIR)/libcblas_a-cblas_sgemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sgemv.c' object='libcblas_a-cblas_sgemv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sgemv.obj `if test -f 'CBLAS/src/cblas_sgemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sgemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sgemv.c'; fi`
-
-libcblas_a-cblas_zher2k.o: CBLAS/src/cblas_zher2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zher2k.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zher2k.Tpo -c -o libcblas_a-cblas_zher2k.o `test -f 'CBLAS/src/cblas_zher2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zher2k.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zher2k.Tpo $(DEPDIR)/libcblas_a-cblas_zher2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zher2k.c' object='libcblas_a-cblas_zher2k.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zher2k.o `test -f 'CBLAS/src/cblas_zher2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zher2k.c
-
-libcblas_a-cblas_zher2k.obj: CBLAS/src/cblas_zher2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zher2k.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zher2k.Tpo -c -o libcblas_a-cblas_zher2k.obj `if test -f 'CBLAS/src/cblas_zher2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zher2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zher2k.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zher2k.Tpo $(DEPDIR)/libcblas_a-cblas_zher2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zher2k.c' object='libcblas_a-cblas_zher2k.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zher2k.obj `if test -f 'CBLAS/src/cblas_zher2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zher2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zher2k.c'; fi`
-
-libcblas_a-cblas_cdotc_sub.o: CBLAS/src/cblas_cdotc_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cdotc_sub.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cdotc_sub.Tpo -c -o libcblas_a-cblas_cdotc_sub.o `test -f 'CBLAS/src/cblas_cdotc_sub.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cdotc_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cdotc_sub.Tpo $(DEPDIR)/libcblas_a-cblas_cdotc_sub.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cdotc_sub.c' object='libcblas_a-cblas_cdotc_sub.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cdotc_sub.o `test -f 'CBLAS/src/cblas_cdotc_sub.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cdotc_sub.c
-
-libcblas_a-cblas_cdotc_sub.obj: CBLAS/src/cblas_cdotc_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cdotc_sub.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cdotc_sub.Tpo -c -o libcblas_a-cblas_cdotc_sub.obj `if test -f 'CBLAS/src/cblas_cdotc_sub.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cdotc_sub.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cdotc_sub.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cdotc_sub.Tpo $(DEPDIR)/libcblas_a-cblas_cdotc_sub.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cdotc_sub.c' object='libcblas_a-cblas_cdotc_sub.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cdotc_sub.obj `if test -f 'CBLAS/src/cblas_cdotc_sub.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cdotc_sub.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cdotc_sub.c'; fi`
-
-libcblas_a-cblas_drotm.o: CBLAS/src/cblas_drotm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_drotm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_drotm.Tpo -c -o libcblas_a-cblas_drotm.o `test -f 'CBLAS/src/cblas_drotm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_drotm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_drotm.Tpo $(DEPDIR)/libcblas_a-cblas_drotm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_drotm.c' object='libcblas_a-cblas_drotm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_drotm.o `test -f 'CBLAS/src/cblas_drotm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_drotm.c
-
-libcblas_a-cblas_drotm.obj: CBLAS/src/cblas_drotm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_drotm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_drotm.Tpo -c -o libcblas_a-cblas_drotm.obj `if test -f 'CBLAS/src/cblas_drotm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_drotm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_drotm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_drotm.Tpo $(DEPDIR)/libcblas_a-cblas_drotm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_drotm.c' object='libcblas_a-cblas_drotm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_drotm.obj `if test -f 'CBLAS/src/cblas_drotm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_drotm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_drotm.c'; fi`
-
-libcblas_a-cblas_sger.o: CBLAS/src/cblas_sger.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sger.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sger.Tpo -c -o libcblas_a-cblas_sger.o `test -f 'CBLAS/src/cblas_sger.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sger.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sger.Tpo $(DEPDIR)/libcblas_a-cblas_sger.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sger.c' object='libcblas_a-cblas_sger.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sger.o `test -f 'CBLAS/src/cblas_sger.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sger.c
-
-libcblas_a-cblas_sger.obj: CBLAS/src/cblas_sger.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sger.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sger.Tpo -c -o libcblas_a-cblas_sger.obj `if test -f 'CBLAS/src/cblas_sger.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sger.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sger.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sger.Tpo $(DEPDIR)/libcblas_a-cblas_sger.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sger.c' object='libcblas_a-cblas_sger.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sger.obj `if test -f 'CBLAS/src/cblas_sger.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sger.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sger.c'; fi`
-
-libcblas_a-cblas_zher.o: CBLAS/src/cblas_zher.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zher.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zher.Tpo -c -o libcblas_a-cblas_zher.o `test -f 'CBLAS/src/cblas_zher.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zher.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zher.Tpo $(DEPDIR)/libcblas_a-cblas_zher.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zher.c' object='libcblas_a-cblas_zher.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zher.o `test -f 'CBLAS/src/cblas_zher.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zher.c
-
-libcblas_a-cblas_zher.obj: CBLAS/src/cblas_zher.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zher.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zher.Tpo -c -o libcblas_a-cblas_zher.obj `if test -f 'CBLAS/src/cblas_zher.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zher.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zher.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zher.Tpo $(DEPDIR)/libcblas_a-cblas_zher.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zher.c' object='libcblas_a-cblas_zher.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zher.obj `if test -f 'CBLAS/src/cblas_zher.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zher.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zher.c'; fi`
-
-libcblas_a-cblas_cdotu_sub.o: CBLAS/src/cblas_cdotu_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cdotu_sub.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cdotu_sub.Tpo -c -o libcblas_a-cblas_cdotu_sub.o `test -f 'CBLAS/src/cblas_cdotu_sub.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cdotu_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cdotu_sub.Tpo $(DEPDIR)/libcblas_a-cblas_cdotu_sub.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cdotu_sub.c' object='libcblas_a-cblas_cdotu_sub.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cdotu_sub.o `test -f 'CBLAS/src/cblas_cdotu_sub.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cdotu_sub.c
-
-libcblas_a-cblas_cdotu_sub.obj: CBLAS/src/cblas_cdotu_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cdotu_sub.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cdotu_sub.Tpo -c -o libcblas_a-cblas_cdotu_sub.obj `if test -f 'CBLAS/src/cblas_cdotu_sub.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cdotu_sub.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cdotu_sub.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cdotu_sub.Tpo $(DEPDIR)/libcblas_a-cblas_cdotu_sub.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cdotu_sub.c' object='libcblas_a-cblas_cdotu_sub.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cdotu_sub.obj `if test -f 'CBLAS/src/cblas_cdotu_sub.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cdotu_sub.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cdotu_sub.c'; fi`
-
-libcblas_a-cblas_drotmg.o: CBLAS/src/cblas_drotmg.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_drotmg.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_drotmg.Tpo -c -o libcblas_a-cblas_drotmg.o `test -f 'CBLAS/src/cblas_drotmg.c' || echo '$(srcdir)/'`CBLAS/src/cblas_drotmg.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_drotmg.Tpo $(DEPDIR)/libcblas_a-cblas_drotmg.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_drotmg.c' object='libcblas_a-cblas_drotmg.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_drotmg.o `test -f 'CBLAS/src/cblas_drotmg.c' || echo '$(srcdir)/'`CBLAS/src/cblas_drotmg.c
-
-libcblas_a-cblas_drotmg.obj: CBLAS/src/cblas_drotmg.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_drotmg.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_drotmg.Tpo -c -o libcblas_a-cblas_drotmg.obj `if test -f 'CBLAS/src/cblas_drotmg.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_drotmg.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_drotmg.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_drotmg.Tpo $(DEPDIR)/libcblas_a-cblas_drotmg.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_drotmg.c' object='libcblas_a-cblas_drotmg.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_drotmg.obj `if test -f 'CBLAS/src/cblas_drotmg.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_drotmg.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_drotmg.c'; fi`
-
-libcblas_a-cblas_snrm2.o: CBLAS/src/cblas_snrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_snrm2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_snrm2.Tpo -c -o libcblas_a-cblas_snrm2.o `test -f 'CBLAS/src/cblas_snrm2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_snrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_snrm2.Tpo $(DEPDIR)/libcblas_a-cblas_snrm2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_snrm2.c' object='libcblas_a-cblas_snrm2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_snrm2.o `test -f 'CBLAS/src/cblas_snrm2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_snrm2.c
-
-libcblas_a-cblas_snrm2.obj: CBLAS/src/cblas_snrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_snrm2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_snrm2.Tpo -c -o libcblas_a-cblas_snrm2.obj `if test -f 'CBLAS/src/cblas_snrm2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_snrm2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_snrm2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_snrm2.Tpo $(DEPDIR)/libcblas_a-cblas_snrm2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_snrm2.c' object='libcblas_a-cblas_snrm2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_snrm2.obj `if test -f 'CBLAS/src/cblas_snrm2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_snrm2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_snrm2.c'; fi`
-
-libcblas_a-cblas_zherk.o: CBLAS/src/cblas_zherk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zherk.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zherk.Tpo -c -o libcblas_a-cblas_zherk.o `test -f 'CBLAS/src/cblas_zherk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zherk.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zherk.Tpo $(DEPDIR)/libcblas_a-cblas_zherk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zherk.c' object='libcblas_a-cblas_zherk.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zherk.o `test -f 'CBLAS/src/cblas_zherk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zherk.c
-
-libcblas_a-cblas_zherk.obj: CBLAS/src/cblas_zherk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zherk.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zherk.Tpo -c -o libcblas_a-cblas_zherk.obj `if test -f 'CBLAS/src/cblas_zherk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zherk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zherk.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zherk.Tpo $(DEPDIR)/libcblas_a-cblas_zherk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zherk.c' object='libcblas_a-cblas_zherk.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zherk.obj `if test -f 'CBLAS/src/cblas_zherk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zherk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zherk.c'; fi`
-
-libcblas_a-cblas_cgbmv.o: CBLAS/src/cblas_cgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgbmv.Tpo -c -o libcblas_a-cblas_cgbmv.o `test -f 'CBLAS/src/cblas_cgbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgbmv.Tpo $(DEPDIR)/libcblas_a-cblas_cgbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgbmv.c' object='libcblas_a-cblas_cgbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgbmv.o `test -f 'CBLAS/src/cblas_cgbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgbmv.c
-
-libcblas_a-cblas_cgbmv.obj: CBLAS/src/cblas_cgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgbmv.Tpo -c -o libcblas_a-cblas_cgbmv.obj `if test -f 'CBLAS/src/cblas_cgbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgbmv.Tpo $(DEPDIR)/libcblas_a-cblas_cgbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgbmv.c' object='libcblas_a-cblas_cgbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgbmv.obj `if test -f 'CBLAS/src/cblas_cgbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgbmv.c'; fi`
-
-libcblas_a-cblas_dsbmv.o: CBLAS/src/cblas_dsbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsbmv.Tpo -c -o libcblas_a-cblas_dsbmv.o `test -f 'CBLAS/src/cblas_dsbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsbmv.Tpo $(DEPDIR)/libcblas_a-cblas_dsbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsbmv.c' object='libcblas_a-cblas_dsbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsbmv.o `test -f 'CBLAS/src/cblas_dsbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsbmv.c
-
-libcblas_a-cblas_dsbmv.obj: CBLAS/src/cblas_dsbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsbmv.Tpo -c -o libcblas_a-cblas_dsbmv.obj `if test -f 'CBLAS/src/cblas_dsbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsbmv.Tpo $(DEPDIR)/libcblas_a-cblas_dsbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsbmv.c' object='libcblas_a-cblas_dsbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsbmv.obj `if test -f 'CBLAS/src/cblas_dsbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsbmv.c'; fi`
-
-libcblas_a-cblas_srot.o: CBLAS/src/cblas_srot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_srot.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_srot.Tpo -c -o libcblas_a-cblas_srot.o `test -f 'CBLAS/src/cblas_srot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_srot.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_srot.Tpo $(DEPDIR)/libcblas_a-cblas_srot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_srot.c' object='libcblas_a-cblas_srot.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_srot.o `test -f 'CBLAS/src/cblas_srot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_srot.c
-
-libcblas_a-cblas_srot.obj: CBLAS/src/cblas_srot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_srot.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_srot.Tpo -c -o libcblas_a-cblas_srot.obj `if test -f 'CBLAS/src/cblas_srot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_srot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_srot.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_srot.Tpo $(DEPDIR)/libcblas_a-cblas_srot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_srot.c' object='libcblas_a-cblas_srot.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_srot.obj `if test -f 'CBLAS/src/cblas_srot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_srot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_srot.c'; fi`
-
-libcblas_a-cblas_zhpmv.o: CBLAS/src/cblas_zhpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhpmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhpmv.Tpo -c -o libcblas_a-cblas_zhpmv.o `test -f 'CBLAS/src/cblas_zhpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhpmv.Tpo $(DEPDIR)/libcblas_a-cblas_zhpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhpmv.c' object='libcblas_a-cblas_zhpmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhpmv.o `test -f 'CBLAS/src/cblas_zhpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhpmv.c
-
-libcblas_a-cblas_zhpmv.obj: CBLAS/src/cblas_zhpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhpmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhpmv.Tpo -c -o libcblas_a-cblas_zhpmv.obj `if test -f 'CBLAS/src/cblas_zhpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhpmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhpmv.Tpo $(DEPDIR)/libcblas_a-cblas_zhpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhpmv.c' object='libcblas_a-cblas_zhpmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhpmv.obj `if test -f 'CBLAS/src/cblas_zhpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhpmv.c'; fi`
-
-libcblas_a-cblas_cgemm.o: CBLAS/src/cblas_cgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgemm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgemm.Tpo -c -o libcblas_a-cblas_cgemm.o `test -f 'CBLAS/src/cblas_cgemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgemm.Tpo $(DEPDIR)/libcblas_a-cblas_cgemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgemm.c' object='libcblas_a-cblas_cgemm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgemm.o `test -f 'CBLAS/src/cblas_cgemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgemm.c
-
-libcblas_a-cblas_cgemm.obj: CBLAS/src/cblas_cgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgemm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgemm.Tpo -c -o libcblas_a-cblas_cgemm.obj `if test -f 'CBLAS/src/cblas_cgemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgemm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgemm.Tpo $(DEPDIR)/libcblas_a-cblas_cgemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgemm.c' object='libcblas_a-cblas_cgemm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgemm.obj `if test -f 'CBLAS/src/cblas_cgemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgemm.c'; fi`
-
-libcblas_a-cblas_dscal.o: CBLAS/src/cblas_dscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dscal.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dscal.Tpo -c -o libcblas_a-cblas_dscal.o `test -f 'CBLAS/src/cblas_dscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dscal.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dscal.Tpo $(DEPDIR)/libcblas_a-cblas_dscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dscal.c' object='libcblas_a-cblas_dscal.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dscal.o `test -f 'CBLAS/src/cblas_dscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dscal.c
-
-libcblas_a-cblas_dscal.obj: CBLAS/src/cblas_dscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dscal.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dscal.Tpo -c -o libcblas_a-cblas_dscal.obj `if test -f 'CBLAS/src/cblas_dscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dscal.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dscal.Tpo $(DEPDIR)/libcblas_a-cblas_dscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dscal.c' object='libcblas_a-cblas_dscal.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dscal.obj `if test -f 'CBLAS/src/cblas_dscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dscal.c'; fi`
-
-libcblas_a-cblas_srotg.o: CBLAS/src/cblas_srotg.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_srotg.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_srotg.Tpo -c -o libcblas_a-cblas_srotg.o `test -f 'CBLAS/src/cblas_srotg.c' || echo '$(srcdir)/'`CBLAS/src/cblas_srotg.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_srotg.Tpo $(DEPDIR)/libcblas_a-cblas_srotg.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_srotg.c' object='libcblas_a-cblas_srotg.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_srotg.o `test -f 'CBLAS/src/cblas_srotg.c' || echo '$(srcdir)/'`CBLAS/src/cblas_srotg.c
-
-libcblas_a-cblas_srotg.obj: CBLAS/src/cblas_srotg.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_srotg.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_srotg.Tpo -c -o libcblas_a-cblas_srotg.obj `if test -f 'CBLAS/src/cblas_srotg.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_srotg.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_srotg.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_srotg.Tpo $(DEPDIR)/libcblas_a-cblas_srotg.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_srotg.c' object='libcblas_a-cblas_srotg.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_srotg.obj `if test -f 'CBLAS/src/cblas_srotg.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_srotg.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_srotg.c'; fi`
-
-libcblas_a-cblas_zhpr2.o: CBLAS/src/cblas_zhpr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhpr2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhpr2.Tpo -c -o libcblas_a-cblas_zhpr2.o `test -f 'CBLAS/src/cblas_zhpr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhpr2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhpr2.Tpo $(DEPDIR)/libcblas_a-cblas_zhpr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhpr2.c' object='libcblas_a-cblas_zhpr2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhpr2.o `test -f 'CBLAS/src/cblas_zhpr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhpr2.c
-
-libcblas_a-cblas_zhpr2.obj: CBLAS/src/cblas_zhpr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhpr2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhpr2.Tpo -c -o libcblas_a-cblas_zhpr2.obj `if test -f 'CBLAS/src/cblas_zhpr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhpr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhpr2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhpr2.Tpo $(DEPDIR)/libcblas_a-cblas_zhpr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhpr2.c' object='libcblas_a-cblas_zhpr2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhpr2.obj `if test -f 'CBLAS/src/cblas_zhpr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhpr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhpr2.c'; fi`
-
-libcblas_a-cblas_cgemv.o: CBLAS/src/cblas_cgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgemv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgemv.Tpo -c -o libcblas_a-cblas_cgemv.o `test -f 'CBLAS/src/cblas_cgemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgemv.Tpo $(DEPDIR)/libcblas_a-cblas_cgemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgemv.c' object='libcblas_a-cblas_cgemv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgemv.o `test -f 'CBLAS/src/cblas_cgemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgemv.c
-
-libcblas_a-cblas_cgemv.obj: CBLAS/src/cblas_cgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgemv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgemv.Tpo -c -o libcblas_a-cblas_cgemv.obj `if test -f 'CBLAS/src/cblas_cgemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgemv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgemv.Tpo $(DEPDIR)/libcblas_a-cblas_cgemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgemv.c' object='libcblas_a-cblas_cgemv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgemv.obj `if test -f 'CBLAS/src/cblas_cgemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgemv.c'; fi`
-
-libcblas_a-cblas_dsdot.o: CBLAS/src/cblas_dsdot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsdot.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsdot.Tpo -c -o libcblas_a-cblas_dsdot.o `test -f 'CBLAS/src/cblas_dsdot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsdot.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsdot.Tpo $(DEPDIR)/libcblas_a-cblas_dsdot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsdot.c' object='libcblas_a-cblas_dsdot.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsdot.o `test -f 'CBLAS/src/cblas_dsdot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsdot.c
-
-libcblas_a-cblas_dsdot.obj: CBLAS/src/cblas_dsdot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsdot.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsdot.Tpo -c -o libcblas_a-cblas_dsdot.obj `if test -f 'CBLAS/src/cblas_dsdot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsdot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsdot.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsdot.Tpo $(DEPDIR)/libcblas_a-cblas_dsdot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsdot.c' object='libcblas_a-cblas_dsdot.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsdot.obj `if test -f 'CBLAS/src/cblas_dsdot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsdot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsdot.c'; fi`
-
-libcblas_a-cblas_srotm.o: CBLAS/src/cblas_srotm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_srotm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_srotm.Tpo -c -o libcblas_a-cblas_srotm.o `test -f 'CBLAS/src/cblas_srotm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_srotm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_srotm.Tpo $(DEPDIR)/libcblas_a-cblas_srotm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_srotm.c' object='libcblas_a-cblas_srotm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_srotm.o `test -f 'CBLAS/src/cblas_srotm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_srotm.c
-
-libcblas_a-cblas_srotm.obj: CBLAS/src/cblas_srotm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_srotm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_srotm.Tpo -c -o libcblas_a-cblas_srotm.obj `if test -f 'CBLAS/src/cblas_srotm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_srotm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_srotm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_srotm.Tpo $(DEPDIR)/libcblas_a-cblas_srotm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_srotm.c' object='libcblas_a-cblas_srotm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_srotm.obj `if test -f 'CBLAS/src/cblas_srotm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_srotm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_srotm.c'; fi`
-
-libcblas_a-cblas_zhpr.o: CBLAS/src/cblas_zhpr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhpr.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhpr.Tpo -c -o libcblas_a-cblas_zhpr.o `test -f 'CBLAS/src/cblas_zhpr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhpr.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhpr.Tpo $(DEPDIR)/libcblas_a-cblas_zhpr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhpr.c' object='libcblas_a-cblas_zhpr.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhpr.o `test -f 'CBLAS/src/cblas_zhpr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhpr.c
-
-libcblas_a-cblas_zhpr.obj: CBLAS/src/cblas_zhpr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhpr.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhpr.Tpo -c -o libcblas_a-cblas_zhpr.obj `if test -f 'CBLAS/src/cblas_zhpr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhpr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhpr.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhpr.Tpo $(DEPDIR)/libcblas_a-cblas_zhpr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhpr.c' object='libcblas_a-cblas_zhpr.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhpr.obj `if test -f 'CBLAS/src/cblas_zhpr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhpr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhpr.c'; fi`
-
-libcblas_a-cblas_cgerc.o: CBLAS/src/cblas_cgerc.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgerc.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgerc.Tpo -c -o libcblas_a-cblas_cgerc.o `test -f 'CBLAS/src/cblas_cgerc.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgerc.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgerc.Tpo $(DEPDIR)/libcblas_a-cblas_cgerc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgerc.c' object='libcblas_a-cblas_cgerc.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgerc.o `test -f 'CBLAS/src/cblas_cgerc.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgerc.c
-
-libcblas_a-cblas_cgerc.obj: CBLAS/src/cblas_cgerc.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgerc.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgerc.Tpo -c -o libcblas_a-cblas_cgerc.obj `if test -f 'CBLAS/src/cblas_cgerc.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgerc.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgerc.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgerc.Tpo $(DEPDIR)/libcblas_a-cblas_cgerc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgerc.c' object='libcblas_a-cblas_cgerc.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgerc.obj `if test -f 'CBLAS/src/cblas_cgerc.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgerc.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgerc.c'; fi`
-
-libcblas_a-cblas_dspmv.o: CBLAS/src/cblas_dspmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dspmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dspmv.Tpo -c -o libcblas_a-cblas_dspmv.o `test -f 'CBLAS/src/cblas_dspmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dspmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dspmv.Tpo $(DEPDIR)/libcblas_a-cblas_dspmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dspmv.c' object='libcblas_a-cblas_dspmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dspmv.o `test -f 'CBLAS/src/cblas_dspmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dspmv.c
-
-libcblas_a-cblas_dspmv.obj: CBLAS/src/cblas_dspmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dspmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dspmv.Tpo -c -o libcblas_a-cblas_dspmv.obj `if test -f 'CBLAS/src/cblas_dspmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dspmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dspmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dspmv.Tpo $(DEPDIR)/libcblas_a-cblas_dspmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dspmv.c' object='libcblas_a-cblas_dspmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dspmv.obj `if test -f 'CBLAS/src/cblas_dspmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dspmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dspmv.c'; fi`
-
-libcblas_a-cblas_srotmg.o: CBLAS/src/cblas_srotmg.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_srotmg.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_srotmg.Tpo -c -o libcblas_a-cblas_srotmg.o `test -f 'CBLAS/src/cblas_srotmg.c' || echo '$(srcdir)/'`CBLAS/src/cblas_srotmg.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_srotmg.Tpo $(DEPDIR)/libcblas_a-cblas_srotmg.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_srotmg.c' object='libcblas_a-cblas_srotmg.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_srotmg.o `test -f 'CBLAS/src/cblas_srotmg.c' || echo '$(srcdir)/'`CBLAS/src/cblas_srotmg.c
-
-libcblas_a-cblas_srotmg.obj: CBLAS/src/cblas_srotmg.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_srotmg.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_srotmg.Tpo -c -o libcblas_a-cblas_srotmg.obj `if test -f 'CBLAS/src/cblas_srotmg.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_srotmg.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_srotmg.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_srotmg.Tpo $(DEPDIR)/libcblas_a-cblas_srotmg.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_srotmg.c' object='libcblas_a-cblas_srotmg.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_srotmg.obj `if test -f 'CBLAS/src/cblas_srotmg.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_srotmg.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_srotmg.c'; fi`
-
-libcblas_a-cblas_zscal.o: CBLAS/src/cblas_zscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zscal.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zscal.Tpo -c -o libcblas_a-cblas_zscal.o `test -f 'CBLAS/src/cblas_zscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zscal.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zscal.Tpo $(DEPDIR)/libcblas_a-cblas_zscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zscal.c' object='libcblas_a-cblas_zscal.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zscal.o `test -f 'CBLAS/src/cblas_zscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zscal.c
-
-libcblas_a-cblas_zscal.obj: CBLAS/src/cblas_zscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zscal.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zscal.Tpo -c -o libcblas_a-cblas_zscal.obj `if test -f 'CBLAS/src/cblas_zscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zscal.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zscal.Tpo $(DEPDIR)/libcblas_a-cblas_zscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zscal.c' object='libcblas_a-cblas_zscal.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zscal.obj `if test -f 'CBLAS/src/cblas_zscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zscal.c'; fi`
-
-libcblas_a-cblas_cgeru.o: CBLAS/src/cblas_cgeru.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgeru.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgeru.Tpo -c -o libcblas_a-cblas_cgeru.o `test -f 'CBLAS/src/cblas_cgeru.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgeru.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgeru.Tpo $(DEPDIR)/libcblas_a-cblas_cgeru.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgeru.c' object='libcblas_a-cblas_cgeru.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgeru.o `test -f 'CBLAS/src/cblas_cgeru.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cgeru.c
-
-libcblas_a-cblas_cgeru.obj: CBLAS/src/cblas_cgeru.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cgeru.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cgeru.Tpo -c -o libcblas_a-cblas_cgeru.obj `if test -f 'CBLAS/src/cblas_cgeru.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgeru.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgeru.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cgeru.Tpo $(DEPDIR)/libcblas_a-cblas_cgeru.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cgeru.c' object='libcblas_a-cblas_cgeru.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cgeru.obj `if test -f 'CBLAS/src/cblas_cgeru.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cgeru.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cgeru.c'; fi`
-
-libcblas_a-cblas_dspr2.o: CBLAS/src/cblas_dspr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dspr2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dspr2.Tpo -c -o libcblas_a-cblas_dspr2.o `test -f 'CBLAS/src/cblas_dspr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dspr2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dspr2.Tpo $(DEPDIR)/libcblas_a-cblas_dspr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dspr2.c' object='libcblas_a-cblas_dspr2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dspr2.o `test -f 'CBLAS/src/cblas_dspr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dspr2.c
-
-libcblas_a-cblas_dspr2.obj: CBLAS/src/cblas_dspr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dspr2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dspr2.Tpo -c -o libcblas_a-cblas_dspr2.obj `if test -f 'CBLAS/src/cblas_dspr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dspr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dspr2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dspr2.Tpo $(DEPDIR)/libcblas_a-cblas_dspr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dspr2.c' object='libcblas_a-cblas_dspr2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dspr2.obj `if test -f 'CBLAS/src/cblas_dspr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dspr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dspr2.c'; fi`
-
-libcblas_a-cblas_ssbmv.o: CBLAS/src/cblas_ssbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssbmv.Tpo -c -o libcblas_a-cblas_ssbmv.o `test -f 'CBLAS/src/cblas_ssbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssbmv.Tpo $(DEPDIR)/libcblas_a-cblas_ssbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssbmv.c' object='libcblas_a-cblas_ssbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssbmv.o `test -f 'CBLAS/src/cblas_ssbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssbmv.c
-
-libcblas_a-cblas_ssbmv.obj: CBLAS/src/cblas_ssbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssbmv.Tpo -c -o libcblas_a-cblas_ssbmv.obj `if test -f 'CBLAS/src/cblas_ssbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssbmv.Tpo $(DEPDIR)/libcblas_a-cblas_ssbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssbmv.c' object='libcblas_a-cblas_ssbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssbmv.obj `if test -f 'CBLAS/src/cblas_ssbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssbmv.c'; fi`
-
-libcblas_a-cblas_zswap.o: CBLAS/src/cblas_zswap.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zswap.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zswap.Tpo -c -o libcblas_a-cblas_zswap.o `test -f 'CBLAS/src/cblas_zswap.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zswap.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zswap.Tpo $(DEPDIR)/libcblas_a-cblas_zswap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zswap.c' object='libcblas_a-cblas_zswap.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zswap.o `test -f 'CBLAS/src/cblas_zswap.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zswap.c
-
-libcblas_a-cblas_zswap.obj: CBLAS/src/cblas_zswap.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zswap.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zswap.Tpo -c -o libcblas_a-cblas_zswap.obj `if test -f 'CBLAS/src/cblas_zswap.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zswap.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zswap.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zswap.Tpo $(DEPDIR)/libcblas_a-cblas_zswap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zswap.c' object='libcblas_a-cblas_zswap.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zswap.obj `if test -f 'CBLAS/src/cblas_zswap.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zswap.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zswap.c'; fi`
-
-libcblas_a-cblas_chbmv.o: CBLAS/src/cblas_chbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chbmv.Tpo -c -o libcblas_a-cblas_chbmv.o `test -f 'CBLAS/src/cblas_chbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chbmv.Tpo $(DEPDIR)/libcblas_a-cblas_chbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chbmv.c' object='libcblas_a-cblas_chbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chbmv.o `test -f 'CBLAS/src/cblas_chbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chbmv.c
-
-libcblas_a-cblas_chbmv.obj: CBLAS/src/cblas_chbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chbmv.Tpo -c -o libcblas_a-cblas_chbmv.obj `if test -f 'CBLAS/src/cblas_chbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chbmv.Tpo $(DEPDIR)/libcblas_a-cblas_chbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chbmv.c' object='libcblas_a-cblas_chbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chbmv.obj `if test -f 'CBLAS/src/cblas_chbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chbmv.c'; fi`
-
-libcblas_a-cblas_dspr.o: CBLAS/src/cblas_dspr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dspr.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dspr.Tpo -c -o libcblas_a-cblas_dspr.o `test -f 'CBLAS/src/cblas_dspr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dspr.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dspr.Tpo $(DEPDIR)/libcblas_a-cblas_dspr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dspr.c' object='libcblas_a-cblas_dspr.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dspr.o `test -f 'CBLAS/src/cblas_dspr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dspr.c
-
-libcblas_a-cblas_dspr.obj: CBLAS/src/cblas_dspr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dspr.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dspr.Tpo -c -o libcblas_a-cblas_dspr.obj `if test -f 'CBLAS/src/cblas_dspr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dspr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dspr.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dspr.Tpo $(DEPDIR)/libcblas_a-cblas_dspr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dspr.c' object='libcblas_a-cblas_dspr.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dspr.obj `if test -f 'CBLAS/src/cblas_dspr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dspr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dspr.c'; fi`
-
-libcblas_a-cblas_sscal.o: CBLAS/src/cblas_sscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sscal.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sscal.Tpo -c -o libcblas_a-cblas_sscal.o `test -f 'CBLAS/src/cblas_sscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sscal.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sscal.Tpo $(DEPDIR)/libcblas_a-cblas_sscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sscal.c' object='libcblas_a-cblas_sscal.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sscal.o `test -f 'CBLAS/src/cblas_sscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sscal.c
-
-libcblas_a-cblas_sscal.obj: CBLAS/src/cblas_sscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sscal.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sscal.Tpo -c -o libcblas_a-cblas_sscal.obj `if test -f 'CBLAS/src/cblas_sscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sscal.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sscal.Tpo $(DEPDIR)/libcblas_a-cblas_sscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sscal.c' object='libcblas_a-cblas_sscal.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sscal.obj `if test -f 'CBLAS/src/cblas_sscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sscal.c'; fi`
-
-libcblas_a-cblas_zsymm.o: CBLAS/src/cblas_zsymm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zsymm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zsymm.Tpo -c -o libcblas_a-cblas_zsymm.o `test -f 'CBLAS/src/cblas_zsymm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zsymm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zsymm.Tpo $(DEPDIR)/libcblas_a-cblas_zsymm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zsymm.c' object='libcblas_a-cblas_zsymm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zsymm.o `test -f 'CBLAS/src/cblas_zsymm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zsymm.c
-
-libcblas_a-cblas_zsymm.obj: CBLAS/src/cblas_zsymm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zsymm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zsymm.Tpo -c -o libcblas_a-cblas_zsymm.obj `if test -f 'CBLAS/src/cblas_zsymm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zsymm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zsymm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zsymm.Tpo $(DEPDIR)/libcblas_a-cblas_zsymm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zsymm.c' object='libcblas_a-cblas_zsymm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zsymm.obj `if test -f 'CBLAS/src/cblas_zsymm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zsymm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zsymm.c'; fi`
-
-libcblas_a-cblas_chemm.o: CBLAS/src/cblas_chemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chemm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chemm.Tpo -c -o libcblas_a-cblas_chemm.o `test -f 'CBLAS/src/cblas_chemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chemm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chemm.Tpo $(DEPDIR)/libcblas_a-cblas_chemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chemm.c' object='libcblas_a-cblas_chemm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chemm.o `test -f 'CBLAS/src/cblas_chemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chemm.c
-
-libcblas_a-cblas_chemm.obj: CBLAS/src/cblas_chemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chemm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chemm.Tpo -c -o libcblas_a-cblas_chemm.obj `if test -f 'CBLAS/src/cblas_chemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chemm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chemm.Tpo $(DEPDIR)/libcblas_a-cblas_chemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chemm.c' object='libcblas_a-cblas_chemm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chemm.obj `if test -f 'CBLAS/src/cblas_chemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chemm.c'; fi`
-
-libcblas_a-cblas_dswap.o: CBLAS/src/cblas_dswap.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dswap.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dswap.Tpo -c -o libcblas_a-cblas_dswap.o `test -f 'CBLAS/src/cblas_dswap.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dswap.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dswap.Tpo $(DEPDIR)/libcblas_a-cblas_dswap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dswap.c' object='libcblas_a-cblas_dswap.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dswap.o `test -f 'CBLAS/src/cblas_dswap.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dswap.c
-
-libcblas_a-cblas_dswap.obj: CBLAS/src/cblas_dswap.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dswap.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dswap.Tpo -c -o libcblas_a-cblas_dswap.obj `if test -f 'CBLAS/src/cblas_dswap.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dswap.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dswap.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dswap.Tpo $(DEPDIR)/libcblas_a-cblas_dswap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dswap.c' object='libcblas_a-cblas_dswap.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dswap.obj `if test -f 'CBLAS/src/cblas_dswap.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dswap.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dswap.c'; fi`
-
-libcblas_a-cblas_sspmv.o: CBLAS/src/cblas_sspmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sspmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sspmv.Tpo -c -o libcblas_a-cblas_sspmv.o `test -f 'CBLAS/src/cblas_sspmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sspmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sspmv.Tpo $(DEPDIR)/libcblas_a-cblas_sspmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sspmv.c' object='libcblas_a-cblas_sspmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sspmv.o `test -f 'CBLAS/src/cblas_sspmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sspmv.c
-
-libcblas_a-cblas_sspmv.obj: CBLAS/src/cblas_sspmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sspmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sspmv.Tpo -c -o libcblas_a-cblas_sspmv.obj `if test -f 'CBLAS/src/cblas_sspmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sspmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sspmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sspmv.Tpo $(DEPDIR)/libcblas_a-cblas_sspmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sspmv.c' object='libcblas_a-cblas_sspmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sspmv.obj `if test -f 'CBLAS/src/cblas_sspmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sspmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sspmv.c'; fi`
-
-libcblas_a-cblas_zsyr2k.o: CBLAS/src/cblas_zsyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zsyr2k.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zsyr2k.Tpo -c -o libcblas_a-cblas_zsyr2k.o `test -f 'CBLAS/src/cblas_zsyr2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zsyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zsyr2k.Tpo $(DEPDIR)/libcblas_a-cblas_zsyr2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zsyr2k.c' object='libcblas_a-cblas_zsyr2k.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zsyr2k.o `test -f 'CBLAS/src/cblas_zsyr2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zsyr2k.c
-
-libcblas_a-cblas_zsyr2k.obj: CBLAS/src/cblas_zsyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zsyr2k.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zsyr2k.Tpo -c -o libcblas_a-cblas_zsyr2k.obj `if test -f 'CBLAS/src/cblas_zsyr2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zsyr2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zsyr2k.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zsyr2k.Tpo $(DEPDIR)/libcblas_a-cblas_zsyr2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zsyr2k.c' object='libcblas_a-cblas_zsyr2k.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zsyr2k.obj `if test -f 'CBLAS/src/cblas_zsyr2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zsyr2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zsyr2k.c'; fi`
-
-libcblas_a-cblas_chemv.o: CBLAS/src/cblas_chemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chemv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chemv.Tpo -c -o libcblas_a-cblas_chemv.o `test -f 'CBLAS/src/cblas_chemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chemv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chemv.Tpo $(DEPDIR)/libcblas_a-cblas_chemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chemv.c' object='libcblas_a-cblas_chemv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chemv.o `test -f 'CBLAS/src/cblas_chemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chemv.c
-
-libcblas_a-cblas_chemv.obj: CBLAS/src/cblas_chemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chemv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chemv.Tpo -c -o libcblas_a-cblas_chemv.obj `if test -f 'CBLAS/src/cblas_chemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chemv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chemv.Tpo $(DEPDIR)/libcblas_a-cblas_chemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chemv.c' object='libcblas_a-cblas_chemv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chemv.obj `if test -f 'CBLAS/src/cblas_chemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chemv.c'; fi`
-
-libcblas_a-cblas_dsymm.o: CBLAS/src/cblas_dsymm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsymm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsymm.Tpo -c -o libcblas_a-cblas_dsymm.o `test -f 'CBLAS/src/cblas_dsymm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsymm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsymm.Tpo $(DEPDIR)/libcblas_a-cblas_dsymm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsymm.c' object='libcblas_a-cblas_dsymm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsymm.o `test -f 'CBLAS/src/cblas_dsymm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsymm.c
-
-libcblas_a-cblas_dsymm.obj: CBLAS/src/cblas_dsymm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsymm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsymm.Tpo -c -o libcblas_a-cblas_dsymm.obj `if test -f 'CBLAS/src/cblas_dsymm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsymm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsymm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsymm.Tpo $(DEPDIR)/libcblas_a-cblas_dsymm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsymm.c' object='libcblas_a-cblas_dsymm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsymm.obj `if test -f 'CBLAS/src/cblas_dsymm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsymm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsymm.c'; fi`
-
-libcblas_a-cblas_sspr2.o: CBLAS/src/cblas_sspr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sspr2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sspr2.Tpo -c -o libcblas_a-cblas_sspr2.o `test -f 'CBLAS/src/cblas_sspr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sspr2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sspr2.Tpo $(DEPDIR)/libcblas_a-cblas_sspr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sspr2.c' object='libcblas_a-cblas_sspr2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sspr2.o `test -f 'CBLAS/src/cblas_sspr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sspr2.c
-
-libcblas_a-cblas_sspr2.obj: CBLAS/src/cblas_sspr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sspr2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sspr2.Tpo -c -o libcblas_a-cblas_sspr2.obj `if test -f 'CBLAS/src/cblas_sspr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sspr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sspr2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sspr2.Tpo $(DEPDIR)/libcblas_a-cblas_sspr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sspr2.c' object='libcblas_a-cblas_sspr2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sspr2.obj `if test -f 'CBLAS/src/cblas_sspr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sspr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sspr2.c'; fi`
-
-libcblas_a-cblas_zsyrk.o: CBLAS/src/cblas_zsyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zsyrk.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zsyrk.Tpo -c -o libcblas_a-cblas_zsyrk.o `test -f 'CBLAS/src/cblas_zsyrk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zsyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zsyrk.Tpo $(DEPDIR)/libcblas_a-cblas_zsyrk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zsyrk.c' object='libcblas_a-cblas_zsyrk.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zsyrk.o `test -f 'CBLAS/src/cblas_zsyrk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zsyrk.c
-
-libcblas_a-cblas_zsyrk.obj: CBLAS/src/cblas_zsyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zsyrk.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zsyrk.Tpo -c -o libcblas_a-cblas_zsyrk.obj `if test -f 'CBLAS/src/cblas_zsyrk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zsyrk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zsyrk.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zsyrk.Tpo $(DEPDIR)/libcblas_a-cblas_zsyrk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zsyrk.c' object='libcblas_a-cblas_zsyrk.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zsyrk.obj `if test -f 'CBLAS/src/cblas_zsyrk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zsyrk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zsyrk.c'; fi`
-
-libcblas_a-cblas_cher2.o: CBLAS/src/cblas_cher2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cher2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cher2.Tpo -c -o libcblas_a-cblas_cher2.o `test -f 'CBLAS/src/cblas_cher2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cher2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cher2.Tpo $(DEPDIR)/libcblas_a-cblas_cher2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cher2.c' object='libcblas_a-cblas_cher2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cher2.o `test -f 'CBLAS/src/cblas_cher2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cher2.c
-
-libcblas_a-cblas_cher2.obj: CBLAS/src/cblas_cher2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cher2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cher2.Tpo -c -o libcblas_a-cblas_cher2.obj `if test -f 'CBLAS/src/cblas_cher2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cher2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cher2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cher2.Tpo $(DEPDIR)/libcblas_a-cblas_cher2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cher2.c' object='libcblas_a-cblas_cher2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cher2.obj `if test -f 'CBLAS/src/cblas_cher2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cher2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cher2.c'; fi`
-
-libcblas_a-cblas_dsymv.o: CBLAS/src/cblas_dsymv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsymv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsymv.Tpo -c -o libcblas_a-cblas_dsymv.o `test -f 'CBLAS/src/cblas_dsymv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsymv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsymv.Tpo $(DEPDIR)/libcblas_a-cblas_dsymv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsymv.c' object='libcblas_a-cblas_dsymv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsymv.o `test -f 'CBLAS/src/cblas_dsymv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsymv.c
-
-libcblas_a-cblas_dsymv.obj: CBLAS/src/cblas_dsymv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsymv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsymv.Tpo -c -o libcblas_a-cblas_dsymv.obj `if test -f 'CBLAS/src/cblas_dsymv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsymv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsymv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsymv.Tpo $(DEPDIR)/libcblas_a-cblas_dsymv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsymv.c' object='libcblas_a-cblas_dsymv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsymv.obj `if test -f 'CBLAS/src/cblas_dsymv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsymv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsymv.c'; fi`
-
-libcblas_a-cblas_sspr.o: CBLAS/src/cblas_sspr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sspr.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sspr.Tpo -c -o libcblas_a-cblas_sspr.o `test -f 'CBLAS/src/cblas_sspr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sspr.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sspr.Tpo $(DEPDIR)/libcblas_a-cblas_sspr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sspr.c' object='libcblas_a-cblas_sspr.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sspr.o `test -f 'CBLAS/src/cblas_sspr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sspr.c
-
-libcblas_a-cblas_sspr.obj: CBLAS/src/cblas_sspr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sspr.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sspr.Tpo -c -o libcblas_a-cblas_sspr.obj `if test -f 'CBLAS/src/cblas_sspr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sspr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sspr.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sspr.Tpo $(DEPDIR)/libcblas_a-cblas_sspr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sspr.c' object='libcblas_a-cblas_sspr.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sspr.obj `if test -f 'CBLAS/src/cblas_sspr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sspr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sspr.c'; fi`
-
-libcblas_a-cblas_ztbmv.o: CBLAS/src/cblas_ztbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztbmv.Tpo -c -o libcblas_a-cblas_ztbmv.o `test -f 'CBLAS/src/cblas_ztbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztbmv.Tpo $(DEPDIR)/libcblas_a-cblas_ztbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztbmv.c' object='libcblas_a-cblas_ztbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztbmv.o `test -f 'CBLAS/src/cblas_ztbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztbmv.c
-
-libcblas_a-cblas_ztbmv.obj: CBLAS/src/cblas_ztbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztbmv.Tpo -c -o libcblas_a-cblas_ztbmv.obj `if test -f 'CBLAS/src/cblas_ztbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztbmv.Tpo $(DEPDIR)/libcblas_a-cblas_ztbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztbmv.c' object='libcblas_a-cblas_ztbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztbmv.obj `if test -f 'CBLAS/src/cblas_ztbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztbmv.c'; fi`
-
-libcblas_a-cblas_cher2k.o: CBLAS/src/cblas_cher2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cher2k.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cher2k.Tpo -c -o libcblas_a-cblas_cher2k.o `test -f 'CBLAS/src/cblas_cher2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cher2k.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cher2k.Tpo $(DEPDIR)/libcblas_a-cblas_cher2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cher2k.c' object='libcblas_a-cblas_cher2k.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cher2k.o `test -f 'CBLAS/src/cblas_cher2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cher2k.c
-
-libcblas_a-cblas_cher2k.obj: CBLAS/src/cblas_cher2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cher2k.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cher2k.Tpo -c -o libcblas_a-cblas_cher2k.obj `if test -f 'CBLAS/src/cblas_cher2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cher2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cher2k.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cher2k.Tpo $(DEPDIR)/libcblas_a-cblas_cher2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cher2k.c' object='libcblas_a-cblas_cher2k.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cher2k.obj `if test -f 'CBLAS/src/cblas_cher2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cher2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cher2k.c'; fi`
-
-libcblas_a-cblas_dsyr2.o: CBLAS/src/cblas_dsyr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsyr2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsyr2.Tpo -c -o libcblas_a-cblas_dsyr2.o `test -f 'CBLAS/src/cblas_dsyr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsyr2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsyr2.Tpo $(DEPDIR)/libcblas_a-cblas_dsyr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsyr2.c' object='libcblas_a-cblas_dsyr2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsyr2.o `test -f 'CBLAS/src/cblas_dsyr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsyr2.c
-
-libcblas_a-cblas_dsyr2.obj: CBLAS/src/cblas_dsyr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsyr2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsyr2.Tpo -c -o libcblas_a-cblas_dsyr2.obj `if test -f 'CBLAS/src/cblas_dsyr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsyr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsyr2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsyr2.Tpo $(DEPDIR)/libcblas_a-cblas_dsyr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsyr2.c' object='libcblas_a-cblas_dsyr2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsyr2.obj `if test -f 'CBLAS/src/cblas_dsyr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsyr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsyr2.c'; fi`
-
-libcblas_a-cblas_sswap.o: CBLAS/src/cblas_sswap.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sswap.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sswap.Tpo -c -o libcblas_a-cblas_sswap.o `test -f 'CBLAS/src/cblas_sswap.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sswap.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sswap.Tpo $(DEPDIR)/libcblas_a-cblas_sswap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sswap.c' object='libcblas_a-cblas_sswap.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sswap.o `test -f 'CBLAS/src/cblas_sswap.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sswap.c
-
-libcblas_a-cblas_sswap.obj: CBLAS/src/cblas_sswap.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sswap.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sswap.Tpo -c -o libcblas_a-cblas_sswap.obj `if test -f 'CBLAS/src/cblas_sswap.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sswap.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sswap.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sswap.Tpo $(DEPDIR)/libcblas_a-cblas_sswap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sswap.c' object='libcblas_a-cblas_sswap.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sswap.obj `if test -f 'CBLAS/src/cblas_sswap.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sswap.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sswap.c'; fi`
-
-libcblas_a-cblas_ztbsv.o: CBLAS/src/cblas_ztbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztbsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztbsv.Tpo -c -o libcblas_a-cblas_ztbsv.o `test -f 'CBLAS/src/cblas_ztbsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztbsv.Tpo $(DEPDIR)/libcblas_a-cblas_ztbsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztbsv.c' object='libcblas_a-cblas_ztbsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztbsv.o `test -f 'CBLAS/src/cblas_ztbsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztbsv.c
-
-libcblas_a-cblas_ztbsv.obj: CBLAS/src/cblas_ztbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztbsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztbsv.Tpo -c -o libcblas_a-cblas_ztbsv.obj `if test -f 'CBLAS/src/cblas_ztbsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztbsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztbsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztbsv.Tpo $(DEPDIR)/libcblas_a-cblas_ztbsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztbsv.c' object='libcblas_a-cblas_ztbsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztbsv.obj `if test -f 'CBLAS/src/cblas_ztbsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztbsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztbsv.c'; fi`
-
-libcblas_a-cblas_cher.o: CBLAS/src/cblas_cher.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cher.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cher.Tpo -c -o libcblas_a-cblas_cher.o `test -f 'CBLAS/src/cblas_cher.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cher.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cher.Tpo $(DEPDIR)/libcblas_a-cblas_cher.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cher.c' object='libcblas_a-cblas_cher.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cher.o `test -f 'CBLAS/src/cblas_cher.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cher.c
-
-libcblas_a-cblas_cher.obj: CBLAS/src/cblas_cher.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cher.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cher.Tpo -c -o libcblas_a-cblas_cher.obj `if test -f 'CBLAS/src/cblas_cher.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cher.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cher.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cher.Tpo $(DEPDIR)/libcblas_a-cblas_cher.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cher.c' object='libcblas_a-cblas_cher.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cher.obj `if test -f 'CBLAS/src/cblas_cher.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cher.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cher.c'; fi`
-
-libcblas_a-cblas_dsyr2k.o: CBLAS/src/cblas_dsyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsyr2k.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsyr2k.Tpo -c -o libcblas_a-cblas_dsyr2k.o `test -f 'CBLAS/src/cblas_dsyr2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsyr2k.Tpo $(DEPDIR)/libcblas_a-cblas_dsyr2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsyr2k.c' object='libcblas_a-cblas_dsyr2k.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsyr2k.o `test -f 'CBLAS/src/cblas_dsyr2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsyr2k.c
-
-libcblas_a-cblas_dsyr2k.obj: CBLAS/src/cblas_dsyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsyr2k.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsyr2k.Tpo -c -o libcblas_a-cblas_dsyr2k.obj `if test -f 'CBLAS/src/cblas_dsyr2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsyr2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsyr2k.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsyr2k.Tpo $(DEPDIR)/libcblas_a-cblas_dsyr2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsyr2k.c' object='libcblas_a-cblas_dsyr2k.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsyr2k.obj `if test -f 'CBLAS/src/cblas_dsyr2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsyr2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsyr2k.c'; fi`
-
-libcblas_a-cblas_ssymm.o: CBLAS/src/cblas_ssymm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssymm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssymm.Tpo -c -o libcblas_a-cblas_ssymm.o `test -f 'CBLAS/src/cblas_ssymm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssymm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssymm.Tpo $(DEPDIR)/libcblas_a-cblas_ssymm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssymm.c' object='libcblas_a-cblas_ssymm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssymm.o `test -f 'CBLAS/src/cblas_ssymm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssymm.c
-
-libcblas_a-cblas_ssymm.obj: CBLAS/src/cblas_ssymm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssymm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssymm.Tpo -c -o libcblas_a-cblas_ssymm.obj `if test -f 'CBLAS/src/cblas_ssymm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssymm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssymm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssymm.Tpo $(DEPDIR)/libcblas_a-cblas_ssymm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssymm.c' object='libcblas_a-cblas_ssymm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssymm.obj `if test -f 'CBLAS/src/cblas_ssymm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssymm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssymm.c'; fi`
-
-libcblas_a-cblas_ztpmv.o: CBLAS/src/cblas_ztpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztpmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztpmv.Tpo -c -o libcblas_a-cblas_ztpmv.o `test -f 'CBLAS/src/cblas_ztpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztpmv.Tpo $(DEPDIR)/libcblas_a-cblas_ztpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztpmv.c' object='libcblas_a-cblas_ztpmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztpmv.o `test -f 'CBLAS/src/cblas_ztpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztpmv.c
-
-libcblas_a-cblas_ztpmv.obj: CBLAS/src/cblas_ztpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztpmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztpmv.Tpo -c -o libcblas_a-cblas_ztpmv.obj `if test -f 'CBLAS/src/cblas_ztpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztpmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztpmv.Tpo $(DEPDIR)/libcblas_a-cblas_ztpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztpmv.c' object='libcblas_a-cblas_ztpmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztpmv.obj `if test -f 'CBLAS/src/cblas_ztpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztpmv.c'; fi`
-
-libcblas_a-cblas_cherk.o: CBLAS/src/cblas_cherk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cherk.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cherk.Tpo -c -o libcblas_a-cblas_cherk.o `test -f 'CBLAS/src/cblas_cherk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cherk.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cherk.Tpo $(DEPDIR)/libcblas_a-cblas_cherk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cherk.c' object='libcblas_a-cblas_cherk.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cherk.o `test -f 'CBLAS/src/cblas_cherk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cherk.c
-
-libcblas_a-cblas_cherk.obj: CBLAS/src/cblas_cherk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cherk.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cherk.Tpo -c -o libcblas_a-cblas_cherk.obj `if test -f 'CBLAS/src/cblas_cherk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cherk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cherk.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cherk.Tpo $(DEPDIR)/libcblas_a-cblas_cherk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cherk.c' object='libcblas_a-cblas_cherk.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cherk.obj `if test -f 'CBLAS/src/cblas_cherk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cherk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cherk.c'; fi`
-
-libcblas_a-cblas_dsyr.o: CBLAS/src/cblas_dsyr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsyr.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsyr.Tpo -c -o libcblas_a-cblas_dsyr.o `test -f 'CBLAS/src/cblas_dsyr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsyr.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsyr.Tpo $(DEPDIR)/libcblas_a-cblas_dsyr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsyr.c' object='libcblas_a-cblas_dsyr.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsyr.o `test -f 'CBLAS/src/cblas_dsyr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsyr.c
-
-libcblas_a-cblas_dsyr.obj: CBLAS/src/cblas_dsyr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsyr.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsyr.Tpo -c -o libcblas_a-cblas_dsyr.obj `if test -f 'CBLAS/src/cblas_dsyr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsyr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsyr.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsyr.Tpo $(DEPDIR)/libcblas_a-cblas_dsyr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsyr.c' object='libcblas_a-cblas_dsyr.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsyr.obj `if test -f 'CBLAS/src/cblas_dsyr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsyr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsyr.c'; fi`
-
-libcblas_a-cblas_ssymv.o: CBLAS/src/cblas_ssymv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssymv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssymv.Tpo -c -o libcblas_a-cblas_ssymv.o `test -f 'CBLAS/src/cblas_ssymv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssymv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssymv.Tpo $(DEPDIR)/libcblas_a-cblas_ssymv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssymv.c' object='libcblas_a-cblas_ssymv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssymv.o `test -f 'CBLAS/src/cblas_ssymv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssymv.c
-
-libcblas_a-cblas_ssymv.obj: CBLAS/src/cblas_ssymv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssymv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssymv.Tpo -c -o libcblas_a-cblas_ssymv.obj `if test -f 'CBLAS/src/cblas_ssymv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssymv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssymv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssymv.Tpo $(DEPDIR)/libcblas_a-cblas_ssymv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssymv.c' object='libcblas_a-cblas_ssymv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssymv.obj `if test -f 'CBLAS/src/cblas_ssymv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssymv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssymv.c'; fi`
-
-libcblas_a-cblas_ztpsv.o: CBLAS/src/cblas_ztpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztpsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztpsv.Tpo -c -o libcblas_a-cblas_ztpsv.o `test -f 'CBLAS/src/cblas_ztpsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztpsv.Tpo $(DEPDIR)/libcblas_a-cblas_ztpsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztpsv.c' object='libcblas_a-cblas_ztpsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztpsv.o `test -f 'CBLAS/src/cblas_ztpsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztpsv.c
-
-libcblas_a-cblas_ztpsv.obj: CBLAS/src/cblas_ztpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztpsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztpsv.Tpo -c -o libcblas_a-cblas_ztpsv.obj `if test -f 'CBLAS/src/cblas_ztpsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztpsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztpsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztpsv.Tpo $(DEPDIR)/libcblas_a-cblas_ztpsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztpsv.c' object='libcblas_a-cblas_ztpsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztpsv.obj `if test -f 'CBLAS/src/cblas_ztpsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztpsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztpsv.c'; fi`
-
-libcblas_a-cblas_chpmv.o: CBLAS/src/cblas_chpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chpmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chpmv.Tpo -c -o libcblas_a-cblas_chpmv.o `test -f 'CBLAS/src/cblas_chpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chpmv.Tpo $(DEPDIR)/libcblas_a-cblas_chpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chpmv.c' object='libcblas_a-cblas_chpmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chpmv.o `test -f 'CBLAS/src/cblas_chpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chpmv.c
-
-libcblas_a-cblas_chpmv.obj: CBLAS/src/cblas_chpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chpmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chpmv.Tpo -c -o libcblas_a-cblas_chpmv.obj `if test -f 'CBLAS/src/cblas_chpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chpmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chpmv.Tpo $(DEPDIR)/libcblas_a-cblas_chpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chpmv.c' object='libcblas_a-cblas_chpmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chpmv.obj `if test -f 'CBLAS/src/cblas_chpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chpmv.c'; fi`
-
-libcblas_a-cblas_dsyrk.o: CBLAS/src/cblas_dsyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsyrk.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsyrk.Tpo -c -o libcblas_a-cblas_dsyrk.o `test -f 'CBLAS/src/cblas_dsyrk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsyrk.Tpo $(DEPDIR)/libcblas_a-cblas_dsyrk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsyrk.c' object='libcblas_a-cblas_dsyrk.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsyrk.o `test -f 'CBLAS/src/cblas_dsyrk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dsyrk.c
-
-libcblas_a-cblas_dsyrk.obj: CBLAS/src/cblas_dsyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dsyrk.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dsyrk.Tpo -c -o libcblas_a-cblas_dsyrk.obj `if test -f 'CBLAS/src/cblas_dsyrk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsyrk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsyrk.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dsyrk.Tpo $(DEPDIR)/libcblas_a-cblas_dsyrk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dsyrk.c' object='libcblas_a-cblas_dsyrk.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dsyrk.obj `if test -f 'CBLAS/src/cblas_dsyrk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dsyrk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dsyrk.c'; fi`
-
-libcblas_a-cblas_ssyr2.o: CBLAS/src/cblas_ssyr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssyr2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssyr2.Tpo -c -o libcblas_a-cblas_ssyr2.o `test -f 'CBLAS/src/cblas_ssyr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssyr2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssyr2.Tpo $(DEPDIR)/libcblas_a-cblas_ssyr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssyr2.c' object='libcblas_a-cblas_ssyr2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssyr2.o `test -f 'CBLAS/src/cblas_ssyr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssyr2.c
-
-libcblas_a-cblas_ssyr2.obj: CBLAS/src/cblas_ssyr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssyr2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssyr2.Tpo -c -o libcblas_a-cblas_ssyr2.obj `if test -f 'CBLAS/src/cblas_ssyr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssyr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssyr2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssyr2.Tpo $(DEPDIR)/libcblas_a-cblas_ssyr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssyr2.c' object='libcblas_a-cblas_ssyr2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssyr2.obj `if test -f 'CBLAS/src/cblas_ssyr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssyr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssyr2.c'; fi`
-
-libcblas_a-cblas_ztrmm.o: CBLAS/src/cblas_ztrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztrmm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztrmm.Tpo -c -o libcblas_a-cblas_ztrmm.o `test -f 'CBLAS/src/cblas_ztrmm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztrmm.Tpo $(DEPDIR)/libcblas_a-cblas_ztrmm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztrmm.c' object='libcblas_a-cblas_ztrmm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztrmm.o `test -f 'CBLAS/src/cblas_ztrmm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztrmm.c
-
-libcblas_a-cblas_ztrmm.obj: CBLAS/src/cblas_ztrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztrmm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztrmm.Tpo -c -o libcblas_a-cblas_ztrmm.obj `if test -f 'CBLAS/src/cblas_ztrmm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztrmm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztrmm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztrmm.Tpo $(DEPDIR)/libcblas_a-cblas_ztrmm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztrmm.c' object='libcblas_a-cblas_ztrmm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztrmm.obj `if test -f 'CBLAS/src/cblas_ztrmm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztrmm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztrmm.c'; fi`
-
-libcblas_a-cblas_chpr2.o: CBLAS/src/cblas_chpr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chpr2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chpr2.Tpo -c -o libcblas_a-cblas_chpr2.o `test -f 'CBLAS/src/cblas_chpr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chpr2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chpr2.Tpo $(DEPDIR)/libcblas_a-cblas_chpr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chpr2.c' object='libcblas_a-cblas_chpr2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chpr2.o `test -f 'CBLAS/src/cblas_chpr2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chpr2.c
-
-libcblas_a-cblas_chpr2.obj: CBLAS/src/cblas_chpr2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chpr2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chpr2.Tpo -c -o libcblas_a-cblas_chpr2.obj `if test -f 'CBLAS/src/cblas_chpr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chpr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chpr2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chpr2.Tpo $(DEPDIR)/libcblas_a-cblas_chpr2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chpr2.c' object='libcblas_a-cblas_chpr2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chpr2.obj `if test -f 'CBLAS/src/cblas_chpr2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chpr2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chpr2.c'; fi`
-
-libcblas_a-cblas_dtbmv.o: CBLAS/src/cblas_dtbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtbmv.Tpo -c -o libcblas_a-cblas_dtbmv.o `test -f 'CBLAS/src/cblas_dtbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtbmv.Tpo $(DEPDIR)/libcblas_a-cblas_dtbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtbmv.c' object='libcblas_a-cblas_dtbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtbmv.o `test -f 'CBLAS/src/cblas_dtbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtbmv.c
-
-libcblas_a-cblas_dtbmv.obj: CBLAS/src/cblas_dtbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtbmv.Tpo -c -o libcblas_a-cblas_dtbmv.obj `if test -f 'CBLAS/src/cblas_dtbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtbmv.Tpo $(DEPDIR)/libcblas_a-cblas_dtbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtbmv.c' object='libcblas_a-cblas_dtbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtbmv.obj `if test -f 'CBLAS/src/cblas_dtbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtbmv.c'; fi`
-
-libcblas_a-cblas_ssyr2k.o: CBLAS/src/cblas_ssyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssyr2k.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssyr2k.Tpo -c -o libcblas_a-cblas_ssyr2k.o `test -f 'CBLAS/src/cblas_ssyr2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssyr2k.Tpo $(DEPDIR)/libcblas_a-cblas_ssyr2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssyr2k.c' object='libcblas_a-cblas_ssyr2k.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssyr2k.o `test -f 'CBLAS/src/cblas_ssyr2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssyr2k.c
-
-libcblas_a-cblas_ssyr2k.obj: CBLAS/src/cblas_ssyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssyr2k.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssyr2k.Tpo -c -o libcblas_a-cblas_ssyr2k.obj `if test -f 'CBLAS/src/cblas_ssyr2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssyr2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssyr2k.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssyr2k.Tpo $(DEPDIR)/libcblas_a-cblas_ssyr2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssyr2k.c' object='libcblas_a-cblas_ssyr2k.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssyr2k.obj `if test -f 'CBLAS/src/cblas_ssyr2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssyr2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssyr2k.c'; fi`
-
-libcblas_a-cblas_ztrmv.o: CBLAS/src/cblas_ztrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztrmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztrmv.Tpo -c -o libcblas_a-cblas_ztrmv.o `test -f 'CBLAS/src/cblas_ztrmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztrmv.Tpo $(DEPDIR)/libcblas_a-cblas_ztrmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztrmv.c' object='libcblas_a-cblas_ztrmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztrmv.o `test -f 'CBLAS/src/cblas_ztrmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztrmv.c
-
-libcblas_a-cblas_ztrmv.obj: CBLAS/src/cblas_ztrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztrmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztrmv.Tpo -c -o libcblas_a-cblas_ztrmv.obj `if test -f 'CBLAS/src/cblas_ztrmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztrmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztrmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztrmv.Tpo $(DEPDIR)/libcblas_a-cblas_ztrmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztrmv.c' object='libcblas_a-cblas_ztrmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztrmv.obj `if test -f 'CBLAS/src/cblas_ztrmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztrmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztrmv.c'; fi`
-
-libcblas_a-cblas_chpr.o: CBLAS/src/cblas_chpr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chpr.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chpr.Tpo -c -o libcblas_a-cblas_chpr.o `test -f 'CBLAS/src/cblas_chpr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chpr.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chpr.Tpo $(DEPDIR)/libcblas_a-cblas_chpr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chpr.c' object='libcblas_a-cblas_chpr.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chpr.o `test -f 'CBLAS/src/cblas_chpr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_chpr.c
-
-libcblas_a-cblas_chpr.obj: CBLAS/src/cblas_chpr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_chpr.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_chpr.Tpo -c -o libcblas_a-cblas_chpr.obj `if test -f 'CBLAS/src/cblas_chpr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chpr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chpr.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_chpr.Tpo $(DEPDIR)/libcblas_a-cblas_chpr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_chpr.c' object='libcblas_a-cblas_chpr.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_chpr.obj `if test -f 'CBLAS/src/cblas_chpr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_chpr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_chpr.c'; fi`
-
-libcblas_a-cblas_dtbsv.o: CBLAS/src/cblas_dtbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtbsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtbsv.Tpo -c -o libcblas_a-cblas_dtbsv.o `test -f 'CBLAS/src/cblas_dtbsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtbsv.Tpo $(DEPDIR)/libcblas_a-cblas_dtbsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtbsv.c' object='libcblas_a-cblas_dtbsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtbsv.o `test -f 'CBLAS/src/cblas_dtbsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtbsv.c
-
-libcblas_a-cblas_dtbsv.obj: CBLAS/src/cblas_dtbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtbsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtbsv.Tpo -c -o libcblas_a-cblas_dtbsv.obj `if test -f 'CBLAS/src/cblas_dtbsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtbsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtbsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtbsv.Tpo $(DEPDIR)/libcblas_a-cblas_dtbsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtbsv.c' object='libcblas_a-cblas_dtbsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtbsv.obj `if test -f 'CBLAS/src/cblas_dtbsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtbsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtbsv.c'; fi`
-
-libcblas_a-cblas_ssyr.o: CBLAS/src/cblas_ssyr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssyr.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssyr.Tpo -c -o libcblas_a-cblas_ssyr.o `test -f 'CBLAS/src/cblas_ssyr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssyr.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssyr.Tpo $(DEPDIR)/libcblas_a-cblas_ssyr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssyr.c' object='libcblas_a-cblas_ssyr.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssyr.o `test -f 'CBLAS/src/cblas_ssyr.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssyr.c
-
-libcblas_a-cblas_ssyr.obj: CBLAS/src/cblas_ssyr.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssyr.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssyr.Tpo -c -o libcblas_a-cblas_ssyr.obj `if test -f 'CBLAS/src/cblas_ssyr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssyr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssyr.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssyr.Tpo $(DEPDIR)/libcblas_a-cblas_ssyr.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssyr.c' object='libcblas_a-cblas_ssyr.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssyr.obj `if test -f 'CBLAS/src/cblas_ssyr.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssyr.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssyr.c'; fi`
-
-libcblas_a-cblas_ztrsm.o: CBLAS/src/cblas_ztrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztrsm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztrsm.Tpo -c -o libcblas_a-cblas_ztrsm.o `test -f 'CBLAS/src/cblas_ztrsm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztrsm.Tpo $(DEPDIR)/libcblas_a-cblas_ztrsm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztrsm.c' object='libcblas_a-cblas_ztrsm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztrsm.o `test -f 'CBLAS/src/cblas_ztrsm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztrsm.c
-
-libcblas_a-cblas_ztrsm.obj: CBLAS/src/cblas_ztrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztrsm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztrsm.Tpo -c -o libcblas_a-cblas_ztrsm.obj `if test -f 'CBLAS/src/cblas_ztrsm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztrsm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztrsm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztrsm.Tpo $(DEPDIR)/libcblas_a-cblas_ztrsm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztrsm.c' object='libcblas_a-cblas_ztrsm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztrsm.obj `if test -f 'CBLAS/src/cblas_ztrsm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztrsm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztrsm.c'; fi`
-
-libcblas_a-cblas_cscal.o: CBLAS/src/cblas_cscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cscal.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cscal.Tpo -c -o libcblas_a-cblas_cscal.o `test -f 'CBLAS/src/cblas_cscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cscal.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cscal.Tpo $(DEPDIR)/libcblas_a-cblas_cscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cscal.c' object='libcblas_a-cblas_cscal.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cscal.o `test -f 'CBLAS/src/cblas_cscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cscal.c
-
-libcblas_a-cblas_cscal.obj: CBLAS/src/cblas_cscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cscal.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cscal.Tpo -c -o libcblas_a-cblas_cscal.obj `if test -f 'CBLAS/src/cblas_cscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cscal.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cscal.Tpo $(DEPDIR)/libcblas_a-cblas_cscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cscal.c' object='libcblas_a-cblas_cscal.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cscal.obj `if test -f 'CBLAS/src/cblas_cscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cscal.c'; fi`
-
-libcblas_a-cblas_dtpmv.o: CBLAS/src/cblas_dtpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtpmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtpmv.Tpo -c -o libcblas_a-cblas_dtpmv.o `test -f 'CBLAS/src/cblas_dtpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtpmv.Tpo $(DEPDIR)/libcblas_a-cblas_dtpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtpmv.c' object='libcblas_a-cblas_dtpmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtpmv.o `test -f 'CBLAS/src/cblas_dtpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtpmv.c
-
-libcblas_a-cblas_dtpmv.obj: CBLAS/src/cblas_dtpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtpmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtpmv.Tpo -c -o libcblas_a-cblas_dtpmv.obj `if test -f 'CBLAS/src/cblas_dtpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtpmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtpmv.Tpo $(DEPDIR)/libcblas_a-cblas_dtpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtpmv.c' object='libcblas_a-cblas_dtpmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtpmv.obj `if test -f 'CBLAS/src/cblas_dtpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtpmv.c'; fi`
-
-libcblas_a-cblas_ssyrk.o: CBLAS/src/cblas_ssyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssyrk.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssyrk.Tpo -c -o libcblas_a-cblas_ssyrk.o `test -f 'CBLAS/src/cblas_ssyrk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssyrk.Tpo $(DEPDIR)/libcblas_a-cblas_ssyrk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssyrk.c' object='libcblas_a-cblas_ssyrk.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssyrk.o `test -f 'CBLAS/src/cblas_ssyrk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ssyrk.c
-
-libcblas_a-cblas_ssyrk.obj: CBLAS/src/cblas_ssyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ssyrk.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ssyrk.Tpo -c -o libcblas_a-cblas_ssyrk.obj `if test -f 'CBLAS/src/cblas_ssyrk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssyrk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssyrk.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ssyrk.Tpo $(DEPDIR)/libcblas_a-cblas_ssyrk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ssyrk.c' object='libcblas_a-cblas_ssyrk.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ssyrk.obj `if test -f 'CBLAS/src/cblas_ssyrk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ssyrk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ssyrk.c'; fi`
-
-libcblas_a-cblas_ztrsv.o: CBLAS/src/cblas_ztrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztrsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztrsv.Tpo -c -o libcblas_a-cblas_ztrsv.o `test -f 'CBLAS/src/cblas_ztrsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztrsv.Tpo $(DEPDIR)/libcblas_a-cblas_ztrsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztrsv.c' object='libcblas_a-cblas_ztrsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztrsv.o `test -f 'CBLAS/src/cblas_ztrsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ztrsv.c
-
-libcblas_a-cblas_ztrsv.obj: CBLAS/src/cblas_ztrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ztrsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ztrsv.Tpo -c -o libcblas_a-cblas_ztrsv.obj `if test -f 'CBLAS/src/cblas_ztrsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztrsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztrsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ztrsv.Tpo $(DEPDIR)/libcblas_a-cblas_ztrsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ztrsv.c' object='libcblas_a-cblas_ztrsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ztrsv.obj `if test -f 'CBLAS/src/cblas_ztrsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ztrsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ztrsv.c'; fi`
-
-libcblas_a-cblas_csscal.o: CBLAS/src/cblas_csscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_csscal.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_csscal.Tpo -c -o libcblas_a-cblas_csscal.o `test -f 'CBLAS/src/cblas_csscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_csscal.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_csscal.Tpo $(DEPDIR)/libcblas_a-cblas_csscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_csscal.c' object='libcblas_a-cblas_csscal.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_csscal.o `test -f 'CBLAS/src/cblas_csscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_csscal.c
-
-libcblas_a-cblas_csscal.obj: CBLAS/src/cblas_csscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_csscal.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_csscal.Tpo -c -o libcblas_a-cblas_csscal.obj `if test -f 'CBLAS/src/cblas_csscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_csscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_csscal.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_csscal.Tpo $(DEPDIR)/libcblas_a-cblas_csscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_csscal.c' object='libcblas_a-cblas_csscal.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_csscal.obj `if test -f 'CBLAS/src/cblas_csscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_csscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_csscal.c'; fi`
-
-libcblas_a-cblas_dtpsv.o: CBLAS/src/cblas_dtpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtpsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtpsv.Tpo -c -o libcblas_a-cblas_dtpsv.o `test -f 'CBLAS/src/cblas_dtpsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtpsv.Tpo $(DEPDIR)/libcblas_a-cblas_dtpsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtpsv.c' object='libcblas_a-cblas_dtpsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtpsv.o `test -f 'CBLAS/src/cblas_dtpsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtpsv.c
-
-libcblas_a-cblas_dtpsv.obj: CBLAS/src/cblas_dtpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtpsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtpsv.Tpo -c -o libcblas_a-cblas_dtpsv.obj `if test -f 'CBLAS/src/cblas_dtpsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtpsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtpsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtpsv.Tpo $(DEPDIR)/libcblas_a-cblas_dtpsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtpsv.c' object='libcblas_a-cblas_dtpsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtpsv.obj `if test -f 'CBLAS/src/cblas_dtpsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtpsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtpsv.c'; fi`
-
-libcblas_a-cblas_stbmv.o: CBLAS/src/cblas_stbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_stbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_stbmv.Tpo -c -o libcblas_a-cblas_stbmv.o `test -f 'CBLAS/src/cblas_stbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_stbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_stbmv.Tpo $(DEPDIR)/libcblas_a-cblas_stbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_stbmv.c' object='libcblas_a-cblas_stbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_stbmv.o `test -f 'CBLAS/src/cblas_stbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_stbmv.c
-
-libcblas_a-cblas_stbmv.obj: CBLAS/src/cblas_stbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_stbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_stbmv.Tpo -c -o libcblas_a-cblas_stbmv.obj `if test -f 'CBLAS/src/cblas_stbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_stbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_stbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_stbmv.Tpo $(DEPDIR)/libcblas_a-cblas_stbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_stbmv.c' object='libcblas_a-cblas_stbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_stbmv.obj `if test -f 'CBLAS/src/cblas_stbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_stbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_stbmv.c'; fi`
-
-libcblas_a-cblas_cswap.o: CBLAS/src/cblas_cswap.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cswap.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cswap.Tpo -c -o libcblas_a-cblas_cswap.o `test -f 'CBLAS/src/cblas_cswap.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cswap.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cswap.Tpo $(DEPDIR)/libcblas_a-cblas_cswap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cswap.c' object='libcblas_a-cblas_cswap.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cswap.o `test -f 'CBLAS/src/cblas_cswap.c' || echo '$(srcdir)/'`CBLAS/src/cblas_cswap.c
-
-libcblas_a-cblas_cswap.obj: CBLAS/src/cblas_cswap.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_cswap.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_cswap.Tpo -c -o libcblas_a-cblas_cswap.obj `if test -f 'CBLAS/src/cblas_cswap.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cswap.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cswap.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_cswap.Tpo $(DEPDIR)/libcblas_a-cblas_cswap.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_cswap.c' object='libcblas_a-cblas_cswap.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_cswap.obj `if test -f 'CBLAS/src/cblas_cswap.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_cswap.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_cswap.c'; fi`
-
-libcblas_a-cblas_dtrmm.o: CBLAS/src/cblas_dtrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtrmm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtrmm.Tpo -c -o libcblas_a-cblas_dtrmm.o `test -f 'CBLAS/src/cblas_dtrmm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtrmm.Tpo $(DEPDIR)/libcblas_a-cblas_dtrmm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtrmm.c' object='libcblas_a-cblas_dtrmm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtrmm.o `test -f 'CBLAS/src/cblas_dtrmm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtrmm.c
-
-libcblas_a-cblas_dtrmm.obj: CBLAS/src/cblas_dtrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtrmm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtrmm.Tpo -c -o libcblas_a-cblas_dtrmm.obj `if test -f 'CBLAS/src/cblas_dtrmm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtrmm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtrmm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtrmm.Tpo $(DEPDIR)/libcblas_a-cblas_dtrmm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtrmm.c' object='libcblas_a-cblas_dtrmm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtrmm.obj `if test -f 'CBLAS/src/cblas_dtrmm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtrmm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtrmm.c'; fi`
-
-libcblas_a-cblas_stbsv.o: CBLAS/src/cblas_stbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_stbsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_stbsv.Tpo -c -o libcblas_a-cblas_stbsv.o `test -f 'CBLAS/src/cblas_stbsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_stbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_stbsv.Tpo $(DEPDIR)/libcblas_a-cblas_stbsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_stbsv.c' object='libcblas_a-cblas_stbsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_stbsv.o `test -f 'CBLAS/src/cblas_stbsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_stbsv.c
-
-libcblas_a-cblas_stbsv.obj: CBLAS/src/cblas_stbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_stbsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_stbsv.Tpo -c -o libcblas_a-cblas_stbsv.obj `if test -f 'CBLAS/src/cblas_stbsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_stbsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_stbsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_stbsv.Tpo $(DEPDIR)/libcblas_a-cblas_stbsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_stbsv.c' object='libcblas_a-cblas_stbsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_stbsv.obj `if test -f 'CBLAS/src/cblas_stbsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_stbsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_stbsv.c'; fi`
-
-libcblas_a-cblas_csymm.o: CBLAS/src/cblas_csymm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_csymm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_csymm.Tpo -c -o libcblas_a-cblas_csymm.o `test -f 'CBLAS/src/cblas_csymm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_csymm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_csymm.Tpo $(DEPDIR)/libcblas_a-cblas_csymm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_csymm.c' object='libcblas_a-cblas_csymm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_csymm.o `test -f 'CBLAS/src/cblas_csymm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_csymm.c
-
-libcblas_a-cblas_csymm.obj: CBLAS/src/cblas_csymm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_csymm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_csymm.Tpo -c -o libcblas_a-cblas_csymm.obj `if test -f 'CBLAS/src/cblas_csymm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_csymm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_csymm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_csymm.Tpo $(DEPDIR)/libcblas_a-cblas_csymm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_csymm.c' object='libcblas_a-cblas_csymm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_csymm.obj `if test -f 'CBLAS/src/cblas_csymm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_csymm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_csymm.c'; fi`
-
-libcblas_a-cblas_dtrmv.o: CBLAS/src/cblas_dtrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtrmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtrmv.Tpo -c -o libcblas_a-cblas_dtrmv.o `test -f 'CBLAS/src/cblas_dtrmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtrmv.Tpo $(DEPDIR)/libcblas_a-cblas_dtrmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtrmv.c' object='libcblas_a-cblas_dtrmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtrmv.o `test -f 'CBLAS/src/cblas_dtrmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtrmv.c
-
-libcblas_a-cblas_dtrmv.obj: CBLAS/src/cblas_dtrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtrmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtrmv.Tpo -c -o libcblas_a-cblas_dtrmv.obj `if test -f 'CBLAS/src/cblas_dtrmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtrmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtrmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtrmv.Tpo $(DEPDIR)/libcblas_a-cblas_dtrmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtrmv.c' object='libcblas_a-cblas_dtrmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtrmv.obj `if test -f 'CBLAS/src/cblas_dtrmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtrmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtrmv.c'; fi`
-
-libcblas_a-cblas_stpmv.o: CBLAS/src/cblas_stpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_stpmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_stpmv.Tpo -c -o libcblas_a-cblas_stpmv.o `test -f 'CBLAS/src/cblas_stpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_stpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_stpmv.Tpo $(DEPDIR)/libcblas_a-cblas_stpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_stpmv.c' object='libcblas_a-cblas_stpmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_stpmv.o `test -f 'CBLAS/src/cblas_stpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_stpmv.c
-
-libcblas_a-cblas_stpmv.obj: CBLAS/src/cblas_stpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_stpmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_stpmv.Tpo -c -o libcblas_a-cblas_stpmv.obj `if test -f 'CBLAS/src/cblas_stpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_stpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_stpmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_stpmv.Tpo $(DEPDIR)/libcblas_a-cblas_stpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_stpmv.c' object='libcblas_a-cblas_stpmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_stpmv.obj `if test -f 'CBLAS/src/cblas_stpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_stpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_stpmv.c'; fi`
-
-libcblas_a-cblas_csyr2k.o: CBLAS/src/cblas_csyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_csyr2k.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_csyr2k.Tpo -c -o libcblas_a-cblas_csyr2k.o `test -f 'CBLAS/src/cblas_csyr2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_csyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_csyr2k.Tpo $(DEPDIR)/libcblas_a-cblas_csyr2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_csyr2k.c' object='libcblas_a-cblas_csyr2k.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_csyr2k.o `test -f 'CBLAS/src/cblas_csyr2k.c' || echo '$(srcdir)/'`CBLAS/src/cblas_csyr2k.c
-
-libcblas_a-cblas_csyr2k.obj: CBLAS/src/cblas_csyr2k.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_csyr2k.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_csyr2k.Tpo -c -o libcblas_a-cblas_csyr2k.obj `if test -f 'CBLAS/src/cblas_csyr2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_csyr2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_csyr2k.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_csyr2k.Tpo $(DEPDIR)/libcblas_a-cblas_csyr2k.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_csyr2k.c' object='libcblas_a-cblas_csyr2k.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_csyr2k.obj `if test -f 'CBLAS/src/cblas_csyr2k.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_csyr2k.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_csyr2k.c'; fi`
-
-libcblas_a-cblas_dtrsm.o: CBLAS/src/cblas_dtrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtrsm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtrsm.Tpo -c -o libcblas_a-cblas_dtrsm.o `test -f 'CBLAS/src/cblas_dtrsm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtrsm.Tpo $(DEPDIR)/libcblas_a-cblas_dtrsm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtrsm.c' object='libcblas_a-cblas_dtrsm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtrsm.o `test -f 'CBLAS/src/cblas_dtrsm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtrsm.c
-
-libcblas_a-cblas_dtrsm.obj: CBLAS/src/cblas_dtrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtrsm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtrsm.Tpo -c -o libcblas_a-cblas_dtrsm.obj `if test -f 'CBLAS/src/cblas_dtrsm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtrsm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtrsm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtrsm.Tpo $(DEPDIR)/libcblas_a-cblas_dtrsm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtrsm.c' object='libcblas_a-cblas_dtrsm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtrsm.obj `if test -f 'CBLAS/src/cblas_dtrsm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtrsm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtrsm.c'; fi`
-
-libcblas_a-cblas_stpsv.o: CBLAS/src/cblas_stpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_stpsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_stpsv.Tpo -c -o libcblas_a-cblas_stpsv.o `test -f 'CBLAS/src/cblas_stpsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_stpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_stpsv.Tpo $(DEPDIR)/libcblas_a-cblas_stpsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_stpsv.c' object='libcblas_a-cblas_stpsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_stpsv.o `test -f 'CBLAS/src/cblas_stpsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_stpsv.c
-
-libcblas_a-cblas_stpsv.obj: CBLAS/src/cblas_stpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_stpsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_stpsv.Tpo -c -o libcblas_a-cblas_stpsv.obj `if test -f 'CBLAS/src/cblas_stpsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_stpsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_stpsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_stpsv.Tpo $(DEPDIR)/libcblas_a-cblas_stpsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_stpsv.c' object='libcblas_a-cblas_stpsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_stpsv.obj `if test -f 'CBLAS/src/cblas_stpsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_stpsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_stpsv.c'; fi`
-
-libcblas_a-cblas_csyrk.o: CBLAS/src/cblas_csyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_csyrk.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_csyrk.Tpo -c -o libcblas_a-cblas_csyrk.o `test -f 'CBLAS/src/cblas_csyrk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_csyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_csyrk.Tpo $(DEPDIR)/libcblas_a-cblas_csyrk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_csyrk.c' object='libcblas_a-cblas_csyrk.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_csyrk.o `test -f 'CBLAS/src/cblas_csyrk.c' || echo '$(srcdir)/'`CBLAS/src/cblas_csyrk.c
-
-libcblas_a-cblas_csyrk.obj: CBLAS/src/cblas_csyrk.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_csyrk.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_csyrk.Tpo -c -o libcblas_a-cblas_csyrk.obj `if test -f 'CBLAS/src/cblas_csyrk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_csyrk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_csyrk.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_csyrk.Tpo $(DEPDIR)/libcblas_a-cblas_csyrk.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_csyrk.c' object='libcblas_a-cblas_csyrk.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_csyrk.obj `if test -f 'CBLAS/src/cblas_csyrk.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_csyrk.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_csyrk.c'; fi`
-
-libcblas_a-cblas_dtrsv.o: CBLAS/src/cblas_dtrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtrsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtrsv.Tpo -c -o libcblas_a-cblas_dtrsv.o `test -f 'CBLAS/src/cblas_dtrsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtrsv.Tpo $(DEPDIR)/libcblas_a-cblas_dtrsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtrsv.c' object='libcblas_a-cblas_dtrsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtrsv.o `test -f 'CBLAS/src/cblas_dtrsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dtrsv.c
-
-libcblas_a-cblas_dtrsv.obj: CBLAS/src/cblas_dtrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dtrsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dtrsv.Tpo -c -o libcblas_a-cblas_dtrsv.obj `if test -f 'CBLAS/src/cblas_dtrsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtrsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtrsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dtrsv.Tpo $(DEPDIR)/libcblas_a-cblas_dtrsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dtrsv.c' object='libcblas_a-cblas_dtrsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dtrsv.obj `if test -f 'CBLAS/src/cblas_dtrsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dtrsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dtrsv.c'; fi`
-
-libcblas_a-cblas_strmm.o: CBLAS/src/cblas_strmm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_strmm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_strmm.Tpo -c -o libcblas_a-cblas_strmm.o `test -f 'CBLAS/src/cblas_strmm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_strmm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_strmm.Tpo $(DEPDIR)/libcblas_a-cblas_strmm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_strmm.c' object='libcblas_a-cblas_strmm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_strmm.o `test -f 'CBLAS/src/cblas_strmm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_strmm.c
-
-libcblas_a-cblas_strmm.obj: CBLAS/src/cblas_strmm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_strmm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_strmm.Tpo -c -o libcblas_a-cblas_strmm.obj `if test -f 'CBLAS/src/cblas_strmm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_strmm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_strmm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_strmm.Tpo $(DEPDIR)/libcblas_a-cblas_strmm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_strmm.c' object='libcblas_a-cblas_strmm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_strmm.obj `if test -f 'CBLAS/src/cblas_strmm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_strmm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_strmm.c'; fi`
-
-libcblas_a-cblas_ctbmv.o: CBLAS/src/cblas_ctbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctbmv.Tpo -c -o libcblas_a-cblas_ctbmv.o `test -f 'CBLAS/src/cblas_ctbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctbmv.Tpo $(DEPDIR)/libcblas_a-cblas_ctbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctbmv.c' object='libcblas_a-cblas_ctbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctbmv.o `test -f 'CBLAS/src/cblas_ctbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctbmv.c
-
-libcblas_a-cblas_ctbmv.obj: CBLAS/src/cblas_ctbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctbmv.Tpo -c -o libcblas_a-cblas_ctbmv.obj `if test -f 'CBLAS/src/cblas_ctbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctbmv.Tpo $(DEPDIR)/libcblas_a-cblas_ctbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctbmv.c' object='libcblas_a-cblas_ctbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctbmv.obj `if test -f 'CBLAS/src/cblas_ctbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctbmv.c'; fi`
-
-libcblas_a-cblas_dzasum.o: CBLAS/src/cblas_dzasum.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dzasum.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dzasum.Tpo -c -o libcblas_a-cblas_dzasum.o `test -f 'CBLAS/src/cblas_dzasum.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dzasum.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dzasum.Tpo $(DEPDIR)/libcblas_a-cblas_dzasum.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dzasum.c' object='libcblas_a-cblas_dzasum.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dzasum.o `test -f 'CBLAS/src/cblas_dzasum.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dzasum.c
-
-libcblas_a-cblas_dzasum.obj: CBLAS/src/cblas_dzasum.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dzasum.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dzasum.Tpo -c -o libcblas_a-cblas_dzasum.obj `if test -f 'CBLAS/src/cblas_dzasum.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dzasum.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dzasum.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dzasum.Tpo $(DEPDIR)/libcblas_a-cblas_dzasum.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dzasum.c' object='libcblas_a-cblas_dzasum.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dzasum.obj `if test -f 'CBLAS/src/cblas_dzasum.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dzasum.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dzasum.c'; fi`
-
-libcblas_a-cblas_strmv.o: CBLAS/src/cblas_strmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_strmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_strmv.Tpo -c -o libcblas_a-cblas_strmv.o `test -f 'CBLAS/src/cblas_strmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_strmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_strmv.Tpo $(DEPDIR)/libcblas_a-cblas_strmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_strmv.c' object='libcblas_a-cblas_strmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_strmv.o `test -f 'CBLAS/src/cblas_strmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_strmv.c
-
-libcblas_a-cblas_strmv.obj: CBLAS/src/cblas_strmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_strmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_strmv.Tpo -c -o libcblas_a-cblas_strmv.obj `if test -f 'CBLAS/src/cblas_strmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_strmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_strmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_strmv.Tpo $(DEPDIR)/libcblas_a-cblas_strmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_strmv.c' object='libcblas_a-cblas_strmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_strmv.obj `if test -f 'CBLAS/src/cblas_strmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_strmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_strmv.c'; fi`
-
-libcblas_a-cblas_ctbsv.o: CBLAS/src/cblas_ctbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctbsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctbsv.Tpo -c -o libcblas_a-cblas_ctbsv.o `test -f 'CBLAS/src/cblas_ctbsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctbsv.Tpo $(DEPDIR)/libcblas_a-cblas_ctbsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctbsv.c' object='libcblas_a-cblas_ctbsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctbsv.o `test -f 'CBLAS/src/cblas_ctbsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctbsv.c
-
-libcblas_a-cblas_ctbsv.obj: CBLAS/src/cblas_ctbsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctbsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctbsv.Tpo -c -o libcblas_a-cblas_ctbsv.obj `if test -f 'CBLAS/src/cblas_ctbsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctbsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctbsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctbsv.Tpo $(DEPDIR)/libcblas_a-cblas_ctbsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctbsv.c' object='libcblas_a-cblas_ctbsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctbsv.obj `if test -f 'CBLAS/src/cblas_ctbsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctbsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctbsv.c'; fi`
-
-libcblas_a-cblas_dznrm2.o: CBLAS/src/cblas_dznrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dznrm2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dznrm2.Tpo -c -o libcblas_a-cblas_dznrm2.o `test -f 'CBLAS/src/cblas_dznrm2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dznrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dznrm2.Tpo $(DEPDIR)/libcblas_a-cblas_dznrm2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dznrm2.c' object='libcblas_a-cblas_dznrm2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dznrm2.o `test -f 'CBLAS/src/cblas_dznrm2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dznrm2.c
-
-libcblas_a-cblas_dznrm2.obj: CBLAS/src/cblas_dznrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dznrm2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dznrm2.Tpo -c -o libcblas_a-cblas_dznrm2.obj `if test -f 'CBLAS/src/cblas_dznrm2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dznrm2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dznrm2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dznrm2.Tpo $(DEPDIR)/libcblas_a-cblas_dznrm2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dznrm2.c' object='libcblas_a-cblas_dznrm2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dznrm2.obj `if test -f 'CBLAS/src/cblas_dznrm2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dznrm2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dznrm2.c'; fi`
-
-libcblas_a-cblas_strsm.o: CBLAS/src/cblas_strsm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_strsm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_strsm.Tpo -c -o libcblas_a-cblas_strsm.o `test -f 'CBLAS/src/cblas_strsm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_strsm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_strsm.Tpo $(DEPDIR)/libcblas_a-cblas_strsm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_strsm.c' object='libcblas_a-cblas_strsm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_strsm.o `test -f 'CBLAS/src/cblas_strsm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_strsm.c
-
-libcblas_a-cblas_strsm.obj: CBLAS/src/cblas_strsm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_strsm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_strsm.Tpo -c -o libcblas_a-cblas_strsm.obj `if test -f 'CBLAS/src/cblas_strsm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_strsm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_strsm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_strsm.Tpo $(DEPDIR)/libcblas_a-cblas_strsm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_strsm.c' object='libcblas_a-cblas_strsm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_strsm.obj `if test -f 'CBLAS/src/cblas_strsm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_strsm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_strsm.c'; fi`
-
-libcblas_a-cblas_ctpmv.o: CBLAS/src/cblas_ctpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctpmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctpmv.Tpo -c -o libcblas_a-cblas_ctpmv.o `test -f 'CBLAS/src/cblas_ctpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctpmv.Tpo $(DEPDIR)/libcblas_a-cblas_ctpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctpmv.c' object='libcblas_a-cblas_ctpmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctpmv.o `test -f 'CBLAS/src/cblas_ctpmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctpmv.c
-
-libcblas_a-cblas_ctpmv.obj: CBLAS/src/cblas_ctpmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctpmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctpmv.Tpo -c -o libcblas_a-cblas_ctpmv.obj `if test -f 'CBLAS/src/cblas_ctpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctpmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctpmv.Tpo $(DEPDIR)/libcblas_a-cblas_ctpmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctpmv.c' object='libcblas_a-cblas_ctpmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctpmv.obj `if test -f 'CBLAS/src/cblas_ctpmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctpmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctpmv.c'; fi`
-
-libcblas_a-cblas_strsv.o: CBLAS/src/cblas_strsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_strsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_strsv.Tpo -c -o libcblas_a-cblas_strsv.o `test -f 'CBLAS/src/cblas_strsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_strsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_strsv.Tpo $(DEPDIR)/libcblas_a-cblas_strsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_strsv.c' object='libcblas_a-cblas_strsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_strsv.o `test -f 'CBLAS/src/cblas_strsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_strsv.c
-
-libcblas_a-cblas_strsv.obj: CBLAS/src/cblas_strsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_strsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_strsv.Tpo -c -o libcblas_a-cblas_strsv.obj `if test -f 'CBLAS/src/cblas_strsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_strsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_strsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_strsv.Tpo $(DEPDIR)/libcblas_a-cblas_strsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_strsv.c' object='libcblas_a-cblas_strsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_strsv.obj `if test -f 'CBLAS/src/cblas_strsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_strsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_strsv.c'; fi`
-
-libcblas_a-cblas_ctpsv.o: CBLAS/src/cblas_ctpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctpsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctpsv.Tpo -c -o libcblas_a-cblas_ctpsv.o `test -f 'CBLAS/src/cblas_ctpsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctpsv.Tpo $(DEPDIR)/libcblas_a-cblas_ctpsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctpsv.c' object='libcblas_a-cblas_ctpsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctpsv.o `test -f 'CBLAS/src/cblas_ctpsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctpsv.c
-
-libcblas_a-cblas_ctpsv.obj: CBLAS/src/cblas_ctpsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctpsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctpsv.Tpo -c -o libcblas_a-cblas_ctpsv.obj `if test -f 'CBLAS/src/cblas_ctpsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctpsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctpsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctpsv.Tpo $(DEPDIR)/libcblas_a-cblas_ctpsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctpsv.c' object='libcblas_a-cblas_ctpsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctpsv.obj `if test -f 'CBLAS/src/cblas_ctpsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctpsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctpsv.c'; fi`
-
-libcblas_a-cblas_globals.o: CBLAS/src/cblas_globals.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_globals.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_globals.Tpo -c -o libcblas_a-cblas_globals.o `test -f 'CBLAS/src/cblas_globals.c' || echo '$(srcdir)/'`CBLAS/src/cblas_globals.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_globals.Tpo $(DEPDIR)/libcblas_a-cblas_globals.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_globals.c' object='libcblas_a-cblas_globals.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_globals.o `test -f 'CBLAS/src/cblas_globals.c' || echo '$(srcdir)/'`CBLAS/src/cblas_globals.c
-
-libcblas_a-cblas_globals.obj: CBLAS/src/cblas_globals.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_globals.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_globals.Tpo -c -o libcblas_a-cblas_globals.obj `if test -f 'CBLAS/src/cblas_globals.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_globals.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_globals.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_globals.Tpo $(DEPDIR)/libcblas_a-cblas_globals.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_globals.c' object='libcblas_a-cblas_globals.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_globals.obj `if test -f 'CBLAS/src/cblas_globals.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_globals.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_globals.c'; fi`
-
-libcblas_a-cblas_xerbla.o: CBLAS/src/cblas_xerbla.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_xerbla.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_xerbla.Tpo -c -o libcblas_a-cblas_xerbla.o `test -f 'CBLAS/src/cblas_xerbla.c' || echo '$(srcdir)/'`CBLAS/src/cblas_xerbla.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_xerbla.Tpo $(DEPDIR)/libcblas_a-cblas_xerbla.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_xerbla.c' object='libcblas_a-cblas_xerbla.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_xerbla.o `test -f 'CBLAS/src/cblas_xerbla.c' || echo '$(srcdir)/'`CBLAS/src/cblas_xerbla.c
-
-libcblas_a-cblas_xerbla.obj: CBLAS/src/cblas_xerbla.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_xerbla.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_xerbla.Tpo -c -o libcblas_a-cblas_xerbla.obj `if test -f 'CBLAS/src/cblas_xerbla.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_xerbla.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_xerbla.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_xerbla.Tpo $(DEPDIR)/libcblas_a-cblas_xerbla.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_xerbla.c' object='libcblas_a-cblas_xerbla.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_xerbla.obj `if test -f 'CBLAS/src/cblas_xerbla.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_xerbla.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_xerbla.c'; fi`
-
-libcblas_a-cblas_ctrmm.o: CBLAS/src/cblas_ctrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctrmm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctrmm.Tpo -c -o libcblas_a-cblas_ctrmm.o `test -f 'CBLAS/src/cblas_ctrmm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctrmm.Tpo $(DEPDIR)/libcblas_a-cblas_ctrmm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctrmm.c' object='libcblas_a-cblas_ctrmm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctrmm.o `test -f 'CBLAS/src/cblas_ctrmm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctrmm.c
-
-libcblas_a-cblas_ctrmm.obj: CBLAS/src/cblas_ctrmm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctrmm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctrmm.Tpo -c -o libcblas_a-cblas_ctrmm.obj `if test -f 'CBLAS/src/cblas_ctrmm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctrmm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctrmm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctrmm.Tpo $(DEPDIR)/libcblas_a-cblas_ctrmm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctrmm.c' object='libcblas_a-cblas_ctrmm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctrmm.obj `if test -f 'CBLAS/src/cblas_ctrmm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctrmm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctrmm.c'; fi`
-
-libcblas_a-cblas_zaxpy.o: CBLAS/src/cblas_zaxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zaxpy.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zaxpy.Tpo -c -o libcblas_a-cblas_zaxpy.o `test -f 'CBLAS/src/cblas_zaxpy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zaxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zaxpy.Tpo $(DEPDIR)/libcblas_a-cblas_zaxpy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zaxpy.c' object='libcblas_a-cblas_zaxpy.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zaxpy.o `test -f 'CBLAS/src/cblas_zaxpy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zaxpy.c
-
-libcblas_a-cblas_zaxpy.obj: CBLAS/src/cblas_zaxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zaxpy.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zaxpy.Tpo -c -o libcblas_a-cblas_zaxpy.obj `if test -f 'CBLAS/src/cblas_zaxpy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zaxpy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zaxpy.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zaxpy.Tpo $(DEPDIR)/libcblas_a-cblas_zaxpy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zaxpy.c' object='libcblas_a-cblas_zaxpy.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zaxpy.obj `if test -f 'CBLAS/src/cblas_zaxpy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zaxpy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zaxpy.c'; fi`
-
-libcblas_a-cblas_ctrmv.o: CBLAS/src/cblas_ctrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctrmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctrmv.Tpo -c -o libcblas_a-cblas_ctrmv.o `test -f 'CBLAS/src/cblas_ctrmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctrmv.Tpo $(DEPDIR)/libcblas_a-cblas_ctrmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctrmv.c' object='libcblas_a-cblas_ctrmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctrmv.o `test -f 'CBLAS/src/cblas_ctrmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctrmv.c
-
-libcblas_a-cblas_ctrmv.obj: CBLAS/src/cblas_ctrmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctrmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctrmv.Tpo -c -o libcblas_a-cblas_ctrmv.obj `if test -f 'CBLAS/src/cblas_ctrmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctrmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctrmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctrmv.Tpo $(DEPDIR)/libcblas_a-cblas_ctrmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctrmv.c' object='libcblas_a-cblas_ctrmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctrmv.obj `if test -f 'CBLAS/src/cblas_ctrmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctrmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctrmv.c'; fi`
-
-libcblas_a-cblas_icamax.o: CBLAS/src/cblas_icamax.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_icamax.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_icamax.Tpo -c -o libcblas_a-cblas_icamax.o `test -f 'CBLAS/src/cblas_icamax.c' || echo '$(srcdir)/'`CBLAS/src/cblas_icamax.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_icamax.Tpo $(DEPDIR)/libcblas_a-cblas_icamax.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_icamax.c' object='libcblas_a-cblas_icamax.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_icamax.o `test -f 'CBLAS/src/cblas_icamax.c' || echo '$(srcdir)/'`CBLAS/src/cblas_icamax.c
-
-libcblas_a-cblas_icamax.obj: CBLAS/src/cblas_icamax.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_icamax.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_icamax.Tpo -c -o libcblas_a-cblas_icamax.obj `if test -f 'CBLAS/src/cblas_icamax.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_icamax.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_icamax.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_icamax.Tpo $(DEPDIR)/libcblas_a-cblas_icamax.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_icamax.c' object='libcblas_a-cblas_icamax.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_icamax.obj `if test -f 'CBLAS/src/cblas_icamax.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_icamax.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_icamax.c'; fi`
-
-libcblas_a-cblas_zcopy.o: CBLAS/src/cblas_zcopy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zcopy.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zcopy.Tpo -c -o libcblas_a-cblas_zcopy.o `test -f 'CBLAS/src/cblas_zcopy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zcopy.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zcopy.Tpo $(DEPDIR)/libcblas_a-cblas_zcopy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zcopy.c' object='libcblas_a-cblas_zcopy.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zcopy.o `test -f 'CBLAS/src/cblas_zcopy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zcopy.c
-
-libcblas_a-cblas_zcopy.obj: CBLAS/src/cblas_zcopy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zcopy.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zcopy.Tpo -c -o libcblas_a-cblas_zcopy.obj `if test -f 'CBLAS/src/cblas_zcopy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zcopy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zcopy.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zcopy.Tpo $(DEPDIR)/libcblas_a-cblas_zcopy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zcopy.c' object='libcblas_a-cblas_zcopy.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zcopy.obj `if test -f 'CBLAS/src/cblas_zcopy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zcopy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zcopy.c'; fi`
-
-libcblas_a-cblas_ctrsm.o: CBLAS/src/cblas_ctrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctrsm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctrsm.Tpo -c -o libcblas_a-cblas_ctrsm.o `test -f 'CBLAS/src/cblas_ctrsm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctrsm.Tpo $(DEPDIR)/libcblas_a-cblas_ctrsm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctrsm.c' object='libcblas_a-cblas_ctrsm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctrsm.o `test -f 'CBLAS/src/cblas_ctrsm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctrsm.c
-
-libcblas_a-cblas_ctrsm.obj: CBLAS/src/cblas_ctrsm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctrsm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctrsm.Tpo -c -o libcblas_a-cblas_ctrsm.obj `if test -f 'CBLAS/src/cblas_ctrsm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctrsm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctrsm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctrsm.Tpo $(DEPDIR)/libcblas_a-cblas_ctrsm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctrsm.c' object='libcblas_a-cblas_ctrsm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctrsm.obj `if test -f 'CBLAS/src/cblas_ctrsm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctrsm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctrsm.c'; fi`
-
-libcblas_a-cblas_idamax.o: CBLAS/src/cblas_idamax.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_idamax.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_idamax.Tpo -c -o libcblas_a-cblas_idamax.o `test -f 'CBLAS/src/cblas_idamax.c' || echo '$(srcdir)/'`CBLAS/src/cblas_idamax.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_idamax.Tpo $(DEPDIR)/libcblas_a-cblas_idamax.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_idamax.c' object='libcblas_a-cblas_idamax.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_idamax.o `test -f 'CBLAS/src/cblas_idamax.c' || echo '$(srcdir)/'`CBLAS/src/cblas_idamax.c
-
-libcblas_a-cblas_idamax.obj: CBLAS/src/cblas_idamax.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_idamax.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_idamax.Tpo -c -o libcblas_a-cblas_idamax.obj `if test -f 'CBLAS/src/cblas_idamax.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_idamax.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_idamax.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_idamax.Tpo $(DEPDIR)/libcblas_a-cblas_idamax.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_idamax.c' object='libcblas_a-cblas_idamax.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_idamax.obj `if test -f 'CBLAS/src/cblas_idamax.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_idamax.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_idamax.c'; fi`
-
-libcblas_a-cblas_zdotc_sub.o: CBLAS/src/cblas_zdotc_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zdotc_sub.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zdotc_sub.Tpo -c -o libcblas_a-cblas_zdotc_sub.o `test -f 'CBLAS/src/cblas_zdotc_sub.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zdotc_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zdotc_sub.Tpo $(DEPDIR)/libcblas_a-cblas_zdotc_sub.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zdotc_sub.c' object='libcblas_a-cblas_zdotc_sub.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zdotc_sub.o `test -f 'CBLAS/src/cblas_zdotc_sub.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zdotc_sub.c
-
-libcblas_a-cblas_zdotc_sub.obj: CBLAS/src/cblas_zdotc_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zdotc_sub.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zdotc_sub.Tpo -c -o libcblas_a-cblas_zdotc_sub.obj `if test -f 'CBLAS/src/cblas_zdotc_sub.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zdotc_sub.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zdotc_sub.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zdotc_sub.Tpo $(DEPDIR)/libcblas_a-cblas_zdotc_sub.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zdotc_sub.c' object='libcblas_a-cblas_zdotc_sub.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zdotc_sub.obj `if test -f 'CBLAS/src/cblas_zdotc_sub.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zdotc_sub.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zdotc_sub.c'; fi`
-
-libcblas_a-cblas_ctrsv.o: CBLAS/src/cblas_ctrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctrsv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctrsv.Tpo -c -o libcblas_a-cblas_ctrsv.o `test -f 'CBLAS/src/cblas_ctrsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctrsv.Tpo $(DEPDIR)/libcblas_a-cblas_ctrsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctrsv.c' object='libcblas_a-cblas_ctrsv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctrsv.o `test -f 'CBLAS/src/cblas_ctrsv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ctrsv.c
-
-libcblas_a-cblas_ctrsv.obj: CBLAS/src/cblas_ctrsv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ctrsv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ctrsv.Tpo -c -o libcblas_a-cblas_ctrsv.obj `if test -f 'CBLAS/src/cblas_ctrsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctrsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctrsv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ctrsv.Tpo $(DEPDIR)/libcblas_a-cblas_ctrsv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ctrsv.c' object='libcblas_a-cblas_ctrsv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ctrsv.obj `if test -f 'CBLAS/src/cblas_ctrsv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ctrsv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ctrsv.c'; fi`
-
-libcblas_a-cblas_isamax.o: CBLAS/src/cblas_isamax.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_isamax.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_isamax.Tpo -c -o libcblas_a-cblas_isamax.o `test -f 'CBLAS/src/cblas_isamax.c' || echo '$(srcdir)/'`CBLAS/src/cblas_isamax.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_isamax.Tpo $(DEPDIR)/libcblas_a-cblas_isamax.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_isamax.c' object='libcblas_a-cblas_isamax.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_isamax.o `test -f 'CBLAS/src/cblas_isamax.c' || echo '$(srcdir)/'`CBLAS/src/cblas_isamax.c
-
-libcblas_a-cblas_isamax.obj: CBLAS/src/cblas_isamax.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_isamax.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_isamax.Tpo -c -o libcblas_a-cblas_isamax.obj `if test -f 'CBLAS/src/cblas_isamax.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_isamax.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_isamax.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_isamax.Tpo $(DEPDIR)/libcblas_a-cblas_isamax.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_isamax.c' object='libcblas_a-cblas_isamax.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_isamax.obj `if test -f 'CBLAS/src/cblas_isamax.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_isamax.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_isamax.c'; fi`
-
-libcblas_a-cblas_zdotu_sub.o: CBLAS/src/cblas_zdotu_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zdotu_sub.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zdotu_sub.Tpo -c -o libcblas_a-cblas_zdotu_sub.o `test -f 'CBLAS/src/cblas_zdotu_sub.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zdotu_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zdotu_sub.Tpo $(DEPDIR)/libcblas_a-cblas_zdotu_sub.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zdotu_sub.c' object='libcblas_a-cblas_zdotu_sub.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zdotu_sub.o `test -f 'CBLAS/src/cblas_zdotu_sub.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zdotu_sub.c
-
-libcblas_a-cblas_zdotu_sub.obj: CBLAS/src/cblas_zdotu_sub.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zdotu_sub.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zdotu_sub.Tpo -c -o libcblas_a-cblas_zdotu_sub.obj `if test -f 'CBLAS/src/cblas_zdotu_sub.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zdotu_sub.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zdotu_sub.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zdotu_sub.Tpo $(DEPDIR)/libcblas_a-cblas_zdotu_sub.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zdotu_sub.c' object='libcblas_a-cblas_zdotu_sub.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zdotu_sub.obj `if test -f 'CBLAS/src/cblas_zdotu_sub.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zdotu_sub.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zdotu_sub.c'; fi`
-
-libcblas_a-cblas_dasum.o: CBLAS/src/cblas_dasum.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dasum.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dasum.Tpo -c -o libcblas_a-cblas_dasum.o `test -f 'CBLAS/src/cblas_dasum.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dasum.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dasum.Tpo $(DEPDIR)/libcblas_a-cblas_dasum.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dasum.c' object='libcblas_a-cblas_dasum.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dasum.o `test -f 'CBLAS/src/cblas_dasum.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dasum.c
-
-libcblas_a-cblas_dasum.obj: CBLAS/src/cblas_dasum.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dasum.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dasum.Tpo -c -o libcblas_a-cblas_dasum.obj `if test -f 'CBLAS/src/cblas_dasum.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dasum.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dasum.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dasum.Tpo $(DEPDIR)/libcblas_a-cblas_dasum.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dasum.c' object='libcblas_a-cblas_dasum.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dasum.obj `if test -f 'CBLAS/src/cblas_dasum.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dasum.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dasum.c'; fi`
-
-libcblas_a-cblas_izamax.o: CBLAS/src/cblas_izamax.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_izamax.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_izamax.Tpo -c -o libcblas_a-cblas_izamax.o `test -f 'CBLAS/src/cblas_izamax.c' || echo '$(srcdir)/'`CBLAS/src/cblas_izamax.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_izamax.Tpo $(DEPDIR)/libcblas_a-cblas_izamax.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_izamax.c' object='libcblas_a-cblas_izamax.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_izamax.o `test -f 'CBLAS/src/cblas_izamax.c' || echo '$(srcdir)/'`CBLAS/src/cblas_izamax.c
-
-libcblas_a-cblas_izamax.obj: CBLAS/src/cblas_izamax.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_izamax.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_izamax.Tpo -c -o libcblas_a-cblas_izamax.obj `if test -f 'CBLAS/src/cblas_izamax.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_izamax.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_izamax.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_izamax.Tpo $(DEPDIR)/libcblas_a-cblas_izamax.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_izamax.c' object='libcblas_a-cblas_izamax.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_izamax.obj `if test -f 'CBLAS/src/cblas_izamax.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_izamax.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_izamax.c'; fi`
-
-libcblas_a-cblas_zdscal.o: CBLAS/src/cblas_zdscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zdscal.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zdscal.Tpo -c -o libcblas_a-cblas_zdscal.o `test -f 'CBLAS/src/cblas_zdscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zdscal.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zdscal.Tpo $(DEPDIR)/libcblas_a-cblas_zdscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zdscal.c' object='libcblas_a-cblas_zdscal.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zdscal.o `test -f 'CBLAS/src/cblas_zdscal.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zdscal.c
-
-libcblas_a-cblas_zdscal.obj: CBLAS/src/cblas_zdscal.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zdscal.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zdscal.Tpo -c -o libcblas_a-cblas_zdscal.obj `if test -f 'CBLAS/src/cblas_zdscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zdscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zdscal.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zdscal.Tpo $(DEPDIR)/libcblas_a-cblas_zdscal.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zdscal.c' object='libcblas_a-cblas_zdscal.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zdscal.obj `if test -f 'CBLAS/src/cblas_zdscal.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zdscal.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zdscal.c'; fi`
-
-libcblas_a-cblas_daxpy.o: CBLAS/src/cblas_daxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_daxpy.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_daxpy.Tpo -c -o libcblas_a-cblas_daxpy.o `test -f 'CBLAS/src/cblas_daxpy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_daxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_daxpy.Tpo $(DEPDIR)/libcblas_a-cblas_daxpy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_daxpy.c' object='libcblas_a-cblas_daxpy.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_daxpy.o `test -f 'CBLAS/src/cblas_daxpy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_daxpy.c
-
-libcblas_a-cblas_daxpy.obj: CBLAS/src/cblas_daxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_daxpy.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_daxpy.Tpo -c -o libcblas_a-cblas_daxpy.obj `if test -f 'CBLAS/src/cblas_daxpy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_daxpy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_daxpy.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_daxpy.Tpo $(DEPDIR)/libcblas_a-cblas_daxpy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_daxpy.c' object='libcblas_a-cblas_daxpy.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_daxpy.obj `if test -f 'CBLAS/src/cblas_daxpy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_daxpy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_daxpy.c'; fi`
-
-libcblas_a-cblas_sasum.o: CBLAS/src/cblas_sasum.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sasum.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sasum.Tpo -c -o libcblas_a-cblas_sasum.o `test -f 'CBLAS/src/cblas_sasum.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sasum.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sasum.Tpo $(DEPDIR)/libcblas_a-cblas_sasum.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sasum.c' object='libcblas_a-cblas_sasum.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sasum.o `test -f 'CBLAS/src/cblas_sasum.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sasum.c
-
-libcblas_a-cblas_sasum.obj: CBLAS/src/cblas_sasum.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sasum.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sasum.Tpo -c -o libcblas_a-cblas_sasum.obj `if test -f 'CBLAS/src/cblas_sasum.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sasum.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sasum.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sasum.Tpo $(DEPDIR)/libcblas_a-cblas_sasum.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sasum.c' object='libcblas_a-cblas_sasum.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sasum.obj `if test -f 'CBLAS/src/cblas_sasum.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sasum.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sasum.c'; fi`
-
-libcblas_a-cblas_zgbmv.o: CBLAS/src/cblas_zgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgbmv.Tpo -c -o libcblas_a-cblas_zgbmv.o `test -f 'CBLAS/src/cblas_zgbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgbmv.Tpo $(DEPDIR)/libcblas_a-cblas_zgbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgbmv.c' object='libcblas_a-cblas_zgbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgbmv.o `test -f 'CBLAS/src/cblas_zgbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgbmv.c
-
-libcblas_a-cblas_zgbmv.obj: CBLAS/src/cblas_zgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgbmv.Tpo -c -o libcblas_a-cblas_zgbmv.obj `if test -f 'CBLAS/src/cblas_zgbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgbmv.Tpo $(DEPDIR)/libcblas_a-cblas_zgbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgbmv.c' object='libcblas_a-cblas_zgbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgbmv.obj `if test -f 'CBLAS/src/cblas_zgbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgbmv.c'; fi`
-
-libcblas_a-cblas_dcopy.o: CBLAS/src/cblas_dcopy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dcopy.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dcopy.Tpo -c -o libcblas_a-cblas_dcopy.o `test -f 'CBLAS/src/cblas_dcopy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dcopy.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dcopy.Tpo $(DEPDIR)/libcblas_a-cblas_dcopy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dcopy.c' object='libcblas_a-cblas_dcopy.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dcopy.o `test -f 'CBLAS/src/cblas_dcopy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dcopy.c
-
-libcblas_a-cblas_dcopy.obj: CBLAS/src/cblas_dcopy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dcopy.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dcopy.Tpo -c -o libcblas_a-cblas_dcopy.obj `if test -f 'CBLAS/src/cblas_dcopy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dcopy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dcopy.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dcopy.Tpo $(DEPDIR)/libcblas_a-cblas_dcopy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dcopy.c' object='libcblas_a-cblas_dcopy.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dcopy.obj `if test -f 'CBLAS/src/cblas_dcopy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dcopy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dcopy.c'; fi`
-
-libcblas_a-cblas_saxpy.o: CBLAS/src/cblas_saxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_saxpy.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_saxpy.Tpo -c -o libcblas_a-cblas_saxpy.o `test -f 'CBLAS/src/cblas_saxpy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_saxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_saxpy.Tpo $(DEPDIR)/libcblas_a-cblas_saxpy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_saxpy.c' object='libcblas_a-cblas_saxpy.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_saxpy.o `test -f 'CBLAS/src/cblas_saxpy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_saxpy.c
-
-libcblas_a-cblas_saxpy.obj: CBLAS/src/cblas_saxpy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_saxpy.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_saxpy.Tpo -c -o libcblas_a-cblas_saxpy.obj `if test -f 'CBLAS/src/cblas_saxpy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_saxpy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_saxpy.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_saxpy.Tpo $(DEPDIR)/libcblas_a-cblas_saxpy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_saxpy.c' object='libcblas_a-cblas_saxpy.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_saxpy.obj `if test -f 'CBLAS/src/cblas_saxpy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_saxpy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_saxpy.c'; fi`
-
-libcblas_a-cblas_zgemm.o: CBLAS/src/cblas_zgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgemm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgemm.Tpo -c -o libcblas_a-cblas_zgemm.o `test -f 'CBLAS/src/cblas_zgemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgemm.Tpo $(DEPDIR)/libcblas_a-cblas_zgemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgemm.c' object='libcblas_a-cblas_zgemm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgemm.o `test -f 'CBLAS/src/cblas_zgemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgemm.c
-
-libcblas_a-cblas_zgemm.obj: CBLAS/src/cblas_zgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgemm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgemm.Tpo -c -o libcblas_a-cblas_zgemm.obj `if test -f 'CBLAS/src/cblas_zgemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgemm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgemm.Tpo $(DEPDIR)/libcblas_a-cblas_zgemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgemm.c' object='libcblas_a-cblas_zgemm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgemm.obj `if test -f 'CBLAS/src/cblas_zgemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgemm.c'; fi`
-
-libcblas_a-cblas_ddot.o: CBLAS/src/cblas_ddot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ddot.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ddot.Tpo -c -o libcblas_a-cblas_ddot.o `test -f 'CBLAS/src/cblas_ddot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ddot.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ddot.Tpo $(DEPDIR)/libcblas_a-cblas_ddot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ddot.c' object='libcblas_a-cblas_ddot.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ddot.o `test -f 'CBLAS/src/cblas_ddot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_ddot.c
-
-libcblas_a-cblas_ddot.obj: CBLAS/src/cblas_ddot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_ddot.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_ddot.Tpo -c -o libcblas_a-cblas_ddot.obj `if test -f 'CBLAS/src/cblas_ddot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ddot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ddot.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_ddot.Tpo $(DEPDIR)/libcblas_a-cblas_ddot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_ddot.c' object='libcblas_a-cblas_ddot.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_ddot.obj `if test -f 'CBLAS/src/cblas_ddot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_ddot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_ddot.c'; fi`
-
-libcblas_a-cblas_scasum.o: CBLAS/src/cblas_scasum.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_scasum.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_scasum.Tpo -c -o libcblas_a-cblas_scasum.o `test -f 'CBLAS/src/cblas_scasum.c' || echo '$(srcdir)/'`CBLAS/src/cblas_scasum.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_scasum.Tpo $(DEPDIR)/libcblas_a-cblas_scasum.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_scasum.c' object='libcblas_a-cblas_scasum.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_scasum.o `test -f 'CBLAS/src/cblas_scasum.c' || echo '$(srcdir)/'`CBLAS/src/cblas_scasum.c
-
-libcblas_a-cblas_scasum.obj: CBLAS/src/cblas_scasum.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_scasum.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_scasum.Tpo -c -o libcblas_a-cblas_scasum.obj `if test -f 'CBLAS/src/cblas_scasum.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_scasum.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_scasum.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_scasum.Tpo $(DEPDIR)/libcblas_a-cblas_scasum.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_scasum.c' object='libcblas_a-cblas_scasum.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_scasum.obj `if test -f 'CBLAS/src/cblas_scasum.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_scasum.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_scasum.c'; fi`
-
-libcblas_a-cblas_zgemv.o: CBLAS/src/cblas_zgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgemv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgemv.Tpo -c -o libcblas_a-cblas_zgemv.o `test -f 'CBLAS/src/cblas_zgemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgemv.Tpo $(DEPDIR)/libcblas_a-cblas_zgemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgemv.c' object='libcblas_a-cblas_zgemv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgemv.o `test -f 'CBLAS/src/cblas_zgemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgemv.c
-
-libcblas_a-cblas_zgemv.obj: CBLAS/src/cblas_zgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgemv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgemv.Tpo -c -o libcblas_a-cblas_zgemv.obj `if test -f 'CBLAS/src/cblas_zgemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgemv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgemv.Tpo $(DEPDIR)/libcblas_a-cblas_zgemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgemv.c' object='libcblas_a-cblas_zgemv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgemv.obj `if test -f 'CBLAS/src/cblas_zgemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgemv.c'; fi`
-
-libcblas_a-cblas_dgbmv.o: CBLAS/src/cblas_dgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dgbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dgbmv.Tpo -c -o libcblas_a-cblas_dgbmv.o `test -f 'CBLAS/src/cblas_dgbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dgbmv.Tpo $(DEPDIR)/libcblas_a-cblas_dgbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dgbmv.c' object='libcblas_a-cblas_dgbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dgbmv.o `test -f 'CBLAS/src/cblas_dgbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dgbmv.c
-
-libcblas_a-cblas_dgbmv.obj: CBLAS/src/cblas_dgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dgbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dgbmv.Tpo -c -o libcblas_a-cblas_dgbmv.obj `if test -f 'CBLAS/src/cblas_dgbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dgbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dgbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dgbmv.Tpo $(DEPDIR)/libcblas_a-cblas_dgbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dgbmv.c' object='libcblas_a-cblas_dgbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dgbmv.obj `if test -f 'CBLAS/src/cblas_dgbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dgbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dgbmv.c'; fi`
-
-libcblas_a-cblas_scnrm2.o: CBLAS/src/cblas_scnrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_scnrm2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_scnrm2.Tpo -c -o libcblas_a-cblas_scnrm2.o `test -f 'CBLAS/src/cblas_scnrm2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_scnrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_scnrm2.Tpo $(DEPDIR)/libcblas_a-cblas_scnrm2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_scnrm2.c' object='libcblas_a-cblas_scnrm2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_scnrm2.o `test -f 'CBLAS/src/cblas_scnrm2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_scnrm2.c
-
-libcblas_a-cblas_scnrm2.obj: CBLAS/src/cblas_scnrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_scnrm2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_scnrm2.Tpo -c -o libcblas_a-cblas_scnrm2.obj `if test -f 'CBLAS/src/cblas_scnrm2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_scnrm2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_scnrm2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_scnrm2.Tpo $(DEPDIR)/libcblas_a-cblas_scnrm2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_scnrm2.c' object='libcblas_a-cblas_scnrm2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_scnrm2.obj `if test -f 'CBLAS/src/cblas_scnrm2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_scnrm2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_scnrm2.c'; fi`
-
-libcblas_a-cblas_zgerc.o: CBLAS/src/cblas_zgerc.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgerc.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgerc.Tpo -c -o libcblas_a-cblas_zgerc.o `test -f 'CBLAS/src/cblas_zgerc.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgerc.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgerc.Tpo $(DEPDIR)/libcblas_a-cblas_zgerc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgerc.c' object='libcblas_a-cblas_zgerc.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgerc.o `test -f 'CBLAS/src/cblas_zgerc.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgerc.c
-
-libcblas_a-cblas_zgerc.obj: CBLAS/src/cblas_zgerc.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgerc.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgerc.Tpo -c -o libcblas_a-cblas_zgerc.obj `if test -f 'CBLAS/src/cblas_zgerc.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgerc.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgerc.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgerc.Tpo $(DEPDIR)/libcblas_a-cblas_zgerc.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgerc.c' object='libcblas_a-cblas_zgerc.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgerc.obj `if test -f 'CBLAS/src/cblas_zgerc.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgerc.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgerc.c'; fi`
-
-libcblas_a-cblas_dgemm.o: CBLAS/src/cblas_dgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dgemm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dgemm.Tpo -c -o libcblas_a-cblas_dgemm.o `test -f 'CBLAS/src/cblas_dgemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dgemm.Tpo $(DEPDIR)/libcblas_a-cblas_dgemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dgemm.c' object='libcblas_a-cblas_dgemm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dgemm.o `test -f 'CBLAS/src/cblas_dgemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dgemm.c
-
-libcblas_a-cblas_dgemm.obj: CBLAS/src/cblas_dgemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dgemm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dgemm.Tpo -c -o libcblas_a-cblas_dgemm.obj `if test -f 'CBLAS/src/cblas_dgemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dgemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dgemm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dgemm.Tpo $(DEPDIR)/libcblas_a-cblas_dgemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dgemm.c' object='libcblas_a-cblas_dgemm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dgemm.obj `if test -f 'CBLAS/src/cblas_dgemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dgemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dgemm.c'; fi`
-
-libcblas_a-cblas_scopy.o: CBLAS/src/cblas_scopy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_scopy.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_scopy.Tpo -c -o libcblas_a-cblas_scopy.o `test -f 'CBLAS/src/cblas_scopy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_scopy.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_scopy.Tpo $(DEPDIR)/libcblas_a-cblas_scopy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_scopy.c' object='libcblas_a-cblas_scopy.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_scopy.o `test -f 'CBLAS/src/cblas_scopy.c' || echo '$(srcdir)/'`CBLAS/src/cblas_scopy.c
-
-libcblas_a-cblas_scopy.obj: CBLAS/src/cblas_scopy.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_scopy.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_scopy.Tpo -c -o libcblas_a-cblas_scopy.obj `if test -f 'CBLAS/src/cblas_scopy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_scopy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_scopy.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_scopy.Tpo $(DEPDIR)/libcblas_a-cblas_scopy.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_scopy.c' object='libcblas_a-cblas_scopy.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_scopy.obj `if test -f 'CBLAS/src/cblas_scopy.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_scopy.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_scopy.c'; fi`
-
-libcblas_a-cblas_zgeru.o: CBLAS/src/cblas_zgeru.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgeru.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgeru.Tpo -c -o libcblas_a-cblas_zgeru.o `test -f 'CBLAS/src/cblas_zgeru.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgeru.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgeru.Tpo $(DEPDIR)/libcblas_a-cblas_zgeru.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgeru.c' object='libcblas_a-cblas_zgeru.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgeru.o `test -f 'CBLAS/src/cblas_zgeru.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zgeru.c
-
-libcblas_a-cblas_zgeru.obj: CBLAS/src/cblas_zgeru.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zgeru.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zgeru.Tpo -c -o libcblas_a-cblas_zgeru.obj `if test -f 'CBLAS/src/cblas_zgeru.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgeru.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgeru.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zgeru.Tpo $(DEPDIR)/libcblas_a-cblas_zgeru.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zgeru.c' object='libcblas_a-cblas_zgeru.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zgeru.obj `if test -f 'CBLAS/src/cblas_zgeru.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zgeru.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zgeru.c'; fi`
-
-libcblas_a-cblas_dgemv.o: CBLAS/src/cblas_dgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dgemv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dgemv.Tpo -c -o libcblas_a-cblas_dgemv.o `test -f 'CBLAS/src/cblas_dgemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dgemv.Tpo $(DEPDIR)/libcblas_a-cblas_dgemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dgemv.c' object='libcblas_a-cblas_dgemv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dgemv.o `test -f 'CBLAS/src/cblas_dgemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dgemv.c
-
-libcblas_a-cblas_dgemv.obj: CBLAS/src/cblas_dgemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dgemv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dgemv.Tpo -c -o libcblas_a-cblas_dgemv.obj `if test -f 'CBLAS/src/cblas_dgemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dgemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dgemv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dgemv.Tpo $(DEPDIR)/libcblas_a-cblas_dgemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dgemv.c' object='libcblas_a-cblas_dgemv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dgemv.obj `if test -f 'CBLAS/src/cblas_dgemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dgemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dgemv.c'; fi`
-
-libcblas_a-cblas_sdot.o: CBLAS/src/cblas_sdot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sdot.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sdot.Tpo -c -o libcblas_a-cblas_sdot.o `test -f 'CBLAS/src/cblas_sdot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sdot.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sdot.Tpo $(DEPDIR)/libcblas_a-cblas_sdot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sdot.c' object='libcblas_a-cblas_sdot.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sdot.o `test -f 'CBLAS/src/cblas_sdot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sdot.c
-
-libcblas_a-cblas_sdot.obj: CBLAS/src/cblas_sdot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sdot.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sdot.Tpo -c -o libcblas_a-cblas_sdot.obj `if test -f 'CBLAS/src/cblas_sdot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sdot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sdot.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sdot.Tpo $(DEPDIR)/libcblas_a-cblas_sdot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sdot.c' object='libcblas_a-cblas_sdot.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sdot.obj `if test -f 'CBLAS/src/cblas_sdot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sdot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sdot.c'; fi`
-
-libcblas_a-cblas_zhbmv.o: CBLAS/src/cblas_zhbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhbmv.Tpo -c -o libcblas_a-cblas_zhbmv.o `test -f 'CBLAS/src/cblas_zhbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhbmv.Tpo $(DEPDIR)/libcblas_a-cblas_zhbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhbmv.c' object='libcblas_a-cblas_zhbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhbmv.o `test -f 'CBLAS/src/cblas_zhbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhbmv.c
-
-libcblas_a-cblas_zhbmv.obj: CBLAS/src/cblas_zhbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhbmv.Tpo -c -o libcblas_a-cblas_zhbmv.obj `if test -f 'CBLAS/src/cblas_zhbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhbmv.Tpo $(DEPDIR)/libcblas_a-cblas_zhbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhbmv.c' object='libcblas_a-cblas_zhbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhbmv.obj `if test -f 'CBLAS/src/cblas_zhbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhbmv.c'; fi`
-
-libcblas_a-xerbla.o: CBLAS/src/xerbla.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-xerbla.o -MD -MP -MF $(DEPDIR)/libcblas_a-xerbla.Tpo -c -o libcblas_a-xerbla.o `test -f 'CBLAS/src/xerbla.c' || echo '$(srcdir)/'`CBLAS/src/xerbla.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-xerbla.Tpo $(DEPDIR)/libcblas_a-xerbla.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/xerbla.c' object='libcblas_a-xerbla.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-xerbla.o `test -f 'CBLAS/src/xerbla.c' || echo '$(srcdir)/'`CBLAS/src/xerbla.c
-
-libcblas_a-xerbla.obj: CBLAS/src/xerbla.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-xerbla.obj -MD -MP -MF $(DEPDIR)/libcblas_a-xerbla.Tpo -c -o libcblas_a-xerbla.obj `if test -f 'CBLAS/src/xerbla.c'; then $(CYGPATH_W) 'CBLAS/src/xerbla.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/xerbla.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-xerbla.Tpo $(DEPDIR)/libcblas_a-xerbla.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/xerbla.c' object='libcblas_a-xerbla.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-xerbla.obj `if test -f 'CBLAS/src/xerbla.c'; then $(CYGPATH_W) 'CBLAS/src/xerbla.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/xerbla.c'; fi`
-
-libcblas_a-cblas_dger.o: CBLAS/src/cblas_dger.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dger.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dger.Tpo -c -o libcblas_a-cblas_dger.o `test -f 'CBLAS/src/cblas_dger.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dger.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dger.Tpo $(DEPDIR)/libcblas_a-cblas_dger.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dger.c' object='libcblas_a-cblas_dger.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dger.o `test -f 'CBLAS/src/cblas_dger.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dger.c
-
-libcblas_a-cblas_dger.obj: CBLAS/src/cblas_dger.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dger.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dger.Tpo -c -o libcblas_a-cblas_dger.obj `if test -f 'CBLAS/src/cblas_dger.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dger.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dger.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dger.Tpo $(DEPDIR)/libcblas_a-cblas_dger.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dger.c' object='libcblas_a-cblas_dger.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dger.obj `if test -f 'CBLAS/src/cblas_dger.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dger.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dger.c'; fi`
-
-libcblas_a-cblas_sdsdot.o: CBLAS/src/cblas_sdsdot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sdsdot.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sdsdot.Tpo -c -o libcblas_a-cblas_sdsdot.o `test -f 'CBLAS/src/cblas_sdsdot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sdsdot.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sdsdot.Tpo $(DEPDIR)/libcblas_a-cblas_sdsdot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sdsdot.c' object='libcblas_a-cblas_sdsdot.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sdsdot.o `test -f 'CBLAS/src/cblas_sdsdot.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sdsdot.c
-
-libcblas_a-cblas_sdsdot.obj: CBLAS/src/cblas_sdsdot.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sdsdot.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sdsdot.Tpo -c -o libcblas_a-cblas_sdsdot.obj `if test -f 'CBLAS/src/cblas_sdsdot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sdsdot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sdsdot.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sdsdot.Tpo $(DEPDIR)/libcblas_a-cblas_sdsdot.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sdsdot.c' object='libcblas_a-cblas_sdsdot.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sdsdot.obj `if test -f 'CBLAS/src/cblas_sdsdot.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sdsdot.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sdsdot.c'; fi`
-
-libcblas_a-cblas_zhemm.o: CBLAS/src/cblas_zhemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhemm.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhemm.Tpo -c -o libcblas_a-cblas_zhemm.o `test -f 'CBLAS/src/cblas_zhemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhemm.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhemm.Tpo $(DEPDIR)/libcblas_a-cblas_zhemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhemm.c' object='libcblas_a-cblas_zhemm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhemm.o `test -f 'CBLAS/src/cblas_zhemm.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhemm.c
-
-libcblas_a-cblas_zhemm.obj: CBLAS/src/cblas_zhemm.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhemm.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhemm.Tpo -c -o libcblas_a-cblas_zhemm.obj `if test -f 'CBLAS/src/cblas_zhemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhemm.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhemm.Tpo $(DEPDIR)/libcblas_a-cblas_zhemm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhemm.c' object='libcblas_a-cblas_zhemm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhemm.obj `if test -f 'CBLAS/src/cblas_zhemm.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhemm.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhemm.c'; fi`
-
-libcblas_a-cblas_dnrm2.o: CBLAS/src/cblas_dnrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dnrm2.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dnrm2.Tpo -c -o libcblas_a-cblas_dnrm2.o `test -f 'CBLAS/src/cblas_dnrm2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dnrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dnrm2.Tpo $(DEPDIR)/libcblas_a-cblas_dnrm2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dnrm2.c' object='libcblas_a-cblas_dnrm2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dnrm2.o `test -f 'CBLAS/src/cblas_dnrm2.c' || echo '$(srcdir)/'`CBLAS/src/cblas_dnrm2.c
-
-libcblas_a-cblas_dnrm2.obj: CBLAS/src/cblas_dnrm2.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_dnrm2.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_dnrm2.Tpo -c -o libcblas_a-cblas_dnrm2.obj `if test -f 'CBLAS/src/cblas_dnrm2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dnrm2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dnrm2.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_dnrm2.Tpo $(DEPDIR)/libcblas_a-cblas_dnrm2.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_dnrm2.c' object='libcblas_a-cblas_dnrm2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_dnrm2.obj `if test -f 'CBLAS/src/cblas_dnrm2.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_dnrm2.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_dnrm2.c'; fi`
-
-libcblas_a-cblas_sgbmv.o: CBLAS/src/cblas_sgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sgbmv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sgbmv.Tpo -c -o libcblas_a-cblas_sgbmv.o `test -f 'CBLAS/src/cblas_sgbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sgbmv.Tpo $(DEPDIR)/libcblas_a-cblas_sgbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sgbmv.c' object='libcblas_a-cblas_sgbmv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sgbmv.o `test -f 'CBLAS/src/cblas_sgbmv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_sgbmv.c
-
-libcblas_a-cblas_sgbmv.obj: CBLAS/src/cblas_sgbmv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_sgbmv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_sgbmv.Tpo -c -o libcblas_a-cblas_sgbmv.obj `if test -f 'CBLAS/src/cblas_sgbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sgbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sgbmv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_sgbmv.Tpo $(DEPDIR)/libcblas_a-cblas_sgbmv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_sgbmv.c' object='libcblas_a-cblas_sgbmv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_sgbmv.obj `if test -f 'CBLAS/src/cblas_sgbmv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_sgbmv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_sgbmv.c'; fi`
-
-libcblas_a-cblas_zhemv.o: CBLAS/src/cblas_zhemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhemv.o -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhemv.Tpo -c -o libcblas_a-cblas_zhemv.o `test -f 'CBLAS/src/cblas_zhemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhemv.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhemv.Tpo $(DEPDIR)/libcblas_a-cblas_zhemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhemv.c' object='libcblas_a-cblas_zhemv.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhemv.o `test -f 'CBLAS/src/cblas_zhemv.c' || echo '$(srcdir)/'`CBLAS/src/cblas_zhemv.c
-
-libcblas_a-cblas_zhemv.obj: CBLAS/src/cblas_zhemv.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -MT libcblas_a-cblas_zhemv.obj -MD -MP -MF $(DEPDIR)/libcblas_a-cblas_zhemv.Tpo -c -o libcblas_a-cblas_zhemv.obj `if test -f 'CBLAS/src/cblas_zhemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhemv.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcblas_a-cblas_zhemv.Tpo $(DEPDIR)/libcblas_a-cblas_zhemv.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='CBLAS/src/cblas_zhemv.c' object='libcblas_a-cblas_zhemv.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcblas_a_CFLAGS) $(CFLAGS) -c -o libcblas_a-cblas_zhemv.obj `if test -f 'CBLAS/src/cblas_zhemv.c'; then $(CYGPATH_W) 'CBLAS/src/cblas_zhemv.c'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cblas_zhemv.c'; fi`
-
-.f.o:
-	$(AM_V_F77)$(F77COMPILE) -c -o $@ $<
-
-.f.obj:
-	$(AM_V_F77)$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-cdotcsub.o: CBLAS/src/cdotcsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cdotcsub.o `test -f 'CBLAS/src/cdotcsub.f' || echo '$(srcdir)/'`CBLAS/src/cdotcsub.f
-
-cdotcsub.obj: CBLAS/src/cdotcsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cdotcsub.obj `if test -f 'CBLAS/src/cdotcsub.f'; then $(CYGPATH_W) 'CBLAS/src/cdotcsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cdotcsub.f'; fi`
-
-cdotusub.o: CBLAS/src/cdotusub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cdotusub.o `test -f 'CBLAS/src/cdotusub.f' || echo '$(srcdir)/'`CBLAS/src/cdotusub.f
-
-cdotusub.obj: CBLAS/src/cdotusub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cdotusub.obj `if test -f 'CBLAS/src/cdotusub.f'; then $(CYGPATH_W) 'CBLAS/src/cdotusub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/cdotusub.f'; fi`
-
-dasumsub.o: CBLAS/src/dasumsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dasumsub.o `test -f 'CBLAS/src/dasumsub.f' || echo '$(srcdir)/'`CBLAS/src/dasumsub.f
-
-dasumsub.obj: CBLAS/src/dasumsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dasumsub.obj `if test -f 'CBLAS/src/dasumsub.f'; then $(CYGPATH_W) 'CBLAS/src/dasumsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/dasumsub.f'; fi`
-
-ddotsub.o: CBLAS/src/ddotsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ddotsub.o `test -f 'CBLAS/src/ddotsub.f' || echo '$(srcdir)/'`CBLAS/src/ddotsub.f
-
-ddotsub.obj: CBLAS/src/ddotsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ddotsub.obj `if test -f 'CBLAS/src/ddotsub.f'; then $(CYGPATH_W) 'CBLAS/src/ddotsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/ddotsub.f'; fi`
-
-dnrm2sub.o: CBLAS/src/dnrm2sub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dnrm2sub.o `test -f 'CBLAS/src/dnrm2sub.f' || echo '$(srcdir)/'`CBLAS/src/dnrm2sub.f
-
-dnrm2sub.obj: CBLAS/src/dnrm2sub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dnrm2sub.obj `if test -f 'CBLAS/src/dnrm2sub.f'; then $(CYGPATH_W) 'CBLAS/src/dnrm2sub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/dnrm2sub.f'; fi`
-
-dsdotsub.o: CBLAS/src/dsdotsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsdotsub.o `test -f 'CBLAS/src/dsdotsub.f' || echo '$(srcdir)/'`CBLAS/src/dsdotsub.f
-
-dsdotsub.obj: CBLAS/src/dsdotsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsdotsub.obj `if test -f 'CBLAS/src/dsdotsub.f'; then $(CYGPATH_W) 'CBLAS/src/dsdotsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/dsdotsub.f'; fi`
-
-dzasumsub.o: CBLAS/src/dzasumsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dzasumsub.o `test -f 'CBLAS/src/dzasumsub.f' || echo '$(srcdir)/'`CBLAS/src/dzasumsub.f
-
-dzasumsub.obj: CBLAS/src/dzasumsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dzasumsub.obj `if test -f 'CBLAS/src/dzasumsub.f'; then $(CYGPATH_W) 'CBLAS/src/dzasumsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/dzasumsub.f'; fi`
-
-dznrm2sub.o: CBLAS/src/dznrm2sub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dznrm2sub.o `test -f 'CBLAS/src/dznrm2sub.f' || echo '$(srcdir)/'`CBLAS/src/dznrm2sub.f
-
-dznrm2sub.obj: CBLAS/src/dznrm2sub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dznrm2sub.obj `if test -f 'CBLAS/src/dznrm2sub.f'; then $(CYGPATH_W) 'CBLAS/src/dznrm2sub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/dznrm2sub.f'; fi`
-
-icamaxsub.o: CBLAS/src/icamaxsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o icamaxsub.o `test -f 'CBLAS/src/icamaxsub.f' || echo '$(srcdir)/'`CBLAS/src/icamaxsub.f
-
-icamaxsub.obj: CBLAS/src/icamaxsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o icamaxsub.obj `if test -f 'CBLAS/src/icamaxsub.f'; then $(CYGPATH_W) 'CBLAS/src/icamaxsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/icamaxsub.f'; fi`
-
-idamaxsub.o: CBLAS/src/idamaxsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o idamaxsub.o `test -f 'CBLAS/src/idamaxsub.f' || echo '$(srcdir)/'`CBLAS/src/idamaxsub.f
-
-idamaxsub.obj: CBLAS/src/idamaxsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o idamaxsub.obj `if test -f 'CBLAS/src/idamaxsub.f'; then $(CYGPATH_W) 'CBLAS/src/idamaxsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/idamaxsub.f'; fi`
-
-isamaxsub.o: CBLAS/src/isamaxsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o isamaxsub.o `test -f 'CBLAS/src/isamaxsub.f' || echo '$(srcdir)/'`CBLAS/src/isamaxsub.f
-
-isamaxsub.obj: CBLAS/src/isamaxsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o isamaxsub.obj `if test -f 'CBLAS/src/isamaxsub.f'; then $(CYGPATH_W) 'CBLAS/src/isamaxsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/isamaxsub.f'; fi`
-
-izamaxsub.o: CBLAS/src/izamaxsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o izamaxsub.o `test -f 'CBLAS/src/izamaxsub.f' || echo '$(srcdir)/'`CBLAS/src/izamaxsub.f
-
-izamaxsub.obj: CBLAS/src/izamaxsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o izamaxsub.obj `if test -f 'CBLAS/src/izamaxsub.f'; then $(CYGPATH_W) 'CBLAS/src/izamaxsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/izamaxsub.f'; fi`
-
-sasumsub.o: CBLAS/src/sasumsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sasumsub.o `test -f 'CBLAS/src/sasumsub.f' || echo '$(srcdir)/'`CBLAS/src/sasumsub.f
-
-sasumsub.obj: CBLAS/src/sasumsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sasumsub.obj `if test -f 'CBLAS/src/sasumsub.f'; then $(CYGPATH_W) 'CBLAS/src/sasumsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/sasumsub.f'; fi`
-
-scasumsub.o: CBLAS/src/scasumsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scasumsub.o `test -f 'CBLAS/src/scasumsub.f' || echo '$(srcdir)/'`CBLAS/src/scasumsub.f
-
-scasumsub.obj: CBLAS/src/scasumsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scasumsub.obj `if test -f 'CBLAS/src/scasumsub.f'; then $(CYGPATH_W) 'CBLAS/src/scasumsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/scasumsub.f'; fi`
-
-scnrm2sub.o: CBLAS/src/scnrm2sub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scnrm2sub.o `test -f 'CBLAS/src/scnrm2sub.f' || echo '$(srcdir)/'`CBLAS/src/scnrm2sub.f
-
-scnrm2sub.obj: CBLAS/src/scnrm2sub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scnrm2sub.obj `if test -f 'CBLAS/src/scnrm2sub.f'; then $(CYGPATH_W) 'CBLAS/src/scnrm2sub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/scnrm2sub.f'; fi`
-
-sdotsub.o: CBLAS/src/sdotsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sdotsub.o `test -f 'CBLAS/src/sdotsub.f' || echo '$(srcdir)/'`CBLAS/src/sdotsub.f
-
-sdotsub.obj: CBLAS/src/sdotsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sdotsub.obj `if test -f 'CBLAS/src/sdotsub.f'; then $(CYGPATH_W) 'CBLAS/src/sdotsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/sdotsub.f'; fi`
-
-sdsdotsub.o: CBLAS/src/sdsdotsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sdsdotsub.o `test -f 'CBLAS/src/sdsdotsub.f' || echo '$(srcdir)/'`CBLAS/src/sdsdotsub.f
-
-sdsdotsub.obj: CBLAS/src/sdsdotsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sdsdotsub.obj `if test -f 'CBLAS/src/sdsdotsub.f'; then $(CYGPATH_W) 'CBLAS/src/sdsdotsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/sdsdotsub.f'; fi`
-
-snrm2sub.o: CBLAS/src/snrm2sub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o snrm2sub.o `test -f 'CBLAS/src/snrm2sub.f' || echo '$(srcdir)/'`CBLAS/src/snrm2sub.f
-
-snrm2sub.obj: CBLAS/src/snrm2sub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o snrm2sub.obj `if test -f 'CBLAS/src/snrm2sub.f'; then $(CYGPATH_W) 'CBLAS/src/snrm2sub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/snrm2sub.f'; fi`
-
-zdotcsub.o: CBLAS/src/zdotcsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdotcsub.o `test -f 'CBLAS/src/zdotcsub.f' || echo '$(srcdir)/'`CBLAS/src/zdotcsub.f
-
-zdotcsub.obj: CBLAS/src/zdotcsub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdotcsub.obj `if test -f 'CBLAS/src/zdotcsub.f'; then $(CYGPATH_W) 'CBLAS/src/zdotcsub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/zdotcsub.f'; fi`
-
-zdotusub.o: CBLAS/src/zdotusub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdotusub.o `test -f 'CBLAS/src/zdotusub.f' || echo '$(srcdir)/'`CBLAS/src/zdotusub.f
-
-zdotusub.obj: CBLAS/src/zdotusub.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdotusub.obj `if test -f 'CBLAS/src/zdotusub.f'; then $(CYGPATH_W) 'CBLAS/src/zdotusub.f'; else $(CYGPATH_W) '$(srcdir)/CBLAS/src/zdotusub.f'; fi`
-
-caxpy.o: BLAS/caxpy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o caxpy.o `test -f 'BLAS/caxpy.f' || echo '$(srcdir)/'`BLAS/caxpy.f
-
-caxpy.obj: BLAS/caxpy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o caxpy.obj `if test -f 'BLAS/caxpy.f'; then $(CYGPATH_W) 'BLAS/caxpy.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/caxpy.f'; fi`
-
-crotg.o: BLAS/crotg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o crotg.o `test -f 'BLAS/crotg.f' || echo '$(srcdir)/'`BLAS/crotg.f
-
-crotg.obj: BLAS/crotg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o crotg.obj `if test -f 'BLAS/crotg.f'; then $(CYGPATH_W) 'BLAS/crotg.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/crotg.f'; fi`
-
-dcopy.o: BLAS/dcopy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dcopy.o `test -f 'BLAS/dcopy.f' || echo '$(srcdir)/'`BLAS/dcopy.f
-
-dcopy.obj: BLAS/dcopy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dcopy.obj `if test -f 'BLAS/dcopy.f'; then $(CYGPATH_W) 'BLAS/dcopy.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dcopy.f'; fi`
-
-dsymv.o: BLAS/dsymv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsymv.o `test -f 'BLAS/dsymv.f' || echo '$(srcdir)/'`BLAS/dsymv.f
-
-dsymv.obj: BLAS/dsymv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsymv.obj `if test -f 'BLAS/dsymv.f'; then $(CYGPATH_W) 'BLAS/dsymv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dsymv.f'; fi`
-
-lsame.o: BLAS/lsame.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o lsame.o `test -f 'BLAS/lsame.f' || echo '$(srcdir)/'`BLAS/lsame.f
-
-lsame.obj: BLAS/lsame.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o lsame.obj `if test -f 'BLAS/lsame.f'; then $(CYGPATH_W) 'BLAS/lsame.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/lsame.f'; fi`
-
-sspmv.o: BLAS/sspmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sspmv.o `test -f 'BLAS/sspmv.f' || echo '$(srcdir)/'`BLAS/sspmv.f
-
-sspmv.obj: BLAS/sspmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sspmv.obj `if test -f 'BLAS/sspmv.f'; then $(CYGPATH_W) 'BLAS/sspmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sspmv.f'; fi`
-
-zaxpy.o: BLAS/zaxpy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zaxpy.o `test -f 'BLAS/zaxpy.f' || echo '$(srcdir)/'`BLAS/zaxpy.f
-
-zaxpy.obj: BLAS/zaxpy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zaxpy.obj `if test -f 'BLAS/zaxpy.f'; then $(CYGPATH_W) 'BLAS/zaxpy.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zaxpy.f'; fi`
-
-zhpr2.o: BLAS/zhpr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhpr2.o `test -f 'BLAS/zhpr2.f' || echo '$(srcdir)/'`BLAS/zhpr2.f
-
-zhpr2.obj: BLAS/zhpr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhpr2.obj `if test -f 'BLAS/zhpr2.f'; then $(CYGPATH_W) 'BLAS/zhpr2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zhpr2.f'; fi`
-
-ccopy.o: BLAS/ccopy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ccopy.o `test -f 'BLAS/ccopy.f' || echo '$(srcdir)/'`BLAS/ccopy.f
-
-ccopy.obj: BLAS/ccopy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ccopy.obj `if test -f 'BLAS/ccopy.f'; then $(CYGPATH_W) 'BLAS/ccopy.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ccopy.f'; fi`
-
-cscal.o: BLAS/cscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cscal.o `test -f 'BLAS/cscal.f' || echo '$(srcdir)/'`BLAS/cscal.f
-
-cscal.obj: BLAS/cscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cscal.obj `if test -f 'BLAS/cscal.f'; then $(CYGPATH_W) 'BLAS/cscal.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cscal.f'; fi`
-
-ddot.o: BLAS/ddot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ddot.o `test -f 'BLAS/ddot.f' || echo '$(srcdir)/'`BLAS/ddot.f
-
-ddot.obj: BLAS/ddot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ddot.obj `if test -f 'BLAS/ddot.f'; then $(CYGPATH_W) 'BLAS/ddot.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ddot.f'; fi`
-
-dsyr2.o: BLAS/dsyr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsyr2.o `test -f 'BLAS/dsyr2.f' || echo '$(srcdir)/'`BLAS/dsyr2.f
-
-dsyr2.obj: BLAS/dsyr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsyr2.obj `if test -f 'BLAS/dsyr2.f'; then $(CYGPATH_W) 'BLAS/dsyr2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dsyr2.f'; fi`
-
-sasum.o: BLAS/sasum.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sasum.o `test -f 'BLAS/sasum.f' || echo '$(srcdir)/'`BLAS/sasum.f
-
-sasum.obj: BLAS/sasum.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sasum.obj `if test -f 'BLAS/sasum.f'; then $(CYGPATH_W) 'BLAS/sasum.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sasum.f'; fi`
-
-sspr2.o: BLAS/sspr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sspr2.o `test -f 'BLAS/sspr2.f' || echo '$(srcdir)/'`BLAS/sspr2.f
-
-sspr2.obj: BLAS/sspr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sspr2.obj `if test -f 'BLAS/sspr2.f'; then $(CYGPATH_W) 'BLAS/sspr2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sspr2.f'; fi`
-
-zcopy.o: BLAS/zcopy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zcopy.o `test -f 'BLAS/zcopy.f' || echo '$(srcdir)/'`BLAS/zcopy.f
-
-zcopy.obj: BLAS/zcopy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zcopy.obj `if test -f 'BLAS/zcopy.f'; then $(CYGPATH_W) 'BLAS/zcopy.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zcopy.f'; fi`
-
-zhpr.o: BLAS/zhpr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhpr.o `test -f 'BLAS/zhpr.f' || echo '$(srcdir)/'`BLAS/zhpr.f
-
-zhpr.obj: BLAS/zhpr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhpr.obj `if test -f 'BLAS/zhpr.f'; then $(CYGPATH_W) 'BLAS/zhpr.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zhpr.f'; fi`
-
-cdotc.o: BLAS/cdotc.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cdotc.o `test -f 'BLAS/cdotc.f' || echo '$(srcdir)/'`BLAS/cdotc.f
-
-cdotc.obj: BLAS/cdotc.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cdotc.obj `if test -f 'BLAS/cdotc.f'; then $(CYGPATH_W) 'BLAS/cdotc.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cdotc.f'; fi`
-
-csrot.o: BLAS/csrot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csrot.o `test -f 'BLAS/csrot.f' || echo '$(srcdir)/'`BLAS/csrot.f
-
-csrot.obj: BLAS/csrot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csrot.obj `if test -f 'BLAS/csrot.f'; then $(CYGPATH_W) 'BLAS/csrot.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/csrot.f'; fi`
-
-dgbmv.o: BLAS/dgbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dgbmv.o `test -f 'BLAS/dgbmv.f' || echo '$(srcdir)/'`BLAS/dgbmv.f
-
-dgbmv.obj: BLAS/dgbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dgbmv.obj `if test -f 'BLAS/dgbmv.f'; then $(CYGPATH_W) 'BLAS/dgbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dgbmv.f'; fi`
-
-dsyr2k.o: BLAS/dsyr2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsyr2k.o `test -f 'BLAS/dsyr2k.f' || echo '$(srcdir)/'`BLAS/dsyr2k.f
-
-dsyr2k.obj: BLAS/dsyr2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsyr2k.obj `if test -f 'BLAS/dsyr2k.f'; then $(CYGPATH_W) 'BLAS/dsyr2k.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dsyr2k.f'; fi`
-
-saxpy.o: BLAS/saxpy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o saxpy.o `test -f 'BLAS/saxpy.f' || echo '$(srcdir)/'`BLAS/saxpy.f
-
-saxpy.obj: BLAS/saxpy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o saxpy.obj `if test -f 'BLAS/saxpy.f'; then $(CYGPATH_W) 'BLAS/saxpy.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/saxpy.f'; fi`
-
-sspr.o: BLAS/sspr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sspr.o `test -f 'BLAS/sspr.f' || echo '$(srcdir)/'`BLAS/sspr.f
-
-sspr.obj: BLAS/sspr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sspr.obj `if test -f 'BLAS/sspr.f'; then $(CYGPATH_W) 'BLAS/sspr.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sspr.f'; fi`
-
-zdotc.o: BLAS/zdotc.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdotc.o `test -f 'BLAS/zdotc.f' || echo '$(srcdir)/'`BLAS/zdotc.f
-
-zdotc.obj: BLAS/zdotc.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdotc.obj `if test -f 'BLAS/zdotc.f'; then $(CYGPATH_W) 'BLAS/zdotc.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zdotc.f'; fi`
-
-zrotg.o: BLAS/zrotg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zrotg.o `test -f 'BLAS/zrotg.f' || echo '$(srcdir)/'`BLAS/zrotg.f
-
-zrotg.obj: BLAS/zrotg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zrotg.obj `if test -f 'BLAS/zrotg.f'; then $(CYGPATH_W) 'BLAS/zrotg.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zrotg.f'; fi`
-
-cdotu.o: BLAS/cdotu.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cdotu.o `test -f 'BLAS/cdotu.f' || echo '$(srcdir)/'`BLAS/cdotu.f
-
-cdotu.obj: BLAS/cdotu.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cdotu.obj `if test -f 'BLAS/cdotu.f'; then $(CYGPATH_W) 'BLAS/cdotu.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cdotu.f'; fi`
-
-csscal.o: BLAS/csscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csscal.o `test -f 'BLAS/csscal.f' || echo '$(srcdir)/'`BLAS/csscal.f
-
-csscal.obj: BLAS/csscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csscal.obj `if test -f 'BLAS/csscal.f'; then $(CYGPATH_W) 'BLAS/csscal.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/csscal.f'; fi`
-
-dgemm.o: BLAS/dgemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dgemm.o `test -f 'BLAS/dgemm.f' || echo '$(srcdir)/'`BLAS/dgemm.f
-
-dgemm.obj: BLAS/dgemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dgemm.obj `if test -f 'BLAS/dgemm.f'; then $(CYGPATH_W) 'BLAS/dgemm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dgemm.f'; fi`
-
-dsyr.o: BLAS/dsyr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsyr.o `test -f 'BLAS/dsyr.f' || echo '$(srcdir)/'`BLAS/dsyr.f
-
-dsyr.obj: BLAS/dsyr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsyr.obj `if test -f 'BLAS/dsyr.f'; then $(CYGPATH_W) 'BLAS/dsyr.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dsyr.f'; fi`
-
-scasum.o: BLAS/scasum.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scasum.o `test -f 'BLAS/scasum.f' || echo '$(srcdir)/'`BLAS/scasum.f
-
-scasum.obj: BLAS/scasum.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scasum.obj `if test -f 'BLAS/scasum.f'; then $(CYGPATH_W) 'BLAS/scasum.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/scasum.f'; fi`
-
-sswap.o: BLAS/sswap.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sswap.o `test -f 'BLAS/sswap.f' || echo '$(srcdir)/'`BLAS/sswap.f
-
-sswap.obj: BLAS/sswap.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sswap.obj `if test -f 'BLAS/sswap.f'; then $(CYGPATH_W) 'BLAS/sswap.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sswap.f'; fi`
-
-zdotu.o: BLAS/zdotu.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdotu.o `test -f 'BLAS/zdotu.f' || echo '$(srcdir)/'`BLAS/zdotu.f
-
-zdotu.obj: BLAS/zdotu.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdotu.obj `if test -f 'BLAS/zdotu.f'; then $(CYGPATH_W) 'BLAS/zdotu.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zdotu.f'; fi`
-
-zscal.o: BLAS/zscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zscal.o `test -f 'BLAS/zscal.f' || echo '$(srcdir)/'`BLAS/zscal.f
-
-zscal.obj: BLAS/zscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zscal.obj `if test -f 'BLAS/zscal.f'; then $(CYGPATH_W) 'BLAS/zscal.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zscal.f'; fi`
-
-cgbmv.o: BLAS/cgbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgbmv.o `test -f 'BLAS/cgbmv.f' || echo '$(srcdir)/'`BLAS/cgbmv.f
-
-cgbmv.obj: BLAS/cgbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgbmv.obj `if test -f 'BLAS/cgbmv.f'; then $(CYGPATH_W) 'BLAS/cgbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cgbmv.f'; fi`
-
-cswap.o: BLAS/cswap.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cswap.o `test -f 'BLAS/cswap.f' || echo '$(srcdir)/'`BLAS/cswap.f
-
-cswap.obj: BLAS/cswap.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cswap.obj `if test -f 'BLAS/cswap.f'; then $(CYGPATH_W) 'BLAS/cswap.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cswap.f'; fi`
-
-dgemv.o: BLAS/dgemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dgemv.o `test -f 'BLAS/dgemv.f' || echo '$(srcdir)/'`BLAS/dgemv.f
-
-dgemv.obj: BLAS/dgemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dgemv.obj `if test -f 'BLAS/dgemv.f'; then $(CYGPATH_W) 'BLAS/dgemv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dgemv.f'; fi`
-
-dsyrk.o: BLAS/dsyrk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsyrk.o `test -f 'BLAS/dsyrk.f' || echo '$(srcdir)/'`BLAS/dsyrk.f
-
-dsyrk.obj: BLAS/dsyrk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsyrk.obj `if test -f 'BLAS/dsyrk.f'; then $(CYGPATH_W) 'BLAS/dsyrk.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dsyrk.f'; fi`
-
-scnrm2.o: BLAS/scnrm2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scnrm2.o `test -f 'BLAS/scnrm2.f' || echo '$(srcdir)/'`BLAS/scnrm2.f
-
-scnrm2.obj: BLAS/scnrm2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scnrm2.obj `if test -f 'BLAS/scnrm2.f'; then $(CYGPATH_W) 'BLAS/scnrm2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/scnrm2.f'; fi`
-
-ssymm.o: BLAS/ssymm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssymm.o `test -f 'BLAS/ssymm.f' || echo '$(srcdir)/'`BLAS/ssymm.f
-
-ssymm.obj: BLAS/ssymm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssymm.obj `if test -f 'BLAS/ssymm.f'; then $(CYGPATH_W) 'BLAS/ssymm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ssymm.f'; fi`
-
-zdrot.o: BLAS/zdrot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdrot.o `test -f 'BLAS/zdrot.f' || echo '$(srcdir)/'`BLAS/zdrot.f
-
-zdrot.obj: BLAS/zdrot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdrot.obj `if test -f 'BLAS/zdrot.f'; then $(CYGPATH_W) 'BLAS/zdrot.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zdrot.f'; fi`
-
-zswap.o: BLAS/zswap.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zswap.o `test -f 'BLAS/zswap.f' || echo '$(srcdir)/'`BLAS/zswap.f
-
-zswap.obj: BLAS/zswap.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zswap.obj `if test -f 'BLAS/zswap.f'; then $(CYGPATH_W) 'BLAS/zswap.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zswap.f'; fi`
-
-cgemm.o: BLAS/cgemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgemm.o `test -f 'BLAS/cgemm.f' || echo '$(srcdir)/'`BLAS/cgemm.f
-
-cgemm.obj: BLAS/cgemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgemm.obj `if test -f 'BLAS/cgemm.f'; then $(CYGPATH_W) 'BLAS/cgemm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cgemm.f'; fi`
-
-csymm.o: BLAS/csymm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csymm.o `test -f 'BLAS/csymm.f' || echo '$(srcdir)/'`BLAS/csymm.f
-
-csymm.obj: BLAS/csymm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csymm.obj `if test -f 'BLAS/csymm.f'; then $(CYGPATH_W) 'BLAS/csymm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/csymm.f'; fi`
-
-dger.o: BLAS/dger.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dger.o `test -f 'BLAS/dger.f' || echo '$(srcdir)/'`BLAS/dger.f
-
-dger.obj: BLAS/dger.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dger.obj `if test -f 'BLAS/dger.f'; then $(CYGPATH_W) 'BLAS/dger.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dger.f'; fi`
-
-dtbmv.o: BLAS/dtbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtbmv.o `test -f 'BLAS/dtbmv.f' || echo '$(srcdir)/'`BLAS/dtbmv.f
-
-dtbmv.obj: BLAS/dtbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtbmv.obj `if test -f 'BLAS/dtbmv.f'; then $(CYGPATH_W) 'BLAS/dtbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dtbmv.f'; fi`
-
-scopy.o: BLAS/scopy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scopy.o `test -f 'BLAS/scopy.f' || echo '$(srcdir)/'`BLAS/scopy.f
-
-scopy.obj: BLAS/scopy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o scopy.obj `if test -f 'BLAS/scopy.f'; then $(CYGPATH_W) 'BLAS/scopy.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/scopy.f'; fi`
-
-ssymv.o: BLAS/ssymv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssymv.o `test -f 'BLAS/ssymv.f' || echo '$(srcdir)/'`BLAS/ssymv.f
-
-ssymv.obj: BLAS/ssymv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssymv.obj `if test -f 'BLAS/ssymv.f'; then $(CYGPATH_W) 'BLAS/ssymv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ssymv.f'; fi`
-
-zdscal.o: BLAS/zdscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdscal.o `test -f 'BLAS/zdscal.f' || echo '$(srcdir)/'`BLAS/zdscal.f
-
-zdscal.obj: BLAS/zdscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zdscal.obj `if test -f 'BLAS/zdscal.f'; then $(CYGPATH_W) 'BLAS/zdscal.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zdscal.f'; fi`
-
-zsymm.o: BLAS/zsymm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zsymm.o `test -f 'BLAS/zsymm.f' || echo '$(srcdir)/'`BLAS/zsymm.f
-
-zsymm.obj: BLAS/zsymm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zsymm.obj `if test -f 'BLAS/zsymm.f'; then $(CYGPATH_W) 'BLAS/zsymm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zsymm.f'; fi`
-
-cgemv.o: BLAS/cgemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgemv.o `test -f 'BLAS/cgemv.f' || echo '$(srcdir)/'`BLAS/cgemv.f
-
-cgemv.obj: BLAS/cgemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgemv.obj `if test -f 'BLAS/cgemv.f'; then $(CYGPATH_W) 'BLAS/cgemv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cgemv.f'; fi`
-
-csyr2k.o: BLAS/csyr2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csyr2k.o `test -f 'BLAS/csyr2k.f' || echo '$(srcdir)/'`BLAS/csyr2k.f
-
-csyr2k.obj: BLAS/csyr2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csyr2k.obj `if test -f 'BLAS/csyr2k.f'; then $(CYGPATH_W) 'BLAS/csyr2k.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/csyr2k.f'; fi`
-
-dnrm2.o: BLAS/dnrm2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dnrm2.o `test -f 'BLAS/dnrm2.f' || echo '$(srcdir)/'`BLAS/dnrm2.f
-
-dnrm2.obj: BLAS/dnrm2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dnrm2.obj `if test -f 'BLAS/dnrm2.f'; then $(CYGPATH_W) 'BLAS/dnrm2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dnrm2.f'; fi`
-
-dtbsv.o: BLAS/dtbsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtbsv.o `test -f 'BLAS/dtbsv.f' || echo '$(srcdir)/'`BLAS/dtbsv.f
-
-dtbsv.obj: BLAS/dtbsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtbsv.obj `if test -f 'BLAS/dtbsv.f'; then $(CYGPATH_W) 'BLAS/dtbsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dtbsv.f'; fi`
-
-sdot.o: BLAS/sdot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sdot.o `test -f 'BLAS/sdot.f' || echo '$(srcdir)/'`BLAS/sdot.f
-
-sdot.obj: BLAS/sdot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sdot.obj `if test -f 'BLAS/sdot.f'; then $(CYGPATH_W) 'BLAS/sdot.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sdot.f'; fi`
-
-ssyr2.o: BLAS/ssyr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssyr2.o `test -f 'BLAS/ssyr2.f' || echo '$(srcdir)/'`BLAS/ssyr2.f
-
-ssyr2.obj: BLAS/ssyr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssyr2.obj `if test -f 'BLAS/ssyr2.f'; then $(CYGPATH_W) 'BLAS/ssyr2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ssyr2.f'; fi`
-
-zgbmv.o: BLAS/zgbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgbmv.o `test -f 'BLAS/zgbmv.f' || echo '$(srcdir)/'`BLAS/zgbmv.f
-
-zgbmv.obj: BLAS/zgbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgbmv.obj `if test -f 'BLAS/zgbmv.f'; then $(CYGPATH_W) 'BLAS/zgbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zgbmv.f'; fi`
-
-zsyr2k.o: BLAS/zsyr2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zsyr2k.o `test -f 'BLAS/zsyr2k.f' || echo '$(srcdir)/'`BLAS/zsyr2k.f
-
-zsyr2k.obj: BLAS/zsyr2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zsyr2k.obj `if test -f 'BLAS/zsyr2k.f'; then $(CYGPATH_W) 'BLAS/zsyr2k.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zsyr2k.f'; fi`
-
-cgerc.o: BLAS/cgerc.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgerc.o `test -f 'BLAS/cgerc.f' || echo '$(srcdir)/'`BLAS/cgerc.f
-
-cgerc.obj: BLAS/cgerc.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgerc.obj `if test -f 'BLAS/cgerc.f'; then $(CYGPATH_W) 'BLAS/cgerc.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cgerc.f'; fi`
-
-csyrk.o: BLAS/csyrk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csyrk.o `test -f 'BLAS/csyrk.f' || echo '$(srcdir)/'`BLAS/csyrk.f
-
-csyrk.obj: BLAS/csyrk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o csyrk.obj `if test -f 'BLAS/csyrk.f'; then $(CYGPATH_W) 'BLAS/csyrk.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/csyrk.f'; fi`
-
-drot.o: BLAS/drot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o drot.o `test -f 'BLAS/drot.f' || echo '$(srcdir)/'`BLAS/drot.f
-
-drot.obj: BLAS/drot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o drot.obj `if test -f 'BLAS/drot.f'; then $(CYGPATH_W) 'BLAS/drot.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/drot.f'; fi`
-
-dtpmv.o: BLAS/dtpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtpmv.o `test -f 'BLAS/dtpmv.f' || echo '$(srcdir)/'`BLAS/dtpmv.f
-
-dtpmv.obj: BLAS/dtpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtpmv.obj `if test -f 'BLAS/dtpmv.f'; then $(CYGPATH_W) 'BLAS/dtpmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dtpmv.f'; fi`
-
-sdsdot.o: BLAS/sdsdot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sdsdot.o `test -f 'BLAS/sdsdot.f' || echo '$(srcdir)/'`BLAS/sdsdot.f
-
-sdsdot.obj: BLAS/sdsdot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sdsdot.obj `if test -f 'BLAS/sdsdot.f'; then $(CYGPATH_W) 'BLAS/sdsdot.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sdsdot.f'; fi`
-
-ssyr2k.o: BLAS/ssyr2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssyr2k.o `test -f 'BLAS/ssyr2k.f' || echo '$(srcdir)/'`BLAS/ssyr2k.f
-
-ssyr2k.obj: BLAS/ssyr2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssyr2k.obj `if test -f 'BLAS/ssyr2k.f'; then $(CYGPATH_W) 'BLAS/ssyr2k.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ssyr2k.f'; fi`
-
-zgemm.o: BLAS/zgemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgemm.o `test -f 'BLAS/zgemm.f' || echo '$(srcdir)/'`BLAS/zgemm.f
-
-zgemm.obj: BLAS/zgemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgemm.obj `if test -f 'BLAS/zgemm.f'; then $(CYGPATH_W) 'BLAS/zgemm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zgemm.f'; fi`
-
-zsyrk.o: BLAS/zsyrk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zsyrk.o `test -f 'BLAS/zsyrk.f' || echo '$(srcdir)/'`BLAS/zsyrk.f
-
-zsyrk.obj: BLAS/zsyrk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zsyrk.obj `if test -f 'BLAS/zsyrk.f'; then $(CYGPATH_W) 'BLAS/zsyrk.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zsyrk.f'; fi`
-
-cgeru.o: BLAS/cgeru.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgeru.o `test -f 'BLAS/cgeru.f' || echo '$(srcdir)/'`BLAS/cgeru.f
-
-cgeru.obj: BLAS/cgeru.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cgeru.obj `if test -f 'BLAS/cgeru.f'; then $(CYGPATH_W) 'BLAS/cgeru.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cgeru.f'; fi`
-
-ctbmv.o: BLAS/ctbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctbmv.o `test -f 'BLAS/ctbmv.f' || echo '$(srcdir)/'`BLAS/ctbmv.f
-
-ctbmv.obj: BLAS/ctbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctbmv.obj `if test -f 'BLAS/ctbmv.f'; then $(CYGPATH_W) 'BLAS/ctbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ctbmv.f'; fi`
-
-drotg.o: BLAS/drotg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o drotg.o `test -f 'BLAS/drotg.f' || echo '$(srcdir)/'`BLAS/drotg.f
-
-drotg.obj: BLAS/drotg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o drotg.obj `if test -f 'BLAS/drotg.f'; then $(CYGPATH_W) 'BLAS/drotg.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/drotg.f'; fi`
-
-dtpsv.o: BLAS/dtpsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtpsv.o `test -f 'BLAS/dtpsv.f' || echo '$(srcdir)/'`BLAS/dtpsv.f
-
-dtpsv.obj: BLAS/dtpsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtpsv.obj `if test -f 'BLAS/dtpsv.f'; then $(CYGPATH_W) 'BLAS/dtpsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dtpsv.f'; fi`
-
-sgbmv.o: BLAS/sgbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sgbmv.o `test -f 'BLAS/sgbmv.f' || echo '$(srcdir)/'`BLAS/sgbmv.f
-
-sgbmv.obj: BLAS/sgbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sgbmv.obj `if test -f 'BLAS/sgbmv.f'; then $(CYGPATH_W) 'BLAS/sgbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sgbmv.f'; fi`
-
-ssyr.o: BLAS/ssyr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssyr.o `test -f 'BLAS/ssyr.f' || echo '$(srcdir)/'`BLAS/ssyr.f
-
-ssyr.obj: BLAS/ssyr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssyr.obj `if test -f 'BLAS/ssyr.f'; then $(CYGPATH_W) 'BLAS/ssyr.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ssyr.f'; fi`
-
-zgemv.o: BLAS/zgemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgemv.o `test -f 'BLAS/zgemv.f' || echo '$(srcdir)/'`BLAS/zgemv.f
-
-zgemv.obj: BLAS/zgemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgemv.obj `if test -f 'BLAS/zgemv.f'; then $(CYGPATH_W) 'BLAS/zgemv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zgemv.f'; fi`
-
-ztbmv.o: BLAS/ztbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztbmv.o `test -f 'BLAS/ztbmv.f' || echo '$(srcdir)/'`BLAS/ztbmv.f
-
-ztbmv.obj: BLAS/ztbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztbmv.obj `if test -f 'BLAS/ztbmv.f'; then $(CYGPATH_W) 'BLAS/ztbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ztbmv.f'; fi`
-
-chbmv.o: BLAS/chbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chbmv.o `test -f 'BLAS/chbmv.f' || echo '$(srcdir)/'`BLAS/chbmv.f
-
-chbmv.obj: BLAS/chbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chbmv.obj `if test -f 'BLAS/chbmv.f'; then $(CYGPATH_W) 'BLAS/chbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/chbmv.f'; fi`
-
-ctbsv.o: BLAS/ctbsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctbsv.o `test -f 'BLAS/ctbsv.f' || echo '$(srcdir)/'`BLAS/ctbsv.f
-
-ctbsv.obj: BLAS/ctbsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctbsv.obj `if test -f 'BLAS/ctbsv.f'; then $(CYGPATH_W) 'BLAS/ctbsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ctbsv.f'; fi`
-
-drotm.o: BLAS/drotm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o drotm.o `test -f 'BLAS/drotm.f' || echo '$(srcdir)/'`BLAS/drotm.f
-
-drotm.obj: BLAS/drotm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o drotm.obj `if test -f 'BLAS/drotm.f'; then $(CYGPATH_W) 'BLAS/drotm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/drotm.f'; fi`
-
-dtrmm.o: BLAS/dtrmm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtrmm.o `test -f 'BLAS/dtrmm.f' || echo '$(srcdir)/'`BLAS/dtrmm.f
-
-dtrmm.obj: BLAS/dtrmm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtrmm.obj `if test -f 'BLAS/dtrmm.f'; then $(CYGPATH_W) 'BLAS/dtrmm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dtrmm.f'; fi`
-
-sgemm.o: BLAS/sgemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sgemm.o `test -f 'BLAS/sgemm.f' || echo '$(srcdir)/'`BLAS/sgemm.f
-
-sgemm.obj: BLAS/sgemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sgemm.obj `if test -f 'BLAS/sgemm.f'; then $(CYGPATH_W) 'BLAS/sgemm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sgemm.f'; fi`
-
-ssyrk.o: BLAS/ssyrk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssyrk.o `test -f 'BLAS/ssyrk.f' || echo '$(srcdir)/'`BLAS/ssyrk.f
-
-ssyrk.obj: BLAS/ssyrk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssyrk.obj `if test -f 'BLAS/ssyrk.f'; then $(CYGPATH_W) 'BLAS/ssyrk.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ssyrk.f'; fi`
-
-zgerc.o: BLAS/zgerc.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgerc.o `test -f 'BLAS/zgerc.f' || echo '$(srcdir)/'`BLAS/zgerc.f
-
-zgerc.obj: BLAS/zgerc.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgerc.obj `if test -f 'BLAS/zgerc.f'; then $(CYGPATH_W) 'BLAS/zgerc.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zgerc.f'; fi`
-
-ztbsv.o: BLAS/ztbsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztbsv.o `test -f 'BLAS/ztbsv.f' || echo '$(srcdir)/'`BLAS/ztbsv.f
-
-ztbsv.obj: BLAS/ztbsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztbsv.obj `if test -f 'BLAS/ztbsv.f'; then $(CYGPATH_W) 'BLAS/ztbsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ztbsv.f'; fi`
-
-chemm.o: BLAS/chemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chemm.o `test -f 'BLAS/chemm.f' || echo '$(srcdir)/'`BLAS/chemm.f
-
-chemm.obj: BLAS/chemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chemm.obj `if test -f 'BLAS/chemm.f'; then $(CYGPATH_W) 'BLAS/chemm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/chemm.f'; fi`
-
-ctpmv.o: BLAS/ctpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctpmv.o `test -f 'BLAS/ctpmv.f' || echo '$(srcdir)/'`BLAS/ctpmv.f
-
-ctpmv.obj: BLAS/ctpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctpmv.obj `if test -f 'BLAS/ctpmv.f'; then $(CYGPATH_W) 'BLAS/ctpmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ctpmv.f'; fi`
-
-drotmg.o: BLAS/drotmg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o drotmg.o `test -f 'BLAS/drotmg.f' || echo '$(srcdir)/'`BLAS/drotmg.f
-
-drotmg.obj: BLAS/drotmg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o drotmg.obj `if test -f 'BLAS/drotmg.f'; then $(CYGPATH_W) 'BLAS/drotmg.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/drotmg.f'; fi`
-
-dtrmv.o: BLAS/dtrmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtrmv.o `test -f 'BLAS/dtrmv.f' || echo '$(srcdir)/'`BLAS/dtrmv.f
-
-dtrmv.obj: BLAS/dtrmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtrmv.obj `if test -f 'BLAS/dtrmv.f'; then $(CYGPATH_W) 'BLAS/dtrmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dtrmv.f'; fi`
-
-sgemv.o: BLAS/sgemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sgemv.o `test -f 'BLAS/sgemv.f' || echo '$(srcdir)/'`BLAS/sgemv.f
-
-sgemv.obj: BLAS/sgemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sgemv.obj `if test -f 'BLAS/sgemv.f'; then $(CYGPATH_W) 'BLAS/sgemv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sgemv.f'; fi`
-
-stbmv.o: BLAS/stbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o stbmv.o `test -f 'BLAS/stbmv.f' || echo '$(srcdir)/'`BLAS/stbmv.f
-
-stbmv.obj: BLAS/stbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o stbmv.obj `if test -f 'BLAS/stbmv.f'; then $(CYGPATH_W) 'BLAS/stbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/stbmv.f'; fi`
-
-zgeru.o: BLAS/zgeru.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgeru.o `test -f 'BLAS/zgeru.f' || echo '$(srcdir)/'`BLAS/zgeru.f
-
-zgeru.obj: BLAS/zgeru.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zgeru.obj `if test -f 'BLAS/zgeru.f'; then $(CYGPATH_W) 'BLAS/zgeru.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zgeru.f'; fi`
-
-ztpmv.o: BLAS/ztpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztpmv.o `test -f 'BLAS/ztpmv.f' || echo '$(srcdir)/'`BLAS/ztpmv.f
-
-ztpmv.obj: BLAS/ztpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztpmv.obj `if test -f 'BLAS/ztpmv.f'; then $(CYGPATH_W) 'BLAS/ztpmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ztpmv.f'; fi`
-
-chemv.o: BLAS/chemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chemv.o `test -f 'BLAS/chemv.f' || echo '$(srcdir)/'`BLAS/chemv.f
-
-chemv.obj: BLAS/chemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chemv.obj `if test -f 'BLAS/chemv.f'; then $(CYGPATH_W) 'BLAS/chemv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/chemv.f'; fi`
-
-ctpsv.o: BLAS/ctpsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctpsv.o `test -f 'BLAS/ctpsv.f' || echo '$(srcdir)/'`BLAS/ctpsv.f
-
-ctpsv.obj: BLAS/ctpsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctpsv.obj `if test -f 'BLAS/ctpsv.f'; then $(CYGPATH_W) 'BLAS/ctpsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ctpsv.f'; fi`
-
-dsbmv.o: BLAS/dsbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsbmv.o `test -f 'BLAS/dsbmv.f' || echo '$(srcdir)/'`BLAS/dsbmv.f
-
-dsbmv.obj: BLAS/dsbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsbmv.obj `if test -f 'BLAS/dsbmv.f'; then $(CYGPATH_W) 'BLAS/dsbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dsbmv.f'; fi`
-
-dtrsm.o: BLAS/dtrsm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtrsm.o `test -f 'BLAS/dtrsm.f' || echo '$(srcdir)/'`BLAS/dtrsm.f
-
-dtrsm.obj: BLAS/dtrsm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtrsm.obj `if test -f 'BLAS/dtrsm.f'; then $(CYGPATH_W) 'BLAS/dtrsm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dtrsm.f'; fi`
-
-sger.o: BLAS/sger.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sger.o `test -f 'BLAS/sger.f' || echo '$(srcdir)/'`BLAS/sger.f
-
-sger.obj: BLAS/sger.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sger.obj `if test -f 'BLAS/sger.f'; then $(CYGPATH_W) 'BLAS/sger.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sger.f'; fi`
-
-stbsv.o: BLAS/stbsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o stbsv.o `test -f 'BLAS/stbsv.f' || echo '$(srcdir)/'`BLAS/stbsv.f
-
-stbsv.obj: BLAS/stbsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o stbsv.obj `if test -f 'BLAS/stbsv.f'; then $(CYGPATH_W) 'BLAS/stbsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/stbsv.f'; fi`
-
-zhbmv.o: BLAS/zhbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhbmv.o `test -f 'BLAS/zhbmv.f' || echo '$(srcdir)/'`BLAS/zhbmv.f
-
-zhbmv.obj: BLAS/zhbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhbmv.obj `if test -f 'BLAS/zhbmv.f'; then $(CYGPATH_W) 'BLAS/zhbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zhbmv.f'; fi`
-
-ztpsv.o: BLAS/ztpsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztpsv.o `test -f 'BLAS/ztpsv.f' || echo '$(srcdir)/'`BLAS/ztpsv.f
-
-ztpsv.obj: BLAS/ztpsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztpsv.obj `if test -f 'BLAS/ztpsv.f'; then $(CYGPATH_W) 'BLAS/ztpsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ztpsv.f'; fi`
-
-cher2.o: BLAS/cher2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cher2.o `test -f 'BLAS/cher2.f' || echo '$(srcdir)/'`BLAS/cher2.f
-
-cher2.obj: BLAS/cher2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cher2.obj `if test -f 'BLAS/cher2.f'; then $(CYGPATH_W) 'BLAS/cher2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cher2.f'; fi`
-
-ctrmm.o: BLAS/ctrmm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctrmm.o `test -f 'BLAS/ctrmm.f' || echo '$(srcdir)/'`BLAS/ctrmm.f
-
-ctrmm.obj: BLAS/ctrmm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctrmm.obj `if test -f 'BLAS/ctrmm.f'; then $(CYGPATH_W) 'BLAS/ctrmm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ctrmm.f'; fi`
-
-dscal.o: BLAS/dscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dscal.o `test -f 'BLAS/dscal.f' || echo '$(srcdir)/'`BLAS/dscal.f
-
-dscal.obj: BLAS/dscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dscal.obj `if test -f 'BLAS/dscal.f'; then $(CYGPATH_W) 'BLAS/dscal.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dscal.f'; fi`
-
-dtrsv.o: BLAS/dtrsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtrsv.o `test -f 'BLAS/dtrsv.f' || echo '$(srcdir)/'`BLAS/dtrsv.f
-
-dtrsv.obj: BLAS/dtrsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dtrsv.obj `if test -f 'BLAS/dtrsv.f'; then $(CYGPATH_W) 'BLAS/dtrsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dtrsv.f'; fi`
-
-snrm2.o: BLAS/snrm2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o snrm2.o `test -f 'BLAS/snrm2.f' || echo '$(srcdir)/'`BLAS/snrm2.f
-
-snrm2.obj: BLAS/snrm2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o snrm2.obj `if test -f 'BLAS/snrm2.f'; then $(CYGPATH_W) 'BLAS/snrm2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/snrm2.f'; fi`
-
-stpmv.o: BLAS/stpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o stpmv.o `test -f 'BLAS/stpmv.f' || echo '$(srcdir)/'`BLAS/stpmv.f
-
-stpmv.obj: BLAS/stpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o stpmv.obj `if test -f 'BLAS/stpmv.f'; then $(CYGPATH_W) 'BLAS/stpmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/stpmv.f'; fi`
-
-zhemm.o: BLAS/zhemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhemm.o `test -f 'BLAS/zhemm.f' || echo '$(srcdir)/'`BLAS/zhemm.f
-
-zhemm.obj: BLAS/zhemm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhemm.obj `if test -f 'BLAS/zhemm.f'; then $(CYGPATH_W) 'BLAS/zhemm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zhemm.f'; fi`
-
-ztrmm.o: BLAS/ztrmm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztrmm.o `test -f 'BLAS/ztrmm.f' || echo '$(srcdir)/'`BLAS/ztrmm.f
-
-ztrmm.obj: BLAS/ztrmm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztrmm.obj `if test -f 'BLAS/ztrmm.f'; then $(CYGPATH_W) 'BLAS/ztrmm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ztrmm.f'; fi`
-
-cher2k.o: BLAS/cher2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cher2k.o `test -f 'BLAS/cher2k.f' || echo '$(srcdir)/'`BLAS/cher2k.f
-
-cher2k.obj: BLAS/cher2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cher2k.obj `if test -f 'BLAS/cher2k.f'; then $(CYGPATH_W) 'BLAS/cher2k.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cher2k.f'; fi`
-
-ctrmv.o: BLAS/ctrmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctrmv.o `test -f 'BLAS/ctrmv.f' || echo '$(srcdir)/'`BLAS/ctrmv.f
-
-ctrmv.obj: BLAS/ctrmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctrmv.obj `if test -f 'BLAS/ctrmv.f'; then $(CYGPATH_W) 'BLAS/ctrmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ctrmv.f'; fi`
-
-dsdot.o: BLAS/dsdot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsdot.o `test -f 'BLAS/dsdot.f' || echo '$(srcdir)/'`BLAS/dsdot.f
-
-dsdot.obj: BLAS/dsdot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsdot.obj `if test -f 'BLAS/dsdot.f'; then $(CYGPATH_W) 'BLAS/dsdot.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dsdot.f'; fi`
-
-dzasum.o: BLAS/dzasum.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dzasum.o `test -f 'BLAS/dzasum.f' || echo '$(srcdir)/'`BLAS/dzasum.f
-
-dzasum.obj: BLAS/dzasum.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dzasum.obj `if test -f 'BLAS/dzasum.f'; then $(CYGPATH_W) 'BLAS/dzasum.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dzasum.f'; fi`
-
-srot.o: BLAS/srot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o srot.o `test -f 'BLAS/srot.f' || echo '$(srcdir)/'`BLAS/srot.f
-
-srot.obj: BLAS/srot.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o srot.obj `if test -f 'BLAS/srot.f'; then $(CYGPATH_W) 'BLAS/srot.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/srot.f'; fi`
-
-stpsv.o: BLAS/stpsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o stpsv.o `test -f 'BLAS/stpsv.f' || echo '$(srcdir)/'`BLAS/stpsv.f
-
-stpsv.obj: BLAS/stpsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o stpsv.obj `if test -f 'BLAS/stpsv.f'; then $(CYGPATH_W) 'BLAS/stpsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/stpsv.f'; fi`
-
-zhemv.o: BLAS/zhemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhemv.o `test -f 'BLAS/zhemv.f' || echo '$(srcdir)/'`BLAS/zhemv.f
-
-zhemv.obj: BLAS/zhemv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhemv.obj `if test -f 'BLAS/zhemv.f'; then $(CYGPATH_W) 'BLAS/zhemv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zhemv.f'; fi`
-
-ztrmv.o: BLAS/ztrmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztrmv.o `test -f 'BLAS/ztrmv.f' || echo '$(srcdir)/'`BLAS/ztrmv.f
-
-ztrmv.obj: BLAS/ztrmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztrmv.obj `if test -f 'BLAS/ztrmv.f'; then $(CYGPATH_W) 'BLAS/ztrmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ztrmv.f'; fi`
-
-cher.o: BLAS/cher.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cher.o `test -f 'BLAS/cher.f' || echo '$(srcdir)/'`BLAS/cher.f
-
-cher.obj: BLAS/cher.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cher.obj `if test -f 'BLAS/cher.f'; then $(CYGPATH_W) 'BLAS/cher.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cher.f'; fi`
-
-ctrsm.o: BLAS/ctrsm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctrsm.o `test -f 'BLAS/ctrsm.f' || echo '$(srcdir)/'`BLAS/ctrsm.f
-
-ctrsm.obj: BLAS/ctrsm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctrsm.obj `if test -f 'BLAS/ctrsm.f'; then $(CYGPATH_W) 'BLAS/ctrsm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ctrsm.f'; fi`
-
-dspmv.o: BLAS/dspmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dspmv.o `test -f 'BLAS/dspmv.f' || echo '$(srcdir)/'`BLAS/dspmv.f
-
-dspmv.obj: BLAS/dspmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dspmv.obj `if test -f 'BLAS/dspmv.f'; then $(CYGPATH_W) 'BLAS/dspmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dspmv.f'; fi`
-
-dznrm2.o: BLAS/dznrm2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dznrm2.o `test -f 'BLAS/dznrm2.f' || echo '$(srcdir)/'`BLAS/dznrm2.f
-
-dznrm2.obj: BLAS/dznrm2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dznrm2.obj `if test -f 'BLAS/dznrm2.f'; then $(CYGPATH_W) 'BLAS/dznrm2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dznrm2.f'; fi`
-
-srotg.o: BLAS/srotg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o srotg.o `test -f 'BLAS/srotg.f' || echo '$(srcdir)/'`BLAS/srotg.f
-
-srotg.obj: BLAS/srotg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o srotg.obj `if test -f 'BLAS/srotg.f'; then $(CYGPATH_W) 'BLAS/srotg.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/srotg.f'; fi`
-
-strmm.o: BLAS/strmm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strmm.o `test -f 'BLAS/strmm.f' || echo '$(srcdir)/'`BLAS/strmm.f
-
-strmm.obj: BLAS/strmm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strmm.obj `if test -f 'BLAS/strmm.f'; then $(CYGPATH_W) 'BLAS/strmm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/strmm.f'; fi`
-
-zher2.o: BLAS/zher2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zher2.o `test -f 'BLAS/zher2.f' || echo '$(srcdir)/'`BLAS/zher2.f
-
-zher2.obj: BLAS/zher2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zher2.obj `if test -f 'BLAS/zher2.f'; then $(CYGPATH_W) 'BLAS/zher2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zher2.f'; fi`
-
-ztrsm.o: BLAS/ztrsm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztrsm.o `test -f 'BLAS/ztrsm.f' || echo '$(srcdir)/'`BLAS/ztrsm.f
-
-ztrsm.obj: BLAS/ztrsm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztrsm.obj `if test -f 'BLAS/ztrsm.f'; then $(CYGPATH_W) 'BLAS/ztrsm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ztrsm.f'; fi`
-
-cherk.o: BLAS/cherk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cherk.o `test -f 'BLAS/cherk.f' || echo '$(srcdir)/'`BLAS/cherk.f
-
-cherk.obj: BLAS/cherk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o cherk.obj `if test -f 'BLAS/cherk.f'; then $(CYGPATH_W) 'BLAS/cherk.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/cherk.f'; fi`
-
-ctrsv.o: BLAS/ctrsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctrsv.o `test -f 'BLAS/ctrsv.f' || echo '$(srcdir)/'`BLAS/ctrsv.f
-
-ctrsv.obj: BLAS/ctrsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ctrsv.obj `if test -f 'BLAS/ctrsv.f'; then $(CYGPATH_W) 'BLAS/ctrsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ctrsv.f'; fi`
-
-dspr2.o: BLAS/dspr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dspr2.o `test -f 'BLAS/dspr2.f' || echo '$(srcdir)/'`BLAS/dspr2.f
-
-dspr2.obj: BLAS/dspr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dspr2.obj `if test -f 'BLAS/dspr2.f'; then $(CYGPATH_W) 'BLAS/dspr2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dspr2.f'; fi`
-
-icamax.o: BLAS/icamax.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o icamax.o `test -f 'BLAS/icamax.f' || echo '$(srcdir)/'`BLAS/icamax.f
-
-icamax.obj: BLAS/icamax.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o icamax.obj `if test -f 'BLAS/icamax.f'; then $(CYGPATH_W) 'BLAS/icamax.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/icamax.f'; fi`
-
-srotm.o: BLAS/srotm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o srotm.o `test -f 'BLAS/srotm.f' || echo '$(srcdir)/'`BLAS/srotm.f
-
-srotm.obj: BLAS/srotm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o srotm.obj `if test -f 'BLAS/srotm.f'; then $(CYGPATH_W) 'BLAS/srotm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/srotm.f'; fi`
-
-strmv.o: BLAS/strmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strmv.o `test -f 'BLAS/strmv.f' || echo '$(srcdir)/'`BLAS/strmv.f
-
-strmv.obj: BLAS/strmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strmv.obj `if test -f 'BLAS/strmv.f'; then $(CYGPATH_W) 'BLAS/strmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/strmv.f'; fi`
-
-zher2k.o: BLAS/zher2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zher2k.o `test -f 'BLAS/zher2k.f' || echo '$(srcdir)/'`BLAS/zher2k.f
-
-zher2k.obj: BLAS/zher2k.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zher2k.obj `if test -f 'BLAS/zher2k.f'; then $(CYGPATH_W) 'BLAS/zher2k.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zher2k.f'; fi`
-
-ztrsv.o: BLAS/ztrsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztrsv.o `test -f 'BLAS/ztrsv.f' || echo '$(srcdir)/'`BLAS/ztrsv.f
-
-ztrsv.obj: BLAS/ztrsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ztrsv.obj `if test -f 'BLAS/ztrsv.f'; then $(CYGPATH_W) 'BLAS/ztrsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ztrsv.f'; fi`
-
-chpmv.o: BLAS/chpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chpmv.o `test -f 'BLAS/chpmv.f' || echo '$(srcdir)/'`BLAS/chpmv.f
-
-chpmv.obj: BLAS/chpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chpmv.obj `if test -f 'BLAS/chpmv.f'; then $(CYGPATH_W) 'BLAS/chpmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/chpmv.f'; fi`
-
-dasum.o: BLAS/dasum.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dasum.o `test -f 'BLAS/dasum.f' || echo '$(srcdir)/'`BLAS/dasum.f
-
-dasum.obj: BLAS/dasum.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dasum.obj `if test -f 'BLAS/dasum.f'; then $(CYGPATH_W) 'BLAS/dasum.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dasum.f'; fi`
-
-dspr.o: BLAS/dspr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dspr.o `test -f 'BLAS/dspr.f' || echo '$(srcdir)/'`BLAS/dspr.f
-
-dspr.obj: BLAS/dspr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dspr.obj `if test -f 'BLAS/dspr.f'; then $(CYGPATH_W) 'BLAS/dspr.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dspr.f'; fi`
-
-idamax.o: BLAS/idamax.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o idamax.o `test -f 'BLAS/idamax.f' || echo '$(srcdir)/'`BLAS/idamax.f
-
-idamax.obj: BLAS/idamax.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o idamax.obj `if test -f 'BLAS/idamax.f'; then $(CYGPATH_W) 'BLAS/idamax.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/idamax.f'; fi`
-
-srotmg.o: BLAS/srotmg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o srotmg.o `test -f 'BLAS/srotmg.f' || echo '$(srcdir)/'`BLAS/srotmg.f
-
-srotmg.obj: BLAS/srotmg.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o srotmg.obj `if test -f 'BLAS/srotmg.f'; then $(CYGPATH_W) 'BLAS/srotmg.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/srotmg.f'; fi`
-
-strsm.o: BLAS/strsm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strsm.o `test -f 'BLAS/strsm.f' || echo '$(srcdir)/'`BLAS/strsm.f
-
-strsm.obj: BLAS/strsm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strsm.obj `if test -f 'BLAS/strsm.f'; then $(CYGPATH_W) 'BLAS/strsm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/strsm.f'; fi`
-
-zher.o: BLAS/zher.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zher.o `test -f 'BLAS/zher.f' || echo '$(srcdir)/'`BLAS/zher.f
-
-zher.obj: BLAS/zher.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zher.obj `if test -f 'BLAS/zher.f'; then $(CYGPATH_W) 'BLAS/zher.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zher.f'; fi`
-
-chpr2.o: BLAS/chpr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chpr2.o `test -f 'BLAS/chpr2.f' || echo '$(srcdir)/'`BLAS/chpr2.f
-
-chpr2.obj: BLAS/chpr2.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chpr2.obj `if test -f 'BLAS/chpr2.f'; then $(CYGPATH_W) 'BLAS/chpr2.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/chpr2.f'; fi`
-
-daxpy.o: BLAS/daxpy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o daxpy.o `test -f 'BLAS/daxpy.f' || echo '$(srcdir)/'`BLAS/daxpy.f
-
-daxpy.obj: BLAS/daxpy.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o daxpy.obj `if test -f 'BLAS/daxpy.f'; then $(CYGPATH_W) 'BLAS/daxpy.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/daxpy.f'; fi`
-
-dswap.o: BLAS/dswap.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dswap.o `test -f 'BLAS/dswap.f' || echo '$(srcdir)/'`BLAS/dswap.f
-
-dswap.obj: BLAS/dswap.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dswap.obj `if test -f 'BLAS/dswap.f'; then $(CYGPATH_W) 'BLAS/dswap.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dswap.f'; fi`
-
-isamax.o: BLAS/isamax.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o isamax.o `test -f 'BLAS/isamax.f' || echo '$(srcdir)/'`BLAS/isamax.f
-
-isamax.obj: BLAS/isamax.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o isamax.obj `if test -f 'BLAS/isamax.f'; then $(CYGPATH_W) 'BLAS/isamax.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/isamax.f'; fi`
-
-ssbmv.o: BLAS/ssbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssbmv.o `test -f 'BLAS/ssbmv.f' || echo '$(srcdir)/'`BLAS/ssbmv.f
-
-ssbmv.obj: BLAS/ssbmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ssbmv.obj `if test -f 'BLAS/ssbmv.f'; then $(CYGPATH_W) 'BLAS/ssbmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/ssbmv.f'; fi`
-
-strsv.o: BLAS/strsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strsv.o `test -f 'BLAS/strsv.f' || echo '$(srcdir)/'`BLAS/strsv.f
-
-strsv.obj: BLAS/strsv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o strsv.obj `if test -f 'BLAS/strsv.f'; then $(CYGPATH_W) 'BLAS/strsv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/strsv.f'; fi`
-
-zherk.o: BLAS/zherk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zherk.o `test -f 'BLAS/zherk.f' || echo '$(srcdir)/'`BLAS/zherk.f
-
-zherk.obj: BLAS/zherk.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zherk.obj `if test -f 'BLAS/zherk.f'; then $(CYGPATH_W) 'BLAS/zherk.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zherk.f'; fi`
-
-chpr.o: BLAS/chpr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chpr.o `test -f 'BLAS/chpr.f' || echo '$(srcdir)/'`BLAS/chpr.f
-
-chpr.obj: BLAS/chpr.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o chpr.obj `if test -f 'BLAS/chpr.f'; then $(CYGPATH_W) 'BLAS/chpr.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/chpr.f'; fi`
-
-dcabs1.o: BLAS/dcabs1.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dcabs1.o `test -f 'BLAS/dcabs1.f' || echo '$(srcdir)/'`BLAS/dcabs1.f
-
-dcabs1.obj: BLAS/dcabs1.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dcabs1.obj `if test -f 'BLAS/dcabs1.f'; then $(CYGPATH_W) 'BLAS/dcabs1.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dcabs1.f'; fi`
-
-dsymm.o: BLAS/dsymm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsymm.o `test -f 'BLAS/dsymm.f' || echo '$(srcdir)/'`BLAS/dsymm.f
-
-dsymm.obj: BLAS/dsymm.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o dsymm.obj `if test -f 'BLAS/dsymm.f'; then $(CYGPATH_W) 'BLAS/dsymm.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/dsymm.f'; fi`
-
-izamax.o: BLAS/izamax.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o izamax.o `test -f 'BLAS/izamax.f' || echo '$(srcdir)/'`BLAS/izamax.f
-
-izamax.obj: BLAS/izamax.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o izamax.obj `if test -f 'BLAS/izamax.f'; then $(CYGPATH_W) 'BLAS/izamax.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/izamax.f'; fi`
-
-sscal.o: BLAS/sscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sscal.o `test -f 'BLAS/sscal.f' || echo '$(srcdir)/'`BLAS/sscal.f
-
-sscal.obj: BLAS/sscal.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o sscal.obj `if test -f 'BLAS/sscal.f'; then $(CYGPATH_W) 'BLAS/sscal.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/sscal.f'; fi`
-
-zhpmv.o: BLAS/zhpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhpmv.o `test -f 'BLAS/zhpmv.f' || echo '$(srcdir)/'`BLAS/zhpmv.f
-
-zhpmv.obj: BLAS/zhpmv.f
-	$(AM_V_F77)$(F77) $(AM_FFLAGS) $(FFLAGS) -c -o zhpmv.obj `if test -f 'BLAS/zhpmv.f'; then $(CYGPATH_W) 'BLAS/zhpmv.f'; else $(CYGPATH_W) '$(srcdir)/BLAS/zhpmv.f'; fi`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES) all-local
-installdirs:
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-local clean-noinstLIBRARIES \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
-	clean-generic clean-local clean-noinstLIBRARIES cscopelist-am \
-	ctags ctags-am distclean distclean-compile distclean-generic \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am
-
-
-# PKGCOMMON_PACKTITLE correspond to package names in [[file:getall]]
-download::
-	../getall -o $(PKGCOMMON_PACKTITLE)
-$(PKGCOMMON_PACKAGES):download
-
-compilepkg::download
-
-# <<install>>
-
-install::compilepkg
-
-# <<reinstall>>
-
-reinstall::compilepkg
-
-clean-local::
-
-veryclean::clean
-	-rm $(PKGCOMMON_PACKAGES)
-
-# Local Variables:
-# mode:makefile
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
-pkgcompile::@DOWNLOADED_BLAS@
-
-# "xerbla" exists in both BLAS and CBLAS. So we need to rename it to obtain two different object files.
-
-BLAS:BLAS/fait
-
-BLAS/fait:$(BLAS_TGZ)
-	mkdir -p ../include ../lib
-	-if tar xvzf $(BLAS_TGZ) BLAS/xerbla.f 2>&1 1>/dev/null ; then \
-	tar xvzf $(BLAS_TGZ) ; \
-	else \
-	mkdir -p BLAS;cd BLAS && tar xvzf ../$(BLAS_TGZ);\
-	fi
-	cp BLAS/xerbla.f blas_xerbla.f
-	touch BLAS/fait
-$(F77BLAS_SOURCES): BLAS
-
-CBLAS:CBLAS/fait
-
-CBLAS/fait: $(CBLAS_TGZ)
-	tar xvzf $(CBLAS_TGZ)
-	cp CBLAS/include/*.h  CBLAS/src
-	touch CBLAS/fait
-$(CBLAS_SOURCES): CBLAS/fait
-
-clean-local::
-	-rm -r BLAS CBLAS blas_xerbla.f
-
-# <<OpenBLAS>> ALH - 18/9/13 - Downloading and building the OpenBLAS
-# ------------------------------------------------------------------
-
-# to activate this, see [[file:../../configure.ac::OpenBLAS]]
-
-all-local::@COMPILE_OPENBLAS@
-pkgcompile::@COMPILE_OPENBLAS@
-generic:
-openblas:links.done
-
-# links2files is required for the MinGW compiler to understand where to find the library contents under Cygwin
- at FFCS_WINDOWS_TRUE@links.done:openblas.done
- at FFCS_WINDOWS_TRUE@	cd OpenBLAS && ../../../build/links2files
- at FFCS_WINDOWS_TRUE@	touch $@
- at FFCS_WINDOWS_FALSE@links.done:openblas.done
- at FFCS_WINDOWS_FALSE@	touch $@
-
-openblas.done:openpatches.done
-#
-# DYNAMIC_ARCH=1 allows the Openblas to run fast on all the processor architectures that the FFCS users may have
-#
-
-	test  -d ../lib ||  mkdir  ../lib 
-	cd OpenBLAS && make BINARY=@SIZEOF_PTRINBIT@ CC=${CC} FC=${FC} DYNAMIC_ARCH=1 libs netlib
-	touch $@
-
-# The OpenBLAS directory is updated during the compilation, so the patching step should not depend on the directory
-# date
-
-openpatches.done:opendownload.done
-	tar xvzf ../pkg/OpenBLAS.tar.gz
-#
-# ALH - 7/1/14 - The tar directory has changed names
-#
-	mv xianyi-OpenBLAS-* OpenBLAS
-	patch -u -p1 < openblas.patches
-	touch $@
-
-download::opendownload.done
-opendownload.done:
-	../getall -o OpenBLAS -a
-	touch $@
-
-# ALH - 6/11/13 - Since OpenBLAS is quite long to compile and it does not change very often, it's only cleaned as part
-# of the specific target 'veryclean'.
-
-veryclean::
-	-rm -r *.done OpenBLAS xianyi-OpenBLAS-*
-
-# Local Variables:
-# mode:makefile
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/download/blas/opendownload.done b/download/blas/opendownload.done
deleted file mode 100644
index e69de29..0000000
diff --git a/download/fftw/Makefile b/download/fftw/Makefile
index 125bbf8..ce818a2 100644
--- a/download/fftw/Makefile
+++ b/download/fftw/Makefile
@@ -1,5 +1,5 @@
 # Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
+# download/fftw/Makefile.  Generated from Makefile.in by configure.
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
@@ -12,11 +12,11 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
- at SET_MAKE@
+
 
 # Downloading and compiling extra libraries
 # -----------------------------------------
-VPATH = @srcdir@
+
 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
 am__make_running_with_option = \
   case $${target_option-} in \
@@ -62,10 +62,10 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgdatadir = $(datadir)/freefem++
+pkgincludedir = $(includedir)/freefem++
+pkglibdir = $(libdir)/freefem++
+pkglibexecdir = $(libexecdir)/freefem++
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -78,11 +78,10 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
 subdir = download/fftw
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
 	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
@@ -90,20 +89,20 @@ am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
 am__v_P_0 = false
 am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN     " $@;
 am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
 am__v_at_0 = @
 am__v_at_1 = 
 SOURCES =
@@ -115,282 +114,282 @@ am__can_run_installinfo = \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
+ACLOCAL = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing aclocal-1.14
+ADD_PACKAGE_NAME = 
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rv
+ARPACKLIB = 
+ARPACKLIBS = -larpack -llapack
+AUTOCONF = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing automake-1.14
+AWK = gawk
+BAMGPROG = bamg cvmsh2
+BLASINC = 
+BLASLIBS = -lblas
+CC = gcc -Wl,-z,relro
+CCDEPMODE = depmode=none
+CFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
+CFLAGSF77 = -DAdd_
+CNOFLAGS =  -fPIC
+COMPILE_OPENBLAS = 
+CPPFLAGS = -D_FORTIFY_SOURCE=2
+CXX = g++ -Wl,-z,relro
+CXX11FLAGS = -std=c++11
+CXXCPP = g++ -Wl,-z,relro -E
+CXXDEPMODE = depmode=none
+CXXFLAGS =  -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOCPDF = freefem++doc.pdf
+DOCPS = freefem++doc.ps
+DOCPSGZ = freefem++doc.ps.gz
+DOWNLOADCOMPILE = 
+DOWNLOADED_BLAS = 
+DOWNLOADED_BLAS_BUILT_SOURCES = 
+DOWNLOAD_ARPACK = 
+DOWNLOAD_FFTW = 
+DOWNLOAD_UMFPACK = 
+DYLIB_SUFFIX = so
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EIGENOBJ = eigenvalue.$(OBJEXT)
+ENABLE_FFCS = no
+EPSTOPDF = epstopdf
+EXEEXT = 
+F77 = gfortran
+FC = gfortran
+FCFLAGS = -g -O2 -fstack-protector-strong -fPIC
+FFGLUTNAME = 
+FFGLUTPROG = ffglut
+FFLAGS = -g  -fstack-protector-strong -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
+FFMETIS_CFLAGS = 
+FF_LAPACKdir = 
+FF_MALLOC_H = 1
+FF_SECOND = second.o
+FF_UMFPACK_CONFIG = 
+FLIBS = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+FNOFLAGS =  -fPIC
+G2CLIB = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+GCCNOCYGWIN = 
+GREP = /bin/grep
+GSL_CFLAGS = -I/usr/include
+GSL_CONFIG = /usr/bin/gsl-config
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+H5CC = /usr/bin/h5cc
+H5FC = /usr/bin/h5fc
+HDF5_CC = /usr/bin/cc
+HDF5_CFLAGS = 
+HDF5_CPPFLAGS = -I/usr/include/hdf5/serial -I/usr/include
+HDF5_FC = 
+HDF5_FFLAGS = -I/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/lib/x86_64-linux-gnu/hdf5/serial -I/usr/include/hdf5/serial 
+HDF5_FLIBS =  -lm -ldl -lz -lpthread -lhdf5_fortran -lhdf5 -lhdf5hl_fortran -lhdf5_hl
+HDF5_LDFLAGS = -L/usr/lib/x86_64-linux-gnu/hdf5/serial 
+HDF5_LIBS = -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+HDF5_VERSION = 1.8.13
+HISTORY = 
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KERNEL_VERSION = 3.16.0
+LAPACKLIBS = -llapack
+LAPACK_arpack_LIB = 
+LDFLAGS = -Wl,-z,relro -rdynamic
+LEX = flex
+LEXLIB = 
+LEX_OUTPUT_ROOT = lex.yy
+LIBC_VERSION = libc-2.19
+LIBOBJS = 
+LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so -L/usr/lib/x86_64-linux-gnu/hdf5/serial   -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+LIBSGLUT = -lglut -lGLU -lGL
+LIBSNOCONSOLE = 
+LIBSPTHREAD = -lpthread
+LOAD_COMPILE = load_compile
+LOAD_TESTS = ../regtests.sh
+LTLIBOBJS = 
+MAINT = #
+MAKEINFO = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing makeinfo
+MEDITPROG = ffmedit
+MKDIR_P = /bin/mkdir -p
+MPICC = /usr/bin/mpicc
+MPICXX = mpic++ -Wl,-z,relro
+MPIF77 = /usr/bin/mpif90
+MPIFC = /usr/bin/mpif90
+MPIPROG = FreeFem++-mpi
+MPIRUN = /usr/bin/mpirun
+MPISCRIPT = ff-mpirun
+MPI_INCLUDE = 
+MPI_INC_DIR = 
+MPI_LIB = -Wl,-z,relro 
+MPI_LIBC = 
+MPI_LIBFC = -pthread -L/usr//lib -L/usr/lib/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lhwloc 
+MPI_LIB_DIRS = 
+NO_RANGE_CHECK = 
+OBJEXT = o
+OPTIM_TYPE = 
 PACKAGE = fftw-$(FFTW_VERSION).tar.gz
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
+PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
+PACKAGE_NAME = FreeFem++
+PACKAGE_STRING = FreeFem++ 3.35
+PACKAGE_TARNAME = freefem++
+PACKAGE_URL = 
+PACKAGE_VERSION = 3.35
+PASTIX_HOSTARCH = 
+PATH_SEPARATOR = :
+RANLIB = ranlib
+RANLIN = ranlib
+SCOTCH_INCLUDE = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/include/scotch
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+SIZEOF_INT = 4
+SIZEOF_LONG = 8
+SIZEOF_PTR = 8
+SIZEOF_PTRINBIT = 64
+SKIP_TESTS_EIGEN = 
+SKIP_TESTS_MPI = no
+STATICTOOL = 
+STDPROG = 
+STD_GRAPH_OBJ = 
+STD_LDFLAGS = 
+STD_LIBS = 
+STRIP = 
+TEST_FFPP = ../src/nw/FreeFem++
+TEST_FFPPMPI = ../src/mpi/ff-mpirun
+TEST_FFPP_MPI = ../src/mpi/FreeFem++-mpi
+TOOL_COMPILE_NewSolver = NewSolver
+TOOL_COMPILE_fflapack = fflapack
+TOOL_COMPILE_gsl = gsl
+TOOL_COMPILE_hips = hips
+TOOL_COMPILE_iohdf5 = iohdf5
+TOOL_COMPILE_ipopt = ipopt
+TOOL_COMPILE_lapack = lapack
+TOOL_COMPILE_metis = metis
+TOOL_COMPILE_mmg3d = mmg3d
+TOOL_COMPILE_mshmet = mshmet
+TOOL_COMPILE_mumps = mumps
+TOOL_COMPILE_mumps_seq = mumps-seq
+TOOL_COMPILE_nlopt = nlopt
+TOOL_COMPILE_pardiso = 
+TOOL_COMPILE_parmetis = parmetis
+TOOL_COMPILE_parms = parms
+TOOL_COMPILE_pastix = pastix
+TOOL_COMPILE_pipe = pipe
+TOOL_COMPILE_schwarz = 
+TOOL_COMPILE_scotch = scotch
+TOOL_COMPILE_superlu = superlu
+TOOL_COMPILE_superludist = superludist
+TOOL_COMPILE_umfpack = umfpack
+TOOL_COMPILE_yams = yams
+TOOL_DYLIB_NewSolver = NewSolver.so
+TOOL_DYLIB_fflapack = fflapack.so
+TOOL_DYLIB_gsl = gsl.so
+TOOL_DYLIB_hips = hips_FreeFem.so
+TOOL_DYLIB_iohdf5 = iohdf5.so
+TOOL_DYLIB_ipopt = ff-Ipopt.so
+TOOL_DYLIB_lapack = lapack.so
+TOOL_DYLIB_metis = metis.so
+TOOL_DYLIB_mmg3d = mmg3d-v4.0.so
+TOOL_DYLIB_mshmet = mshmet.so
+TOOL_DYLIB_mumps = MUMPS_FreeFem.so MUMPS.so
+TOOL_DYLIB_mumps_seq = MUMPS_seq.so MUMPS.so
+TOOL_DYLIB_nlopt = ff-NLopt.so
+TOOL_DYLIB_pardiso = 
+TOOL_DYLIB_parmetis = 
+TOOL_DYLIB_parms = parms_FreeFem.so
+TOOL_DYLIB_pastix = interfacepastix.so complex_pastix_FreeFem.so real_pastix_FreeFem.so
+TOOL_DYLIB_pipe = pipe.so
+TOOL_DYLIB_schwarz = 
+TOOL_DYLIB_scotch = scotch.so
+TOOL_DYLIB_superlu = SuperLu.so
+TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.so real_SuperLU_DIST_FreeFem.so dSuperLU_DIST.so
+TOOL_DYLIB_umfpack = UMFPACK64.so
+TOOL_DYLIB_yams = freeyams.so
+UMFPACKLIBS = -lumfpack  -lamd -lcholmod -lcolamd
+VERSION = 3.35
+WGET = wget --no-check-certificate
+WIN32DLLTARGET = 
+WINDRESOBJ = 
+WITH_CXX11 = yes
+YACC = bison -y
+YFLAGS = 
+abs_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/fftw
+abs_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/fftw
+abs_top_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
+abs_top_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
+ac_ct_CC = gcc -Wl,-z,relro
+ac_ct_CXX = 
+ac_ct_F77 = gfortran
+ac_ct_FC = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+ff_bison = yes
+ff_convert = yes
+ff_curl = 
+ff_dvips = yes
+ff_git = 
+ff_gzip = yes
+ff_history = 
+ff_latex = yes
+ff_libtool = yes
+ff_m4 = yes
+ff_makeindex = yes
+ff_patch = yes
+ff_pdf2ps = yes
+ff_pdflatex = yes
+ff_prefix_dir = /usr/lib/ff++/3.35
+ff_unzip = 
+ff_wget = yes
+host = x86_64-pc-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/install-sh
+libdir = ${prefix}/lib/x86_64-linux-gnu
+libexecdir = ${prefix}/lib/x86_64-linux-gnu
+localedir = ${datarootdir}/locale
+localstatedir = /var
+mandir = ${prefix}/share/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = /etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
 
 # Downloading and compiling FFTW
 # ------------------------------
@@ -403,7 +402,7 @@ THIS = fftw3
 all: all-am
 
 .SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -428,9 +427,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+$(top_srcdir)/configure: # $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 tags TAGS:
@@ -602,7 +601,7 @@ $(SRCDIR)/FAIT-1:../pkg/$(PACKAGE)
 
 ../pkg/$(PACKAGE):
 	-mkdir ../pkg
-	cd ../pkg;@WGET@ -N $(SERVER)/$(PACKAGE)
+	cd ../pkg;wget --no-check-certificate -N $(SERVER)/$(PACKAGE)
 
 WHERE:$(SRCDIR)/FAIT
 	-if [ $(SRCDIR)/FAIT ] ; then \
diff --git a/download/fftw/Makefile.orig b/download/fftw/Makefile.orig
deleted file mode 100644
index cf1e64b..0000000
--- a/download/fftw/Makefile.orig
+++ /dev/null
@@ -1,873 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# download/fftw/Makefile.  Generated from Makefile.in by configure.
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-# Downloading and compiling extra libraries
-# -----------------------------------------
-
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/freefem++
-pkgincludedir = $(includedir)/freefem++
-pkglibdir = $(libdir)/freefem++
-pkglibexecdir = $(libexecdir)/freefem++
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = x86_64-pc-linux-gnu
-host_triplet = x86_64-pc-linux-gnu
-subdir = download/fftw
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_$(V))
-am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-<<<<<<< HEAD:download/fftw/Makefile
-ACLOCAL = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing aclocal-1.14
-ADD_PACKAGE_NAME = 
-AMTAR = $${TAR-tar}
-AM_DEFAULT_VERBOSITY = 1
-AR = ar
-ARFLAGS = rv
-ARPACKLIB = 
-ARPACKLIBS = -larpack -llapack
-AUTOCONF = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoconf
-AUTOHEADER = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoheader
-AUTOMAKE = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing automake-1.14
-AWK = gawk
-BAMGPROG = bamg cvmsh2
-BLASINC = 
-BLASLIBS = -lblas
-CC = gcc -Wl,-z,relro
-CCDEPMODE = depmode=none
-CFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
-CFLAGSF77 = -DAdd_
-CNOFLAGS =  -fPIC
-COMPILE_OPENBLAS = 
-CPPFLAGS = -D_FORTIFY_SOURCE=2
-CXX = g++ -Wl,-z,relro
-CXXCPP = g++ -Wl,-z,relro -E
-CXXDEPMODE = depmode=none
-CXXFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
-CYGPATH_W = echo
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-DOCPDF = freefem++doc.pdf
-DOCPS = freefem++doc.ps
-DOCPSGZ = freefem++doc.ps.gz
-DOWNLOADCOMPILE = 
-DOWNLOADED_BLAS = 
-DOWNLOADED_BLAS_BUILT_SOURCES = 
-DOWNLOAD_ARPACK = 
-DOWNLOAD_FFTW = 
-DOWNLOAD_UMFPACK = 
-DYLIB_SUFFIX = so
-ECHO_C = 
-ECHO_N = -n
-ECHO_T = 
-EGREP = /bin/grep -E
-EIGENOBJ = eigenvalue.$(OBJEXT)
-ENABLE_FFCS = no
-EPSTOPDF = epstopdf
-EXEEXT = 
-F77 = gfortran
-FC = gfortran
-FCFLAGS = -g -O2 -fstack-protector-strong -fPIC
-FFGLUTNAME = 
-FFGLUTPROG = ffglut
-FFLAGS = -g  -fstack-protector-strong -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
-FFMETIS_CFLAGS = 
-FF_LAPACKdir = 
-FF_MALLOC_H = 1
-FF_SECOND = second.o
-FF_UMFPACK_CONFIG = 
-FLIBS = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-FNOFLAGS =  -fPIC
-G2CLIB = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-GCCNOCYGWIN = 
-GREP = /bin/grep
-HISTORY = 
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-KERNEL_VERSION = 3.16.0
-LAPACKLIBS = -llapack
-LAPACK_arpack_LIB = 
-LDFLAGS = -Wl,-z,relro -rdynamic
-LEX = flex
-LEXLIB = 
-LEX_OUTPUT_ROOT = lex.yy
-LIBC_VERSION = libc-2.19
-LIBOBJS = 
-LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-LIBSGLUT = -lglut -lGLU -lGL
-LIBSNOCONSOLE = 
-LIBSPTHREAD = -lpthread
-LOAD_COMPILE = load_compile
-LOAD_TESTS = ../regtests.sh
-LTLIBOBJS = 
-MAINT = #
-MAKEINFO = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing makeinfo
-MEDITPROG = ffmedit
-MKDIR_P = /bin/mkdir -p
-MPICC = /usr/bin/mpicc
-MPICXX = mpic++ -Wl,-z,relro
-MPIF77 = /usr/bin/mpif90
-MPIFC = /usr/bin/mpif90
-MPIPROG = FreeFem++-mpi
-MPIRUN = /usr/bin/mpirun
-MPISCRIPT = ff-mpirun
-MPI_INCLUDE = 
-MPI_INC_DIR = 
-MPI_LIB = -Wl,-z,relro 
-MPI_LIBC = 
-MPI_LIBFC = -pthread -L/usr//lib -L/usr/lib/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lhwloc 
-MPI_LIB_DIRS = 
-NO_RANGE_CHECK = 
-OBJEXT = o
-OPTIM_TYPE = 
-PACKAGE = fftw-$(FFTW_VERSION).tar.gz
-PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
-PACKAGE_NAME = FreeFem++
-PACKAGE_STRING = FreeFem++ 3.32-1
-PACKAGE_TARNAME = freefem++
-PACKAGE_URL = 
-PACKAGE_VERSION = 3.32-1
-PASTIX_HOSTARCH = 
-PATH_SEPARATOR = :
-RANLIB = ranlib
-RANLIN = ranlib
-SCOTCH_INCLUDE = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/include/scotch
-SET_MAKE = 
-SHELL = /bin/bash
-SIZEOF_INT = 4
-SIZEOF_LONG = 8
-SIZEOF_PTR = 8
-SIZEOF_PTRINBIT = 64
-SKIP_TESTS_EIGEN = 
-SKIP_TESTS_MPI = no
-STATICTOOL = 
-STDPROG = 
-STD_GRAPH_OBJ = 
-STD_LDFLAGS = 
-STD_LIBS = 
-STRIP = 
-TEST_FFPP = ../src/nw/FreeFem++
-TEST_FFPPMPI = ../src/mpi/ff-mpirun
-TOOL_COMPILE_fflapack = fflapack
-TOOL_COMPILE_gsl = gsl
-TOOL_COMPILE_hips = hips
-TOOL_COMPILE_ipopt = ipopt
-TOOL_COMPILE_lapack = lapack
-TOOL_COMPILE_metis = metis
-TOOL_COMPILE_mmg3d = mmg3d
-TOOL_COMPILE_mshmet = mshmet
-TOOL_COMPILE_mumps = mumps
-TOOL_COMPILE_mumps_seq = mumps-seq
-TOOL_COMPILE_nlopt = nlopt
-TOOL_COMPILE_pardiso = 
-TOOL_COMPILE_parmetis = parmetis
-TOOL_COMPILE_parms = parms
-TOOL_COMPILE_pastix = pastix
-TOOL_COMPILE_pipe = pipe
-TOOL_COMPILE_scotch = scotch
-TOOL_COMPILE_superlu = superlu
-TOOL_COMPILE_superludist = superludist
-TOOL_COMPILE_umfpack = umfpack
-TOOL_COMPILE_yams = yams
-TOOL_DYLIB_fflapack = fflapack.so
-TOOL_DYLIB_gsl = gsl.so NewSolver.so
-TOOL_DYLIB_hips = hips_FreeFem.so
-TOOL_DYLIB_ipopt = ff-Ipopt.so
-TOOL_DYLIB_lapack = lapack.so
-TOOL_DYLIB_metis = metis.so
-TOOL_DYLIB_mmg3d = mmg3d-v4.0.so
-TOOL_DYLIB_mshmet = mshmet.so
-TOOL_DYLIB_mumps = MUMPS_FreeFem.so MUMPS.so
-TOOL_DYLIB_mumps_seq = MUMPS_seq.so MUMPS.so
-TOOL_DYLIB_nlopt = ff-NLopt.so
-TOOL_DYLIB_pardiso = 
-TOOL_DYLIB_parmetis = 
-TOOL_DYLIB_parms = parms_FreeFem.so
-TOOL_DYLIB_pastix = interfacepastix.so complex_pastix_FreeFem.so real_pastix_FreeFem.so
-TOOL_DYLIB_pipe = pipe.so
-TOOL_DYLIB_scotch = scotch.so
-TOOL_DYLIB_superlu = SuperLu.so
-TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.so real_SuperLU_DIST_FreeFem.so dSuperLU_DIST.so
-TOOL_DYLIB_umfpack = UMFPACK64.so
-TOOL_DYLIB_yams = freeyams.so
-UMFPACKLIBS = -lumfpack  -lamd -lcholmod -lcolamd
-VERSION = 3.32-1
-WGET = wget --no-check-certificate
-WIN32DLLTARGET = 
-WINDRESOBJ = 
-YACC = bison -y
-YFLAGS = 
-abs_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/fftw
-abs_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/fftw
-abs_top_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
-abs_top_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
-ac_ct_CC = gcc -Wl,-z,relro
-ac_ct_CXX = 
-ac_ct_F77 = gfortran
-ac_ct_FC = gfortran
-am__include = include
-am__leading_dot = .
-am__quote = 
-am__tar = $${TAR-tar} chof - "$$tardir"
-am__untar = $${TAR-tar} xf -
-bindir = ${exec_prefix}/bin
-build = x86_64-pc-linux-gnu
-build_alias = x86_64-linux-gnu
-build_cpu = x86_64
-build_os = linux-gnu
-build_vendor = pc
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-ff_bison = yes
-ff_convert = yes
-ff_curl = 
-ff_dvips = yes
-ff_git = 
-ff_gzip = yes
-ff_history = 
-ff_latex = yes
-ff_libtool = yes
-ff_m4 = yes
-ff_makeindex = yes
-ff_patch = yes
-ff_pdf2ps = yes
-ff_pdflatex = yes
-ff_prefix_dir = /usr/lib/ff++/3.32-1
-ff_unzip = 
-ff_wget = yes
-host = x86_64-pc-linux-gnu
-host_alias = 
-host_cpu = x86_64
-host_os = linux-gnu
-host_vendor = pc
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${prefix}/share/info
-install_sh = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/install-sh
-libdir = ${prefix}/lib/x86_64-linux-gnu
-libexecdir = ${prefix}/lib/x86_64-linux-gnu
-localedir = ${datarootdir}/locale
-localstatedir = /var
-mandir = ${prefix}/share/man
-mkdir_p = $(MKDIR_P)
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /usr
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = /etc
-target_alias = 
-top_build_prefix = ../../
-top_builddir = ../..
-top_srcdir = ../..
-=======
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = fftw-$(FFTW_VERSION).tar.gz
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
->>>>>>> upstream/3.34.2:download/fftw/Makefile.in
-
-# Downloading and compiling FFTW
-# ------------------------------
-
-# FFTW information
-FFTW_VERSION = 3.3.2
-SRCDIR = fftw-$(FFTW_VERSION)
-SERVER = http://www.fftw.org
-THIS = fftw3
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu download/fftw/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu download/fftw/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: # $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-local cscopelist-am ctags-am distclean distclean-generic \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
-	uninstall-am
-
-
-all-local: $(DOWNLOAD_FFTW)
-
-fftw: $(SRCDIR)/FAIT WHERE
-	$(MAKE) WHERE
-
-$(SRCDIR)/FAIT:$(SRCDIR)/FAIT-1
-	cd $(SRCDIR) && ./configure --disable-dependency-tracking  --disable-fortran  --prefix=`pwd`/../..  CXX="$(CXX)" CC="$(CC)"  CFLAGS="$(CFLAGS)" CPP='gcc -E' CXXFLAGS="$(CXXFLAGS)"
-	cd $(SRCDIR) && make
-	cd $(SRCDIR) && make install
-	touch $(SRCDIR)/FAIT
-
-$(SRCDIR)/FAIT-1:../pkg/$(PACKAGE)
-	tar xvzf ../pkg/$(PACKAGE)
-	touch $(SRCDIR)/FAIT-1
-
-../pkg/$(PACKAGE):
-	-mkdir ../pkg
-	cd ../pkg;wget --no-check-certificate -N $(SERVER)/$(PACKAGE)
-
-WHERE:$(SRCDIR)/FAIT
-	-if [ $(SRCDIR)/FAIT ] ; then \
-	echo $(THIS)  LD -L at DIR@/lib -l$(THIS)  >../lib/WHERE.$(THIS) ;\
-	echo $(THIS) INCLUDE -I at DIR@/include   >> ../lib/WHERE.$(THIS) ;\
-	fi
-
-clean-local:
-	-rm -rf fftw-* 
-	-rm ../include/fftw3.f ../include/fftw3.f03 ../include/fftw3.h ../include/fftw3l.f03 ../include/fftw3q.f03	\
-		../lib/libfftw3.a ../lib/libfftw3.la
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/download/getall.orig b/download/getall.orig
deleted file mode 100755
index 05d5309..0000000
--- a/download/getall.orig
+++ /dev/null
@@ -1,224 +0,0 @@
-#!/usr/bin/perl
-# Download third-party packages independently of FF configuration (request from FH)
-# ======================================================================
-# Written by Antoine Le Hyaric
-# http://www.ljll.math.upmc.fr/lehyaric
-# Laboratoire Jacques-Louis Lions
-# Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-# ======================================================================
-# This file is part of Freefem++
-#
-# Freefem++ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-#
-# Freefem++ is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with Freefem++; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# ======================================================================
-# headeralh brief="Download third-party packages independently of FF configuration (request from FH)" default=0 freefem perl start=21/10/2013 upmc written
-
-use strict;
-use Getopt::Std;
-use Digest::MD5 qw(md5_hex); # [[http://perldoc.perl.org/Digest/MD5.html]]
-
-# This download script needs to be able to work on platforms that do not have threads (eg Mingw).
-
-my $can_use_threads=eval 'use threads;use threads::shared;1';
-
-my %opts;
-getopts('afho:',\%opts);
-
-if($opts{h}){
-  print <<EOF;
-getall [options]: Download third-party packages independently of the FreeFem++ configuration procedure
-
-Available options:
-
--a = accept all licences without further user interaction
--f = force downloads even if packages are already present locally
--h = this help
--o name,name,... = only download packages with the given names
-
-EOF
-  exit 0;
-}
-
-# Accumulate errors and print them all at the end of the script
-
-my $errors='';
-if($can_use_threads){share(\$errors)}
-
-# list required packages
-my $only=0;
-my %packs;
-if(defined $opts{o}){
-  $only=1;
-  foreach(split(/,/,$opts{o})){$packs{$_}=1}
-}
-
-# can be run from the parent directory
-
-if(-x "download/getall"){chdir "download"}
-
-# can be run from any of the child directories
-
-if(-x "../getall"){chdir ".."}
-
-system "mkdir -p pkg";
-my @downloads;
-
-download('ARPACK','http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz',
-	 'http://www.caam.rice.edu/software/ARPACK','arpack96.tar.gz','fffaa970198b285676f4156cebc8626e');
-download('ARPACK','http://www.caam.rice.edu/software/ARPACK/SRC/patch.tar.gz',
-	 'http://www.caam.rice.edu/software/ARPACK','patch.tar.gz','14830d758f195f272b8594a493501fa2');
-
-download('BLAS','http://www.netlib.org/blas/blas.tgz','http://www.netlib.org/blas','blas.tgz',
-	 '5e99e975f7a1e3ea6abcad7c6e7e42e6');
-download('BLAS','http://www.netlib.org/blas/blast-forum/cblas.tgz','http://www.netlib.org/blas','cblas.tgz',
-	 '1e8830f622d2112239a4a8a83b84209a');
-
-download('OpenBLAS','http://github.com/xianyi/OpenBLAS/tarball/v0.2.12','http://www.openblas.net/','OpenBLAS.tar.gz',
-	 'dfc868e0c134855639f036d2723bf4be',
-	 'BAD_CERT');
-
-download('FFTW','http://www.fftw.org/fftw-3.3.2.tar.gz','http://www.fftw.org','fftw-3.3.2.tar.gz',
-	 '6977ee770ed68c85698c7168ffa6e178');
-
-download('freeYams','http://www.ann.jussieu.fr/~frey/ftp/archives/freeyams.2012.02.05.tgz',
-	 'http://www.ann.jussieu.fr/~frey/software.html','freeyams.2012.02.05.tgz','b7c82a256a3e59beeb2b578de93a4e0b');
-
-download('Gmm++','http://download.gna.org/getfem/stable/gmm-4.2.tar.gz',
-	 'http://download.gna.org/getfem/html/homepage/download.html','gmm-4.2.tar.gz','35fe900f7459c49f4b4337dc691c8cdf');
-
-download('Hips','http://hips.gforge.inria.fr/release/hips-1.2b-rc4.tar.gz',
-	 'http://hips.gforge.inria.fr/','hips-1.2b-rc4.tar.gz','78720bf9bbbce5e174bdbdbaa1e5d7b4');
-
-download('Ipopt','http://www.coin-or.org/download/source/Ipopt/Ipopt-3.10.2.tgz',
-	 'https://projects.coin-or.org/Ipopt','Ipopt-3.10.2.tgz','e647a49a80a03f2682db583e00aa520b');
-
-download('METIS','http://www.netlib.org/linalg/metis-4.0.tar.gz','http://www.netlib.org/linalg/','metis-4.0.tar.gz',
-	 '0aa546419ff7ef50bd86ce1ec7f727c7');
-
-download('ParMETIS','http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/OLD/ParMetis-3.1.1.tar.gz',
-	 'http://glaros.dtc.umn.edu/gkhome/views/metis','ParMetis-3.1.1.tar.gz','57318dbaddff2c3d1ef820cff0bf87b0');
-
-download('MMG3D','http://www.math.u-bordeaux1.fr/~dobrzyns/logiciels/download/mmg3d4.0.tgz',
-	 'http://www.math.u-bordeaux1.fr/~dobrzyns/logiciels/mmg3d.php','mmg3d4.0.tgz','bfc2b0373bc208e0512415d1aa2e76a1');
-
-download('mshmet','http://www.ann.jussieu.fr/~frey/ftp/archives/mshmet.2012.04.25.tgz',
-	 'http://www.ann.jussieu.fr/~frey/software.html','mshmet.2012.04.25.tgz','427f397e0602efc56aa897d38a8e9bfa');
-
-download('MUMPS','http://graal.ens-lyon.fr/MUMPS/MUMPS_4.10.0.tar.gz',
-	 'http://graal.ens-lyon.fr/MUMPS/','MUMPS_4.10.0.tar.gz','959e9981b606cd574f713b8422ef0d9f');
-
-download('NLopt','http://ab-initio.mit.edu/nlopt/nlopt-2.2.4.tar.gz',
-	 'http://ab-initio.mit.edu/wiki/index.php/NLopt','nlopt-2.2.4.tar.gz','9c60c6380a10c6d2a06895f0e8756d4f');
-
-download('pARMS','http://www-users.cs.umn.edu/~saad/software/pARMS/pARMS_2.2.php',
-	 'http://www-users.cs.umn.edu/~saad/software/pARMS','pARMS_2.2.tar.gz','be0b4a539d78b9b2b7faf32ff83de822');
-
-# ALH - 6/1/14 - web certificate for gforge.inria.fr is rejected
-
-download('PaStiX','https://gforge.inria.fr/frs/download.php/21873/pastix_release_2200.tar.bz2',
-	 'https://gforge.inria.fr/projects/pastix/','pastix_release_2200.tar.bz2','c82b1808084f183dc8dfd07b1deef694',
-	 'BAD_CERT');
-
-download('ScaLAPACK','http://www.netlib.org/scalapack/scalapack-2.0.2.tgz',
-	 'http://www.netlib.org/scalapack/','scalapack-2.0.2.tgz','2f75e600a2ba155ed9ce974a1c4b536f');
-
-# ALH - 6/1/14 - web certificate for gforge.inria.fr is rejected
-
-download('Scotch','https://gforge.inria.fr/frs/download.php/23391/scotch_5.1.6_esmumps.tar.gz',
-	 'https://gforge.inria.fr/projects/scotch/','scotch_5.1.6_esmumps.tar.gz','961d0ab22914fc6455a62699cf7b5a47',
-	 'BAD_CERT');
-
-download('SuiteSparse','http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.3.1.tar.gz',
-	 'http://www.cise.ufl.edu/research/sparse/SuiteSparse/','SuiteSparse-4.3.1.tar.gz',
-	 'f8f26a3b1c7f82444c0db0b375215287');
-
-download('SuperLU','http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_4.3.tar.gz',
-	 'http://crd-legacy.lbl.gov/~xiaoye/SuperLU/','superlu_4.3.tar.gz','b72c6309f25e9660133007b82621ba7c');
-download('SuperLU_DIST','http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_3.0.tar.gz',
-	 'http://crd-legacy.lbl.gov/~xiaoye/SuperLU/','superlu_dist_3.0.tar.gz','1d77f10a265f5751d4e4b59317d778f8');
-
-download('TetGen','http://wias-berlin.de/software/tetgen/files/tetgen1.4.3.tar.gz',
-	 'http://wias-berlin.de/software/tetgen/','tetgen1.4.3.tar.gz','d6a4bcdde2ac804f7ec66c29dcb63c18');
-
-download('PETSc','http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-3.5.2.tar.gz',
-	 'http://ftp.mcs.anl.gov/pub/petsc/release-snapshots','petsc-lite-3.5.2.tar.gz','d707336a98d7cb31d843804d020edc94');
-<<<<<<< HEAD
-download('hpddm','https://github.com/hpddm/hpddm/archive/master.zip',
-	 'https://github.com/hpddm','hpddm.zip','none');
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-# run all downloads concurrently
-
-if($can_use_threads){
-  my @threads;
-  foreach(@downloads){push @threads,threads->create(\&downloadone,$_)}
-  foreach(@threads){$_->join()}
-}
-else{
-  foreach(@downloads){downloadone($_)}
-}
-
-if($errors ne ''){
-  print "\n$errors";
-  exit 1;
-}
-
-sub download{
-  my($title,$url,$lic,$pkg,$md5,$opts)=@_;
-
-  # skip packages that have not been requested explicitely
-  return if($only && !defined $packs{$title});
-
-  # skip packages that are already present
-  if(-f "pkg/$pkg" && !$opts{f}){
-    print "$title $pkg done\n";
-    return;
-  }
-
-  # we do not store the answers to these questions. To repeat the same downloads without manual input, options "-a" and
-  # "-o names" are provided.
-
-  if(!$opts{a}){
-    print "$title: please check the licence at $lic. Do you want to download $url? (yN)\n";
-    my $ans=uc <STDIN>;
-    chomp $ans;
-    return if $ans ne 'Y';
-  }
-
-  # uses [[file:../build/download]]
-  push @downloads,"$url,pkg/$pkg,$md5,$opts";
-}
-
-sub downloadone{
-  my($url,$pkg,$md5,$opts)=split(/,/,$_[0]);
-  my $cmd="../build/download $url $pkg $opts";
-  print "$cmd\n";
-  system $cmd;
-  if($?){$errors.="ERROR: $cmd FAILED\n"}
-
-  # check if resulting package contents are valid
-  my $md5check=md5_hex(`cat $pkg`);
-<<<<<<< HEAD
-  if( ( $md5 ne "none") && ($md5check ne $md5)){$errors.="ERROR: INVALID MD5 for $pkg\n"}
-=======
-  if($md5check ne $md5){$errors.="ERROR: INVALID MD5 for $pkg\n"}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-}
-
-# Local Variables:
-# mode:cperl
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
diff --git a/download/scotch/Makefile-scotch.inc.orig b/download/scotch/Makefile-scotch.inc.orig
deleted file mode 100644
index 8d2f963..0000000
--- a/download/scotch/Makefile-scotch.inc.orig
+++ /dev/null
@@ -1,36 +0,0 @@
-# ALH - avoid blocking when Makefile.inc is not built yet
--include @abs_top_builddir@/download/headers-sparsesolver.inc
-
-EXE	=
-LIB	= .a
-OBJ	= .o
-DIRMPI  = @FFMPIDIR@
-MAKE	= make
-AR	= @AR@
-ARFLAGS	= @ARFLAGS@
-CAT	= cat
-CCS     = @CC@ 
-CCP	= @MPICC@ 
-CCD     = @CC@ -I'@MPI_INC_DIR@'
-
-# FFCS - 16/4/13 - some plain C files seem to need access to mpi.h too
-
-# FFCS - 23/4/13 - remove thread and fork dependency on Windows with
-# -DCOMMON_STUB_FORK without -DCOMMON_PTHREAD
-# [[file:scotch_5.1_esmumps/INSTALL.TXT::COMMON_STUB_FORK]]
-
-CFLAGS	= @CFLAGS@ -I'@MPI_INC_DIR@' $(FFINTSCOTCH) -Drestrict=__restrict -DCOMMON_STUB_FORK  -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_RENAME -DSCOTCH_DETERMINISTIC
-
-<<<<<<< HEAD
-LDFLAGS	= @LDFLAGS@ -lm @MPI_LIBC@  @LIBSPTHREAD@  #-L/usr/local/lib/gcc/
-=======
-LDFLAGS	= @LDFLAGS@ -lm @MPI_LIB@  @LIBSPTHREAD@  #-L/usr/local/lib/gcc/
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-CP	= cp
-LEX	= @LEX@
-LN	= ln
-MKDIR	= mkdir
-MV	= mv
-RANLIB	= @RANLIB@
-YACC	= @YACC@
-WGET    = @WGET@
diff --git a/download/umfpack/Makefile b/download/umfpack/Makefile
index aa20345..2a9929a 100644
--- a/download/umfpack/Makefile
+++ b/download/umfpack/Makefile
@@ -1,5 +1,5 @@
 # Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
+# download/umfpack/Makefile.  Generated from Makefile.in by configure.
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
@@ -12,7 +12,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
- at SET_MAKE@
+
 
 # Downloading and compiling extra libraries for Umfpack
 # ======================================================================
@@ -36,7 +36,7 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 # ======================================================================
 # headeralh brief="Downloading and compiling extra libraries for Umfpack" default=0 freefem make multipleauthors start=04/06/04 upmc
-VPATH = @srcdir@
+
 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
 am__make_running_with_option = \
   case $${target_option-} in \
@@ -82,10 +82,10 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgdatadir = $(datadir)/freefem++
+pkgincludedir = $(includedir)/freefem++
+pkglibdir = $(libdir)/freefem++
+pkglibexecdir = $(libexecdir)/freefem++
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -98,11 +98,10 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
 subdir = download/umfpack
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
 	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
@@ -110,20 +109,20 @@ am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
 am__v_P_0 = false
 am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN     " $@;
 am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
 am__v_at_0 = @
 am__v_at_1 = 
 SOURCES =
@@ -135,282 +134,282 @@ am__can_run_installinfo = \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
+ACLOCAL = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing aclocal-1.14
+ADD_PACKAGE_NAME = 
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+ARFLAGS = rv
+ARPACKLIB = 
+ARPACKLIBS = -larpack -llapack
+AUTOCONF = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing automake-1.14
+AWK = gawk
+BAMGPROG = bamg cvmsh2
+BLASINC = 
+BLASLIBS = -lblas
+CC = gcc -Wl,-z,relro
+CCDEPMODE = depmode=none
+CFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
+CFLAGSF77 = -DAdd_
+CNOFLAGS =  -fPIC
+COMPILE_OPENBLAS = 
+CPPFLAGS = -D_FORTIFY_SOURCE=2
+CXX = g++ -Wl,-z,relro
+CXX11FLAGS = -std=c++11
+CXXCPP = g++ -Wl,-z,relro -E
+CXXDEPMODE = depmode=none
+CXXFLAGS =  -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOCPDF = freefem++doc.pdf
+DOCPS = freefem++doc.ps
+DOCPSGZ = freefem++doc.ps.gz
+DOWNLOADCOMPILE = 
+DOWNLOADED_BLAS = 
+DOWNLOADED_BLAS_BUILT_SOURCES = 
+DOWNLOAD_ARPACK = 
+DOWNLOAD_FFTW = 
+DOWNLOAD_UMFPACK = 
+DYLIB_SUFFIX = so
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EIGENOBJ = eigenvalue.$(OBJEXT)
+ENABLE_FFCS = no
+EPSTOPDF = epstopdf
+EXEEXT = 
+F77 = gfortran
+FC = gfortran
+FCFLAGS = -g -O2 -fstack-protector-strong -fPIC
+FFGLUTNAME = 
+FFGLUTPROG = ffglut
+FFLAGS = -g  -fstack-protector-strong -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
+FFMETIS_CFLAGS = 
+FF_LAPACKdir = 
+FF_MALLOC_H = 1
+FF_SECOND = second.o
+FF_UMFPACK_CONFIG = 
+FLIBS = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+FNOFLAGS =  -fPIC
+G2CLIB = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
+GCCNOCYGWIN = 
+GREP = /bin/grep
+GSL_CFLAGS = -I/usr/include
+GSL_CONFIG = /usr/bin/gsl-config
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+H5CC = /usr/bin/h5cc
+H5FC = /usr/bin/h5fc
+HDF5_CC = /usr/bin/cc
+HDF5_CFLAGS = 
+HDF5_CPPFLAGS = -I/usr/include/hdf5/serial -I/usr/include
+HDF5_FC = 
+HDF5_FFLAGS = -I/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/lib/x86_64-linux-gnu/hdf5/serial -I/usr/include/hdf5/serial 
+HDF5_FLIBS =  -lm -ldl -lz -lpthread -lhdf5_fortran -lhdf5 -lhdf5hl_fortran -lhdf5_hl
+HDF5_LDFLAGS = -L/usr/lib/x86_64-linux-gnu/hdf5/serial 
+HDF5_LIBS = -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+HDF5_VERSION = 1.8.13
+HISTORY = 
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+KERNEL_VERSION = 3.16.0
+LAPACKLIBS = -llapack
+LAPACK_arpack_LIB = 
+LDFLAGS = -Wl,-z,relro -rdynamic
+LEX = flex
+LEXLIB = 
+LEX_OUTPUT_ROOT = lex.yy
+LIBC_VERSION = libc-2.19
+LIBOBJS = 
+LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so -L/usr/lib/x86_64-linux-gnu/hdf5/serial   -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl
+LIBSGLUT = -lglut -lGLU -lGL
+LIBSNOCONSOLE = 
+LIBSPTHREAD = -lpthread
+LOAD_COMPILE = load_compile
+LOAD_TESTS = ../regtests.sh
+LTLIBOBJS = 
+MAINT = #
+MAKEINFO = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing makeinfo
+MEDITPROG = ffmedit
+MKDIR_P = /bin/mkdir -p
+MPICC = /usr/bin/mpicc
+MPICXX = mpic++ -Wl,-z,relro
+MPIF77 = /usr/bin/mpif90
+MPIFC = /usr/bin/mpif90
+MPIPROG = FreeFem++-mpi
+MPIRUN = /usr/bin/mpirun
+MPISCRIPT = ff-mpirun
+MPI_INCLUDE = 
+MPI_INC_DIR = 
+MPI_LIB = -Wl,-z,relro 
+MPI_LIBC = 
+MPI_LIBFC = -pthread -L/usr//lib -L/usr/lib/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lhwloc 
+MPI_LIB_DIRS = 
+NO_RANGE_CHECK = 
+OBJEXT = o
+OPTIM_TYPE = 
+PACKAGE = freefem++
+PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
+PACKAGE_NAME = FreeFem++
+PACKAGE_STRING = FreeFem++ 3.35
+PACKAGE_TARNAME = freefem++
+PACKAGE_URL = 
+PACKAGE_VERSION = 3.35
+PASTIX_HOSTARCH = 
+PATH_SEPARATOR = :
+RANLIB = ranlib
+RANLIN = ranlib
+SCOTCH_INCLUDE = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/include/scotch
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+SIZEOF_INT = 4
+SIZEOF_LONG = 8
+SIZEOF_PTR = 8
+SIZEOF_PTRINBIT = 64
+SKIP_TESTS_EIGEN = 
+SKIP_TESTS_MPI = no
+STATICTOOL = 
+STDPROG = 
+STD_GRAPH_OBJ = 
+STD_LDFLAGS = 
+STD_LIBS = 
+STRIP = 
+TEST_FFPP = ../src/nw/FreeFem++
+TEST_FFPPMPI = ../src/mpi/ff-mpirun
+TEST_FFPP_MPI = ../src/mpi/FreeFem++-mpi
+TOOL_COMPILE_NewSolver = NewSolver
+TOOL_COMPILE_fflapack = fflapack
+TOOL_COMPILE_gsl = gsl
+TOOL_COMPILE_hips = hips
+TOOL_COMPILE_iohdf5 = iohdf5
+TOOL_COMPILE_ipopt = ipopt
+TOOL_COMPILE_lapack = lapack
+TOOL_COMPILE_metis = metis
+TOOL_COMPILE_mmg3d = mmg3d
+TOOL_COMPILE_mshmet = mshmet
+TOOL_COMPILE_mumps = mumps
+TOOL_COMPILE_mumps_seq = mumps-seq
+TOOL_COMPILE_nlopt = nlopt
+TOOL_COMPILE_pardiso = 
+TOOL_COMPILE_parmetis = parmetis
+TOOL_COMPILE_parms = parms
+TOOL_COMPILE_pastix = pastix
+TOOL_COMPILE_pipe = pipe
+TOOL_COMPILE_schwarz = 
+TOOL_COMPILE_scotch = scotch
+TOOL_COMPILE_superlu = superlu
+TOOL_COMPILE_superludist = superludist
+TOOL_COMPILE_umfpack = umfpack
+TOOL_COMPILE_yams = yams
+TOOL_DYLIB_NewSolver = NewSolver.so
+TOOL_DYLIB_fflapack = fflapack.so
+TOOL_DYLIB_gsl = gsl.so
+TOOL_DYLIB_hips = hips_FreeFem.so
+TOOL_DYLIB_iohdf5 = iohdf5.so
+TOOL_DYLIB_ipopt = ff-Ipopt.so
+TOOL_DYLIB_lapack = lapack.so
+TOOL_DYLIB_metis = metis.so
+TOOL_DYLIB_mmg3d = mmg3d-v4.0.so
+TOOL_DYLIB_mshmet = mshmet.so
+TOOL_DYLIB_mumps = MUMPS_FreeFem.so MUMPS.so
+TOOL_DYLIB_mumps_seq = MUMPS_seq.so MUMPS.so
+TOOL_DYLIB_nlopt = ff-NLopt.so
+TOOL_DYLIB_pardiso = 
+TOOL_DYLIB_parmetis = 
+TOOL_DYLIB_parms = parms_FreeFem.so
+TOOL_DYLIB_pastix = interfacepastix.so complex_pastix_FreeFem.so real_pastix_FreeFem.so
+TOOL_DYLIB_pipe = pipe.so
+TOOL_DYLIB_schwarz = 
+TOOL_DYLIB_scotch = scotch.so
+TOOL_DYLIB_superlu = SuperLu.so
+TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.so real_SuperLU_DIST_FreeFem.so dSuperLU_DIST.so
+TOOL_DYLIB_umfpack = UMFPACK64.so
+TOOL_DYLIB_yams = freeyams.so
+UMFPACKLIBS = -lumfpack  -lamd -lcholmod -lcolamd
+VERSION = 3.35
+WGET = wget --no-check-certificate
+WIN32DLLTARGET = 
+WINDRESOBJ = 
+WITH_CXX11 = yes
+YACC = bison -y
+YFLAGS = 
+abs_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/umfpack
+abs_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/umfpack
+abs_top_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
+abs_top_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
+ac_ct_CC = gcc -Wl,-z,relro
+ac_ct_CXX = 
+ac_ct_F77 = gfortran
+ac_ct_FC = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+ff_bison = yes
+ff_convert = yes
+ff_curl = 
+ff_dvips = yes
+ff_git = 
+ff_gzip = yes
+ff_history = 
+ff_latex = yes
+ff_libtool = yes
+ff_m4 = yes
+ff_makeindex = yes
+ff_patch = yes
+ff_pdf2ps = yes
+ff_pdflatex = yes
+ff_prefix_dir = /usr/lib/ff++/3.35
+ff_unzip = 
+ff_wget = yes
+host = x86_64-pc-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/install-sh
+libdir = ${prefix}/lib/x86_64-linux-gnu
+libexecdir = ${prefix}/lib/x86_64-linux-gnu
+localedir = ${datarootdir}/locale
+localstatedir = /var
+mandir = ${prefix}/share/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = /etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
 EXTRA_DIST = SuiteSparse_config.mk.in 
 
 # Downloading and compiling UMFPACK
@@ -426,7 +425,7 @@ SUITESPARSECONFIGLIB = ../lib/libsuitesparseconfig.a
 all: all-am
 
 .SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -451,9 +450,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+$(top_srcdir)/configure: # $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 tags TAGS:
@@ -710,9 +709,9 @@ SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk:SuiteSparse/DATE Makefile S
 
 UMFPACK_Make.m4: Makefile UMFPACKv4.4
 	m4   -DFF_CC="$(CC)" \
-             -DFF_CFLAGS="@CPPFLAGS@ @CFLAGS@ @BLASINC@" \
-             -DFF_LIB="@BLASLIB@ @LIBS@" \
-	     -DFF_CONFIG="@FF_UMFPACK_CONFIG@" \
+             -DFF_CFLAGS="-D_FORTIFY_SOURCE=2 -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC " \
+             -DFF_LIB="@BLASLIB@ -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so -L/usr/lib/x86_64-linux-gnu/hdf5/serial   -lm -ldl -lz -lpthread  -lhdf5 -lhdf5_hl" \
+	     -DFF_CONFIG="" \
               UMFPACK_Make.m4 >Make.include
 	-if  diff Make.include UMFPACKv4.4/UMFPACK/Make/Make.include 2>&1 >/dev/null; then \
 	    echo " same flags => no recompilation !  " ; \
@@ -723,7 +722,7 @@ UMFPACK_Make.m4: Makefile UMFPACKv4.4
 	   find . -name '*.exe'|xargs rm; \
 	fi; 
 UMFPACKv4.4.tar.gz:
-	@WGET@ -N http://www.cise.ufl.edu/research/sparse/umfpack/v4.4/UMFPACKv4.4.tar.gz
+	wget --no-check-certificate -N http://www.cise.ufl.edu/research/sparse/umfpack/v4.4/UMFPACKv4.4.tar.gz
 $(SUITESPARSE_TGZ):
 	../getall -o SuiteSparse -a
 
diff --git a/download/umfpack/Makefile.orig b/download/umfpack/Makefile.orig
deleted file mode 100644
index 603b305..0000000
--- a/download/umfpack/Makefile.orig
+++ /dev/null
@@ -1,1005 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# download/umfpack/Makefile.  Generated from Makefile.in by configure.
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-# Downloading and compiling extra libraries for Umfpack
-# ======================================================================
-# Laboratoire Jacques-Louis Lions
-# Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-# ======================================================================
-# This file is part of Freefem++
-# 
-# Freefem++ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-# 
-# Freefem++ is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-# 
-# You should have received a copy of the GNU Lesser General Public
-# License along with Freefem++; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# ======================================================================
-# headeralh brief="Downloading and compiling extra libraries for Umfpack" default=0 freefem make multipleauthors start=04/06/04 upmc
-
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/freefem++
-pkgincludedir = $(includedir)/freefem++
-pkglibdir = $(libdir)/freefem++
-pkglibexecdir = $(libexecdir)/freefem++
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = x86_64-pc-linux-gnu
-host_triplet = x86_64-pc-linux-gnu
-subdir = download/umfpack
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_$(V))
-am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-<<<<<<< HEAD:download/umfpack/Makefile
-ACLOCAL = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing aclocal-1.14
-ADD_PACKAGE_NAME = 
-AMTAR = $${TAR-tar}
-AM_DEFAULT_VERBOSITY = 1
-AR = ar
-ARFLAGS = rv
-ARPACKLIB = 
-ARPACKLIBS = -larpack -llapack
-AUTOCONF = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoconf
-AUTOHEADER = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing autoheader
-AUTOMAKE = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing automake-1.14
-AWK = gawk
-BAMGPROG = bamg cvmsh2
-BLASINC = 
-BLASLIBS = -lblas
-CC = gcc -Wl,-z,relro
-CCDEPMODE = depmode=none
-CFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
-CFLAGSF77 = -DAdd_
-CNOFLAGS =  -fPIC
-COMPILE_OPENBLAS = 
-CPPFLAGS = -D_FORTIFY_SOURCE=2
-CXX = g++ -Wl,-z,relro
-CXXCPP = g++ -Wl,-z,relro -E
-CXXDEPMODE = depmode=none
-CXXFLAGS = -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -DBAMG_LONG_LONG  -DNCHECKPTR -fPIC
-CYGPATH_W = echo
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-DOCPDF = freefem++doc.pdf
-DOCPS = freefem++doc.ps
-DOCPSGZ = freefem++doc.ps.gz
-DOWNLOADCOMPILE = 
-DOWNLOADED_BLAS = 
-DOWNLOADED_BLAS_BUILT_SOURCES = 
-DOWNLOAD_ARPACK = 
-DOWNLOAD_FFTW = 
-DOWNLOAD_UMFPACK = 
-DYLIB_SUFFIX = so
-ECHO_C = 
-ECHO_N = -n
-ECHO_T = 
-EGREP = /bin/grep -E
-EIGENOBJ = eigenvalue.$(OBJEXT)
-ENABLE_FFCS = no
-EPSTOPDF = epstopdf
-EXEEXT = 
-F77 = gfortran
-FC = gfortran
-FCFLAGS = -g -O2 -fstack-protector-strong -fPIC
-FFGLUTNAME = 
-FFGLUTPROG = ffglut
-FFLAGS = -g  -fstack-protector-strong -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC
-FFMETIS_CFLAGS = 
-FF_LAPACKdir = 
-FF_MALLOC_H = 1
-FF_SECOND = second.o
-FF_UMFPACK_CONFIG = 
-FLIBS = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-FNOFLAGS =  -fPIC
-G2CLIB = /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-GCCNOCYGWIN = 
-GREP = /bin/grep
-HISTORY = 
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-KERNEL_VERSION = 3.16.0
-LAPACKLIBS = -llapack
-LAPACK_arpack_LIB = 
-LDFLAGS = -Wl,-z,relro -rdynamic
-LEX = flex
-LEXLIB = 
-LEX_OUTPUT_ROOT = lex.yy
-LIBC_VERSION = libc-2.19
-LIBOBJS = 
-LIBS = -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so
-LIBSGLUT = -lglut -lGLU -lGL
-LIBSNOCONSOLE = 
-LIBSPTHREAD = -lpthread
-LOAD_COMPILE = load_compile
-LOAD_TESTS = ../regtests.sh
-LTLIBOBJS = 
-MAINT = #
-MAKEINFO = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/missing makeinfo
-MEDITPROG = ffmedit
-MKDIR_P = /bin/mkdir -p
-MPICC = /usr/bin/mpicc
-MPICXX = mpic++ -Wl,-z,relro
-MPIF77 = /usr/bin/mpif90
-MPIFC = /usr/bin/mpif90
-MPIPROG = FreeFem++-mpi
-MPIRUN = /usr/bin/mpirun
-MPISCRIPT = ff-mpirun
-MPI_INCLUDE = 
-MPI_INC_DIR = 
-MPI_LIB = -Wl,-z,relro 
-MPI_LIBC = 
-MPI_LIBFC = -pthread -L/usr//lib -L/usr/lib/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lhwloc 
-MPI_LIB_DIRS = 
-NO_RANGE_CHECK = 
-OBJEXT = o
-OPTIM_TYPE = 
-PACKAGE = freefem++
-PACKAGE_BUGREPORT = hecht at ann.jussieu.fr
-PACKAGE_NAME = FreeFem++
-PACKAGE_STRING = FreeFem++ 3.32-1
-PACKAGE_TARNAME = freefem++
-PACKAGE_URL = 
-PACKAGE_VERSION = 3.32-1
-PASTIX_HOSTARCH = 
-PATH_SEPARATOR = :
-RANLIB = ranlib
-RANLIN = ranlib
-SCOTCH_INCLUDE = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/include/scotch
-SET_MAKE = 
-SHELL = /bin/bash
-SIZEOF_INT = 4
-SIZEOF_LONG = 8
-SIZEOF_PTR = 8
-SIZEOF_PTRINBIT = 64
-SKIP_TESTS_EIGEN = 
-SKIP_TESTS_MPI = no
-STATICTOOL = 
-STDPROG = 
-STD_GRAPH_OBJ = 
-STD_LDFLAGS = 
-STD_LIBS = 
-STRIP = 
-TEST_FFPP = ../src/nw/FreeFem++
-TEST_FFPPMPI = ../src/mpi/ff-mpirun
-TOOL_COMPILE_fflapack = fflapack
-TOOL_COMPILE_gsl = gsl
-TOOL_COMPILE_hips = hips
-TOOL_COMPILE_ipopt = ipopt
-TOOL_COMPILE_lapack = lapack
-TOOL_COMPILE_metis = metis
-TOOL_COMPILE_mmg3d = mmg3d
-TOOL_COMPILE_mshmet = mshmet
-TOOL_COMPILE_mumps = mumps
-TOOL_COMPILE_mumps_seq = mumps-seq
-TOOL_COMPILE_nlopt = nlopt
-TOOL_COMPILE_pardiso = 
-TOOL_COMPILE_parmetis = parmetis
-TOOL_COMPILE_parms = parms
-TOOL_COMPILE_pastix = pastix
-TOOL_COMPILE_pipe = pipe
-TOOL_COMPILE_scotch = scotch
-TOOL_COMPILE_superlu = superlu
-TOOL_COMPILE_superludist = superludist
-TOOL_COMPILE_umfpack = umfpack
-TOOL_COMPILE_yams = yams
-TOOL_DYLIB_fflapack = fflapack.so
-TOOL_DYLIB_gsl = gsl.so NewSolver.so
-TOOL_DYLIB_hips = hips_FreeFem.so
-TOOL_DYLIB_ipopt = ff-Ipopt.so
-TOOL_DYLIB_lapack = lapack.so
-TOOL_DYLIB_metis = metis.so
-TOOL_DYLIB_mmg3d = mmg3d-v4.0.so
-TOOL_DYLIB_mshmet = mshmet.so
-TOOL_DYLIB_mumps = MUMPS_FreeFem.so MUMPS.so
-TOOL_DYLIB_mumps_seq = MUMPS_seq.so MUMPS.so
-TOOL_DYLIB_nlopt = ff-NLopt.so
-TOOL_DYLIB_pardiso = 
-TOOL_DYLIB_parmetis = 
-TOOL_DYLIB_parms = parms_FreeFem.so
-TOOL_DYLIB_pastix = interfacepastix.so complex_pastix_FreeFem.so real_pastix_FreeFem.so
-TOOL_DYLIB_pipe = pipe.so
-TOOL_DYLIB_scotch = scotch.so
-TOOL_DYLIB_superlu = SuperLu.so
-TOOL_DYLIB_superludist = complex_SuperLU_DIST_FreeFem.so real_SuperLU_DIST_FreeFem.so dSuperLU_DIST.so
-TOOL_DYLIB_umfpack = UMFPACK64.so
-TOOL_DYLIB_yams = freeyams.so
-UMFPACKLIBS = -lumfpack  -lamd -lcholmod -lcolamd
-VERSION = 3.32-1
-WGET = wget --no-check-certificate
-WIN32DLLTARGET = 
-WINDRESOBJ = 
-YACC = bison -y
-YFLAGS = 
-abs_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/umfpack
-abs_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/download/umfpack
-abs_top_builddir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
-abs_top_srcdir = /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++
-ac_ct_CC = gcc -Wl,-z,relro
-ac_ct_CXX = 
-ac_ct_F77 = gfortran
-ac_ct_FC = gfortran
-am__include = include
-am__leading_dot = .
-am__quote = 
-am__tar = $${TAR-tar} chof - "$$tardir"
-am__untar = $${TAR-tar} xf -
-bindir = ${exec_prefix}/bin
-build = x86_64-pc-linux-gnu
-build_alias = x86_64-linux-gnu
-build_cpu = x86_64
-build_os = linux-gnu
-build_vendor = pc
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-ff_bison = yes
-ff_convert = yes
-ff_curl = 
-ff_dvips = yes
-ff_git = 
-ff_gzip = yes
-ff_history = 
-ff_latex = yes
-ff_libtool = yes
-ff_m4 = yes
-ff_makeindex = yes
-ff_patch = yes
-ff_pdf2ps = yes
-ff_pdflatex = yes
-ff_prefix_dir = /usr/lib/ff++/3.32-1
-ff_unzip = 
-ff_wget = yes
-host = x86_64-pc-linux-gnu
-host_alias = 
-host_cpu = x86_64
-host_os = linux-gnu
-host_vendor = pc
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${prefix}/share/info
-install_sh = ${SHELL} /home/eftaxiop/Arxeia/Genika/Logismiko/freefem++/Δημιουργία_πακέτου_για_το_Debian_Linux/freefem++/install-sh
-libdir = ${prefix}/lib/x86_64-linux-gnu
-libexecdir = ${prefix}/lib/x86_64-linux-gnu
-localedir = ${datarootdir}/locale
-localstatedir = /var
-mandir = ${prefix}/share/man
-mkdir_p = $(MKDIR_P)
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /usr
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = /etc
-target_alias = 
-top_build_prefix = ../../
-top_builddir = ../..
-top_srcdir = ../..
-=======
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
->>>>>>> upstream/3.34.2:download/umfpack/Makefile.in
-EXTRA_DIST = SuiteSparse_config.mk.in 
-
-# Downloading and compiling UMFPACK
-# ---------------------------------
-DIRPKG = ../pkg
-SUITESPARSE_TGZ = $(DIRPKG)/SuiteSparse-4.3.1.tar.gz
-UMFPACKLIB = ../lib/libumfpack.a 
-AMDLIB = ../lib/libamd.a
-CAMDLIB = ../lib/libcamd.a
-CHOLMODLIB = ../lib/libcholmod.a
-COLAMDLIB = ../lib/libcolamd.a
-SUITESPARSECONFIGLIB = ../lib/libsuitesparseconfig.a
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu download/umfpack/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu download/umfpack/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: # $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-local cscopelist-am ctags-am distclean distclean-generic \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
-	uninstall-am
-
-
-# see [[file:../../configure.ac::DOWNLOAD_UMFPACK]]
-all-local: $(DOWNLOAD_UMFPACK)
-
-# ALH - 4/9/13 - parallel make crashes ("pipe from processes is a directory"?). make sure that everything is run
-# sequentially
-
-umfpack:
-	$(MAKE) MAKEFLAGS= $(AMDLIB)
-	$(MAKE) MAKEFLAGS= $(UMFPACKLIB)
-	$(MAKE) MAKEFLAGS= $(SUITESPARSECONFIGLIB)
-#
-# ALH - 19/9/13 - cholmod part built sequentially
-#
-	$(MAKE) MAKEFLAGS= $(CAMDLIB)
-	$(MAKE) MAKEFLAGS= $(COLAMDLIB)
-	$(MAKE) MAKEFLAGS= $(AMDLIB)
-	$(MAKE) MAKEFLAGS= $(CHOLMODLIB)
-	$(MAKE) MAKEFLAGS= $(SUITESPARSECONFIGLIB) 
-
-# FFCS: SuiteSparse/*/Source are not able to compile in parallel from scratch ("pipe from processes is a
-# directory"?). But specifying "make -j 1" is not enough (another error pops up). Use "$(MAKE) MAKEFLAGS=" instead
-# (using "make MAKEFLAGS=" still produces an error on Cygwin).
-
-$(SUITESPARSECONFIGLIB): SuiteSparse/FF 
-	cd SuiteSparse/SuiteSparse_config && $(MAKE) MAKEFLAGS=
-	mkdir -p ../include ../lib
-	cp -f SuiteSparse/SuiteSparse_config/SuiteSparse_config.h  ../include
-	cp  SuiteSparse/SuiteSparse_config/libsuitesparseconfig.a ../lib/libsuitesparseconfig.a
-	$(RANLIB) ../lib/libsuitesparseconfig.a
-
-$(UMFPACKLIB): SuiteSparse/FF 
-	cd SuiteSparse/UMFPACK/Lib && $(MAKE) MAKEFLAGS=
-	mkdir -p ../include ../lib
-	cp -f  SuiteSparse/UMFPACK/Include/*.h ../include
-	cp -f SuiteSparse/SuiteSparse_config/SuiteSparse_config.h  ../include
-	cp  SuiteSparse/UMFPACK/Lib/libumfpack.a ../lib/libumfpack.a
-	$(RANLIB) ../lib/libumfpack.a
-
-$(AMDLIB): SuiteSparse/FF 
-	cd SuiteSparse/AMD/Lib && $(MAKE) MAKEFLAGS=
-	mkdir -p ../include ../lib
-	cp -f  SuiteSparse/AMD/Include/*.h ../include
-	cp  SuiteSparse/AMD/Lib/libamd.a ../lib/libamd.a
-	$(RANLIB) ../lib/libamd.a
-
-$(CAMDLIB): SuiteSparse/FF 
-	cd SuiteSparse/CAMD/Lib && $(MAKE) MAKEFLAGS=
-	mkdir -p ../include ../lib
-	cp -f  SuiteSparse/CAMD/Include/*.h ../include
-	cp  SuiteSparse/CAMD/Lib/libcamd.a ../lib/libcamd.a
-	$(RANLIB) ../lib/libcamd.a
-
-$(CHOLMODLIB): SuiteSparse/FF 
-	cd SuiteSparse/CHOLMOD/Lib && $(MAKE) MAKEFLAGS=
-	mkdir -p ../include ../lib
-	cp -f  SuiteSparse/CHOLMOD/Include/*.h ../include
-	cp  SuiteSparse/CHOLMOD/Lib/libcholmod.a ../lib/libcholmod.a
-	$(RANLIB) ../lib/libcholmod.a
-
-$(COLAMDLIB): SuiteSparse/FF 
-	cd SuiteSparse/COLAMD/Lib && $(MAKE) MAKEFLAGS=
-	mkdir -p ../include ../lib
-	cp -f  SuiteSparse/COLAMD/Include/*.h ../include
-	cp  SuiteSparse/COLAMD/Lib/libcolamd.a ../lib/libcolamd.a
-	$(RANLIB) ../lib/libcolamd.a
-
-UMFPACKv4.4:
-	tar xzf UMFPACKv4.4.tar.gz
-
-# The 'lib' goal is replaced with 'libb' to avoid problems with the existing 'Lib' subdirectory on case-insensitive file
-# systems the lib depend of the Makefile to force the reconstruction if the parameter change
-
-UMFPACKv4.4/AMD/Makefile2 UMFPACKv4.4/UMFPACK/Makefile2: UMFPACKv4.4  
-	sed 's/lib:/libb:/' < UMFPACKv4.4/UMFPACK/`basename $@ 2`  >$@
-
-SuiteSparse/DATE:$(SUITESPARSE_TGZ)
-	tar zxvf $(SUITESPARSE_TGZ)
-	touch SuiteSparse/DATE
-
-SuiteSparse/FF:SuiteSparse/DATE  SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk
-	touch SuiteSparse/FF
-
-SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk:SuiteSparse/DATE Makefile SuiteSparse_config.mk.in
-	../../config.status  --file="SuiteSparse_config.mk:SuiteSparse_config.mk.in"
-	-if  diff SuiteSparse_config.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk  2>&1 >/dev/null; then \
-	    echo " same flags => no recompilation !  " ; \
-	else \
-	   echo "  recompile umfpack (some flags change) => clean umfpack colmod amd " ;\
-	   mkdir -p SuiteSparse/SuiteSparse_config ;\
-	   cp SuiteSparse_config.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk ; \
-	   (cd SuiteSparse/UMFPACK && make clean); \
-	   (cd SuiteSparse/CHOLMOD && make clean); \
-	   (cd SuiteSparse/COLAMD && make clean); \
-	   (cd SuiteSparse/CAMD && make clean); \
-	   (cd SuiteSparse/CAMD && make clean); \
-	   (cd SuiteSparse/AMD && make clean); \
-	   find . -name '*.exe'|xargs rm;  \
-	fi; 
-	touch SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk
-
-UMFPACK_Make.m4: Makefile UMFPACKv4.4
-	m4   -DFF_CC="$(CC)" \
-             -DFF_CFLAGS="-D_FORTIFY_SOURCE=2 -g  -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -O3 -mmmx -msse -msse2 -fPIC " \
-             -DFF_LIB="@BLASLIB@ -ldl -lm  /usr/lib/gcc/x86_64-linux-gnu/4.9/libgfortran.so" \
-	     -DFF_CONFIG="" \
-              UMFPACK_Make.m4 >Make.include
-	-if  diff Make.include UMFPACKv4.4/UMFPACK/Make/Make.include 2>&1 >/dev/null; then \
-	    echo " same flags => no recompilation !  " ; \
-	else \
-	   echo "  recompile umfpack (some flags change) => clean umfpack" ;\
-	   cp Make.include  UMFPACKv4.4/UMFPACK/Make/Make.include; \
-	   cd UMFPACKv4.4/UMFPACK && make clean; \
-	   find . -name '*.exe'|xargs rm; \
-	fi; 
-UMFPACKv4.4.tar.gz:
-	wget --no-check-certificate -N http://www.cise.ufl.edu/research/sparse/umfpack/v4.4/UMFPACKv4.4.tar.gz
-$(SUITESPARSE_TGZ):
-	../getall -o SuiteSparse -a
-
-clean-local:
-	-rm $(AMDLIB) $(CAMDLIB) $(CHOLMODLIB) $(COLAMDLIB) $(SUITESPARSECONFIGLIB)
-	-rm ../include/amd*.h 
-	-rm ../include/umfpack*.h 
-	-rm ../include/colmod*.h 
-	-rm ../include/camd*.h 
-	-rm ../include/amd*.h
-	-rm ../include/SuiteSparse_config.h 
-	-rm -rf UMFPACKv4.?.tar.gz UMFPACKv4.?
-	-rm SuiteSparse*gz 
-	-rm -rf SuiteSparse
-	-rm ../pkg/SuiteSparse-*
-	-rm SuiteSparse_config.mk
-
-# Local Variables:
-# mode:makefile
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-3d/._MeshSurface.idp b/examples++-3d/._MeshSurface.idp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-3d/._MeshSurface.idp and /dev/null differ
diff --git a/examples++-3d/Makefile.am.orig b/examples++-3d/Makefile.am.orig
deleted file mode 100644
index 2446fba..0000000
--- a/examples++-3d/Makefile.am.orig
+++ /dev/null
@@ -1,50 +0,0 @@
-# $Id$
-
-all-local: all.edp regtests.edp  freefem++.pref
-
-TESTS=3d-Leman.edp ArrayFE-3d.edp EqPoisson.edp Lac.edp Laplace-Adapt-3d.edp Laplace-Adapt-aniso-3d.edp Laplace3d.edp LaplaceRT-3d.edp NSI3d-carac.edp NSI3d.edp Period-Poisson-cube-ballon.edp Poisson-cube-ballon.edp Poisson.edp Poisson3d.edp Stokes.edp TruncLac.edp  beam-3d.edp cone.edp convect-3d.edp cube-period.edp cylinder-3d.edp cylinder.edp fallingspheres.edp first.edp meditddm.edp p.edp periodic-3d.edp pyramide.edp  refinesphere.edp  schwarz-nm-3d.edp sphere2.edp sphere6.edp tetgen [...]
-<<<<<<< HEAD
-XFAIL_TESTS=Laplace-Adapt-aniso-3d.edp fallingspheres.edp Laplace-Adapt-3d.edp Period-Poisson-cube-ballon.edp Poisson-cube-ballon.edp cylinder.edp refinesphere.edp tetgencube.edp tetgenholeregion.edp Poisson3d.edp  schwarz-nm-3d.edp 
-=======
-XFAIL_TESTS=Laplace-Adapt-aniso-3d.edp fallingspheres.edp Laplace-Adapt-3d.edp Period-Poisson-cube-ballon.edp Poisson-cube-ballon.edp cylinder.edp refinesphere.edp tetgencube.edp tetgenholeregion.edp Poisson3d.edp
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-LOG_DRIVER=$(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT=TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw
-
-LIST_IDP=MeshSurface.idp cube.idp
-
-EXTRA_DIST=*.edp  all.edp regtests.edp regtests.m4 ref.edp dodecaedre01.mesh \
-  lac-leman-v4.msh $(LIST_IDP)
-
-
-
-all.edp:  Makefile
-	(echo "NoGraphicWindow=true;NoUseOfWait=true;int verbosityy=verbosity;int MEM1234=storageused();"; \
-	for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$$'` ; do  \
-		echo ' cout << "--------- file : '$$i' --------------------------------------------------------" << endl;' ;\
-		echo "verbosity=verbosityy;searchMethod=0;" ; \
-		echo \{ include \"$$i\"\;\}\; ;\
-		echo ' cout << " mem leak = " <<storageused() - MEM1234 << endl << "------------------------------------------------------------------------------ " << endl;' ;\
-	done) > $@
-
-# To create a new set of reference values in "ref.edp"
-Ref: makeref.edp freefem++.pref
-	export  FF_LOADPATH=../examples++-load/.;../src/nw/FreeFem++-nw makeref.edp
-
-makeref.edp: regtests.m4 ../regtests.m4
-	m4 regtests.m4 > makeref.edp
-
-freefem++.pref:
-	echo loadpath = \"../examples++-load/\" >freefem++.pref
-	echo loadpath += \"./\" >>freefem++.pref
-3d-Leman.edp:freefem++.pref
-install-exec-local:: 
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/idp
-	$(INSTALL)  -m 555  $(LIST_IDP)  $(DESTDIR)$(ff_prefix_dir)/idp
-
-
-
-# To check the scripts against their reference values
-regtests.edp: regtests.m4 ../regtests.m4
-	m4 -DASSERT regtests.m4 > regtests.edp
-FORCE:
diff --git a/examples++-3d/Makefile.in b/examples++-3d/Makefile.in
deleted file mode 100644
index 5b42b8d..0000000
--- a/examples++-3d/Makefile.in
+++ /dev/null
@@ -1,1228 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# $Id$
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = examples++-3d
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-TESTS = 3d-Leman.edp ArrayFE-3d.edp EqPoisson.edp Lac.edp Laplace-Adapt-3d.edp Laplace-Adapt-aniso-3d.edp Laplace3d.edp LaplaceRT-3d.edp NSI3d-carac.edp NSI3d.edp Period-Poisson-cube-ballon.edp Poisson-cube-ballon.edp Poisson.edp Poisson3d.edp Stokes.edp TruncLac.edp  beam-3d.edp cone.edp convect-3d.edp cube-period.edp cylinder-3d.edp cylinder.edp fallingspheres.edp first.edp meditddm.edp p.edp periodic-3d.edp pyramide.edp  refinesphere.edp  schwarz-nm-3d.edp sphere2.edp sphere6.edp tetg [...]
-XFAIL_TESTS = Laplace-Adapt-aniso-3d.edp fallingspheres.edp Laplace-Adapt-3d.edp Period-Poisson-cube-ballon.edp Poisson-cube-ballon.edp cylinder.edp refinesphere.edp tetgencube.edp tetgenholeregion.edp Poisson3d.edp  schwarz-nm-3d.edp 
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT = TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw
-LIST_IDP = MeshSurface.idp cube.idp
-EXTRA_DIST = *.edp  all.edp regtests.edp regtests.m4 ref.edp dodecaedre01.mesh \
-  lac-leman-v4.msh $(LIST_IDP)
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .log .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++-3d/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++-3d/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-3d-Leman.edp.log: 3d-Leman.edp
-	@p='3d-Leman.edp'; \
-	b='3d-Leman.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ArrayFE-3d.edp.log: ArrayFE-3d.edp
-	@p='ArrayFE-3d.edp'; \
-	b='ArrayFE-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-EqPoisson.edp.log: EqPoisson.edp
-	@p='EqPoisson.edp'; \
-	b='EqPoisson.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Lac.edp.log: Lac.edp
-	@p='Lac.edp'; \
-	b='Lac.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Laplace-Adapt-3d.edp.log: Laplace-Adapt-3d.edp
-	@p='Laplace-Adapt-3d.edp'; \
-	b='Laplace-Adapt-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Laplace-Adapt-aniso-3d.edp.log: Laplace-Adapt-aniso-3d.edp
-	@p='Laplace-Adapt-aniso-3d.edp'; \
-	b='Laplace-Adapt-aniso-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Laplace3d.edp.log: Laplace3d.edp
-	@p='Laplace3d.edp'; \
-	b='Laplace3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceRT-3d.edp.log: LaplaceRT-3d.edp
-	@p='LaplaceRT-3d.edp'; \
-	b='LaplaceRT-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSI3d-carac.edp.log: NSI3d-carac.edp
-	@p='NSI3d-carac.edp'; \
-	b='NSI3d-carac.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSI3d.edp.log: NSI3d.edp
-	@p='NSI3d.edp'; \
-	b='NSI3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Period-Poisson-cube-ballon.edp.log: Period-Poisson-cube-ballon.edp
-	@p='Period-Poisson-cube-ballon.edp'; \
-	b='Period-Poisson-cube-ballon.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Poisson-cube-ballon.edp.log: Poisson-cube-ballon.edp
-	@p='Poisson-cube-ballon.edp'; \
-	b='Poisson-cube-ballon.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Poisson.edp.log: Poisson.edp
-	@p='Poisson.edp'; \
-	b='Poisson.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Poisson3d.edp.log: Poisson3d.edp
-	@p='Poisson3d.edp'; \
-	b='Poisson3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Stokes.edp.log: Stokes.edp
-	@p='Stokes.edp'; \
-	b='Stokes.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-TruncLac.edp.log: TruncLac.edp
-	@p='TruncLac.edp'; \
-	b='TruncLac.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-beam-3d.edp.log: beam-3d.edp
-	@p='beam-3d.edp'; \
-	b='beam-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cone.edp.log: cone.edp
-	@p='cone.edp'; \
-	b='cone.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convect-3d.edp.log: convect-3d.edp
-	@p='convect-3d.edp'; \
-	b='convect-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cube-period.edp.log: cube-period.edp
-	@p='cube-period.edp'; \
-	b='cube-period.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cylinder-3d.edp.log: cylinder-3d.edp
-	@p='cylinder-3d.edp'; \
-	b='cylinder-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cylinder.edp.log: cylinder.edp
-	@p='cylinder.edp'; \
-	b='cylinder.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-fallingspheres.edp.log: fallingspheres.edp
-	@p='fallingspheres.edp'; \
-	b='fallingspheres.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-first.edp.log: first.edp
-	@p='first.edp'; \
-	b='first.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-meditddm.edp.log: meditddm.edp
-	@p='meditddm.edp'; \
-	b='meditddm.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-p.edp.log: p.edp
-	@p='p.edp'; \
-	b='p.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-periodic-3d.edp.log: periodic-3d.edp
-	@p='periodic-3d.edp'; \
-	b='periodic-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-pyramide.edp.log: pyramide.edp
-	@p='pyramide.edp'; \
-	b='pyramide.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-refinesphere.edp.log: refinesphere.edp
-	@p='refinesphere.edp'; \
-	b='refinesphere.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-schwarz-nm-3d.edp.log: schwarz-nm-3d.edp
-	@p='schwarz-nm-3d.edp'; \
-	b='schwarz-nm-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-sphere2.edp.log: sphere2.edp
-	@p='sphere2.edp'; \
-	b='sphere2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-sphere6.edp.log: sphere6.edp
-	@p='sphere6.edp'; \
-	b='sphere6.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-tetgencube.edp.log: tetgencube.edp
-	@p='tetgencube.edp'; \
-	b='tetgencube.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-tetgenholeregion.edp.log: tetgenholeregion.edp
-	@p='tetgenholeregion.edp'; \
-	b='tetgenholeregion.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-intlevelset3d.edp.log: intlevelset3d.edp
-	@p='intlevelset3d.edp'; \
-	b='intlevelset3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-exec-local
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: all all-am all-local check check-TESTS check-am clean \
-	clean-generic cscopelist-am ctags-am distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-exec-local \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am recheck \
-	tags-am uninstall uninstall-am
-
-
-all-local: all.edp regtests.edp  freefem++.pref
-
-all.edp:  Makefile
-	(echo "NoGraphicWindow=true;NoUseOfWait=true;int verbosityy=verbosity;int MEM1234=storageused();"; \
-	for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$$'` ; do  \
-		echo ' cout << "--------- file : '$$i' --------------------------------------------------------" << endl;' ;\
-		echo "verbosity=verbosityy;searchMethod=0;" ; \
-		echo \{ include \"$$i\"\;\}\; ;\
-		echo ' cout << " mem leak = " <<storageused() - MEM1234 << endl << "------------------------------------------------------------------------------ " << endl;' ;\
-	done) > $@
-
-# To create a new set of reference values in "ref.edp"
-Ref: makeref.edp freefem++.pref
-	export  FF_LOADPATH=../examples++-load/.;../src/nw/FreeFem++-nw makeref.edp
-
-makeref.edp: regtests.m4 ../regtests.m4
-	m4 regtests.m4 > makeref.edp
-
-freefem++.pref:
-	echo loadpath = \"../examples++-load/\" >freefem++.pref
-	echo loadpath += \"./\" >>freefem++.pref
-3d-Leman.edp:freefem++.pref
-install-exec-local:: 
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/idp
-	$(INSTALL)  -m 555  $(LIST_IDP)  $(DESTDIR)$(ff_prefix_dir)/idp
-
-# To check the scripts against their reference values
-regtests.edp: regtests.m4 ../regtests.m4
-	m4 -DASSERT regtests.m4 > regtests.edp
-FORCE:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-bug/Makefile.in b/examples++-bug/Makefile.in
deleted file mode 100644
index 3b47dcc..0000000
--- a/examples++-bug/Makefile.in
+++ /dev/null
@@ -1,580 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# $Id$
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = examples++-bug
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = *.edp
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++-bug/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++-bug/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
-	ctags-am distclean distclean-generic distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-chapt3/Makefile.in b/examples++-chapt3/Makefile.in
deleted file mode 100644
index 97f0e06..0000000
--- a/examples++-chapt3/Makefile.in
+++ /dev/null
@@ -1,1110 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# $Id$
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = examples++-chapt3
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-TESTS = BlackScholes2D.edp NSNewton.edp NSprojection.edp condensor.edp convects.edp heatex.edp lame.edp membrane.edp membranerror.edp muwave.edp optimcontrol.edp potential.edp schwarz.edp sound.edp stokes.edp test1.edp testbed.edp thermal.edp thermic.edp
-# if .. no arpack ... 
-XFAIL_TESTS = sound.edp
-EXTRA_DIST = *.edp  all.edp regtests.edp regtests.m4 ref.edp
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT = TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .log .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++-chapt3/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++-chapt3/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-BlackScholes2D.edp.log: BlackScholes2D.edp
-	@p='BlackScholes2D.edp'; \
-	b='BlackScholes2D.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSNewton.edp.log: NSNewton.edp
-	@p='NSNewton.edp'; \
-	b='NSNewton.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSprojection.edp.log: NSprojection.edp
-	@p='NSprojection.edp'; \
-	b='NSprojection.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-condensor.edp.log: condensor.edp
-	@p='condensor.edp'; \
-	b='condensor.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convects.edp.log: convects.edp
-	@p='convects.edp'; \
-	b='convects.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-heatex.edp.log: heatex.edp
-	@p='heatex.edp'; \
-	b='heatex.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-lame.edp.log: lame.edp
-	@p='lame.edp'; \
-	b='lame.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-membrane.edp.log: membrane.edp
-	@p='membrane.edp'; \
-	b='membrane.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-membranerror.edp.log: membranerror.edp
-	@p='membranerror.edp'; \
-	b='membranerror.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-muwave.edp.log: muwave.edp
-	@p='muwave.edp'; \
-	b='muwave.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-optimcontrol.edp.log: optimcontrol.edp
-	@p='optimcontrol.edp'; \
-	b='optimcontrol.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-potential.edp.log: potential.edp
-	@p='potential.edp'; \
-	b='potential.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-schwarz.edp.log: schwarz.edp
-	@p='schwarz.edp'; \
-	b='schwarz.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-sound.edp.log: sound.edp
-	@p='sound.edp'; \
-	b='sound.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-stokes.edp.log: stokes.edp
-	@p='stokes.edp'; \
-	b='stokes.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-test1.edp.log: test1.edp
-	@p='test1.edp'; \
-	b='test1.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testbed.edp.log: testbed.edp
-	@p='testbed.edp'; \
-	b='testbed.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-thermal.edp.log: thermal.edp
-	@p='thermal.edp'; \
-	b='thermal.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-thermic.edp.log: thermic.edp
-	@p='thermic.edp'; \
-	b='thermic.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: all all-am all-local check check-TESTS check-am clean \
-	clean-generic cscopelist-am ctags-am distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am recheck tags-am \
-	uninstall uninstall-am
-
-
-all-local: all.edp regtests.edp freefem++.pref
-
-all.edp:
-	(echo "NoUseOfWait=true;int verbosityy=verbosity;"; \
-	for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$$'` ; do  \
-		echo ' cout << "--------- file : '$$i' --------------------------------------------------------" << endl;' ;\
-		echo "verbosity=verbosityy;" ; \
-		echo \{ include \"$$i\"\;\}\; ;\
-		echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\
-	done) > $@
-
-# To create a new set of reference values in "ref.edp"
-Ref: makeref.edp
-	../src/nw/FreeFem++-nw makeref.edp
-
-makeref.edp: regtests.m4 ../regtests.m4
-	m4 regtests.m4 > makeref.edp
-
-# To check the scripts against their reference values
-regtests.edp: regtests.m4 ../regtests.m4
-	m4 -DASSERT regtests.m4 > regtests.edp
-freefem++.pref:
-	echo loadpath = \"../examples++-load/\" >freefem++.pref
-	echo loadpath += \"./\" >>freefem++.pref
-
-FORCE:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-eigen/._BeamEigenValue.edp b/examples++-eigen/._BeamEigenValue.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-eigen/._BeamEigenValue.edp and /dev/null differ
diff --git a/examples++-eigen/._free-cyl-axi.edp b/examples++-eigen/._free-cyl-axi.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-eigen/._free-cyl-axi.edp and /dev/null differ
diff --git a/examples++-eigen/Makefile.in b/examples++-eigen/Makefile.in
deleted file mode 100644
index 95ab2fd..0000000
--- a/examples++-eigen/Makefile.in
+++ /dev/null
@@ -1,1041 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = examples++-eigen
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT = TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw SKIP=$(SKIP_TESTS_EIGEN)
-TESTS = BeamEigenValue.edp BeamEigenValueperio.edp Lap3dEigenValue.edp  LapEigenValue.edp LapnosymEigenValue.edp Stokes-eigen.edp VP-Steklov-Poincare.edp neuman.edp  WGM-sphere.edp free-cyl-axi.edp LapEigenValueFunc.edp
-#  LapComplexEigenValue.edp  (buggus) 
-EXTRA_DIST = *.edp all.edp
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .log .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++-eigen/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++-eigen/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-BeamEigenValue.edp.log: BeamEigenValue.edp
-	@p='BeamEigenValue.edp'; \
-	b='BeamEigenValue.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-BeamEigenValueperio.edp.log: BeamEigenValueperio.edp
-	@p='BeamEigenValueperio.edp'; \
-	b='BeamEigenValueperio.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Lap3dEigenValue.edp.log: Lap3dEigenValue.edp
-	@p='Lap3dEigenValue.edp'; \
-	b='Lap3dEigenValue.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapEigenValue.edp.log: LapEigenValue.edp
-	@p='LapEigenValue.edp'; \
-	b='LapEigenValue.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapnosymEigenValue.edp.log: LapnosymEigenValue.edp
-	@p='LapnosymEigenValue.edp'; \
-	b='LapnosymEigenValue.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Stokes-eigen.edp.log: Stokes-eigen.edp
-	@p='Stokes-eigen.edp'; \
-	b='Stokes-eigen.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-VP-Steklov-Poincare.edp.log: VP-Steklov-Poincare.edp
-	@p='VP-Steklov-Poincare.edp'; \
-	b='VP-Steklov-Poincare.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-neuman.edp.log: neuman.edp
-	@p='neuman.edp'; \
-	b='neuman.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-WGM-sphere.edp.log: WGM-sphere.edp
-	@p='WGM-sphere.edp'; \
-	b='WGM-sphere.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-free-cyl-axi.edp.log: free-cyl-axi.edp
-	@p='free-cyl-axi.edp'; \
-	b='free-cyl-axi.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapEigenValueFunc.edp.log: LapEigenValueFunc.edp
-	@p='LapEigenValueFunc.edp'; \
-	b='LapEigenValueFunc.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: all all-am all-local check check-TESTS check-am clean \
-	clean-generic cscopelist-am ctags-am distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am recheck tags-am \
-	uninstall uninstall-am
-
-
-# $Id$
-# F. hecht july 2014  add  LapEigenValueFunc.edp example 
-all-local: all.edp freefem++.pref
-
-all.edp:
-	(echo "NoUseOfWait=true;int verbosityy=verbosity;"; \
-	for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$$'` ; do  \
-		echo ' cout << "--------- file : '$$i' --------------------------------------------------------" << endl;' ;\
-		echo "verbosity=verbosityy;" ; \
-		echo \{ include \"$$i\"\;\}\; ;\
-		echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\
-	done) > $@
-
-freefem++.pref:
-	echo loadpath = \"../examples++-load/\" >freefem++.pref
-	echo loadpath += \"./\" >>freefem++.pref
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-load/._bilapP3-hct-like.edp b/examples++-load/._bilapP3-hct-like.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-load/._bilapP3-hct-like.edp and /dev/null differ
diff --git a/examples++-load/._ff-AiryBiry.cpp b/examples++-load/._ff-AiryBiry.cpp
deleted file mode 100644
index 3d5dbdf..0000000
Binary files a/examples++-load/._ff-AiryBiry.cpp and /dev/null differ
diff --git a/examples++-load/._ffrandom.edp b/examples++-load/._ffrandom.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-load/._ffrandom.edp and /dev/null differ
diff --git a/examples++-load/._gsl.awk b/examples++-load/._gsl.awk
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-load/._gsl.awk and /dev/null differ
diff --git a/examples++-load/._gsl.awk.orig b/examples++-load/._gsl.awk.orig
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-load/._gsl.awk.orig and /dev/null differ
diff --git a/examples++-load/._iohd5-beam-2d.edp b/examples++-load/._iohd5-beam-2d.edp
deleted file mode 100644
index 361d6a9..0000000
Binary files a/examples++-load/._iohd5-beam-2d.edp and /dev/null differ
diff --git a/examples++-load/._iohd5-beam-3d.edp b/examples++-load/._iohd5-beam-3d.edp
deleted file mode 100644
index 361d6a9..0000000
Binary files a/examples++-load/._iohd5-beam-3d.edp and /dev/null differ
diff --git a/examples++-load/._msh3.hpp b/examples++-load/._msh3.hpp
deleted file mode 100755
index 14f037e..0000000
Binary files a/examples++-load/._msh3.hpp and /dev/null differ
diff --git a/examples++-load/._testFE-PkEdge.edp b/examples++-load/._testFE-PkEdge.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-load/._testFE-PkEdge.edp and /dev/null differ
diff --git a/examples++-load/BinaryIO.cpp.orig b/examples++-load/BinaryIO.cpp.orig
deleted file mode 100644
index c309330..0000000
--- a/examples++-load/BinaryIO.cpp.orig
+++ /dev/null
@@ -1,100 +0,0 @@
-
-#include  <iostream>
-#include  <cfloat>
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-#include "rgraph.hpp"
-#include "RNM.hpp"
-#include "fem.hpp"
-#include "FESpace.hpp" 
-#include "MeshPoint.hpp"
-#include "AFunction_ext.hpp" // Extension of "AFunction.hpp" to deal with more than 3 parameters function
-using namespace Fem2D;
-
- 
-double SaveVec(KN<double> *const & f, string *const & nome)   
-{
-  std::ofstream outfile (nome->data(),ios_base::binary);
-  // To access value at node i of vector N, do as follow: *(N[0]+i)
-  // Explanation (C++ for dummies as I am ;-):
-  //   N         is an alias to the KN object.
-  //   N[0]      is a pointer to the first element of the vector.
-  //   N[0]+i    is a pointer to the ith element of the vector.
-  //   *(N[0]+i) is the value of the ith element of the vector.
- 
-  long int nn = f->N(); // get number of nodes
-  long int dim=nn;
-  outfile.write ((char*) &dim, sizeof(long int));//write the dimension of the vector
-  double ftemp ;
-  for(long int i=0; i<nn; i++) {
-    
-    ftemp = *(f[0]+i) ;
-    outfile.write ((char*) &ftemp, sizeof(double));
-  }
-  outfile.close();
-  return 0.0;  // dummy return value.
-}
-
- 
-double LoadVec(KN<double> *const & ww, string *const & nome)   
-{
-  std::ifstream infile (nome->data(),ios_base::binary);
-  long int dim;
-  infile.read((char *) &dim, sizeof(long int));
-  double dtemp;
-  for(long int i=0; i<dim; i++)
-   {
-   infile.read((char *) &dtemp, sizeof(double));
-    *(ww[0]+i)=dtemp ;
-    }
-  return 0.0;  // dummy return value.
-}
-
- 
-double LoadFlag(long int *const & ww, string *const & nome)   
-{
-  std::ifstream infile (nome->data(),ios_base::binary);
-  long int flag;
-  infile.read((char *) &flag, sizeof(long int));
-  *ww=flag;
-  return 0.0;  // dummy return value.
-}
-
-double flag(long int *const & FLAG,string *const &nome)   
-{
-  std::ofstream outfile (nome->data(),ios_base::binary);
-long int Flag;
- Flag= *FLAG;   
- outfile.write ((char*) &Flag, sizeof(long int));
-outfile.close();
- return 0.0;
-}
-
-
-
-//   add the function name to the freefem++ table 
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};	
-$1 */
-static void Load_Init(){	
-=======
-class Init { public:
-  Init();
-};	
-LOADINIT(Init);
-Init::Init(){	
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-		
-  Global.Add("LoadVec","(",new OneOperator2_<double,  KN<double>*, string* >(LoadVec)); 
-Global.Add("LoadFlag","(",new OneOperator2_<double,long int*, string* >(LoadFlag));
-  Global.Add("SaveVec","(",new OneOperator2_<double,KN<double>*, string* >(SaveVec));
- Global.Add("flag","(",new OneOperator2_<double,long int*,string* >(flag));  
-}
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/DxWriter.cpp.orig b/examples++-load/DxWriter.cpp.orig
deleted file mode 100644
index b89ef06..0000000
--- a/examples++-load/DxWriter.cpp.orig
+++ /dev/null
@@ -1,362 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : 
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Sala Lorenzo
-// E-MAIL   : salalo80 at gmail.com
-//
-
-#include "mode_open.hpp"
-#include <iostream>
-#include <cfloat>
-#include <cmath>
-#include <iterator>
-using namespace std;
-#include "ff++.hpp"
-using namespace Fem2D;
-
-
-/*!The class DxWriter permits to save in opendx format a "field" 
-(in the dx-language a "field" means the values of a function f(x,y,z) on a grid),
-a time series (an ordered collection of "fields", so we have field0=f(x,y,z,t0), field1=f(x,y,z,t1)
-and so on).
-DxWriter creates two files: one with extension .data where it puts the position of the grid, the connessions, 
-the values; and one with extension.dx where it puts the time series.
-Now you can save only scalar fields. 
-An example <code>
-load "DxWriter"
-mesh Th=square(5,5);
-DxWriter ff("pippo");
-Dxaddmesh(ff, Th);
-Dxaddtimeseries(ff, "Vx",Th);
-fespace Vh(Th, P1);
-Vh vx=x*y;
-Dxaddsol2ts(ff,"Vx",1.0, vx);
-vx=0.5*x*y^2+0.2;
-Dxaddsol2ts(ff,"Vx",2.0, vx);
-cout<<"Ciao";
-</code>
-*/
-
-class DxWriter {
-	struct tsinfo{
-		int imesh;//!<index of the mesh
-		std::string name;
-		std::vector<double> vecistant;
-	};
-private:
-std::vector<Fem2D::Mesh*> _vecmesh;
-std::vector<tsinfo> _vecofts;
-std::string _nameoffile;
-/*! This string contains the name of data file with \\ where there's a \ in the path*/
-std::string _nameofdatafile;
-//!files containing the data and the timeseries
-std::ofstream _ofdata, _ofts;
-
-/*!This function is called frequently, so if the main program crashes the files are good
-and you need only write "end" at the end of data file: echo end>>nameoffile.data and then the files are good
-*/
-void save_header(){
-		std::string s=_nameoffile;
-		s.append(".dx");
-		_ofts.open(s.c_str(), std::ios_base::out);
-		for(int i=0;i<_vecofts.size();++i){
-				_ofts<<"object \""<<_vecofts[i].name<<"\" class series"<<std::endl;  
-				for(int j=0;j<_vecofts[i].vecistant.size();++j){
-					_ofts<<"member "<<j<<" value file \""<<_nameofdatafile<<"\",\""<<_vecofts[i].name<<"_"<<j<<"\" position "<<_vecofts[i].vecistant[j]<<std::endl;
-				}
-				_ofts<<std::endl;
-		}
-		_ofts<<"end"<<std::endl;
-		_ofts.close();
-	}
-	
-
-public:
-  DxWriter() { std::cout << "Constructor of DxWriter" << endl;  }
-  void openfiles(const std::string& s){
-		_nameoffile=s;
-		std::string tmp=s+".data";
-		std::cout<<tmp<<" ";
-		_ofdata.open(tmp.c_str(), std::ios_base::out);
-		_nameofdatafile="";
-		for(int i=0;i<tmp.length();++i){
-			if(tmp.at(i)=='\\')
-				_nameofdatafile.append(1,'\\');
-			_nameofdatafile.append(1,tmp.at(i));
-		}
-  }
-	
-  void addmesh(Fem2D::Mesh* mesh){
-		Fem2D::Mesh& Th(*mesh);
-		_vecmesh.push_back(mesh);
-		_ofdata.flags(std::ios_base::scientific);
-		_ofdata.precision(15);
-		_ofdata<<"object \"pos_"<<_vecmesh.size()-1 <<"\" class array type float rank 1 shape 2 items "<<Th.nv<<" data follows"<<std::endl;
-		for(int k=0;k<Th.nv;++k){//Scorre tutti i vertici
-			_ofdata << Th(k).x<<" "<<Th(k).y<<endl;
-		}
-		_ofdata<<std::endl;
-		_ofdata.flags(std::ios_base::fixed);
-		_ofdata<<"object \"conn_"<<_vecmesh.size()-1<<"\" class array type int rank 1 shape 3 items "<<Th.nt<<" data follows "<<endl;
-		for (int i=0;i<Th.nt;i++){
-			for (int j=0; j <3; j++)
-				_ofdata << Th(i,j) << " ";
-			_ofdata<< endl;
-		}
-		_ofdata<<"attribute \"element type\" string \"triangles\" "<<std::endl;
-		_ofdata<<"attribute \"ref\" string \"positions\" "<<std::endl<<std::endl;
-  }
-  /*!Add a new time series, defined on the mesh*/
-	void addtimeseries(const string& nameofts, Fem2D::Mesh* mesh){
-		tsinfo ts;ts.name=nameofts;
-		std::vector<Fem2D::Mesh*>::const_iterator first=_vecmesh.begin(), last=_vecmesh.end();
-		if(std::find(first, last, mesh)==last){
-			addmesh(mesh);
-			ts.imesh=_vecmesh.size()-1;
-		}else{
-			ts.imesh=std::distance(first, std::find(first, last, mesh));
-		}
-		_vecofts.push_back(ts);
-	}
-  
-	/*!Add an instant to a time series name*/
-	void addistant2ts(const string& nameofts, const double t, const KN<double>&val){
-		int jj=-1;
-		for(int i=0;i<_vecofts.size();++i){
-			if(_vecofts[i].name==nameofts)jj=i;
-		}
-		_vecofts[jj].vecistant.push_back(t);
-		_ofdata.flags(std::ios_base::scientific);
-		_ofdata.precision(15);
-		_ofdata<<"object \""<<nameofts<<"_data_"<<_vecofts[jj].vecistant.size()-1<<"\" class array type float rank 0 items "<<
-			val.size()<<" data follows"<<std::endl;
-		for(int i=0;i<val.size();++i)
-			_ofdata<<val[i]<<std::endl;
-		_ofdata<<"attribute \"dep\" string \"positions\""<<std::endl<<std::endl;
-		_ofdata<<"object \""<<nameofts<<"_"<<_vecofts[jj].vecistant.size()-1<<"\" class field"<<std::endl;
-		_ofdata<<"component \"positions\" value \"pos_"<<_vecofts[jj].imesh<<"\""<<std::endl;
-		_ofdata<<"component \"connections\" value \"conn_"<<_vecofts[jj].imesh<<"\""<<std::endl;
-		_ofdata<<"component \"data\" value \""<<nameofts<<"_data_"<<_vecofts[jj].vecistant.size()-1<<"\""<<std::endl<<std::endl;
-		_ofdata.flush();
-		save_header();
-	}
-	
-	/*!Add a field*/
-	void addfield(const string& nameoffield, Fem2D::Mesh* mesh, const KN<double>&val){
-		std::vector<Fem2D::Mesh*>::const_iterator first=_vecmesh.begin(), last=_vecmesh.end();
-		int im;
-		if(std::find(first, last, mesh)==last){
-			addmesh(mesh);
-			im=_vecmesh.size()-1;
-		}else{
-			im=std::distance(first, std::find(first, last, mesh));
-		}
-		_ofdata.flags(std::ios_base::scientific);
-		_ofdata.precision(15);
-		_ofdata<<"object \""<<nameoffield<<"_data\" class array type float rank 0 items "<<
-			val.size()<<" data follows"<<std::endl;
-		for(int i=0;i<val.size();++i)
-			_ofdata<<val[i]<<std::endl;
-		_ofdata<<"attribute \"dep\" string \"positions\""<<std::endl<<std::endl;
-		_ofdata<<"object \""<<nameoffield<<"\" class field"<<std::endl;
-		_ofdata<<"component \"positions\" value \"pos_"<<im<<"\""<<std::endl;
-		_ofdata<<"component \"connections\" value \"conn_"<<im<<"\""<<std::endl;
-		_ofdata<<"component \"data\" value \""<<nameoffield<<"_data\""<<std::endl<<std::endl;
-		_ofdata.flush();
-	}
-	
-	/*!Get the mesh associated with the series nameofts*/
-	Fem2D::Mesh* getmeshts(const string& nameofts){
-		for(int i=0;i<_vecofts.size();++i){
-			if(_vecofts[i].name==nameofts)return _vecmesh[_vecofts[i].imesh];
-		}
-		return NULL;
-	}
- 
-  void init(){
-		new(this)DxWriter(); 
-  }
-	
-  void destroy() {
-		if(_ofdata.is_open()){
-			_ofdata<<std::endl<<"end"<<std::endl;
-			_ofdata.close(); 		
-		}
-  } 
-};
-
-
-class Dxwritesol_Op : public E_F0mps 
-{
-public:
-  typedef long  Result;
-	Expression edx;
-  Expression ename;//!<name of time series or field
-	Expression et;//!<time
-  long what; // 1 scalar, 2 vector, 3 symtensor
-  long nbfloat; // 1 scalar, n vector (3D), n symtensor(3D)
-  Expression evct;
-
-public:
-  Dxwritesol_Op(const basicAC_F0 &  args) :  what(0), nbfloat(0)
-  {
-		evct=0;
-    int nbofsol;
-    int ddim=2;
-    int stsize=3;
-		//There's no named parameter
-    args.SetNameParam();
-		if(args.size()!=4){
-			CompileError("Dxwritesol accepts only 4 parameters");
-		}
-		if (BCastTo<DxWriter *>(args[0])) edx = CastTo<DxWriter *>(args[0]);
-		if (BCastTo<string *>(args[1])) ename = CastTo<string *>(args[1]);
-    if (BCastTo<double>(args[2]))    et = CastTo<double>(args[2]);
-    
-    if ( args[3].left()==atype<double>() ){
-			what=1;
-			nbfloat=1;
-			evct=to<double>( args[3] );
-		}
-		else if ( args[3].left()==atype<double *>() )
-		{
-			what=1;
-			nbfloat=1;
-			evct=to<double>( args[3] );
-		}
-    else if ( BCastTo<pfer>(args[3]) )
-		{
-			what=1;
-			nbfloat=1;
-			evct=to<double>( args[3] );
-		}
-    else if ( args[3].left()==atype<E_Array>() )
-		{
-			CompileError("Until now only scalar solution");
-			
-			/*const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-			//cout << "taille" << a0->size() << endl;
-			//if (a0->size() != ddim || a0->size() != stsize) 
-			//  CompileError("savesol in 2D: vector solution is 2 composant, symmetric solution is 3 composant");
-			if( a0->size() == ddim){
-				// vector solution
-				what=2;
-				nbfloat=a0->size();
-				for(int j=0; j<l[i].nbfloat; j++){
-					//evct[j] = to<double>( (*a0)[j]);
-				}
-			}
-			else if( a0->size() == stsize){
-				// symmetric tensor solution
-				what=3;
-				nbfloat=a0->size();
-				for(int j=0; j<l[i].nbfloat; j++){
-					//evct[j] = to<double>( (*a0)[j]);
-				}
-			}*/
-		}
-    else {
-			CompileError("savesol in 2D: Sorry no way to save this kind of data");
-    }
-      
-  }
-  static ArrayOfaType  typeargs() { return  ArrayOfaType(atype<DxWriter *>(), atype<string *>(), atype<double>(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new Dxwritesol_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-};
-
-
-AnyType Dxwritesol_Op::operator()(Stack stack)  const 
-{ 
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-	DxWriter &dx=*(GetAny<DxWriter *>((*edx)(stack)));
-  string &name=*(GetAny<string *>((*ename)(stack)));
-	double t=GetAny<double>((*et)(stack));
-	Mesh &Th=*(dx.getmeshts(name));
-
-  int nt = Th.nt;
-  int nv = Th.nv;
-
-  int nbsol=nv;
-  long longdefault;
-
-  KN<double> valsol(nbsol);
-  valsol=0.;
-  KN<int> takemesh(nbsol);
-	takemesh=0;
-  MeshPoint *mp3(MeshPointStack(stack));
-  for (int it=0;it<nt;it++){
-    for(int iv=0;iv<3;iv++){
-			int i=Th(it,iv);
-			mp3->setP(&Th,it,iv);					
-			valsol[i] = valsol[i] + GetAny< double >((*evct)(stack));			
-			++takemesh[i];
-		}
-	}
-	for(int i=0; i<nbsol; i++){
-		valsol[i] /= takemesh[i]; 
-	}
-	
-	//Writes valsol on the file file
-	dx.addistant2ts(name, t, valsol);	
-	
-  return longdefault;
-}
-
-// le vrai constructeur est la
-DxWriter* init_DxWriter(DxWriter * const &a, string * const & s)
-{
-  std::cout << "start init_DxWriter" << std::endl;
-  a->init();
-  a->openfiles(*s);
-  std::cout << "end init_DxWriter" << std::endl;
-  return a;
-} 
-
-void* call_addmesh( DxWriter * const & mt, Fem2D::Mesh* const & pTh)
-{ 
-  mt->addmesh(pTh);
-  return NULL;
-}
-
-void* call_addtimeseries( DxWriter * const & mt,string * const & name, Fem2D::Mesh* const & pTh)
-{ 
-  mt->addtimeseries(*name, pTh);
-  return NULL;
-}
-
-
-//   Add the function name to the freefem++ table 
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-$1 */
-static void Load_Init(){
-=======
-class Init { public:
-  Init();
-};
-LOADINIT(Init);
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-  Dcl_Type<DxWriter*>(InitP<DxWriter>,Destroy<DxWriter>); // declare deux nouveau type pour freefem++  un pointeur et 
-  
-  zzzfff->Add("DxWriter",atype<DxWriter*>()); // ajoute le type myType a freefem++ 
-  // constructeur  d'un type myType  dans freefem 
-  TheOperators->Add("<-", new OneOperator2_<DxWriter*, DxWriter* ,string*>(&init_DxWriter));
-  
-  Global.Add("Dxaddmesh","(",new OneOperator2_<void *, DxWriter*, Fem2D::Mesh*>(call_addmesh)); 
-	Global.Add("Dxaddtimeseries","(",new OneOperator3_<void *, DxWriter*, std::string*, Fem2D::Mesh*>(call_addtimeseries)); 
-	
-	Global.Add("Dxaddsol2ts","(",new OneOperatorCode< Dxwritesol_Op> );
-  
-  //atype< myType * >()->Add("(","",new OneOperator3_<myType_uv,myType *,double,double  >(set_myType_uv));
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/FreeFemQA.cpp.orig b/examples++-load/FreeFemQA.cpp.orig
deleted file mode 100644
index 2b51902..0000000
--- a/examples++-load/FreeFemQA.cpp.orig
+++ /dev/null
@@ -1,202 +0,0 @@
-//
-//  FreeFamQA.cpp
-//  
-//
-//  Created by Jean-Marie Mirebeau on 09/10/11.
-//  Copyright 2011 UPMC. All rights reserved.
-//
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-//compilation : ff-c++ FreeFemQA.cpp -I/usr/local/boost_1_47_0
-//ff-c++-cpp-dep: GeometryQA.cpp 
-#include  <iostream>
-#include  <cfloat>
-#include  <cmath>
-using namespace std;
-#include "ff++.hpp" 
-using namespace Fem2D;
-
-//#include <boost/operators.hpp>
-namespace mir {
-#define _FLAGGED_BOUNDARY_
-#include "Geometry.hpp"
-}
- 
-//the main class
-//details of FreeFem meshes (connectivity, etc) in file GenericMesh.hpp
-
-class MeshGenQA :  public E_F0mps 
-{
-public:
-    static basicAC_F0::name_and_type name_param[] ;
-    static const int n_name_param =7;
-    
-    Expression nargs[n_name_param];// store named args
-    
-    typedef Mesh *  Result;
-    Expression expTh;
-    Expression expM11;
-    Expression expM12;
-    Expression expM22;
-    
-    MeshGenQA(const basicAC_F0 & args)
-    {
-        args.SetNameParam(n_name_param,name_param,nargs);// named args
-        expTh= to<pmesh>(args[0]);  // a the expression to get the mesh
-        expM11= to<double>(args[1]);  
-        expM12= to<double>(args[2]);  
-        expM22= to<double>(args[3]);  
-    }
-    double arg(int i,Stack stack,double a) const { return nargs[i] ? GetAny<double>( (*nargs[i])(stack) ): a;}
-    long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-    bool arg(int i,Stack stack,bool a) const{ return nargs[i] ? GetAny<bool>( (*nargs[i])(stack) ): a;}
-    KN<double> * arg(int i,Stack stack,KN<double> * a) const{ return nargs[i] ? GetAny<KN<double> *>( (*nargs[i])(stack) ): a;}
-    
-    
-    ~MeshGenQA(){}
-    
-    static ArrayOfaType  typeargs()
-    { return  ArrayOfaType(
-                           atype<pmesh>(),
-                           atype<double>(),
-                           atype<double>(),
-                           atype<double>()
-                           );;
-    }
-    static  E_F0 * f(const basicAC_F0 & args){ return new MeshGenQA(args);}
-    AnyType operator()(Stack s) const ;// la vraie fonction qui fait faire le boulot     
-};
-
-basicAC_F0::name_and_type MeshGenQA::name_param[MeshGenQA::n_name_param] = {
-    //{ "flag",               &typeid(long)},
-    { "noIsoRef",               &typeid(bool)},
-    { "finalRefine",            &typeid(bool)},
-    { "exportIntermediateData", &typeid(bool)},
-    { "Lip",                    &typeid(double)},
-    { "exportToMathematica",    &typeid(bool)},
-    { "exportMetricToMathematica",&typeid(bool)},
-    { "noRef",                  &typeid(bool)}
-};
-
-AnyType MeshGenQA:: operator()(Stack stack) const 
-{   
-    //const long  flag = arg(0,stack,0L);
-    const bool noIsoRef = arg(0,stack,false);
-    const bool finalRefine = arg(1,stack,false);
-    const bool exportIntermediateData = arg(2,stack,false);
-
-    
-    unsigned int flag = 0;
-    if(noIsoRef)                flag |= mir::Triangulation::hRQA_noIsoRef;
-    if(finalRefine)             flag |= mir::Triangulation::hRQA_finalRefine;
-    if(exportIntermediateData)  flag |= mir::Triangulation::hRQA_exportIntermediateData;
-    
-    const double Lip = arg(3,stack,5.);
-    const bool exportToMathematica = arg(4, stack, false);
-    const bool exportMetricToMathematica = arg(5, stack, false);
-    const bool noRef = arg(6, stack, false);
-    
-    Mesh * pTh = GetAny<pmesh>((*expTh)(stack));
-    ffassert(pTh);
-    const Mesh & Th= *pTh;
-        
-    class FFMetric2 : public mir::Metric2 {
-        const MeshGenQA &MGQA_;
-        Stack stack_;
-    public:
-        FFMetric2(const MeshGenQA &MGQA, Stack stack, double Lip):MGQA_(MGQA),stack_(stack){lip=Lip;}
-        const mir::sym2 operator()(const mir::R2 &P) const {
-            MeshPointStack(stack_)->set(P.x,P.y); //needs to be done three times ?
-            MeshPointStack(stack_)->set(P.x,P.y);
-            MeshPointStack(stack_)->set(P.x,P.y);
-            return mir::sym2(GetAny<double>((*MGQA_.expM11)(stack_)), 
-                             GetAny<double>((*MGQA_.expM12)(stack_)),
-                             GetAny<double>((*MGQA_.expM22)(stack_))
-                             );
-        }
-    };
-    
-    FFMetric2 ffMetric(*this,stack,Lip);
-    const mir::Metric2 &metric = ffMetric;
-        
-    mir::Triangulation triQA(Th,metric);
-    if(!triQA.check()) {cout << "MeshGenQA : Error while importing mesh !\n"; return false;}
-       
-    if(exportToMathematica) triQA.export_to_Mathematica("ThFF.txt");
-    if(exportMetricToMathematica) triQA.export_to_Mathematica_Metric("ThFF_Metric.txt");
-    
-    if(!noRef) triQA.hRefineQA(1, flag);
-    
-    triQA.export_to_FreeFem("triQA.msh");
-    
-    if(exportToMathematica) triQA.export_to_Mathematica("TriQA.txt");
-    if(exportMetricToMathematica) triQA.export_to_Mathematica_Metric("TriQA_Metric.txt");
-    
-    /*
-    if(exportToMathematica) {
-        vector<double> gains;
-        gains.resize(triQA.ne_oriented());
-        for(int i=0; i<triQA.ne_oriented(); ++i)
-            gains[i]=triQA.getEdges()[i].flipGain();
-        ofstream data_out; data_out.open("gains.txt"); 
-        mir::print_array(data_out << mir::Mathematica, gains.begin(), gains.end());
-        data_out.close();
-    }*/
-
-  //  generation de la class Mesh a partir des 3 tableaux : v,t,b
-  {
-    Mesh * m = triQA.export_to_Mesh(); // new Mesh(nbv+nbt,nbt*3,neb,v,t,b);
-    R2 Pn,Px;
-    m->BoundingBox(Pn,Px);
-    m->quadtree=new Fem2D::FQuadTree(m,Pn,Px,m->nv);
-    m->decrement();
-    return m;
-  }
-
-};
-
-<<<<<<< HEAD
-/*  class Init { public:
-    Init();
-};
-
-$1 */
-
-// Init init;
-static void Load_Init()
-=======
-class Init { public:
-    Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-// Init init;
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-    cout << "\n  -- lood: init MeshGenQA\n";
-    Global.Add("MeshGenQA","(", new OneOperatorCode<MeshGenQA >( ));
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/Makefile.am.orig b/examples++-load/Makefile.am.orig
deleted file mode 100644
index f5ddd92..0000000
--- a/examples++-load/Makefile.am.orig
+++ /dev/null
@@ -1,284 +0,0 @@
-all-local: @LOAD_COMPILE@
-TESTS=APk-AdaptEpsDeltaPk.edp APk-ExplicitPkTest.edp APk-FreeFemQA.edp APk-MetricPk.edp IPOTest.edp IpOptMinSurf.edp IpoptLap.edp IpoptMinSurfVol.edp IpoptVI.edp IpoptVI2.edp LapDG3.edp LapDG4.edp LapLNewSolver.edp LapMUMPS_seq.edp LapNewSolver.edp LapUmfpack64.edp LaplaceP3.edp LaplaceP4.edp LaplaceRT1.edp Leman-mesh.edp MetricKuate.edp NSP2BRP0.edp PARDISO.edp SuperLU.edp VarIneq2.edp  bilapMorley.edp bmo.edp buildlayermesh.edp checkglumeshcube.edp cmaes-VarIneq.edp cmaes-oven.edp conv [...]
-# all test can fail must but clean ????  FH... 
-XFAIL_TESTS=$(TESTS)
-
-LOG_DRIVER=$(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT=TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw
-
-EXTRA_DIST= $(TESTS) all.edp makeref.edp regtests.edp \
-<<<<<<< HEAD
-ff-get-dep.in ff-get-dep.awk ff-pkg-download.in load.link.in  include.tar.gz \
-=======
-ff-get-dep.in ff-pkg-download.in load.link.in  include.tar.gz \
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
- BernadiRaugel.cpp Morley.cpp dfft.cpp  \
- funcTemplate.cpp mat_dervieux.cpp mat_psi.cpp myfunction.cpp \
- mat_dervieux.cpp  funcTemplate.cpp \
- regtests.m4     addNewType.cpp \
-  qf11to25.cpp  Element_P3.cpp  Element_P3.hpp  Element_P4.cpp  Element_P4.hpp \
-  Element_P3dc.cpp  Element_P3dc.hpp Element_P4dc.cpp  Element_P4dc.hpp \
-  Element_PkEdge.cpp \
-  SuperLu.cpp  \
-  NewSolver.cpp \
-  splitmesh3.cpp    splitmesh6.cpp   \
-  README_SuperLU \
-  tetgen.cpp\
-  msh3.cpp msh3.hpp\
-  ffrandom.cpp   \
-  medit.cpp  \
-  bmo.cpp lgbmo.cpp bmo.hpp \
- fflapack.cpp	lapack.cpp	clapack.h  \
- fig.pgm lg.pgm ppm2rnm.cpp ppmimg.h   \
- DxWriter.cpp  metis.cpp pcm.cpp pcm.hpp pcm2rnm.cpp \
- UMFPACK64.cpp iovtk.cpp gmsh.cpp MetricKuate.cpp  \
- ffnewuoa.cpp		newuoa.f Element_P1dc1.cpp ilut.cpp  \
- freeyams.cpp mmg3d-v4.0.cpp  mshmet.cpp \
- BinaryIO.cpp	gsl.cpp   gsl.awk ff_gsl_awk.hpp gsl.idp isolineP1.cpp isoline.cpp lg.pgm  \
- thresholdings.cpp	 \
- VTK_writer_3d.cpp VTK_writer.cpp splitedges.cpp  \
- Element_Mixte.cpp    \
- myfunction2.cpp   \
- cmaes.cpp \
- cmaes.h cmaes_interface.h ff-cmaes.cpp \
- ff-NLopt.cpp \
- MetricPk.cpp GeometryQA.cpp  FreeFemQA.cpp BasicMath.h  TensorK.hpp  Geometry.hpp  \
- RZ.h SortedList.h ExampleMetrics.h  \
- cube.msh  \
- MUMPS_seq.cpp \
- MUMPS.cpp \
- ff-Ipopt.cpp \
- scotch.cpp    shell.cpp \
- pipe.cpp pstream.h  \
- symmetrizeCSR.cpp \
- dmatrix.hpp PARDISO.cpp             \
-<<<<<<< HEAD
- ch.pts   BEC.cpp bfstream.cpp iohdf5.cpp \
- iohd5-beam-2d.edp	iohd5-beam-3d.edp
-=======
- ch.pts   BEC.cpp bfstream.cpp
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-LIST_COMPILE=myfunction.$(DYLIB_SUFFIX)  BernadiRaugel.$(DYLIB_SUFFIX) \
-         Morley.$(DYLIB_SUFFIX) funcTemplate.$(DYLIB_SUFFIX) addNewType.$(DYLIB_SUFFIX) \
-         qf11to25.$(DYLIB_SUFFIX)  Element_P3.$(DYLIB_SUFFIX)    Element_P4.$(DYLIB_SUFFIX)  \
-	 Element_P3dc.$(DYLIB_SUFFIX)    Element_P4dc.$(DYLIB_SUFFIX) 	\
-	 Element_PkEdge.$(DYLIB_SUFFIX)  msh3.$(DYLIB_SUFFIX) \
-	splitmesh3.$(DYLIB_SUFFIX)  splitmesh6.$(DYLIB_SUFFIX) \
-	ffrandom.$(DYLIB_SUFFIX)  \
-	medit.$(DYLIB_SUFFIX)  \
-	mat_dervieux.$(DYLIB_SUFFIX) lgbmo.$(DYLIB_SUFFIX) mat_psi.$(DYLIB_SUFFIX)\
-	ppm2rnm.$(DYLIB_SUFFIX) DxWriter.$(DYLIB_SUFFIX) \
-	pcm2rnm.$(DYLIB_SUFFIX) $(DYLIB_OTHER_COMPILE)  \
-	iovtk.$(DYLIB_SUFFIX) 	 gmsh.$(DYLIB_SUFFIX) MetricKuate.$(DYLIB_SUFFIX) \
-	Element_P1dc1.$(DYLIB_SUFFIX) BinaryIO.$(DYLIB_SUFFIX) \
-        isolineP1.$(DYLIB_SUFFIX) isoline.$(DYLIB_SUFFIX)  thresholdings.$(DYLIB_SUFFIX) \
-        VTK_writer_3d.$(DYLIB_SUFFIX)  VTK_writer.$(DYLIB_SUFFIX) \
-	splitedges.$(DYLIB_SUFFIX) Element_Mixte.$(DYLIB_SUFFIX) \
-	myfunction2.$(DYLIB_SUFFIX) \
-	MetricPk.$(DYLIB_SUFFIX) FreeFemQA.$(DYLIB_SUFFIX) shell.$(DYLIB_SUFFIX) \
-	@TOOL_DYLIB_pipe@ symmetrizeCSR.$(DYLIB_SUFFIX)  BEC.$(DYLIB_SUFFIX) \
-<<<<<<< HEAD
-	bfstream.$(DYLIB_SUFFIX) @TOOL_DYLIB_iohdf5@
-=======
-	bfstream.$(DYLIB_SUFFIX)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-# FFCS - some libraries are skipped because the corresponding tool is deactivated.
-
-LIST_COMPILE_PKG=tetgen.$(DYLIB_SUFFIX) @TOOL_DYLIB_superlu@ dfft.$(DYLIB_SUFFIX) @TOOL_DYLIB_metis@		\
-	@TOOL_DYLIB_umfpack@ NewSolver.$(DYLIB_SUFFIX) @TOOL_DYLIB_lapack@ @TOOL_DYLIB_fflapack@		\
-	ffnewuoa.$(DYLIB_SUFFIX) ilut.$(DYLIB_SUFFIX) @TOOL_DYLIB_yams@ @TOOL_DYLIB_mmg3d@ @TOOL_DYLIB_mshmet@	\
-	@TOOL_DYLIB_gsl@ @TOOL_DYLIB_mumps_seq@ @TOOL_DYLIB_ipopt@ @TOOL_DYLIB_nlopt@ ff-cmaes.$(DYLIB_SUFFIX)	\
-	@TOOL_DYLIB_scotch@ @TOOL_DYLIB_pardiso@
-
-bin_PROGRAMS=
-
-# FFCS parallel make: some targets need to be built first, sequentially
-
-load_compile: ff-c++ WHERE_LIBRARY-download include.done freefem++.pref
-#
-# max_load
-<<<<<<< HEAD
-	- at rm "Missing-plugins-$(DYLIB_SUFFIX).log" 2>/dev/null || true
-=======
-	-rm "Missing-plugins-$(DYLIB_SUFFIX).log" 2>/dev/null
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	$(MAKE) $(AM_MAKEFLAGS) $(LIST_COMPILE) $(LIST_COMPILE_PKG)
-	@if test -f Missing-plugins-$(DYLIB_SUFFIX).log ; then cat Missing-plugins-$(DYLIB_SUFFIX).log; fi; exit 0 
-	@echo Warning missing plugin: `for i in $(LIST_COMPILE) $(LIST_COMPILE_PKG); do if test ! -s $i ; then j=1; echo "$i," ;fi; done`
-	echo " finish build list $(DYLIB_SUFFIX)"
-
-.cpp.$(DYLIB_SUFFIX): ff-c++
-	 ./ff-c++ -auto $< 
-
-# FFCS - 26/10/11 - Unpacking include.tar.gz is very often buggy under Cygwin (softlinks are randomly replaced with
-# empty files without any access right). So just replace the whole thing with a plain copy.
-
-<<<<<<< HEAD
-=======
-if ENABLE_FFCS
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-allheaders=../src/fflib/AddNewFE.h ../src/fflib/AFunction_ext.hpp ../src/fflib/AFunction.hpp ../src/fflib/AnyType.hpp	\
-	../src/fflib/array_init.hpp ../src/fflib/array_resize.hpp ../src/fflib/array_tlp.hpp				\
-	../src/femlib/assertion.hpp ../src/femlib/BamgFreeFem.hpp ../src/Algo/BFGS.hpp ../src/Algo/BrentLS.hpp		\
-	../src/Algo/CG.hpp ../src/femlib/CGNL.hpp ../src/fflib/CodeAlloc.hpp ../config.h ../config-wrapper.h		\
-	../src/Algo/CubicLS.hpp ../src/Algo/defs.hpp ../src/femlib/DOperator.hpp ../src/libMesh/eigenv.h		\
-	../src/fflib/endian.hpp ../src/fflib/environment.hpp ../src/fflib/error.hpp ../src/femlib/fem3.hpp		\
-	../src/femlib/fem.hpp ../src/femlib/FESpace.hpp ../src/femlib/FESpacen.hpp ../src/fflib/ff++.hpp		\
-	../src/fflib/ffstack.hpp ../src/femlib/FQuadTree.hpp ../src/femlib/GenericMesh.hpp				\
-	../src/Graphics/getprog-unix.hpp ../src/Graphics/glrgraph.hpp ../src/femlib/gmres.hpp				\
-	../src/femlib/GQuadTree.hpp ../src/femlib/HashTable.hpp ../src/femlib/HeapSort.hpp ../src/fflib/InitFunct.hpp	\
-	../src/fflib/ffapi.hpp ../src/femlib/Label.hpp ../src/fflib/lex.hpp ../src/fflib/lgfem.hpp			\
-	../src/fflib/lgmesh3.hpp ../src/fflib/lgsolver.hpp ../src/lglib/lg.tab.hpp ../src/femlib/libmesh5.h		\
-	../src/Algo/LineSearch.hpp ../src/femlib/MatriceCreuse.hpp ../src/femlib/MatriceCreuse_tpl.hpp			\
-	../src/femlib/Mesh1dn.hpp ../src/femlib/Mesh2dn.hpp ../src/bamglib/Mesh2.h ../src/femlib/Mesh3dn.hpp		\
-	../src/bamglib/Meshio.h ../src/femlib/MeshPoint.hpp ../src/bamglib/meshtype.h ../src/bamglib/Metric.h		\
-	../src/Graphics/mode_open.hpp ../src/Algo/NewtonRaphson.hpp ../src/Algo/NRJ.hpp ../src/fflib/Operator.hpp	\
-	../src/Algo/Optima.hpp ../src/Algo/Param.hpp ../src/femlib/PkLagrange.hpp ../src/fflib/PlotStream.hpp		\
-	../src/fflib/problem.hpp ../src/femlib/QuadratureFormular.hpp ../src/bamglib/QuadTree.h ../src/femlib/R1.hpp	\
-	../src/bamglib/R2.h ../src/femlib/R2.hpp ../src/femlib/R3.hpp ../src/femlib/RefCounter.hpp			\
-	../src/Graphics/rgraph.hpp ../src/femlib/RNM.hpp ../src/femlib/RNM_opc.hpp ../src/femlib/RNM_op.hpp		\
-	../src/femlib/RNM_tpl.hpp ../src/Algo/RosenBrock.hpp ../src/fflib/Serialize.hpp ../src/bamglib/SetOfE4.h	\
-	../src/fflib/showverb.hpp ../src/femlib/splitsimplex.hpp ../src/fflib/String.hpp				\
-	../src/fflib/strversionnumber.hpp ../src/fflib/throwassert.hpp ../src/femlib/ufunction.hpp			\
-<<<<<<< HEAD
-	../src/fflib/versionnumber.hpp ../src/bamglib/write_hdf5.hpp	../src/bamglib/write_xdmf.hpp                   \
-	../src/fflib/P1IsoValue.hpp
-
-if ENABLE_FFCS
-
-include.done: $(allheaders)
-	-rm -rf include
-=======
-	../src/fflib/versionnumber.hpp
-
-include.done: $(allheaders)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	mkdir -p include
-	cp $^ include
-	touch $@
-
-else
-<<<<<<< HEAD
-include.done: $(allheaders)
-	-rm -rf include
-	mkdir -p  include
-	for i in $(allheaders); do  ln -s ../$$i include/. ; done 
-=======
-include.done: include.tar.gz
-	rm -rf include 
-	gunzip -c include.tar.gz| tar xvf -
-	-rm -f include/._*
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	touch $@
-endif
-
-clean-local::
-	-rm -r include
-	-rm include.done
-
-Ref: makeref.edp
-	../src/nw/FreeFem++-nw makeref.edp
-
-makeref.edp: regtests.m4 ../regtests.m4
-	m4 regtests.m4 > makeref.edp
-
-all-local: all.edp regtests.edp load_compile
-
-# FFCS - 27/2/13 - remove dependency on Makefile to avoid recompiling everything everytime something is changed in the
-# configuration step
-
-all.edp:
-	@(echo "NoGraphicWindow=true;NoUseOfWait=true;int verbosityy=verbosity;"; \
-	for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$$'` ; do  \
-		echo ' cout << "--------- file : '$$i' --------------------------------------------------------" << endl;' ;\
-		echo "verbosity=verbosityy;" ; \
-		echo \{ include \"$$i\"\;\}\; ;\
-		echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\
-	done) > $@
-
-# To check the scripts against their reference values
-regtests.edp: regtests.m4 ../regtests.m4
-	m4 -DASSERT regtests.m4 > regtests.edp
-
-# FFCS - 27/2/13 - remove dependency on Makefile to avoid recompiling everything everytime something is changed in the
-# configuration step
-
-$(LIST_COMPILE):ff-c++ include.done
-
-clean-local::
-	-rm *.o *.$(DYLIB_SUFFIX) load.link WHERE_LIBRARY-download ff-get-dep ff-c++ ff-pkg-download \
-	  $(LIST_COMPILE) $(LIST_COMPILE_PKG)  regtests.edp makeref.edp
-	-rm -rf include include.done
-ff-c++:load.link.in load.link WHERE_LIBRARY-download ff-get-dep ../config.status
-	../config.status  --file=ff-c++:load.link.in
-	chmod a+x ff-c++
-load.link:load.link.in ../config.status
-	../config.status  --file=load.link:load.link.in
-	chmod a+x load.link
-ff-pkg-download:ff-pkg-download.in ../config.status
-	../config.status  --file=$@:$@.in
-	chmod a+x $@
-	cp $@ ../download/bin
-ff-get-dep:ff-get-dep.in ../config.status
-	../config.status  --file=$@:$@.in
-	chmod a+x $@
-	-if [ -d ../download/bin ] ;then cp $@ ../download/bin; fi
-WHERE_LIBRARY-download:ff-pkg-download FORCE  WHERE_LIBRARY-config WHERE_LIBRARY
-	@./ff-pkg-download >$@-new
-	@diff $@-new $@  || (cp $@-new $@ ;touch WHERE_LIBRARY)
-WHERE_LIBRARY:
-	touch $@
-FORCE: ;
-freefem++.pref:
-	echo loadpath = \"./\" >freefem++.pref
-install-exec-local:: load_compile WHERE_LIBRARY
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib
-	test -n "$(MPIPROG)" && $(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib/mpi
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/include
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/etc
-	$(INSTALL_DATA)  clapack.h ppmimg.h  bmo.hpp msh3.hpp pcm.hpp  include/*   $(DESTDIR)$(ff_prefix_dir)/include
-	$(INSTALL)  -m 555 $(LIST_COMPILE) $(DESTDIR)$(ff_prefix_dir)/lib
-<<<<<<< HEAD
-	$(INSTALL)  -m 555 ff-get-dep.awk  WHERE_LIBRARY-config WHERE_LIBRARY  $(DESTDIR)$(ff_prefix_dir)/lib
-=======
-	$(INSTALL)  -m 555 WHERE_LIBRARY-config WHERE_LIBRARY  $(DESTDIR)$(ff_prefix_dir)/lib
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	for i in  WHERE_LIBRARY-config WHERE_LIBRARY WHERE_LIBRARY-download; do \
-	  sed <$$i >$(DESTDIR)$(ff_prefix_dir)/lib/$$i 's#$(abs_top_builddir)/download#$(ff_prefix_dir)#' ;\
-	 done
-	echo loadpath += \"./\"  >$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-	echo loadpath += \"$(ff_prefix_dir)/lib\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-	echo includepath += \"$(ff_prefix_dir)/idp\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-	$(INSTALL_SCRIPT) ff-c++  $(DESTDIR)${bindir}
-	$(INSTALL_SCRIPT) ff-pkg-download  $(DESTDIR)${bindir}
-<<<<<<< HEAD
-	$(INSTALL_SCRIPT) ff-get-dep   $(DESTDIR)${bindir}
-=======
-	$(INSTALL_SCRIPT) ff-get-dep  $(DESTDIR)${bindir}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-##	$(DESTDIR)${bindir}/ff-pkg-download $(DESTDIR) >$(DESTDIR)$(ff_prefix_dir)/lib/WHERE_LIBRARY-download
-	-for i in $(LIST_COMPILE_PKG); do \
-	 if [ -f $$i ] ; then 	$(INSTALL)  -m 555 $$i $(DESTDIR)$(ff_prefix_dir)/lib; fi; done
-	- if [ -n "$(MPIPROG)" ] ; then \
-		for i in $(LIST_COMPILE_PKG) $(LIST_COMPILE); do \
-		 if [ -f ../examples++-mpi/$$i ] ; then \
-	    	    $(INSTALL)  -m 555 ../examples++-mpi/$$i $(DESTDIR)$(ff_prefix_dir)/lib/mpi; \
-	        else echo missing install mpi version ???  ../examples++-mpi/$$i ;\
-	         fi;  \
-	        done ; \
-	fi
-
-clean-local::
-	-rm *.fg *.eps *~ *.ps  *.mesh *.mesh.gmsh ListOfAllocPtr-8.bin ffglut*.ppm Th.o.meshb	Th3.d.meshb	dep.sol.meshbgh \
-ipopt.out	mmg.out xxxx ThFF.txt		TriQA.txt		cavidadTT.txt		mass.txt		xy.txt \
-ThFF_Metric.txt		TriQA_Metric.txt	datanc.txt		u100m8.txt \
-TTh.sol		Th.o.sol	Th3.sol		dep.o.sol	dep.sol		gradient.sol	hessien.sol pippo.data pippo.dx testsavemedit.solb med.gp bidule.vtk	disque.vtk g-iso 
-
-
-# FFCS: add tags for files that are not specified to automake by a SOURCE directive (this tags file is automatically
-# taken into account by automake when it sees it).
-
-TAGS:
-	etags *.?pp
diff --git a/examples++-load/Makefile.in b/examples++-load/Makefile.in
deleted file mode 100644
index 313a9b5..0000000
--- a/examples++-load/Makefile.in
+++ /dev/null
@@ -1,1829 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS =
-subdir = examples++-load
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/test-driver README
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-TESTS = APk-AdaptEpsDeltaPk.edp APk-ExplicitPkTest.edp \
-	APk-FreeFemQA.edp APk-MetricPk.edp IPOTest.edp \
-	IpOptMinSurf.edp IpoptLap.edp IpoptMinSurfVol.edp IpoptVI.edp \
-	IpoptVI2.edp LapDG3.edp LapDG4.edp LapLNewSolver.edp \
-	LapMUMPS_seq.edp LapNewSolver.edp LapUmfpack64.edp \
-	LaplaceP3.edp LaplaceP4.edp LaplaceRT1.edp Leman-mesh.edp \
-	MetricKuate.edp NSP2BRP0.edp PARDISO.edp SuperLU.edp \
-	VarIneq2.edp bilapMorley.edp bmo.edp buildlayermesh.edp \
-	checkglumeshcube.edp cmaes-VarIneq.edp cmaes-oven.edp \
-	convect_dervieux.edp convectchacon-3d.edp convectchacon.edp \
-	convexehull3d.edp dfft.edp ffnewuoa.edp ffrandom.edp \
-	funcTemplate.edp glumesh3D.edp gsl.edp ilut.edp isoline.edp \
-	lame-TD-NSS.edp lap-solvers.edp lapack.edp layer.edp load.edp \
-	meditddm.edp metis.edp mshmet.edp myType.edp myfunction2.edp \
-	pipe.edp plot-fb-P3.edp plot-fb-P3dc.edp plot-fb-P4.edp \
-	plot-fb-P4dc.edp plotfb.edp ppm2rnm.edp provadxw.edp ref.edp \
-	refinesphere.edp schwarz-nm.edp scotch.edp shell.edp \
-	splitedges.edp splitmesh3.edp splitmesh6.edp \
-	test-ElementMixte.edp testFE-P3.edp testFE-P3dc.edp \
-	testFE-P4.edp testFE-P4dc.edp testFE-PkEdge.edp testFE.edp \
-	testFEMorley.edp tetgencube.edp tetgenholeregion_rugby.edp \
-	thresholdings.edp ttestio.edp bfstream.edp \
-	bilapP3-hct-like.edp
-# all test can fail must but clean ????  FH... 
-XFAIL_TESTS = $(TESTS)
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT = TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw
-EXTRA_DIST = $(TESTS) all.edp makeref.edp regtests.edp \
-ff-get-dep.in ff-get-dep.awk ff-pkg-download.in load.link.in  include.tar.gz \
- BernadiRaugel.cpp Morley.cpp dfft.cpp  \
- funcTemplate.cpp mat_dervieux.cpp mat_psi.cpp myfunction.cpp \
- mat_dervieux.cpp  funcTemplate.cpp \
- regtests.m4     addNewType.cpp \
-  qf11to25.cpp  Element_P3.cpp  Element_P3.hpp  Element_P4.cpp  Element_P4.hpp \
-  Element_P3dc.cpp  Element_P3dc.hpp Element_P4dc.cpp  Element_P4dc.hpp \
-  Element_PkEdge.cpp \
-  SuperLu.cpp  \
-  NewSolver.cpp \
-  splitmesh3.cpp    splitmesh6.cpp   \
-  README_SuperLU \
-  tetgen.cpp\
-  msh3.cpp msh3.hpp\
-  ffrandom.cpp   \
-  medit.cpp  \
-  bmo.cpp lgbmo.cpp bmo.hpp \
- fflapack.cpp	lapack.cpp	clapack.h  \
- fig.pgm lg.pgm ppm2rnm.cpp ppmimg.h   \
- DxWriter.cpp  metis.cpp pcm.cpp pcm.hpp pcm2rnm.cpp \
- UMFPACK64.cpp iovtk.cpp gmsh.cpp MetricKuate.cpp  \
- ffnewuoa.cpp		newuoa.f Element_P1dc1.cpp ilut.cpp  \
- freeyams.cpp mmg3d-v4.0.cpp  mshmet.cpp \
- BinaryIO.cpp	gsl.cpp   gsl.awk ff_gsl_awk.hpp gsl.idp isolineP1.cpp isoline.cpp lg.pgm  \
- thresholdings.cpp	 \
- VTK_writer_3d.cpp VTK_writer.cpp splitedges.cpp  \
- Element_Mixte.cpp    \
- myfunction2.cpp   \
- cmaes.cpp \
- cmaes.h cmaes_interface.h ff-cmaes.cpp \
- ff-NLopt.cpp \
- MetricPk.cpp GeometryQA.cpp  FreeFemQA.cpp BasicMath.h  TensorK.hpp  Geometry.hpp  \
- RZ.h SortedList.h ExampleMetrics.h  \
- cube.msh  \
- MUMPS_seq.cpp \
- MUMPS.cpp \
- ff-Ipopt.cpp \
- scotch.cpp    shell.cpp \
- pipe.cpp pstream.h  \
- symmetrizeCSR.cpp \
- dmatrix.hpp PARDISO.cpp             \
- ch.pts   BEC.cpp bfstream.cpp iohdf5.cpp \
- iohd5-beam-2d.edp	iohd5-beam-3d.edp ff-AiryBiry.cpp
-
-LIST_COMPILE = myfunction.$(DYLIB_SUFFIX)  BernadiRaugel.$(DYLIB_SUFFIX) \
-         Morley.$(DYLIB_SUFFIX) funcTemplate.$(DYLIB_SUFFIX) addNewType.$(DYLIB_SUFFIX) \
-         qf11to25.$(DYLIB_SUFFIX)  Element_P3.$(DYLIB_SUFFIX)    Element_P4.$(DYLIB_SUFFIX)  \
-	 Element_P3dc.$(DYLIB_SUFFIX)    Element_P4dc.$(DYLIB_SUFFIX) 	\
-	 Element_PkEdge.$(DYLIB_SUFFIX)  msh3.$(DYLIB_SUFFIX) \
-	splitmesh3.$(DYLIB_SUFFIX)  splitmesh6.$(DYLIB_SUFFIX) \
-	ffrandom.$(DYLIB_SUFFIX)  \
-	medit.$(DYLIB_SUFFIX)  \
-	mat_dervieux.$(DYLIB_SUFFIX) lgbmo.$(DYLIB_SUFFIX) mat_psi.$(DYLIB_SUFFIX)\
-	ppm2rnm.$(DYLIB_SUFFIX) DxWriter.$(DYLIB_SUFFIX) \
-	pcm2rnm.$(DYLIB_SUFFIX) $(DYLIB_OTHER_COMPILE)  \
-	iovtk.$(DYLIB_SUFFIX) 	 gmsh.$(DYLIB_SUFFIX) MetricKuate.$(DYLIB_SUFFIX) \
-	Element_P1dc1.$(DYLIB_SUFFIX) BinaryIO.$(DYLIB_SUFFIX) \
-        isolineP1.$(DYLIB_SUFFIX) isoline.$(DYLIB_SUFFIX)  thresholdings.$(DYLIB_SUFFIX) \
-        VTK_writer_3d.$(DYLIB_SUFFIX)  VTK_writer.$(DYLIB_SUFFIX) \
-	splitedges.$(DYLIB_SUFFIX) Element_Mixte.$(DYLIB_SUFFIX) \
-	myfunction2.$(DYLIB_SUFFIX) \
-	MetricPk.$(DYLIB_SUFFIX) FreeFemQA.$(DYLIB_SUFFIX) shell.$(DYLIB_SUFFIX) \
-	@TOOL_DYLIB_pipe@ symmetrizeCSR.$(DYLIB_SUFFIX)  BEC.$(DYLIB_SUFFIX) \
-	bfstream.$(DYLIB_SUFFIX) @TOOL_DYLIB_iohdf5@ ff-AiryBiry.$(DYLIB_SUFFIX)
-
-
-# FFCS - some libraries are skipped because the corresponding tool is deactivated.
-LIST_COMPILE_PKG = tetgen.$(DYLIB_SUFFIX) @TOOL_DYLIB_superlu@ dfft.$(DYLIB_SUFFIX) @TOOL_DYLIB_metis@		\
-	@TOOL_DYLIB_umfpack@ NewSolver.$(DYLIB_SUFFIX) @TOOL_DYLIB_lapack@ @TOOL_DYLIB_fflapack@		\
-	ffnewuoa.$(DYLIB_SUFFIX) ilut.$(DYLIB_SUFFIX) @TOOL_DYLIB_yams@ @TOOL_DYLIB_mmg3d@ @TOOL_DYLIB_mshmet@	\
-	@TOOL_DYLIB_gsl@ @TOOL_DYLIB_mumps_seq@ @TOOL_DYLIB_ipopt@ @TOOL_DYLIB_nlopt@ ff-cmaes.$(DYLIB_SUFFIX)	\
-	@TOOL_DYLIB_scotch@ @TOOL_DYLIB_pardiso@
-
-
-# FFCS - 26/10/11 - Unpacking include.tar.gz is very often buggy under Cygwin (softlinks are randomly replaced with
-# empty files without any access right). So just replace the whole thing with a plain copy.
-allheaders = ../src/fflib/AddNewFE.h ../src/fflib/AFunction_ext.hpp ../src/fflib/AFunction.hpp ../src/fflib/AnyType.hpp	\
-	../src/fflib/array_init.hpp ../src/fflib/array_resize.hpp ../src/fflib/array_tlp.hpp				\
-	../src/femlib/assertion.hpp ../src/femlib/BamgFreeFem.hpp ../src/Algo/BFGS.hpp ../src/Algo/BrentLS.hpp		\
-	../src/Algo/CG.hpp ../src/femlib/CGNL.hpp ../src/fflib/CodeAlloc.hpp ../config.h ../config-wrapper.h		\
-	../src/Algo/CubicLS.hpp ../src/Algo/defs.hpp ../src/femlib/DOperator.hpp ../src/libMesh/eigenv.h		\
-	../src/fflib/endian.hpp ../src/fflib/environment.hpp ../src/fflib/error.hpp ../src/femlib/fem3.hpp		\
-	../src/femlib/fem.hpp ../src/femlib/FESpace.hpp ../src/femlib/FESpacen.hpp ../src/fflib/ff++.hpp		\
-	../src/fflib/ffstack.hpp ../src/femlib/FQuadTree.hpp ../src/femlib/GenericMesh.hpp				\
-	../src/Graphics/getprog-unix.hpp ../src/Graphics/glrgraph.hpp ../src/femlib/gmres.hpp				\
-	../src/femlib/GQuadTree.hpp ../src/femlib/HashTable.hpp ../src/femlib/HeapSort.hpp ../src/fflib/InitFunct.hpp	\
-	../src/fflib/ffapi.hpp ../src/femlib/Label.hpp ../src/fflib/lex.hpp ../src/fflib/lgfem.hpp			\
-	../src/fflib/lgmesh3.hpp ../src/fflib/lgsolver.hpp ../src/lglib/lg.tab.hpp ../src/femlib/libmesh5.h		\
-	../src/Algo/LineSearch.hpp ../src/femlib/MatriceCreuse.hpp ../src/femlib/MatriceCreuse_tpl.hpp			\
-	../src/femlib/Mesh1dn.hpp ../src/femlib/Mesh2dn.hpp ../src/bamglib/Mesh2.h ../src/femlib/Mesh3dn.hpp		\
-	../src/bamglib/Meshio.h ../src/femlib/MeshPoint.hpp ../src/bamglib/meshtype.h ../src/bamglib/Metric.h		\
-	../src/Graphics/mode_open.hpp ../src/Algo/NewtonRaphson.hpp ../src/Algo/NRJ.hpp ../src/fflib/Operator.hpp	\
-	../src/Algo/Optima.hpp ../src/Algo/Param.hpp ../src/femlib/PkLagrange.hpp ../src/fflib/PlotStream.hpp		\
-	../src/fflib/problem.hpp ../src/femlib/QuadratureFormular.hpp ../src/bamglib/QuadTree.h ../src/femlib/R1.hpp	\
-	../src/bamglib/R2.h ../src/femlib/R2.hpp ../src/femlib/R3.hpp ../src/femlib/RefCounter.hpp			\
-	../src/Graphics/rgraph.hpp ../src/femlib/RNM.hpp ../src/femlib/RNM_opc.hpp ../src/femlib/RNM_op.hpp		\
-	../src/femlib/RNM_tpl.hpp ../src/Algo/RosenBrock.hpp ../src/fflib/Serialize.hpp ../src/bamglib/SetOfE4.h	\
-	../src/fflib/showverb.hpp ../src/femlib/splitsimplex.hpp ../src/fflib/String.hpp				\
-	../src/fflib/strversionnumber.hpp ../src/fflib/throwassert.hpp ../src/femlib/ufunction.hpp			\
-	../src/fflib/versionnumber.hpp ../src/bamglib/write_hdf5.hpp	../src/bamglib/write_xdmf.hpp                   \
-	../src/fflib/P1IsoValue.hpp
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .$(DYLIB_SUFFIX) .cpp .log .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++-load/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++-load/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-	fi; \
-	for p in $$list; do echo "$$p $$p"; done | \
-	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p \
-	  ; then echo "$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n;h' \
-	    -e 's|.*|.|' \
-	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
-	sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
-	    else { print "f", $$3 "/" $$4, $$1; } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	    test -z "$$files" || { \
-	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	    } \
-	; done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' \
-	`; \
-	test -n "$$list" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-APk-AdaptEpsDeltaPk.edp.log: APk-AdaptEpsDeltaPk.edp
-	@p='APk-AdaptEpsDeltaPk.edp'; \
-	b='APk-AdaptEpsDeltaPk.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-APk-ExplicitPkTest.edp.log: APk-ExplicitPkTest.edp
-	@p='APk-ExplicitPkTest.edp'; \
-	b='APk-ExplicitPkTest.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-APk-FreeFemQA.edp.log: APk-FreeFemQA.edp
-	@p='APk-FreeFemQA.edp'; \
-	b='APk-FreeFemQA.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-APk-MetricPk.edp.log: APk-MetricPk.edp
-	@p='APk-MetricPk.edp'; \
-	b='APk-MetricPk.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-IPOTest.edp.log: IPOTest.edp
-	@p='IPOTest.edp'; \
-	b='IPOTest.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-IpOptMinSurf.edp.log: IpOptMinSurf.edp
-	@p='IpOptMinSurf.edp'; \
-	b='IpOptMinSurf.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-IpoptLap.edp.log: IpoptLap.edp
-	@p='IpoptLap.edp'; \
-	b='IpoptLap.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-IpoptMinSurfVol.edp.log: IpoptMinSurfVol.edp
-	@p='IpoptMinSurfVol.edp'; \
-	b='IpoptMinSurfVol.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-IpoptVI.edp.log: IpoptVI.edp
-	@p='IpoptVI.edp'; \
-	b='IpoptVI.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-IpoptVI2.edp.log: IpoptVI2.edp
-	@p='IpoptVI2.edp'; \
-	b='IpoptVI2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapDG3.edp.log: LapDG3.edp
-	@p='LapDG3.edp'; \
-	b='LapDG3.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapDG4.edp.log: LapDG4.edp
-	@p='LapDG4.edp'; \
-	b='LapDG4.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapLNewSolver.edp.log: LapLNewSolver.edp
-	@p='LapLNewSolver.edp'; \
-	b='LapLNewSolver.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapMUMPS_seq.edp.log: LapMUMPS_seq.edp
-	@p='LapMUMPS_seq.edp'; \
-	b='LapMUMPS_seq.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapNewSolver.edp.log: LapNewSolver.edp
-	@p='LapNewSolver.edp'; \
-	b='LapNewSolver.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapUmfpack64.edp.log: LapUmfpack64.edp
-	@p='LapUmfpack64.edp'; \
-	b='LapUmfpack64.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceP3.edp.log: LaplaceP3.edp
-	@p='LaplaceP3.edp'; \
-	b='LaplaceP3.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceP4.edp.log: LaplaceP4.edp
-	@p='LaplaceP4.edp'; \
-	b='LaplaceP4.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceRT1.edp.log: LaplaceRT1.edp
-	@p='LaplaceRT1.edp'; \
-	b='LaplaceRT1.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Leman-mesh.edp.log: Leman-mesh.edp
-	@p='Leman-mesh.edp'; \
-	b='Leman-mesh.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-MetricKuate.edp.log: MetricKuate.edp
-	@p='MetricKuate.edp'; \
-	b='MetricKuate.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSP2BRP0.edp.log: NSP2BRP0.edp
-	@p='NSP2BRP0.edp'; \
-	b='NSP2BRP0.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-PARDISO.edp.log: PARDISO.edp
-	@p='PARDISO.edp'; \
-	b='PARDISO.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-SuperLU.edp.log: SuperLU.edp
-	@p='SuperLU.edp'; \
-	b='SuperLU.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-VarIneq2.edp.log: VarIneq2.edp
-	@p='VarIneq2.edp'; \
-	b='VarIneq2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-bilapMorley.edp.log: bilapMorley.edp
-	@p='bilapMorley.edp'; \
-	b='bilapMorley.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-bmo.edp.log: bmo.edp
-	@p='bmo.edp'; \
-	b='bmo.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-buildlayermesh.edp.log: buildlayermesh.edp
-	@p='buildlayermesh.edp'; \
-	b='buildlayermesh.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-checkglumeshcube.edp.log: checkglumeshcube.edp
-	@p='checkglumeshcube.edp'; \
-	b='checkglumeshcube.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cmaes-VarIneq.edp.log: cmaes-VarIneq.edp
-	@p='cmaes-VarIneq.edp'; \
-	b='cmaes-VarIneq.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cmaes-oven.edp.log: cmaes-oven.edp
-	@p='cmaes-oven.edp'; \
-	b='cmaes-oven.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convect_dervieux.edp.log: convect_dervieux.edp
-	@p='convect_dervieux.edp'; \
-	b='convect_dervieux.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convectchacon-3d.edp.log: convectchacon-3d.edp
-	@p='convectchacon-3d.edp'; \
-	b='convectchacon-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convectchacon.edp.log: convectchacon.edp
-	@p='convectchacon.edp'; \
-	b='convectchacon.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convexehull3d.edp.log: convexehull3d.edp
-	@p='convexehull3d.edp'; \
-	b='convexehull3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-dfft.edp.log: dfft.edp
-	@p='dfft.edp'; \
-	b='dfft.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ffnewuoa.edp.log: ffnewuoa.edp
-	@p='ffnewuoa.edp'; \
-	b='ffnewuoa.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ffrandom.edp.log: ffrandom.edp
-	@p='ffrandom.edp'; \
-	b='ffrandom.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-funcTemplate.edp.log: funcTemplate.edp
-	@p='funcTemplate.edp'; \
-	b='funcTemplate.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-glumesh3D.edp.log: glumesh3D.edp
-	@p='glumesh3D.edp'; \
-	b='glumesh3D.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-gsl.edp.log: gsl.edp
-	@p='gsl.edp'; \
-	b='gsl.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ilut.edp.log: ilut.edp
-	@p='ilut.edp'; \
-	b='ilut.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-isoline.edp.log: isoline.edp
-	@p='isoline.edp'; \
-	b='isoline.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-lame-TD-NSS.edp.log: lame-TD-NSS.edp
-	@p='lame-TD-NSS.edp'; \
-	b='lame-TD-NSS.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-lap-solvers.edp.log: lap-solvers.edp
-	@p='lap-solvers.edp'; \
-	b='lap-solvers.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-lapack.edp.log: lapack.edp
-	@p='lapack.edp'; \
-	b='lapack.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-layer.edp.log: layer.edp
-	@p='layer.edp'; \
-	b='layer.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-load.edp.log: load.edp
-	@p='load.edp'; \
-	b='load.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-meditddm.edp.log: meditddm.edp
-	@p='meditddm.edp'; \
-	b='meditddm.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-metis.edp.log: metis.edp
-	@p='metis.edp'; \
-	b='metis.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-mshmet.edp.log: mshmet.edp
-	@p='mshmet.edp'; \
-	b='mshmet.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-myType.edp.log: myType.edp
-	@p='myType.edp'; \
-	b='myType.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-myfunction2.edp.log: myfunction2.edp
-	@p='myfunction2.edp'; \
-	b='myfunction2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-pipe.edp.log: pipe.edp
-	@p='pipe.edp'; \
-	b='pipe.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-plot-fb-P3.edp.log: plot-fb-P3.edp
-	@p='plot-fb-P3.edp'; \
-	b='plot-fb-P3.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-plot-fb-P3dc.edp.log: plot-fb-P3dc.edp
-	@p='plot-fb-P3dc.edp'; \
-	b='plot-fb-P3dc.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-plot-fb-P4.edp.log: plot-fb-P4.edp
-	@p='plot-fb-P4.edp'; \
-	b='plot-fb-P4.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-plot-fb-P4dc.edp.log: plot-fb-P4dc.edp
-	@p='plot-fb-P4dc.edp'; \
-	b='plot-fb-P4dc.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-plotfb.edp.log: plotfb.edp
-	@p='plotfb.edp'; \
-	b='plotfb.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ppm2rnm.edp.log: ppm2rnm.edp
-	@p='ppm2rnm.edp'; \
-	b='ppm2rnm.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-provadxw.edp.log: provadxw.edp
-	@p='provadxw.edp'; \
-	b='provadxw.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ref.edp.log: ref.edp
-	@p='ref.edp'; \
-	b='ref.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-refinesphere.edp.log: refinesphere.edp
-	@p='refinesphere.edp'; \
-	b='refinesphere.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-schwarz-nm.edp.log: schwarz-nm.edp
-	@p='schwarz-nm.edp'; \
-	b='schwarz-nm.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-scotch.edp.log: scotch.edp
-	@p='scotch.edp'; \
-	b='scotch.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-shell.edp.log: shell.edp
-	@p='shell.edp'; \
-	b='shell.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-splitedges.edp.log: splitedges.edp
-	@p='splitedges.edp'; \
-	b='splitedges.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-splitmesh3.edp.log: splitmesh3.edp
-	@p='splitmesh3.edp'; \
-	b='splitmesh3.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-splitmesh6.edp.log: splitmesh6.edp
-	@p='splitmesh6.edp'; \
-	b='splitmesh6.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-test-ElementMixte.edp.log: test-ElementMixte.edp
-	@p='test-ElementMixte.edp'; \
-	b='test-ElementMixte.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testFE-P3.edp.log: testFE-P3.edp
-	@p='testFE-P3.edp'; \
-	b='testFE-P3.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testFE-P3dc.edp.log: testFE-P3dc.edp
-	@p='testFE-P3dc.edp'; \
-	b='testFE-P3dc.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testFE-P4.edp.log: testFE-P4.edp
-	@p='testFE-P4.edp'; \
-	b='testFE-P4.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testFE-P4dc.edp.log: testFE-P4dc.edp
-	@p='testFE-P4dc.edp'; \
-	b='testFE-P4dc.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testFE-PkEdge.edp.log: testFE-PkEdge.edp
-	@p='testFE-PkEdge.edp'; \
-	b='testFE-PkEdge.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testFE.edp.log: testFE.edp
-	@p='testFE.edp'; \
-	b='testFE.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testFEMorley.edp.log: testFEMorley.edp
-	@p='testFEMorley.edp'; \
-	b='testFEMorley.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-tetgencube.edp.log: tetgencube.edp
-	@p='tetgencube.edp'; \
-	b='tetgencube.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-tetgenholeregion_rugby.edp.log: tetgenholeregion_rugby.edp
-	@p='tetgenholeregion_rugby.edp'; \
-	b='tetgenholeregion_rugby.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-thresholdings.edp.log: thresholdings.edp
-	@p='thresholdings.edp'; \
-	b='thresholdings.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ttestio.edp.log: ttestio.edp
-	@p='ttestio.edp'; \
-	b='ttestio.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-bfstream.edp.log: bfstream.edp
-	@p='bfstream.edp'; \
-	b='bfstream.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-bilapP3-hct-like.edp.log: bilapP3-hct-like.edp
-	@p='bilapP3-hct-like.edp'; \
-	b='bilapP3-hct-like.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(PROGRAMS) all-local
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS install-exec-local
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: all all-am all-local check check-TESTS check-am clean \
-	clean-binPROGRAMS clean-generic clean-local cscopelist-am \
-	ctags-am distclean distclean-generic distdir dvi dvi-am html \
-	html-am info info-am install install-am install-binPROGRAMS \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-exec-local install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am recheck tags-am \
-	uninstall uninstall-am uninstall-binPROGRAMS
-
-all-local: @LOAD_COMPILE@
-
-# FFCS parallel make: some targets need to be built first, sequentially
-
-load_compile: ff-c++ WHERE_LIBRARY-download include.done freefem++.pref
-#
-# max_load
-	- at rm "Missing-plugins-$(DYLIB_SUFFIX).log" 2>/dev/null || true
-	$(MAKE) $(AM_MAKEFLAGS) $(LIST_COMPILE) $(LIST_COMPILE_PKG)
-	@if test -f Missing-plugins-$(DYLIB_SUFFIX).log ; then cat Missing-plugins-$(DYLIB_SUFFIX).log; fi; exit 0 
-	@echo Warning missing plugin: `for i in $(LIST_COMPILE) $(LIST_COMPILE_PKG); do if test ! -s $i ; then j=1; echo "$i," ;fi; done`
-	echo " finish build list $(DYLIB_SUFFIX)"
-
-.cpp.$(DYLIB_SUFFIX): ff-c++
-	 ./ff-c++ -auto $< 
-
- at ENABLE_FFCS_TRUE@include.done: $(allheaders)
- at ENABLE_FFCS_TRUE@	-rm -rf include
- at ENABLE_FFCS_TRUE@	mkdir -p include
- at ENABLE_FFCS_TRUE@	cp $^ include
- at ENABLE_FFCS_TRUE@	touch $@
-
- at ENABLE_FFCS_FALSE@include.done: $(allheaders)
- at ENABLE_FFCS_FALSE@	-rm -rf include
- at ENABLE_FFCS_FALSE@	mkdir -p  include
- at ENABLE_FFCS_FALSE@	for i in $(allheaders); do  ln -s ../$$i include/. ; done 
- at ENABLE_FFCS_FALSE@	touch $@
-
-clean-local::
-	-rm -r include
-	-rm include.done
-
-Ref: makeref.edp
-	../src/nw/FreeFem++-nw makeref.edp
-
-makeref.edp: regtests.m4 ../regtests.m4
-	m4 regtests.m4 > makeref.edp
-
-all-local: all.edp regtests.edp load_compile
-
-# FFCS - 27/2/13 - remove dependency on Makefile to avoid recompiling everything everytime something is changed in the
-# configuration step
-
-all.edp:
-	@(echo "NoGraphicWindow=true;NoUseOfWait=true;int verbosityy=verbosity;"; \
-	for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$$'` ; do  \
-		echo ' cout << "--------- file : '$$i' --------------------------------------------------------" << endl;' ;\
-		echo "verbosity=verbosityy;" ; \
-		echo \{ include \"$$i\"\;\}\; ;\
-		echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\
-	done) > $@
-
-# To check the scripts against their reference values
-regtests.edp: regtests.m4 ../regtests.m4
-	m4 -DASSERT regtests.m4 > regtests.edp
-
-# FFCS - 27/2/13 - remove dependency on Makefile to avoid recompiling everything everytime something is changed in the
-# configuration step
-
-$(LIST_COMPILE):ff-c++ include.done
-
-clean-local::
-	-rm *.o *.$(DYLIB_SUFFIX) load.link WHERE_LIBRARY-download ff-get-dep ff-c++ ff-pkg-download \
-	  $(LIST_COMPILE) $(LIST_COMPILE_PKG)  regtests.edp makeref.edp
-	-rm -rf include include.done
-ff-c++:load.link.in load.link WHERE_LIBRARY-download ff-get-dep ../config.status
-	../config.status  --file=ff-c++:load.link.in
-	chmod a+x ff-c++
-load.link:load.link.in ../config.status
-	../config.status  --file=load.link:load.link.in
-	chmod a+x load.link
-ff-pkg-download:ff-pkg-download.in ../config.status
-	../config.status  --file=$@:$@.in
-	chmod a+x $@
-	cp $@ ../download/bin
-ff-get-dep:ff-get-dep.in ../config.status
-	../config.status  --file=$@:$@.in
-	chmod a+x $@
-	-if [ -d ../download/bin ] ;then cp $@ ../download/bin; fi
-WHERE_LIBRARY-download:ff-pkg-download FORCE  WHERE_LIBRARY-config WHERE_LIBRARY
-	@./ff-pkg-download >$@-new
-	@diff $@-new $@  || (cp $@-new $@ ;touch WHERE_LIBRARY)
-WHERE_LIBRARY:
-	touch $@
-FORCE: ;
-freefem++.pref:
-	echo loadpath = \"./\" >freefem++.pref
-install-exec-local:: load_compile WHERE_LIBRARY
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib
-	test -n "$(MPIPROG)" && $(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib/mpi
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/include
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/etc
-	$(INSTALL_DATA)  clapack.h ppmimg.h  bmo.hpp msh3.hpp pcm.hpp  include/*   $(DESTDIR)$(ff_prefix_dir)/include
-	$(INSTALL)  -m 555 $(LIST_COMPILE) $(DESTDIR)$(ff_prefix_dir)/lib
-	$(INSTALL)  -m 555 ff-get-dep.awk  WHERE_LIBRARY-config WHERE_LIBRARY  $(DESTDIR)$(ff_prefix_dir)/lib
-	for i in  WHERE_LIBRARY-config WHERE_LIBRARY WHERE_LIBRARY-download; do \
-	  sed <$$i >$(DESTDIR)$(ff_prefix_dir)/lib/$$i 's#$(abs_top_builddir)/download#$(ff_prefix_dir)#' ;\
-	 done
-	echo loadpath += \"./\"  >$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-	echo loadpath += \"$(ff_prefix_dir)/lib\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-	echo includepath += \"$(ff_prefix_dir)/idp\"  >>$(DESTDIR)$(ff_prefix_dir)/etc/freefem++.pref
-	$(INSTALL_SCRIPT) ff-c++  $(DESTDIR)${bindir}
-	$(INSTALL_SCRIPT) ff-pkg-download  $(DESTDIR)${bindir}
-	$(INSTALL_SCRIPT) ff-get-dep   $(DESTDIR)${bindir}
-	-for i in $(LIST_COMPILE_PKG); do \
-	 if [ -f $$i ] ; then 	$(INSTALL)  -m 555 $$i $(DESTDIR)$(ff_prefix_dir)/lib; fi; done
-	- if [ -n "$(MPIPROG)" ] ; then \
-		for i in $(LIST_COMPILE_PKG) $(LIST_COMPILE); do \
-		 if [ -f ../examples++-mpi/$$i ] ; then \
-	    	    $(INSTALL)  -m 555 ../examples++-mpi/$$i $(DESTDIR)$(ff_prefix_dir)/lib/mpi; \
-	        else echo missing install mpi version ???  ../examples++-mpi/$$i ;\
-	         fi;  \
-	        done ; \
-	fi
-
-clean-local::
-	-rm *.fg *.eps *~ *.ps  *.mesh *.mesh.gmsh ListOfAllocPtr-8.bin ffglut*.ppm Th.o.meshb	Th3.d.meshb	dep.sol.meshbgh \
-ipopt.out	mmg.out xxxx ThFF.txt		TriQA.txt		cavidadTT.txt		mass.txt		xy.txt \
-ThFF_Metric.txt		TriQA_Metric.txt	datanc.txt		u100m8.txt \
-TTh.sol		Th.o.sol	Th3.sol		dep.o.sol	dep.sol		gradient.sol	hessien.sol pippo.data pippo.dx testsavemedit.solb med.gp bidule.vtk	disque.vtk g-iso 
-
-# FFCS: add tags for files that are not specified to automake by a SOURCE directive (this tags file is automatically
-# taken into account by automake when it sees it).
-
-TAGS:
-	etags *.?pp
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-load/MetricKuate.cpp b/examples++-load/MetricKuate.cpp
index 4c3255c..49f0ffc 100644
--- a/examples++-load/MetricKuate.cpp
+++ b/examples++-load/MetricKuate.cpp
@@ -36,7 +36,7 @@ int  Lire( const char * NomDuFichier,int n ,R2 noeuds[] );
 template<typename T>
 bool from_string( const string & Str, T & Dest )
 {
-  // cr�er un flux � partir de la chaine donn�e
+  // cr�er un flux � partir de la chaine donn�e
   istringstream iss( Str );
   // tenter la conversion vers Dest
   iss >> Dest;
@@ -65,7 +65,7 @@ void metrique(int nbpoints, R2 * Point,R &A, R &B,R &C,R epsilon)
      
       Rmax=Max(Rmax,Point[i].norme());
       
-      //---d�placement des points situ�es sur les axes--------------
+      //---d�placement des points situ�es sur les axes--------------
       if(abs(Point[i].x)<=precision)
 	{
 	  if(Point[i].y<0)
@@ -108,7 +108,7 @@ void metrique(int nbpoints, R2 * Point,R &A, R &B,R &C,R epsilon)
   
   
   //-------permutation des indices de la liste des points : 
-  //ranger la liste en commen�ant par le point X0-------
+  //ranger la liste en commen�ant par le point X0-------
   for(int k=0;k<nbpoints-indiceX0;k++)
     {
       PPoint[k]=Point[k+indiceX0];
@@ -216,7 +216,7 @@ void metrique(int nbpoints, R2 * Point,R &A, R &B,R &C,R epsilon)
 	     
 	     
 	     
-	     //------deplacement des points align�s avec l'origine et X0-----------
+	     //------deplacement des points align�s avec l'origine et X0-----------
 	     if(abs(detXY)<=precision)
 	       {
 		 
@@ -240,14 +240,14 @@ void metrique(int nbpoints, R2 * Point,R &A, R &B,R &C,R epsilon)
 	     
 	     //-----------------------------------------------------------------
 	     
-	     //-----racines du polynome en b � minimiser----------------------------
+	     //-----racines du polynome en b � minimiser----------------------------
 	    
 	     R bb1=(1./pow(detXY,2))*(pow(X0*Ri,2)+pow(Xi*R0,2)-2.*abs(Xi*X0)*sqrt(pow(R0*Ri,2)-pow(detXY/(Rmax*(r0-epsilon0)),2)));
 	    
 	     R bb2=(1./pow(detXY,2))*(pow(X0*Ri,2)+pow(Xi*R0,2)+2.*abs(Xi*X0)*sqrt(pow(R0*Ri,2)-pow(detXY/(Rmax*(r0-epsilon0)),2))); 
 	   
 	    
-	     //--fin----racines du polynome en b � minimiser--------------------
+	     //--fin----racines du polynome en b � minimiser--------------------
 	     
 	     
 	     bmax=Min(bb2,pow(Rmax/pow((r0),2),2));
diff --git a/examples++-load/MetricKuate.cpp.orig b/examples++-load/MetricKuate.cpp.orig
deleted file mode 100644
index 76dfb52..0000000
--- a/examples++-load/MetricKuate.cpp.orig
+++ /dev/null
@@ -1,681 +0,0 @@
-//  Implementation of P1-P0 FVM-FEM
-// ---------------------------------------------------------------------
-// $Id$
-// compile and link with ./load.link  mat\_dervieux.cpp 
-#include  <iostream>
-#include  <cfloat>
-#include  <cmath>
-using namespace std;
-/*
-#include "error.hpp"
-#include "AFunction.hpp"
-#include "rgraph.hpp"
-#include "RNM.hpp"
-// remove problem of include 
-#undef  HAVE_LIBUMFPACK
-#undef HAVE_CADNA
-#include "MatriceCreuse_tpl.hpp"
-#include "MeshPoint.hpp"
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "problem.hpp"
-//#include "ellipsemax.hpp"
-*/
-#include "ff++.hpp" 
-
-using namespace std;
-
-
-R Min (const R a,const R b);
-R Max (const R a,const R b);
-inline void Exchange (R a,R b) {R c=a;a=b;b=c;};
-//const R precision = 1e-10;
-
-int  LireTaille( const char * NomDuFichier,int &nbnoeuds);
-int  Lire( const char * NomDuFichier,int n ,R2 noeuds[] );
-template<typename T>
-bool from_string( const string & Str, T & Dest )
-{
-  // cr�er un flux � partir de la chaine donn�e
-  istringstream iss( Str );
-  // tenter la conversion vers Dest
-  iss >> Dest;
-  return !Dest;
-};
-
-
-void metrique(int nbpoints, R2 * Point,R &A, R &B,R &C,R epsilon)
-{
-
-
-  C=0.;
-   
-  R  epsilon0=1e-5,precision=1e-15,delta=1e-10;
-  R inf =1e50;
- 
-  R Rmin=inf,Rmax=0.;
-  
-  int indiceX0=0;
-  
- 
-  R2 *PPoint = new R2 [nbpoints];
-  
-  for(int i=0;i<nbpoints;i++)
-    {
-     
-      Rmax=Max(Rmax,Point[i].norme());
-      
-      //---d�placement des points situ�es sur les axes--------------
-      if(abs(Point[i].x)<=precision)
-	{
-	  if(Point[i].y<0)
-	    {
-	      Point[i].x=-delta;
-	      Point[i].y=-sqrt(pow(Point[i].y,2)-pow(Point[i].x,2));
-	    }
-	  if(Point[i].y>0)
-	    {
-	      Point[i].x=delta;
-	      Point[i].y=sqrt(pow(Point[i].y,2)-pow(Point[i].x,2));
-	    }
-	}
-      
-      if(abs(Point[i].y)<=precision)
-	{
-	  if(Point[i].x<0)
-	    {
-	      Point[i].y=-delta;
-	      Point[i].x=-sqrt(pow(Point[i].x,2)-pow(Point[i].y,2));
-	    }
-	  if(Point[i].x>0)
-	    {
-	      Point[i].y=delta;
-	      Point[i].x=sqrt(pow(Point[i].x,2)-pow(Point[i].y,2));
-	    }
-	}
-      //-----------------------------------------------------------
-      assert(abs(Point[i].x*Point[i].y)>=pow(precision,2));
-
-      if(Rmin>Point[i].norme())
-	{
-	  indiceX0=i;
-	  Rmin=Point[i].norme();
-	}
-    
-      //cout<<Point[i]<<endl;	
-    }
-  
-  
-  
-  //-------permutation des indices de la liste des points : 
-  //ranger la liste en commen�ant par le point X0-------
-  for(int k=0;k<nbpoints-indiceX0;k++)
-    {
-      PPoint[k]=Point[k+indiceX0];
-    }
-  
-  for(int k=nbpoints-indiceX0;k<nbpoints;k++)
-    {
-      PPoint[k]=Point[k-nbpoints+indiceX0];
-    }
-  
-  
-  for(int i=0;i<nbpoints;i++) Point[i]=PPoint[i];	
- 
-  
-  
-  
-  
-  //----------------------------------------------------------------
-  
- 
-  int test=-1;
-  
-  
-  
- 
-  
-  R X0;
-  R Y0;
-  
-
-  R bmin= 0.,bmax=inf,b1,b2,aik=0.,bik=0.,cik=0.;
- R Xk=0.,Yk=0.,Ck=0.,Ak =0.,Bk=0.,Xi=0.,Yi=0.,ri,detXY=0.,Ri,R0,r0;
-
- 
- X0=Point[0].x;
- Y0=Point[0].y;
- r0=Point[0].norme();
- assert(r0 == Rmin);
-
- //cout<<" Rmin = "<<Rmin<<" Rmax =  "<<Rmax<<endl;
- 
-
- R EPS=0.;// pour recuperer la valeur de epsilon0 optimale
-  R epsilonmax=r0*(1.-r0/Rmax)/20.;
- 
-  R  Tabepsilon[20];
-
-  int neps =4;
- //--------- discertisation de epsilon0----------------------------------
- if(epsilonmax>1e-2)
-   {
-     neps=10;
-
-     Tabepsilon[0]=1e-5;
-     Tabepsilon[1]=1e-4;
-     Tabepsilon[2]=1e-3;
-     for(int i=3;i<neps;i++)
-       {
-	 Tabepsilon[i]=(i-3)*(epsilonmax-1e-2)/(neps-4.) +1e-2;
-  
-       }
-     
-   }
-
-
- else
-   {
-    
-     Tabepsilon[0]=1e-5;
-     Tabepsilon[1]=1e-4;
-     Tabepsilon[2]=1e-3;
-     Tabepsilon[3]=1e-2;
-   }
- //------------------------------------------------------------------------
-
- int condition = -1;
-
- if(r0<=epsilon0)epsilon0=r0*epsilon0;
- B=A=1./((r0-epsilon0)*(r0-epsilon0));
-  R epsilon0min=epsilon0;
-
-   if(abs(Rmin-Rmax)>1e-5)
-    {
-     //cout<<" Rmax - Rmin  "<<Rmax-Rmin<<endl;
-     for(int ee=0;ee<neps-1;ee++) //boucle sur epsilon0---------------
-       {
-	 epsilon0= Tabepsilon[ee];
-	 if(r0<=epsilon0)epsilon0=r0*epsilon0;
-	 assert(r0>epsilon0);
-	 R0=r0/(r0-epsilon0);
-	 
-	 for(int i=1;i<nbpoints;i++)	 //boucle sur chaque noeud
-	   {
-	     
-	     Xi=Point[i].x;
-	     Yi=Point[i].y;
-	     ri=Point[i].norme();
-	     if(ri<=epsilon)epsilon=ri*epsilon;
-	     assert(ri>epsilon);
-	     Ri = ri/(ri-epsilon);
-	     detXY=Xi*Y0-Yi*X0;
-	     
-	     
-	     
-	     
-	     
-	     
-	     //------deplacement des points align�s avec l'origine et X0-----------
-	     if(abs(detXY)<=precision)
-	       {
-		 
-		 Xi += delta;
-		 
-		 if(Yi<0)Yi= -sqrt(pow(ri,2)- pow(Xi,2));
-		 else Yi=sqrt(pow(ri,2)- pow(Xi,2));
-		 Point[i].x=Xi;
-		 Point[i].y=Yi;
-		 ri=Point[i].norme();
-		 if(ri<=epsilon)epsilon=ri*epsilon;
-		 assert(ri>epsilon);
-		 Ri = ri/(ri-epsilon);
-		 
-	       }
-	     
-	     detXY=Xi*Y0-Yi*X0;
-	     
-	     assert(abs(detXY)>=precision);   
-	     
-	     
-	     //-----------------------------------------------------------------
-	     
-	     //-----racines du polynome en b � minimiser----------------------------
-	    
-	     R bb1=(1./pow(detXY,2))*(pow(X0*Ri,2)+pow(Xi*R0,2)-2.*abs(Xi*X0)*sqrt(pow(R0*Ri,2)-pow(detXY/(Rmax*(r0-epsilon0)),2)));
-	    
-	     R bb2=(1./pow(detXY,2))*(pow(X0*Ri,2)+pow(Xi*R0,2)+2.*abs(Xi*X0)*sqrt(pow(R0*Ri,2)-pow(detXY/(Rmax*(r0-epsilon0)),2))); 
-	   
-	    
-	     //--fin----racines du polynome en b � minimiser--------------------
-	     
-	     
-	     bmax=Min(bb2,pow(Rmax/pow((r0),2),2));
-	     
-	     
-	     bmin=Max(1./(Rmax*Rmax),bb1);//minoration de b
-	       R Cte = Max(1e-9,(bmax-bmin)*1e-9);
-	       bmin=bmin*(1.+Cte);
-	       bmax=bmax*(1.-Cte);
-	     
-	   
-	     //bornes de b-----------------------------------------------------------
-	     
-	     //cas:  majoration de c --------------------------------------------
-	     R Li=X0*Xi*(pow(Rmax/pow(r0-epsilon0min,2),2)-1./pow(Rmax,2))+(pow(Ri*X0,2)-pow(R0*Xi,2))/detXY;
-	     R LiXY=Xi*Y0+Yi*X0;
-	     
-	     if(abs(LiXY)>=precision)
-	       {
-		 condition=1;
-		 
-		 if(Xi*X0>0)
-		   {
-		     if(LiXY>0) bmin=Max(bmin,-Li/LiXY);
-		     else bmax=Min(bmax,-Li/LiXY);
-		   }
-		 else
-		   {
-		     
-		     if(LiXY<0) bmin=Max(bmin,-Li/LiXY);
-		     else bmax=Min(bmax,-Li/LiXY); 
-		   }
-		 
-	       }
-	     
-	     else
-	       {
-		 if(Li<0) condition =0;
-		 else condition =1;
-	       }
-	     
-	     
-	     
-	     //cas  minoration de c --------------------------------------------
-	     Li=X0*Xi*(-pow(Rmax/pow(r0-epsilon0min,2),2)+1./pow(Rmax,2))+(pow(Ri*X0,2)-pow(R0*Xi,2))/detXY;
-	     LiXY=Xi*Y0+Yi*X0;
-	     
-	     if(abs(LiXY)>=precision)
-	       {
-		 condition=1;
-		 
-		 if(Xi*X0>0)
-		   {
-		     if(LiXY<0) bmin=Max(bmin,-Li/LiXY);
-		     else bmax=Min(bmax,-Li/LiXY);
-		   }
-		 else
-		   {
-		     
-		     if(LiXY>0) bmin=Max(bmin,-Li/LiXY);
-		     else bmax=Min(bmax,-Li/LiXY); 
-		   }
-		 
-	       }
-	     
-	     else
-	       {
-		 if(Li>0) condition =0;
-		 else condition =1;
-	       }
-	     
-	     if (condition==1)
-	       {
-		 
-		 
-		 //--cas : minoration de a-----------------------------------------------
-		 
-		 R Gi=((Xi*Yi*R0*R0-X0*Y0*Ri*Ri)/detXY +Xi*X0/(Rmax*Rmax))/(Yi*Y0);
-		 
-		 if(Xi*X0>0)
-		   {
-		     if(Yi*Y0>0) bmin=Max(bmin,Gi);
-		     else bmax=Min(bmax,Gi);
-		   }
-		 else
-		   {
-		     if(Yi*Y0<0) bmin=Max(bmin,Gi);
-		     else bmax=Min(bmax,Gi);
-		   }
-		 
-		 //cas :majoration de a------------------------------------------------
-		 
-		 
-		 R Hi=(Xi*X0*Rmax*Rmax/pow((r0-epsilon0min),4)+(Xi*Yi*R0*R0-X0*Y0*Ri*Ri)/detXY)/(Yi*Y0);
-		 if(Xi*X0>0)
-		   {
-		     if(Yi*Y0>0) bmax=Min(bmax,Hi);
-		     else bmin=Max(bmin,Hi);
-		   }
-		 else
-		   {
-		     if(Yi*Y0<0) bmax=Min(bmax,Hi);
-		     else bmin=Max(bmin,Hi);
-		     
-		   }
-		 
-		 
-		 
-		 
-		 
-		 //------fin bornes de b------------------------------------------------
-		 b2=bmax;
-		 b1=bmin;
-		 
-		 for(int k=1;k<nbpoints ;k++)//on balaye les contraintes
-		   {
-		   
-		     Xk=Point[k].x;
-		     Yk=Point[k].y;
-		     Bk=(Yk*Yk*Xi*X0 +Xk*(Xk*Yi*Y0-Yk*(Yi*X0+Xi*Y0)))/(Xi*X0);
-		     Ck=(X0*Xi*detXY-Xk*(Xi*R0*R0*(Yk*Xi-Yi*Xk) +X0*Ri*Ri*(-Yk*X0+Y0*Xk)))/(Xi*X0*detXY);
-		     
-		     assert(abs(Xi*X0*Y0*Yi*Xk*Yk)>=pow(precision,5));
-		     if(abs(Bk)>precision)//non nul
-		       {
-			 if(Bk<=0) bmax=Min(bmax,Ck/Bk);
-			 
-			 else  bmin=Max(bmin,Ck/Bk);
-			 
-			 if((bmax<b1)||(bmin>b2)||(bmin>bmax))
-			   {
-			     //cout<<" i = "<<i<<"  k = "<<k<<endl;	
-			     test=0;
-			     break;  
-			   }
-			 
-			 else  test=1;		       
-			 
-		       }
-		     else
-		       {
-			 
-			 if (Ck>precision) 
-			   { 
-			     test=0;
-			     break;  	
-			   }
-			 else //Ck<=0
-			   {
-			     test=-1;// 1 peut etre
-			     
-			   }
-		       }
-		     
-		     
-		   }
-		 if(test==1)
-		   { 
-		   
-		     R a0=-pow((detXY/(Xi*X0)),2);
-		     R a1=2.*(pow(Ri/Xi,2)+pow(R0/X0,2));
-		     if(((a0*bmax+a1)*bmax) <((a0*bmin+a1)*bmin)) bik=bmax;
-		     else bik=bmin;
-		     aik=(Ri*Ri*Y0*X0 -R0*R0*Yi*Xi+bik*Yi*Y0*detXY)/(detXY*Xi*X0);
-		     //(Ri*Ri*Y0/Xi - R0*R0*Yi/X0)/detXY+bik*Yi*Y0/(Xi*X0);
-		     cik=( -Ri*Ri*X0*X0 + R0*R0*Xi*Xi-bik*(Yi*X0+Y0*Xi)*detXY)/(detXY*Xi*X0);
-		    
-		     
-		     
-		   
-		     assert((4.*aik*bik-cik*cik)>=0.);// aire positive	 
-		     assert(abs((4.*aik*bik-cik*cik)-pow(2./(Rmax*(r0-epsilon0)),2))>0);// aire positive
-		     if((4.*aik*bik-cik*cik)<=(4.*A*B-C*C)) 
-		       {
-			 A=aik;
-			 B=bik;
-			 C=cik;
-			 EPS=epsilon0;
-		       }
-		     
-		     
-		     
-		   }
-		 
-		 
-		 
-		 //-----------------------------------------------------------------  
-		 
-	       }  
-	     
-	     
-	   }
-       }
-     
-     }
- else
-   {
-     A=B=1./(Rmin*Rmin);
-     C=0.;
-     }
- delete [] PPoint;  
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-int  LireTaille( const char * NomDuFichier,int & nbnoeuds)
-{ //Lire le maillage  sur le fichier de nom NomDuFichier
-  
-  //Ouverture du fichier  a partir de son nom
-  ifstream f( NomDuFichier );
-  //char  buffer[BUFSIZ];
-  string buffer;
-  
-  nbnoeuds =0;
-  if( !f )
-    { cerr << "Erreur a l'ouverture du fichier " << NomDuFichier << endl;
-      return 1; }
-  
-  while ( getline( f,buffer,'\n' ) )
-    {
-      if((buffer[0]!='#')&&(buffer!="")){ nbnoeuds +=1;
-	// cout<<buffer<<endl;
-      }
-    }
-  
-  
-  return 0;
-}
-
-
-int  Lire( const char * NomDuFichier,int n ,R2 noeuds[] ){
-  
-  ifstream f( NomDuFichier );
-  
-  string buffer;
-  int i=0 ;
-  
-  
-  while(i<n)
-    {   
-      f >> buffer;			
-      if(buffer[0]=='#')
-	{  getline( f,buffer );}
-      else{
-	
-	
-	
-	// Lecture X Y Z de chacun des noeuds
-	
-	from_string( buffer,noeuds[i++].x ); 
-	f>>noeuds[i-1].y>>buffer;
-	
-      }
-      
-      
-      
-    }
-  
-  
-  
-  return 0;
-}
-
-
-
-
-
-R Min (const R a,const R b){return a < b ? a : b;}
-R Max (const R a,const R b){return a > b ? a : b;}
-
-
-
-
-
-
-
-//  metrixkuate(Th,np,o,err,[m11,m12,m22]);
-class MetricKuate :  public E_F0mps 
-{
-public:
-  typedef bool  Result;
-  Expression expTh;
-  Expression expnp;
-  Expression exphmin;
-  Expression exphmax;
-  Expression experr;
-  Expression m11,m12,m22;
-  Expression px,py;
-  
-  MetricKuate(const basicAC_F0 & args)
-  {
-
-    args.SetNameParam();
-    expTh= to<pmesh>(args[0]);  // a the expression to get the mesh
-    expnp= to<long>(args[1]);  // a the expression to get the mesh
-    exphmin= to<double>(args[2]);  // a the expression to get the mesh
-    exphmax= to<double>(args[3]);  // a the expression to get the mesh
-    experr= to<double>(args[4]);  // a the expression to get the mesh
-    //  a array expression [ a, b]
-    const E_Array * ma= dynamic_cast<const E_Array*>((Expression) args[5]);
-    const E_Array * mp= dynamic_cast<const E_Array*>((Expression) args[6]);
-    if (ma->size() != 3) CompileError("syntax: MetricKuate(Th,np,o,err,[m11,m12,m22],[xx,yy])");
-    if (mp->size() != 2) CompileError("syntax: MetricKuate(Th,np,o,err,[m11,m12,m22],[xx,yy])");
-    int err =0;
-    m11= CastTo<KN<double> * >((*ma)[0]); // fist exp of the array (must be a  double)
-    m12= CastTo<KN<double> * >((*ma)[1]); // second exp of the array (must be a  double)
-    m22= CastTo<KN<double> * >((*ma)[2]); // second exp of the array (must be a  double)
-    px= CastTo<double * >((*mp)[0]); // fist exp of the array (must be a  double)
-    py= CastTo<double * >((*mp)[1]); // second exp of the array (must be a  double)
-  }
-
-  ~MetricKuate()
-  {
-  }
-
-  static ArrayOfaType  typeargs()
-  { return  ArrayOfaType(
-			 atype<pmesh>(),
-			 atype<long>(),
-			 atype<double>(),
-			 atype<double>(),
-			 atype<double>(),
-			 atype<E_Array>(),
-			 atype<E_Array>());
-  }
-  static  E_F0 * f(const basicAC_F0 & args){ return new MetricKuate(args);}
-  AnyType operator()(Stack s) const ;
-
-};
-
-// the evaluation routine
-AnyType MetricKuate::operator()(Stack stack) const
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh * pTh = GetAny<pmesh>((*expTh)(stack));
-  long np=  GetAny<long>((*expnp)(stack));
-  double hmin=  GetAny<double>((*exphmin)(stack));
-  double hmax=  GetAny<double>((*exphmax)(stack));
-  KN<double> *pm11,*pm12,*pm22;
-  double *pxx,*pyy;
-  pm11=  GetAny<KN<double>*>((*m11)(stack));
-  pm22=  GetAny<KN<double>*>((*m22)(stack));
-  pm12=  GetAny<KN<double>*>((*m12)(stack));
-  pxx =  GetAny<double*>((*px)(stack));
-  pyy =  GetAny<double*>((*py)(stack));
-  ffassert(pTh);
-  KN<R2> Pt(np);
-  Mesh & Th (*pTh);
-  cout << " MetricKuate " << np << " hmin = "<< hmin << " hmax = " << hmax  << " nv = " << Th.nv <<  endl;
-  R hmx2=1./(hmax*hmax);
-  R hmn2=1./(hmin*hmin);
-
-  ffassert(pm11->N()==Th.nv);
-  ffassert(pm12->N()==Th.nv);
-  ffassert(pm22->N()==Th.nv);
-  {
-    for (int iv=0;iv<Th.nv;iv++)
-      {
-	R2 P=Th(iv);
-	MeshPointStack(stack)->set(P.x,P.y);
-	double m11=1,m12=0,m22=1;
-	for(int i=0;i<np;i++)
-	  {
-	    double t=(M_PI*2.*i+0.5)/np;
-	    *pxx=cos(t);
-	    *pyy=sin(t);
-	    double ee =  fabs(GetAny<double>((*experr)(stack)));
-	    *pxx*=M_E;
-	    *pyy*=M_E;
-	    double eee =  fabs(GetAny<double>((*experr)(stack)));
-	    ee = max(ee,1e-30);
-	    eee = max(eee,1e-30);
-	    //  e^p  = eee/ee  
-	    double p = Min(Max(log(eee)-log(ee),0.1),10);
-	    // c^p ee = 1
-	    // c = (1/ee)^1/p
-	    double  c=pow(1./ee,1./p);
-	    c = min(max(c,hmin),hmax);
-	    Pt[i].x = *pxx*c/M_E;
-	    Pt[i].y = *pyy*c/M_E;	   
-	    if(iv==0) {
-	      cout << Pt[i] << "  ++++ " << i <<" " << t <<  " " << p << " c = " << R2(*pxx*c/M_E,*pyy*c/M_E) << "e=  " << ee << " " << eee << " " << c << endl;
-	      }
-	     
-	  }
-	double epsilon=1e-5;
-	metrique(np,Pt,m11,m22,m12,epsilon);
-	if(iv==0)  cout << "  ---- 11,12,22 : " << m11 << " "<< m12/2.  << " "<< m22 << endl; 
-	(*pm11)[iv]=m11;
-	(*pm12)[iv]=m12/2.;;
-	(*pm22)[iv]=m22;
-
-      }
-  }
-  *mp = mps;
-  return true;
-}
-
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-$1 */
-static void Load_Init()
-=======
-class Init { public:
-  Init();
-};
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  cout << "\n  -- lood: init MetricKuate\n";
-  Global.Add("MetricKuate","(", new OneOperatorCode<MetricKuate >( ));
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/MetricPk.cpp b/examples++-load/MetricPk.cpp
index a489644..e48719f 100644
--- a/examples++-load/MetricPk.cpp
+++ b/examples++-load/MetricPk.cpp
@@ -86,7 +86,7 @@ basicAC_F0::name_and_type MetricPk::name_param[MetricPk::n_name_param] = {
 
 AnyType MetricPk:: operator()(Stack stack) const 
 {
-    /************* r�cup�ration des arguments ****************/
+    /************* r�cup�ration des arguments ****************/
     
     const long k_deg=  arg(0,stack,2L);   // Finite element of degree k_deg will be used for approximation.
     const long m_deg=k_deg+1;             // Derivatives of degree m_deg = k_deg+1 will be estimated.
@@ -146,10 +146,10 @@ AnyType MetricPk:: operator()(Stack stack) const
     std::vector<R> DOFt; DOFt.resize(nDOFt);        //degrees of freedom on a triangle
     
     //le bord
-    //Th.ElementAdj(k,ie); renvoie k', �crase ie par ie';
+    //Th.ElementAdj(k,ie); renvoie k', �crase ie par ie';
     // is frontiere k' <0 ou k'==k
     //Seg
-    //BoundaryElement (+r�cent)
+    //BoundaryElement (+r�cent)
     //Th.nbe ou Th.neb
     //Th.be(i)  Th.be(i)[0] ou Th.be(i)[1]
     std::vector<int> nextv; nextv.resize(nv); fill(nextv.begin(), nextv.end(), -1);
@@ -161,9 +161,9 @@ AnyType MetricPk:: operator()(Stack stack) const
     
 //    cout << "next point on boundary\n"; for(int i=0; i<nv; ++i) cout << " " << nextv[i]; cout << "\n";
     
-//  for(int i=0; i<Th.neb; ++i) nextv[Th.be(i)[0]]=Th.be(i)[1]; //ne convient pas : les num�ros sont oubli�s, seuls les points sont conserv�s.
+//  for(int i=0; i<Th.neb; ++i) nextv[Th.be(i)[0]]=Th.be(i)[1]; //ne convient pas : les num�ros sont oubli�s, seuls les points sont conserv�s.
     
-    /********* estimation des d�riv�es ***********/
+    /********* estimation des d�riv�es ***********/
     for(int i=0; i<Th.nt; ++i){
         const Triangle &K=Th[i];           
         const R2 sommets[3]={K(R2(0,0)),K(R2(1,0)),K(R2(0,1))};
@@ -178,12 +178,12 @@ AnyType MetricPk:: operator()(Stack stack) const
         
         double f[m_deg]; //contains the derivatives of order
         switch(m_deg){
-            case 2:{    //accolades n�cessaires pour d�clarer des variables dans un case
+            case 2:{    //accolades n�cessaires pour d�clarer des variables dans un case
                 double f[2]; tk.getDerivatives(DOFt,invHauteur,f); //f={fx,fy}
                 
                 for(int j=0; j<3; ++j){
                     const int s= Th(i,j); //le sommet j du triangle i
-                    Deriv[m_dim*s+0]+= aire* f[0]*invHauteur[j].x; //contribution � l'estimation des d�riv�es secondes.
+                    Deriv[m_dim*s+0]+= aire* f[0]*invHauteur[j].x; //contribution � l'estimation des d�riv�es secondes.
                     Deriv[m_dim*s+1]+= aire*(f[0]*invHauteur[j].y/2.+f[1]*invHauteur[j].x/2.);
                     Deriv[m_dim*s+2]+= aire* f[1]*invHauteur[j].y;
                     aires[s]+=aire;
@@ -195,7 +195,7 @@ AnyType MetricPk:: operator()(Stack stack) const
                 
                 for(int j=0; j<3; ++j){
                     const int s= Th(i,j);
-                    Deriv[m_dim*s+0]+= aire*f[0]*invHauteur[j].x; //contribution � l'estimation des d�riv�es troisi�mes.
+                    Deriv[m_dim*s+0]+= aire*f[0]*invHauteur[j].x; //contribution � l'estimation des d�riv�es troisi�mes.
                     Deriv[m_dim*s+1]+= aire*(f[0]*invHauteur[j].y/3.+f[1]*invHauteur[j].x*2./3.);
                     Deriv[m_dim*s+2]+= aire*(f[2]*invHauteur[j].x/3.+f[1]*invHauteur[j].y*2./3.);
                     Deriv[m_dim*s+3]+= aire*f[2]*invHauteur[j].y;
@@ -208,7 +208,7 @@ AnyType MetricPk:: operator()(Stack stack) const
                 
                 for(int j=0; j<3; ++j){
                     const int s= Th(i,j);
-                    Deriv[m_dim*s+0]+= f[0]*invHauteur[j].x*aire; //contribution � l'estimation des d�riv�es quatri�mes.
+                    Deriv[m_dim*s+0]+= f[0]*invHauteur[j].x*aire; //contribution � l'estimation des d�riv�es quatri�mes.
                     Deriv[m_dim*s+1]+= (f[0]*invHauteur[j].y/4.   +f[1]*invHauteur[j].x*3./4.)*aire;
                     Deriv[m_dim*s+2]+= (f[1]*invHauteur[j].y/2.   +f[2]*invHauteur[j].x/2.)*aire;
                     Deriv[m_dim*s+3]+= (f[2]*invHauteur[j].y*3./4.+f[3]*invHauteur[j].x/4.)*aire;
@@ -222,7 +222,7 @@ AnyType MetricPk:: operator()(Stack stack) const
                 
                 for(int j=0; j<3; ++j){
                     const int s= Th(i,j);
-                    Deriv[m_dim*s+0]+= f[0]*invHauteur[j].x*aire; //contribution � l'estimation des d�riv�es quatri�mes.
+                    Deriv[m_dim*s+0]+= f[0]*invHauteur[j].x*aire; //contribution � l'estimation des d�riv�es quatri�mes.
                     Deriv[m_dim*s+1]+= (f[0]*invHauteur[j].y/5.+f[1]*invHauteur[j].x*4./5.)*aire;
                     Deriv[m_dim*s+2]+= (f[1]*invHauteur[j].y*2./5.+f[2]*invHauteur[j].x*3./5.)*aire;
                     Deriv[m_dim*s+3]+= (f[2]*invHauteur[j].y*3./5.+f[3]*invHauteur[j].x*2./5.)*aire;
diff --git a/examples++-load/MetricPk.cpp.orig b/examples++-load/MetricPk.cpp.orig
deleted file mode 100644
index 1fd53e5..0000000
--- a/examples++-load/MetricPk.cpp.orig
+++ /dev/null
@@ -1,423 +0,0 @@
-//  // ---------------------------------------------------------------------
-// $Id$
-// compile and link with ff-c++ metric_Pk.cpp 
-#include  <iostream>
-#include  <cfloat>
-#include  <cmath>
-using namespace std;
-#include "ff++.hpp" 
-using namespace Fem2D;
-
-
-#include <vector>
-//typedef std::vector<R>::iterator Rptr;
-//typedef std::vector<R>::const_iterator const_Rptr;
-//template <class A> inline A * to_ptr(std::vector<A>::iterator it){return &*it;}
-//template <class A> inline const A * to_ptr(std::vector<A>::const_iterator it){return &*it;}
-
-
-#include "TensorK.hpp"
-//the main class
-
-class MetricPk :  public E_F0mps 
-{
-public:
-    static basicAC_F0::name_and_type name_param[] ;
-    static const int n_name_param=10;
-    
-    Expression nargs[n_name_param];// stocker les argunments nommes
-
-  typedef KN_<double>  Result;
-  Expression expTh;
-  Expression expu;
-    
-  MetricPk(const basicAC_F0 & args)
-  {
-    args.SetNameParam(n_name_param,name_param,nargs);// les arguments nommes
-    expTh= to<pmesh>(args[0]);  // a the expression to get the mesh
-    expu= to<double>(args[1]);  // a the expression to get the mesh
-    /*
-    exphmin= to<double>(args[2]);  // a the expression to get the mesh
-    exphmax= to<double>(args[3]);  // a the expression to get the mesh
-    experr= to<double>(args[4]);  // a the expression to get the mesh
-    //  a array expression [ a, b]
-    const E_Array * ma= dynamic_cast<const E_Array*>((Expression) args[5]);
-    const E_Array * mp= dynamic_cast<const E_Array*>((Expression) args[6]);
-    if (ma->size() != 3) CompileError("syntax: MetricKuate(Th,np,o,err,[m11,m12,m22],[xx,yy])");
-    if (mp->size() != 2) CompileError("syntax: MetricKuate(Th,np,o,err,[m11,m12,m22],[xx,yy])");
-    int err =0;
-    m11= CastTo<KN<double> * >((*ma)[0]); // fist exp of the array (must be a  double)
-    m12= CastTo<KN<double> * >((*ma)[1]); // second exp of the array (must be a  double)
-    m22= CastTo<KN<double> * >((*ma)[2]); // second exp of the array (must be a  double)
-    px= CastTo<double * >((*mp)[0]); // fist exp of the array (must be a  double)
-    py= CastTo<double * >((*mp)[1]); // second exp of the array (must be a  double)
-     */
-  }
-    double arg(int i,Stack stack,double a) const { return nargs[i] ? GetAny<double>( (*nargs[i])(stack) ): a;}
-    long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-    bool arg(int i,Stack stack,bool a) const{ return nargs[i] ? GetAny<bool>( (*nargs[i])(stack) ): a;}
-    KN<double> * arg(int i,Stack stack,KN<double> * a) const{ return nargs[i] ? GetAny<KN<double> *>( (*nargs[i])(stack) ): a;}
- 
-    
-  ~MetricPk(){}
-
-  static ArrayOfaType  typeargs()
-  { return  ArrayOfaType(
-			 atype<pmesh>(),
-			 atype<double>());;
-  }
-  static  E_F0 * f(const basicAC_F0 & args){ return new MetricPk(args);}
-  AnyType operator()(Stack s) const ;// la vraie fonction qui fait faire le boulot 
-
-};
-
-basicAC_F0::name_and_type MetricPk::name_param[MetricPk::n_name_param] = {
-    { "kDeg",               &typeid(long)},  
-    { "rDeg",               &typeid(long)},  
-    { "iterJacobiDeriv",    &typeid(long)},
-    { "iterJacobiMetric",   &typeid(long)},
-    { "Derivatives",        &typeid(KN<double>*)},
-    { "rmax",               &typeid(double)},
-    { "mass",               &typeid(double)},
-    { "TriangulationType",  &typeid(long)},
-    { "MetricType",         &typeid(long)},
-    { "pExp",               &typeid(double)}
-  };
-
-AnyType MetricPk:: operator()(Stack stack) const 
-{
-    /************* r�cup�ration des arguments ****************/
-    
-    const long k_deg=  arg(0,stack,2L);   // Finite element of degree k_deg will be used for approximation.
-    const long m_deg=k_deg+1;             // Derivatives of degree m_deg = k_deg+1 will be estimated.
-    const long m_dim=m_deg+1;             // The description of these derivatives requires m_dim = m_deg+1 coefficients.
-    const long nDOFt=((k_deg+1)*(k_deg+2))/2;   // Number of Lagrange points on each triangle.
-    
-    const long r_deg=  arg(1,stack,1L);   // The function is approximated in the W^r,p Sobolev semi-norm.
-    const double p_exp = arg(9,stack,2.);
-    
-    const long iterJacobiDeriv  = arg(2,stack,3L); // The derivatives are slightly smoothed before use.
-    const long iterJacobiMetric = arg(3,stack,3L); // The riemannian metric is slightly smoothed before being returned.
-    
-    const double rmax=arg(5,stack,1.);      //Not used yet. (Lower bound for the metric)
-    const double mass=arg(6,stack,1000.);   // Mass of the metric returned, i.e. mass = int sqrt(det M). 
-    // In practice, bamg produces a mesh with nt=2*mass elements.
-    
-    const TensorK::triangulation_type ttype = TensorK::triangulation_type(arg(7,stack,long(0))); // Type of triangulation on which approx will be done.
-    const TensorK::which_matrix wmat = TensorK::which_matrix(arg(8,stack,long(1))); // Type of metric. Do not change.
-
-    
-    TensorK tk(m_deg, r_deg, ttype, wmat, p_exp);
-    
-    cout << "Approximation of " << r_deg << "th derivatives using finite elements of degree " << k_deg << ", in the L^" << p_exp << " norm.\n"; 
-    cout << "Triangulation type : " << ttype << "; Graded=0, Quasi_Acute(refined)=1, Quasi_Acute_Unrefined=2, Quasi_Acute_Proved(refined)=3" << endl;
-    //cout << "Metric type : " << wmat << "M0_alone=0, M1_alone=1, M0_M1_weighted_sum=2" << endl;
-
-    Mesh * pTh = GetAny<pmesh>((*expTh)(stack));
-    ffassert(pTh);
-    const Mesh & Th= *pTh; 
-
-    /************ initialisations ***************/
-    
-    //the metric
-    const int nv = Th.nv;
-    KN<double> * pMetric=new KN<double>(nv*3);
-    KN<double> & metric= * pMetric;
-    metric=0.; 
-    
-    if(!tk.is_valid){
-        cout << "Error : Unsupported parameters for MetricPk!\n";
-        Add2StackOfPtr2Free(stack,pMetric);
-        return SetAny<KN<double> > (metric); //identically zero metric is returned in case of error
-    }
-    
-    //Lagrange points.
-    const R2 QLagrange[5][15]={
-        {R2(1./3.,1./3.)},  //k_deg=0, barycenter.
-        {R2(0,0),R2(1,0),R2(0,1)},
-        {R2(0,0),R2(1,0),R2(0,1),R2(0.5,0.5),R2(0,0.5),R2(0.5,0)},
-        {R2(0,0),R2(1,0),R2(0,1),R2(2./3.,1./3.),R2(1./3.,2./3.),R2(0,2./3.),R2(0,1./3.),R2(1./3.,0),R2(2./3.,0),R2(1/3.,1/3.)},
-        {R2(0,0),R2(1,0),R2(0,1),R2(3./4.,1./4.),R2(1./2.,1./2.),R2(1./4.,3./4.),R2(0.,3./4.),R2(0.,1./2.),R2(0.,1./4.),R2(1./4.,0),R2(1./2.,0),R2(3./4.,0),
-            R2(1./4.,1./2.),R2(1./2.,1./4.),R2(1./4.,1./4.)}
-    };
-    
-    std::vector<R> aires; aires.resize(nv);         //area of the "cell" surrounding a point
-    std::vector<R> Deriv; Deriv.resize(m_dim*nv);   //estimate of the derivatives at a point
-    std::vector<R> DOFt; DOFt.resize(nDOFt);        //degrees of freedom on a triangle
-    
-    //le bord
-    //Th.ElementAdj(k,ie); renvoie k', �crase ie par ie';
-    // is frontiere k' <0 ou k'==k
-    //Seg
-    //BoundaryElement (+r�cent)
-    //Th.nbe ou Th.neb
-    //Th.be(i)  Th.be(i)[0] ou Th.be(i)[1]
-    std::vector<int> nextv; nextv.resize(nv); fill(nextv.begin(), nextv.end(), -1);
-    for(int i=0; i<Th.nt; ++i) for(int ie=0; ie<3; ++ie) {
-        int iee=ie;
-        const int j = Th.ElementAdj(i,iee);
-        if(j==i || j <0)    nextv[Th(i,(ie+1)%3)]=Th(i,(ie+2)%3); //nextv[Th(i,(ie+1)%3)]=Th(i,(ie+2)%3);
-    }
-    
-//    cout << "next point on boundary\n"; for(int i=0; i<nv; ++i) cout << " " << nextv[i]; cout << "\n";
-    
-//  for(int i=0; i<Th.neb; ++i) nextv[Th.be(i)[0]]=Th.be(i)[1]; //ne convient pas : les num�ros sont oubli�s, seuls les points sont conserv�s.
-    
-    /********* estimation des d�riv�es ***********/
-    for(int i=0; i<Th.nt; ++i){
-        const Triangle &K=Th[i];           
-        const R2 sommets[3]={K(R2(0,0)),K(R2(1,0)),K(R2(0,1))};
-        const R aire=det(sommets[0],sommets[1],sommets[2])/2;
-        const R2 invHauteur[3]={perp(sommets[1]-sommets[2])/(2*aire),perp(sommets[2]-sommets[0])/(2*aire),perp(sommets[0]-sommets[1])/(2*aire)};
-        
-        for(int dof=0; dof<nDOFt; ++dof){   //Degrees of freedom on the triangle
-            const R2 Point=K(QLagrange[k_deg][dof]);
-            MeshPointStack(stack)->set(Point.x,Point.y);
-            DOFt[dof]= GetAny<double>((*expu)(stack));
-        }
-        
-        double f[m_deg]; //contains the derivatives of order
-        switch(m_deg){
-            case 2:{    //accolades n�cessaires pour d�clarer des variables dans un case
-                double f[2]; tk.getDerivatives(DOFt,invHauteur,f); //f={fx,fy}
-                
-                for(int j=0; j<3; ++j){
-                    const int s= Th(i,j); //le sommet j du triangle i
-                    Deriv[m_dim*s+0]+= aire* f[0]*invHauteur[j].x; //contribution � l'estimation des d�riv�es secondes.
-                    Deriv[m_dim*s+1]+= aire*(f[0]*invHauteur[j].y/2.+f[1]*invHauteur[j].x/2.);
-                    Deriv[m_dim*s+2]+= aire* f[1]*invHauteur[j].y;
-                    aires[s]+=aire;
-                }
-                break;
-            }
-            case 3:{
-                double f[3]; tk.getDerivatives(DOFt,invHauteur,f); //f={fxx,fxy,fyy}
-                
-                for(int j=0; j<3; ++j){
-                    const int s= Th(i,j);
-                    Deriv[m_dim*s+0]+= aire*f[0]*invHauteur[j].x; //contribution � l'estimation des d�riv�es troisi�mes.
-                    Deriv[m_dim*s+1]+= aire*(f[0]*invHauteur[j].y/3.+f[1]*invHauteur[j].x*2./3.);
-                    Deriv[m_dim*s+2]+= aire*(f[2]*invHauteur[j].x/3.+f[1]*invHauteur[j].y*2./3.);
-                    Deriv[m_dim*s+3]+= aire*f[2]*invHauteur[j].y;
-                    aires[s]+=aire;
-                }
-                break;
-            }
-            case 4:{
-                double f[4]; tk.getDerivatives(DOFt,invHauteur,f); //f={fxxx,fxxy,fxyy,fyyy}
-                
-                for(int j=0; j<3; ++j){
-                    const int s= Th(i,j);
-                    Deriv[m_dim*s+0]+= f[0]*invHauteur[j].x*aire; //contribution � l'estimation des d�riv�es quatri�mes.
-                    Deriv[m_dim*s+1]+= (f[0]*invHauteur[j].y/4.   +f[1]*invHauteur[j].x*3./4.)*aire;
-                    Deriv[m_dim*s+2]+= (f[1]*invHauteur[j].y/2.   +f[2]*invHauteur[j].x/2.)*aire;
-                    Deriv[m_dim*s+3]+= (f[2]*invHauteur[j].y*3./4.+f[3]*invHauteur[j].x/4.)*aire;
-                    Deriv[m_dim*s+4]+= f[3]*invHauteur[j].y*aire;
-                    aires[s]+=aire;
-                }
-                break;
-            }
-            case 5:{
-                double f[5]; tk.getDerivatives(DOFt,invHauteur,f); //f={fxxxx,fxxxy,fxxyy,fxyyy,fyyyy}
-                
-                for(int j=0; j<3; ++j){
-                    const int s= Th(i,j);
-                    Deriv[m_dim*s+0]+= f[0]*invHauteur[j].x*aire; //contribution � l'estimation des d�riv�es quatri�mes.
-                    Deriv[m_dim*s+1]+= (f[0]*invHauteur[j].y/5.+f[1]*invHauteur[j].x*4./5.)*aire;
-                    Deriv[m_dim*s+2]+= (f[1]*invHauteur[j].y*2./5.+f[2]*invHauteur[j].x*3./5.)*aire;
-                    Deriv[m_dim*s+3]+= (f[2]*invHauteur[j].y*3./5.+f[3]*invHauteur[j].x*2./5.)*aire;
-                    Deriv[m_dim*s+4]+= (f[3]*invHauteur[j].y*4./5.+f[4]*invHauteur[j].x/5.)*aire;
-                    Deriv[m_dim*s+5]+= f[4]*invHauteur[j].y*aire;
-                    aires[s]+=aire;
-                }
-            } //case m_deg==5
-        } //switch m_deg
-    } //for i triangle
-    
-    for(int i=0; i<nv; ++i)    for(int j=0; j<m_dim; ++j)  Deriv[m_dim*i+j]*=3/aires[i]; 
-    
-    //Estimating derivatives on the boundary by averaging neighboring estimates in the interior.
-    //First the graph distance to the interior is estimated, using Dijkstra's algorithm.
-    {
-        multimap<int,int> connectivity; // this is probably already computed by FreeFem. Where ?
-        vector<pair<int,int> > dist; //(distance,number)
-        set<int> computed;
-        
-        for(int i=0; i<Th.nt; ++i){ //Obtaining the connectivity
-            const int u=Th(i,0), v=Th(i,1), w=Th(i,2);
-            if(nextv[u]==-1 && nextv[v]==-1 && nextv[w]==-1) continue; // attention is restricted to the boundary.
-            connectivity.insert(pair<int,int>(u,v)); connectivity.insert(pair<int,int>(v,u));
-            connectivity.insert(pair<int,int>(v,w)); connectivity.insert(pair<int,int>(w,v));
-            connectivity.insert(pair<int,int>(w,u)); connectivity.insert(pair<int,int>(u,w));
-            if(nextv[u]==-1 && computed.insert(u).second==true) dist.push_back(pair<int,int>(u,0)); 
-            if(nextv[v]==-1 && computed.insert(v).second==true) dist.push_back(pair<int,int>(v,0)); 
-            if(nextv[w]==-1 && computed.insert(w).second==true) dist.push_back(pair<int,int>(w,0)); 
-        }
-        
-        for(int i=0; i<dist.size(); ++i){ //Dijkstra's algorithm.
-            const int u=dist[i].first; const int du=dist[i].second;
-            computed.insert(u);
-            const pair<multimap<int,int>::iterator, multimap<int,int>::iterator> ret = connectivity.equal_range(u);
-            for(multimap<int,int>::iterator it=ret.first; it!=ret.second; ++it){
-                const int v=it->second;
-                if(computed.insert(v).second) dist.push_back(pair<int,int>(v,du+1));
-            }
-        }
-        
-        map<int,int> dist_sorted; dist_sorted.insert(dist.begin(), dist.end());
-        
-        for(int i=0; i<dist.size(); ++i){
-            const int u=dist[i].first; const int du=dist[i].second;
-            if(du==0) continue;
-            const pair<multimap<int,int>::iterator, multimap<int,int>::iterator> neighbors = connectivity.equal_range(u);
-            int closer_neighbors=0;
-            for(multimap<int,int>::iterator it=neighbors.first; it!=neighbors.second; ++it){
-                const int v=it->second;
-                const int dv=dist_sorted.find(v)->second;
-                if(du!=dv+1) continue;
-                closer_neighbors++;
-                for(int k=0; k<m_dim; ++k) Deriv[m_dim*u+k]+=Deriv[m_dim*v+k];
-            }
-            for(int k=0; k<m_dim; ++k) Deriv[m_dim*u+k]/=closer_neighbors;
-        }
-    }
-    
-    // Averaging derivatives
-    std::vector<int> cardNeighbors; cardNeighbors.resize(nv); 
-    for(int i=0; i<Th.nt; ++i) for(int j=0; j<3; ++j) cardNeighbors[Th(i,j)]+=3;
-    
-    {
-        std::vector<R> DerivNew; DerivNew.resize(m_dim*nv);
-        
-        for(int r=0; r<iterJacobiDeriv; ++r){
-            
-            fill(DerivNew.begin(), DerivNew.end(), 0);
-            
-            for(int i=0; i<Th.nt; ++i){
-                const int u=Th(i,0); const int v=Th(i,1); const int w=Th(i,2);
-                for(int k=0; k<m_dim; ++k){
-                    const R sum = Deriv[m_dim*u+k]+Deriv[m_dim*v+k]+Deriv[m_dim*w+k];
-                    DerivNew[m_dim*u+k]+=sum; DerivNew[m_dim*v+k]+=sum; DerivNew[m_dim*w+k]+=sum;
-                }//for k
-            }//for i triangles
-            
-            for(int i=0; i<nv; ++i) for(int k=0; k<m_dim; ++k) Deriv[m_dim*i+k]= DerivNew[m_dim*i+k]/cardNeighbors[i]; 
-        }
-    }
-
-    //Exporting the derivatives, if required
-    KN<double> * pDerivRes=  arg(4,stack,(KN<double> *)0);
-    if(pDerivRes){
-        ffassert( pDerivRes->N()== m_dim*nv); 
-        KN<double> &DerivRes = *pDerivRes;
-        for(int i=0; i<m_dim*nv; ++i)
-            DerivRes[i]=Deriv[i]; 
-    }
-    
-    /**************** Computing the "L^infinity homogeneous" metric ************/
-    
-    std::vector<R> ih_metric; ih_metric.resize(3*nv);
-    for(int i=0; i<nv; ++i)  tk.getM(&Deriv[m_dim*i],&ih_metric[3*i]);
-    
-    //Jacobi iterations
-    //the power -1/2 of the metrics, which is homogenous to a distance, is averaged.
-//    cout << "!!!!!!!!!! HELLO !!!!!!!!!!!\n";
-//    for(int i=0; i<nv; ++i) if(ih_metric[3*i]==0 && ih_metric[3*i+1]==0 && ih_metric[3*i+2]==0) {
-//        cout << Th(i).x << "," << Th(i).y << endl;
-//        for(int j=0; j<m_dim; ++j) cout << Deriv[m_dim*i+j] << ",";
-//        cout << "jacobi deriv : " << iterJacobiDeriv << endl;
-//    }
-    
-    // Averaging the metric
-    {
-        for(int i=0; i<nv; ++i) TensorK::PowSym(&ih_metric[3*i],-0.5); 
-        
-        std::vector<double> ih_metricNew; ih_metricNew.resize(3*nv);
-        for(int r=0; r<iterJacobiMetric; ++r){
-            
-            fill(ih_metricNew.begin(),ih_metricNew.end(),0);
-            
-            for(int i=0; i<Th.nt; ++i){
-                const int u=Th(i,0); const int v=Th(i,1); const int w=Th(i,2);
-                for(int k=0; k<3; ++k){
-                    const R sum = ih_metric[3*u+k]+ih_metric[3*v+k]+ih_metric[3*w+k]; 
-                    ih_metricNew[3*u+k]+=sum; ih_metricNew[3*v+k]+=sum; ih_metricNew[3*w+k]+=sum;
-                }//for k
-            }//for i triangles
-            for(int i=0; i<nv; ++i) for(int k=0; k<3; ++k) ih_metric[3*i+k]=ih_metricNew[3*i+k]/cardNeighbors[i];
-        }
-        
-        for(int i=0; i<nv; ++i) TensorK::PowSym(&ih_metric[3*i],-2);
-    }
-
-    /**************** Multiplicator to obtain prescribed mass and to balance errors ****************/ 
-    // Note : future versions could include hmin and hmax parameters.
-    {
-        const long d_dim = 2; // Space Dimension : 2
-        
-        //M : Metric for the L^p norm, M_0 metric for the L^infty norm
-        const R alpha = -1./((m_deg-r_deg)*p_exp+d_dim); // M = (det M_0)^alpha M_0
-        const R beta = (m_deg-r_deg)*p_exp/( ((m_deg-r_deg)*p_exp+d_dim)*2.);  // integrate sqrt(det M) = integrate (det M_0)^beta; beta = (alpha*d_dim+1)/2.
-        //const R tau = 2./(m_deg-r_deg+1);
-        
-        
-        for(int i=0; i<nv; ++i) aires[i]/=3;
-        R totalArea = 0; for(int i=0; i<nv; ++i) totalArea += aires[i];
-        //cout << "totalArea : " << totalArea << "\n";
-        
-        R totalMass = 0; for(int i=0; i<nv; ++i) totalMass += aires[i]*pow(TensorK::det(&ih_metric[3*i]), beta); //Eigen[i][0]*Eigen[i][1]
-        const R gamma = pow(mass/totalMass,1./(beta*d_dim)); // gamma satisfies integrate (det (gamma M_0) )^beta = mass
-        for(int i=0; i<nv; ++i) {
-            const R lambda = gamma*pow(square(gamma)*TensorK::det(&ih_metric[3*i]), alpha); //Eigen[i][0]*Eigen[i][1]
-            for(int j=0; j<3; ++j) metric[3*i+j]=lambda*ih_metric[3*i+j]; 
-        }
-        
-        R obtainedMass = 0; for(int i=0; i<nv; ++i) obtainedMass += aires[i]*sqrt(TensorK::det(metric+3*i));
-        cout << "Desired Mass : " << mass << "; obtained mass " << obtainedMass << endl;
-    }
-    
-    Add2StackOfPtr2Free(stack,pMetric);
-    return SetAny<KN<double> > (metric);
-    
-    /* //example by F.Hecht
-    for( int k=0;k<Th.nt; ++k)
-    {
-        const Triangle &K=Th[k];
-        for (int i=0;i<6;++i)
-        {
-            R2 Pi=K(Q2[i]);
-            MeshPointStack(stack)->set(Pi.x,Pi.y);
-            R uP= GetAny<double>((*expu)(stack));
-            cout << Pi << " " << uP << endl;
-            if(i<3) 
-            { int s= Th(k,i); // le sommet i du triangle k.
-                metric[3*s+0] =uP;
-                metric[3*s+1] =uP+1; 
-                metric[3*s+2] =uP+3;                    
-            }
-                
-        }
-    }
-     */   
-}
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-Init init;*/
-static void Load_Init()
-=======
-class Init { public:
-  Init();
-};
-Init init;
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  cout << "\n  -- lood: init MetricPk\n";
-  Global.Add("MetricPk","(", new OneOperatorCode<MetricPk >( ));
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/NewSolver.cpp.orig b/examples++-load/NewSolver.cpp.orig
deleted file mode 100644
index 65feced..0000000
--- a/examples++-load/NewSolver.cpp.orig
+++ /dev/null
@@ -1,354 +0,0 @@
-//  file to add UMFPACK solver with dynamic load.
-//ff-c++-LIBRARY-dep: umfpack amd blas 
-//ff-c++-cpp-dep: 
-
-#include  <iostream>
-using namespace std;
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-
-#include "MatriceCreuse_tpl.hpp"
-
- 
-#ifdef HAVE_LIBUMFPACK
-extern "C" {
-#ifdef HAVE_UMFPACK_H
-#include <umfpack.h>
-#else
-#ifdef HAVE_UMFPACK_UMFPACK_H
-#include <umfpack/umfpack.h>
-#else
-#ifdef HAVE_BIG_UMFPACK_UMFPACK_H
-#include <UMFPACK/umfpack.h>
-#else
-#ifdef HAVE_UFSPARSE_UMFPACK_H
-#include <ufsparse/umfpack.h>
-#else
-#ifdef HAVE_SUITESPARSE_UMFPACK_H
-#include <suitesparse/umfpack.h>
-#else
-
-  // Defaults to a local version of the UMFPACK headers
-#include "../../download/include/umfpack.h"
-
-#endif // HAVE_SUITESPARSE_UMFPACK_H
-#endif // HAVE_UFSPARSE_UMFPACK_H
-#endif // HAVE_BIG_UMFPACK_UMFPACK_H
-#endif // HAVE_UMFPACK_UMFPACK_H
-#endif // HAVE_UMFPACK_H
-}
-#endif
-template<class R>
-class SolveUMFPACK :   public MatriceMorse<R>::VirtualSolver  {
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  void *Symbolic, *Numeric ;
-  int umfpackstrategy;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-public:
-  SolveUMFPACK(const MatriceMorse<R> &A,int strategy,double ttgv, double epsilon=1e-6,
-	       double pivot=-1.,double pivot_sym=-1.  ) : 
-    eps(epsilon),epsr(0),
-    tgv(ttgv),
-    Symbolic(0),Numeric(0)  ,
-    umfpackstrategy(strategy),
-    tol_pivot_sym(pivot_sym),tol_pivot(pivot)
-  { 
-    
-    int status;
-    throwassert( !A.sym() && Numeric == 0 && Symbolic==0 );
-    int n=A.n;
-    double Control[UMFPACK_CONTROL];
-    double Info[UMFPACK_INFO];
-    
-    for(int i=0;i<UMFPACK_CONTROL;i++) Control[i]=0;
-    for(int i=0;i<UMFPACK_INFO;i++) Info[i]=0;
-    
-    umfpack_di_defaults (Control) ;
-    Control[UMFPACK_PRL]=1;
-   // Control[UMFPACK_PIVOT_TOLERANCE]=1E-10;
-    
-    if(verbosity>4) Control[UMFPACK_PRL]=2;
-    if(tol_pivot_sym>0) Control[UMFPACK_SYM_PIVOT_TOLERANCE]=pivot_sym;
-    if(tol_pivot>0) Control[UMFPACK_PIVOT_TOLERANCE]=pivot;
-    if(umfpackstrategy>=0)   Control[UMFPACK_STRATEGY]=umfpackstrategy;
-    if(verbosity>3) { 
-      cout << "  UMFPACK real  Solver Control :" ;
-      cout << "\n\t SYM_PIVOT_TOLERANCE "<< Control[UMFPACK_SYM_PIVOT_TOLERANCE];
-      cout << "\n\t PIVOT_TOLERANCE     "<< Control[UMFPACK_PIVOT_TOLERANCE];
-      cout << "\n\t PRL                 "<< Control[UMFPACK_PRL];
-      cout << "\n";      
-    }
-    
-    status = umfpack_di_symbolic (n, n, A.lg, A.cl, A.a, &Symbolic,Control,Info) ;
-    if (status !=  0)
-    {
-      (void) umfpack_di_report_matrix (n, n, A.lg, A.cl, A.a, 1, Control) ;
-
-	umfpack_di_report_info (Control, Info) ;
-	umfpack_di_report_status (Control, status) ;
-	cerr << "umfpack_di_symbolic failed" << endl;
-	ExecError("umfpack_di_symbolic failed");
-	//ffassert(0);
-    }
-
-    status = umfpack_di_numeric (A.lg, A.cl, A.a, Symbolic, &Numeric,Control,Info) ;
-    if (status !=  0)
-    {
-	umfpack_di_report_info (Control, Info) ;
-	umfpack_di_report_status (Control, status) ;
-	cerr << "umfpack_di_numeric failed" << endl;
-	ExecError("umfpack_di_numeric failed");
-	ffassert(0);
-    }
-
-    if (Symbolic) umfpack_di_free_symbolic (&Symbolic),Symbolic=0; 
-    if(verbosity>3)
-    cout << "  -- umfpack_di_build LU " << n <<  endl;
-    if(verbosity>5)     (void)  umfpack_di_report_info(Control,Info);
-
-  }
-  void Solver(const MatriceMorse<R> &A,KN_<R> &x,const KN_<R> &b) const  {
-    ffassert ( &x[0] != &b[0]);
-    epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-    // cout << " epsr = " << epsr << endl;
-    double Control[UMFPACK_CONTROL];
-    double Info[UMFPACK_INFO];
-    for(int i=0;i<UMFPACK_CONTROL;i++) Control[i]=0;
-    for(int i=0;i<UMFPACK_INFO;i++) Info[i]=0;
-    int n= b.N(); 
-     ffassert(A.ChecknbLine( n) && n == x.N() && A.ChecknbColumn(n) );
-    
-     umfpack_di_defaults (Control) ;
-     // change UMFPACK_At to UMFPACK_Aat in complex 
-     int status = umfpack_di_solve (UMFPACK_Aat, A.lg, A.cl, A.a,KN_2Ptr<R> (x), KN_2Ptr<R>(b), Numeric,Control,Info) ;
-    if (status != 0)
-    {
-	umfpack_di_report_info (Control, Info) ;
-	umfpack_di_report_status (Control, status) ;
-	cerr << "umfpack_di_solve failed" << endl;
-	ExecError("umfpack_di_solve failed");
-	
-	ffassert(0);
-    }
-     if(verbosity>2)
-    cout << " -- umfpack_di_solve " << endl;
-    if(verbosity>3)
-    cout << "   b min max " << b.min() << " " <<b.max() << endl;
-    if(verbosity>3)     (void)  umfpack_di_report_info(Control,Info);
-     if(verbosity>1) cout << "   x min max " << x.min() << " " <<x.max() << endl;
-  }
-
-  ~SolveUMFPACK() { 
-   if(verbosity>3)
-    cout << "~SolveUMFPACK S:" << Symbolic << " N:" << Numeric <<endl;
-    if (Symbolic)   umfpack_di_free_symbolic  (&Symbolic),Symbolic=0; 
-    if (Numeric)    umfpack_di_free_numeric (&Numeric),Numeric=0;
-  }
-  void addMatMul(const KN_<R> & x, KN_<R> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<R> &) (*this) * x; 
-  }
-     
-}; 
-
-
-template<>
-class SolveUMFPACK<Complex> :   public MatriceMorse<Complex>::VirtualSolver  {
-  double eps;
-  mutable double  epsr;
-  int umfpackstrategy;
-  double tgv;
-  void *Symbolic, *Numeric ;
-  double *ar,*ai;
-
-
-    double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-
-public:
-  SolveUMFPACK(const MatriceMorse<Complex> &A,int strategy,double ttgv, double epsilon=1e-6,
-     double pivot=-1.,double pivot_sym=-1.
-) : 
-    eps(epsilon),epsr(0),umfpackstrategy(strategy),tgv(ttgv),
-    Symbolic(0),Numeric(0),
-    ar(0),ai(0),
-    tol_pivot_sym(pivot_sym), 
-    tol_pivot(pivot)
-   { 
-    int status;
-    throwassert( !A.sym());
-    int n=A.n;
-    //  copy the coef of the matrice ---
-     ar= new double[A.nbcoef];
-     ai= new double[A.nbcoef];
-     ffassert(ar && ai);
-     C2RR(A.nbcoef,A.a,ar,ai);
-        
-    double Control[UMFPACK_CONTROL];
-    double Info[UMFPACK_INFO];
-    umfpack_zi_defaults (Control) ;
-    Control[UMFPACK_PRL]=1;
-    if(verbosity>4) Control[UMFPACK_PRL]=2;
-   //    Control[UMFPACK_SYM_PIVOT_TOLERANCE]=1E-10;
-  //  Control[UMFPACK_PIVOT_TOLERANCE]=1E-10;
-    if(tol_pivot_sym>0) Control[UMFPACK_SYM_PIVOT_TOLERANCE]=pivot_sym;
-    if(tol_pivot>0) Control[UMFPACK_PIVOT_TOLERANCE]=pivot;
-    if(umfpackstrategy>=0) Control[UMFPACK_STRATEGY]=umfpackstrategy;
-    if(verbosity>3) { 
-      cout << "  UMFPACK complex Solver Control :" ;
-      cout << "\n\t SYM_PIVOT_TOLERANCE "<< Control[UMFPACK_SYM_PIVOT_TOLERANCE];
-      cout << "\n\t PIVOT_TOLERANCE     "<< Control[UMFPACK_PIVOT_TOLERANCE];
-      cout << "\n\t PRL                 "<< Control[UMFPACK_PRL];
-      cout << "\n";      
-    }
-    status = umfpack_zi_symbolic (n, n, A.lg, A.cl, ar,ai, &Symbolic,Control,Info) ;
-    if (status < 0)
-    {
-      (void) umfpack_zi_report_matrix (n, n, A.lg, A.cl, ar,ai, 1, Control) ;
-
-	umfpack_zi_report_info (Control, Info) ;
-	umfpack_zi_report_status (Control, status) ;
-	cerr << "umfpack_zi_symbolic failed" << endl;
-	ExecError("umfpack_zi_symbolic failed");
-	ffassert(0);
-	exit(2);
-    }
-
-    status = umfpack_zi_numeric (A.lg, A.cl, ar,ai, Symbolic, &Numeric,Control,Info) ;
-    if (status < 0)
-    {
-	umfpack_zi_report_info (Control, Info) ;
-	umfpack_zi_report_status (Control, status) ;
-	cerr << "umfpack_zi_numeric failed" << endl;
-	ExecError("umfpack_zi_numeric failed");
-	ffassert(0);
-	exit(2);
-    }
-
-    if (Symbolic) umfpack_zi_free_symbolic (&Symbolic),Symbolic=0; 
-    if(verbosity>3)
-    cout << "umfpack_zi_build LU " << n <<  endl;
-    if(verbosity>5)     (void)  umfpack_zi_report_info(Control,Info);
-
-  }
-  void Solver(const MatriceMorse<Complex> &A,KN_<Complex> &x,const KN_<Complex> &b) const  {
-        ffassert ( &x[0] != &b[0]);
-    epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-    // cout << " epsr = " << epsr << endl;
-    double Control[UMFPACK_CONTROL];
-    double Info[UMFPACK_INFO];
-     umfpack_zi_defaults (Control) ;
-     int n = b.N();
-     ffassert(A.ChecknbLine( n) && n == x.N() && A.ChecknbColumn(n) );
-     KN<double> xr(n),xi(n),br(n),bi(n);
-     C2RR(n,b,br,bi);
-     // change UMFPACK_At to UMFPACK_Aat in complex  oct 2005 
-    int status = umfpack_zi_solve (UMFPACK_Aat, A.lg, A.cl, ar,ai, xr, xi, br,bi, Numeric,Control,Info) ;
-    if (status < 0)
-    {
-	umfpack_zi_report_info (Control, Info) ;
-	umfpack_zi_report_status (Control, status) ;
-	cerr << "umfpack_zi_solve failed" << endl;
-	ExecError("umfpack_zi_numeric failed");
-	ffassert(0);
-	exit(2);
-    }
-    RR2C(n,xr,xi,x);
-    if(verbosity>1)
-    {
-     cout << "  -- umfpack_zi_solve " << endl;
-     if(verbosity>3)     (void)  umfpack_zi_report_info(Control,Info);
-    
-      cout << "   b min max " << b.min() << " " <<b.max() << endl;
-      cout << "   x min max " << x.min() << " " <<x.max() << endl;
-    }
-  }
-
-  ~SolveUMFPACK() { 
-    if(verbosity>5)
-    cout << "~SolveUMFPACK " << endl;
-    if (Symbolic)   umfpack_zi_free_symbolic  (&Symbolic),Symbolic=0; 
-    if (Numeric)    umfpack_zi_free_numeric (&Numeric),Numeric=0;
-    delete [] ar;
-    delete [] ai;   
-  }
-  void addMatMul(const KN_<Complex> & x, KN_<Complex> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<Complex> &) (*this) * x; 
-  }
-     
-
-}; 
-
-inline MatriceMorse<double>::VirtualSolver *
-BuildSolverIUMFPack(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-  if( verbosity>9)
-    cout << " BuildSolverUMFPack<double>" << endl;
-    return new SolveUMFPACK<double>(*A,ds.strategy,ds.tgv,ds.epsilon,ds.tol_pivot,ds.tol_pivot_sym);
-}
-
-inline MatriceMorse<Complex>::VirtualSolver *
-BuildSolverIUMFPack(DCL_ARG_SPARSE_SOLVER(Complex,A))
-{
-  if( verbosity>9)
-    cout << " BuildSolverUMFPack<Complex>" << endl;
-    return new SolveUMFPACK<Complex>(*A,ds.strategy,ds.tgv,ds.epsilon,ds.tol_pivot,ds.tol_pivot_sym);
-}
-
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-
-
-bool SetUMFPACK()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse solver to IUMFPack" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverIUMFPack;
-    DefSparseSolver<Complex>::solver =BuildSolverIUMFPack;    
-    TypeSolveMat::defaultvalue =TypeSolveMatdefaultvalue;
-    return  true;
-}
-
-<<<<<<< HEAD
-/*  class Init { public:
-    Init();
-};
-$1 */
-static void Load_Init(){    
-=======
-class Init { public:
-    Init();
-};
-LOADINIT(Init);
-Init::Init(){    
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  if(verbosity>1)
-    cout << "\n Add: UMFPACK:  defaultsolver defaultsolverUMFPACK" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  
-  DefSparseSolver<double>::solver =BuildSolverIUMFPack;
-  DefSparseSolver<Complex>::solver =BuildSolverIUMFPack;
-
-  if(! Global.Find("defaulttoUMFPACK").NotNull() )
-    Global.Add("defaulttoUMFPACK","(",new OneOperator0<bool>(SetUMFPACK));  
-}
-
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/PARDISO.cpp.orig b/examples++-load/PARDISO.cpp.orig
deleted file mode 100644
index ceb4772..0000000
--- a/examples++-load/PARDISO.cpp.orig
+++ /dev/null
@@ -1,261 +0,0 @@
-// SUMMARY  :   PARDISO interface
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : P. Jolivet 
-// E-MAIL   : Pierre Jolivet <pierre.jolivet at ljll.math.upmc.fr>
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- */
-//ff-c++-LIBRARY-dep:  mkl
-//#include <mpi.h>
-#include <mkl_pardiso.h>
-#include <mkl_spblas.h>
-#include <mkl_types.h>
-#if 0
-#include <omp.h>
-#else
-
-extern "C" {
-extern int    omp_get_max_threads  (void);
-extern int     omp_get_num_threads  (void);
-extern void    omp_set_num_threads (int);
-}
-#endif
-#include "rgraph.hpp"
-#include "AFunction.hpp"
-
-#include "MatriceCreuse.hpp"
-#include "dmatrix.hpp"
-
-template<typename RR> struct  PARDISO_STRUC_TRAIT {  typedef void R;static  const int unSYM=0;static const int SYM=0;};
-template<> struct PARDISO_STRUC_TRAIT<double>  { typedef double R;static const int unSYM=11;static const int SYM=2;};
-template<> struct PARDISO_STRUC_TRAIT<Complex>  { typedef Complex R;static const int unSYM=13;static const int SYM=-4;};
-
-void mkl_csrcsc (MKL_INT * job, MKL_INT * n, Complex *Acsr, MKL_INT * AJ0, MKL_INT * AI0, Complex *Acsc, MKL_INT * AJ1, MKL_INT * AI1, MKL_INT * info)
-{ mkl_zcsrcsc (job,n,reinterpret_cast<MKL_Complex16*>(Acsr),AJ0,AI0,reinterpret_cast<MKL_Complex16*>(Acsc),AJ1,AI1,info);}
-
-void mkl_csrcsc (MKL_INT * job, MKL_INT * n, double *Acsr, MKL_INT * AJ0, MKL_INT * AI0, double *Acsc, MKL_INT * AJ1, MKL_INT * AI1, MKL_INT * info)
-{ mkl_dcsrcsc (job,n,Acsr,AJ0,AI0,Acsc,AJ1,AI1,info);}
-
-
-template<class R>
-class SolverPardiso : public MatriceMorse<R>::VirtualSolver {
-    private:
-        mutable void* _pt[64];
-        mutable MKL_INT _mtype;
-        mutable MKL_INT _iparm[64];
-        mutable MatriceMorse<R>* ptA;
-        MKL_INT* _I;
-        MKL_INT* _J;
-    
-    public:
-    typedef typename  PARDISO_STRUC_TRAIT<R>::R MR;
-
-        SolverPardiso(const MatriceMorse<R> &A, KN<long> &param_int, KN<double> &param_double) {
-            ptA = (MatriceMorse<R>*)(&A);
-            MKL_INT phase, error, msglvl;
-            MR ddum;
-            R* _C;
-            if(A.symetrique)
-                _mtype =  PARDISO_STRUC_TRAIT<R>::SYM;
-            else {
-                if(param_int)
-                    _mtype = param_int[0];
-                else
-                    _mtype = PARDISO_STRUC_TRAIT<R>::unSYM;
-            }
-            for (unsigned short i = 0; i < 64; ++i) {
-                _iparm[i] = 0;
-                _pt[i] = NULL;
-            }
-            _iparm[0] = 1;      /* No solver default */
-            _iparm[1] = 3;      /* Fill-in reordering from METIS */
-            _iparm[2] = 1;
-            _iparm[3] = 0;      /* No iterative-direct algorithm */
-            _iparm[4] = 0;      /* No user fill-in reducing permutation */
-            _iparm[5] = 0;      /* Write solution into rhs */
-            _iparm[6] = 0;      /* Not in use */
-            _iparm[7] = 0;      /* Max numbers of iterative refinement steps */
-            _iparm[8] = 0;      /* Not in use */
-            _iparm[9] = 13;     /* Perturb the pivot elements with 1E-13 */
-            _iparm[10] = 1;     /* Use nonsymmetric permutation and scaling MPS */
-            _iparm[11] = 0;     /* Not in use */
-            _iparm[12] = 0;     /* Maximum weighted matching algorithm is switched-off (default for symmetric). Try _iparm[12] = 1 in case of inappropriate accuracy */
-            _iparm[13] = 0;     /* Output: Number of perturbed pivots */
-            _iparm[14] = 0;     /* Not in use */
-            _iparm[15] = 0;     /* Not in use */
-            _iparm[16] = 0;     /* Not in use */
-            _iparm[17] = -1;    /* Output: Number of nonzeros in the factor LU */
-            _iparm[18] = -1;    /* Output: Mflops for LU factorization */
-            _iparm[19] = 0;     /* Output: Numbers of CG Iterations */
-            _iparm[34] = 1;
-            msglvl = 0;         /* Print statistical information in file */
-            if(verbosity > 1)
-                msglvl = 1;
-            error = 0;          /* Initialize error flag */
-            phase = 12;
-            MKL_INT one = 1;
-            MKL_INT n = A.n;
-            if(_mtype != 2) {
-                _I = A.lg;
-                _J = A.cl;
-                _C = A.a;
-            }
-            else {
-                if(A.symetrique) {
-                    int job[6] = { 0, 0, 0, 0, 0, 1 };
-                    _I = new MKL_INT[n + 1];
-                    _J = new MKL_INT[A.nbcoef];
-                    _C = new R[A.nbcoef];
-                    mkl_csrcsc(job, &n, reinterpret_cast<MR*>( A.a), A.cl, A.lg, reinterpret_cast<MR*>(_C), _J, _I, &error);
-                }
-                else {
-                    _I = new MKL_INT[n + 1];
-                    _J = new MKL_INT[n + (A.nbcoef - n) / 2];
-                    _C = new R[n + (A.nbcoef - n) / 2];
-                    trimCSR<true, 'C',R>(n, _I, A.lg, _J, A.cl, _C, A.a);
-                }
-            }
-            PARDISO(_pt, &one, &one, &_mtype, &phase,
-                    &n, reinterpret_cast<MR*>(_C), _I, _J, &one, &one, _iparm, &msglvl, &ddum, &ddum, &error);
-            if(_C != A.a)
-                delete [] _C;
-        };
-
-        void Solver(const MatriceMorse<R> &A, KN_<R> &x, const KN_<R> &b) const  {
-            MKL_INT one    = 1;
-            MKL_INT msglvl = 0;
-            if(verbosity > 1)
-                msglvl = 1;
-            MKL_INT error  = 0;
-            MKL_INT phase = 33;
-            MR ddum;
-            MKL_INT n = A.n;
-            PARDISO(_pt, &one, &one, &_mtype, &phase, &n, &ddum, _I, _J, &one, &one, _iparm, &msglvl, reinterpret_cast<MR*>((R*)b), reinterpret_cast<MR*>((R*)x), &error);
-        };
-
-        ~SolverPardiso() {
-            MKL_INT phase = -1;
-            MKL_INT one = 1;
-            MKL_INT msglvl = 0;
-            MKL_INT error;
-            MR ddum;
-            MKL_INT idum;
-            MKL_INT n = ptA->n;
-            PARDISO(_pt, &one, &one, &_mtype, &phase, &n, &ddum, &idum, &idum, &one, &one, _iparm, &msglvl, &ddum, &ddum, &error);
-            if(_mtype == 2) {
-                if(_I)
-                    delete [] _I;
-                if(_J)
-                    delete [] _J;
-            }
-        };
-};
-
-template<class R>
-typename MatriceMorse<R>::VirtualSolver* buildSolver(DCL_ARG_SPARSE_SOLVER(R, A)) {
-    return new SolverPardiso<R>(*A, ds.lparams, ds.dparams);
-}
-extern  TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue;
-bool SetPARDISO()
-{
-    if(verbosity>1)
-        cout << " SetDefault sparse solver to MUMPS" << endl;
-    DefSparseSolver<double>::solver  = buildSolver<double>;
-    DefSparseSolver<Complex>::solver = buildSolver<Complex>;
-    DefSparseSolverSym<double>::solver  = buildSolver<double>;
-    DefSparseSolverSym<Complex>::solver = buildSolver<Complex>;
-    TypeSolveMat::defaultvalue =TypeSolveMatdefaultvalue;
-    return 0;
-}
-<<<<<<< HEAD
-/*  class Init {
-=======
-/*
-class Init {
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    public:
-        Init();
-};
-
-
-
-<<<<<<< HEAD
-$1 */
-
-
-=======
-LOADINIT(Init);
-
-Init::Init() {
-    TypeSolveMat::defaultvalue = TypeSolveMat::SparseSolver;
-    DefSparseSolver<double>::solver = buildSolver<double>;
-    DefSparseSolver<Complex>::solver = buildSolver<Complex>;
-}
-*/
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-
-static long ffompgetnumthreads(){return omp_get_num_threads();}
-static long ffompgetmaxthreads(){return omp_get_max_threads();}
-
-static long ffompsetnumthreads(long n){omp_set_num_threads(n); return n;}
-
-<<<<<<< HEAD
-static void Load_Init() {
-  //}static void initPARDISO()
-  //{
-    
-    if(verbosity>1)
-        cout << "\n Add: PARDISO:  defaultsolver defaultsolverPARDISO" << endl;
-    TypeSolveMat::defaultvalue = TypeSolveMat::SparseSolver;
-    DefSparseSolver<double>::solver = buildSolver<double>;
-    DefSparseSolver<Complex>::solver = buildSolver<Complex>;
-
-=======
-void initPARDISO()
-{
-    
-    if(verbosity>1)
-        cout << "\n Add: PARDISO:  defaultsolver defaultsolverPARDISO" << endl;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    DefSparseSolver<double>::solver  = buildSolver;
-    DefSparseSolver<Complex>::solver = buildSolver;
-    DefSparseSolverSym<double>::solver  = buildSolver;
-    DefSparseSolverSym<Complex>::solver = buildSolver;
-    TypeSolveMat::defaultvalue =TypeSolveMatdefaultvalue;
-     if(! Global.Find("defaulttoPARDISO").NotNull() )
-        Global.Add("defaulttoPARDISO","(",new OneOperator0<bool>(SetPARDISO));
-    if(! Global.Find("ompsetnumthreads").NotNull() )
-    Global.Add("ompsetnumthreads","(",new OneOperator1<long,long>(ffompsetnumthreads));
-    if(! Global.Find("ompgetnumthreads").NotNull() )
-    Global.Add("ompgetnumthreads","(",new OneOperator0<long>(ffompgetnumthreads));
-    if(! Global.Find("ompgetmaxthreads").NotNull() )
-        Global.Add("ompgetmaxthreads","(",new OneOperator0<long>(ffompgetmaxthreads));
-
-}
-
-
-<<<<<<< HEAD
-//LOADFUNC(initPARDISO);
-LOADFUNC(Load_Init)
-=======
-LOADFUNC(initPARDISO);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/SuperLu.cpp.orig b/examples++-load/SuperLu.cpp.orig
deleted file mode 100644
index ef2b1bd..0000000
--- a/examples++-load/SuperLu.cpp.orig
+++ /dev/null
@@ -1,794 +0,0 @@
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep:   superlu blas 
-//ff-c++-cpp-dep: 
-//  for Super4.0 library   
-#include "ff++.hpp"
-#include "slu_ddefs.h"
-#include "superlu_enum_consts.h"
-#define GlobalLU_t GlobalLU_txxxx
-#define countnz countnzxxxx
-#define fixupL fixupLxxxx
-#define print_lu_col print_lu_colxxxx
-#define check_tempv check_tempvxxxx
-#define PrintPerf PrintPerfxxxx
-#define ilu_countnz  ilu_countnzxxxx
-#include "slu_zdefs.h"
-
-#undef GlobalLU_t
-#undef countnz
-#undef fixupL
-#undef print_lu_col
-#undef check_tempv
-#undef PrintPerf
-#undef ilu_countnz
-
-
-template <class R> struct SuperLUDriver
-{
-    
-};
-
-template <> struct SuperLUDriver<double>
-{
-    /* Driver routines */
-    static  Dtype_t R_SLU_T() { return SLU_D;} 
-    static void
-    gssv(superlu_options_t * p1, SuperMatrix * p2, int * p3, int * p4, SuperMatrix * p5,
-	  SuperMatrix * p6, SuperMatrix * p7 , SuperLUStat_t * p8, int * p9)
-    { dgssv( p1,p2,p3,p4,p5,p6,p7,p8,p9); }
-    
-    
-    static void
-	gssvx(superlu_options_t * p1, SuperMatrix * p2, int * p3, int * p4, int * p5,
-	       char * p6, double * p7, double * p8, SuperMatrix * p9, SuperMatrix * p10,
-	       void * p11, int p12, SuperMatrix * p13, SuperMatrix * p14,
-	       double * p15, double * p16, double * p17, double * p18,
-	       mem_usage_t * p19, SuperLUStat_t * p20, int * p21)
-    { dgssvx( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,  p11,p12,p13,p14,p15,p16,p17,p18,p19,p20, p21); }
-    
-    
-    
-    /* Supernodal LU factor related */
-    static void
-	Create_CompCol_Matrix(SuperMatrix * p1, int p2 , int p3, int p4, double * p5,
-			       int * p6, int * p7, Stype_t p8, Dtype_t p9 , Mtype_t p10)
-    {
-	    dCreate_CompCol_Matrix( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10);
-    }
-    
-    
-    static void
-	Create_CompRow_Matrix(SuperMatrix * p1, int p2, int p3, int p4, double * p5,
-			       int * p6, int * p7, Stype_t p8, Dtype_t p9, Mtype_t p10)
-    {
-	dCreate_CompRow_Matrix( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10);
-    }
-    
-    
-    static void
-	Create_Dense_Matrix(SuperMatrix * p1, int p2, int p3, double * p4, int p5,
-			     Stype_t p6, Dtype_t p7, Mtype_t p8)
-    {
-	dCreate_Dense_Matrix( p1,p2,p3,p4,p5,p6,p7,p8);
-    }
-    
-    
-    static void
-	Create_SuperNode_Matrix(SuperMatrix * p1, int p2, int p3, int p4, double * p5, 
-				 int * p6, int * p7, int * p8, int * p9, int * p10,
-				 Stype_t p11, Dtype_t p12, Mtype_t p13)
-    {
-	    dCreate_SuperNode_Matrix( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,  p11,p12,p13);
-    }
-    
-    static void 
-    CompRow_to_CompCol(int p1, int p2, int p3, 
-		       double *p4, int *p5, int *p6,
-		       double **p7, int **p8, int **p9)
-  {
-    dCompRow_to_CompCol( p1, p2, p3, p4, p5, p6, p7, p8, p9);
-  }
-
-    
-};
-
-
-
-template <> struct SuperLUDriver<Complex>
-{
-    /* Driver routines */
-  static  Dtype_t R_SLU_T() { return SLU_Z;} 
-  static doublecomplex *dc(Complex *p)  { return (doublecomplex *) (void *) p;}
-  static doublecomplex **dc(Complex **p)  { return (doublecomplex **) (void *) p;}
-  
-    static void
-    gssv(superlu_options_t * p1, SuperMatrix * p2, int * p3, int * p4, SuperMatrix * p5,
-	 SuperMatrix * p6, SuperMatrix * p7 , SuperLUStat_t * p8, int * p9)
-    { zgssv( p1,p2,p3,p4,p5,p6,p7,p8,p9); }
-    
-    
-    static void
-    gssvx(superlu_options_t * p1, SuperMatrix * p2, int * p3, int * p4, int * p5,
-	  char * p6, double * p7, double * p8, SuperMatrix * p9, SuperMatrix * p10,
-	  void * p11, int p12, SuperMatrix * p13, SuperMatrix * p14,
-	  double * p15, double * p16, double * p17, double * p18,
-	  mem_usage_t * p19, SuperLUStat_t * p20, int * p21)
-    { zgssvx( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,  p11,p12,p13,p14,p15,p16,p17,p18,p19,p20, p21); }
-    
-    
-    
-    /* Supernodal LU factor related */
-    static void
-    Create_CompCol_Matrix(SuperMatrix * p1, int p2 , int p3, int p4, Complex * p5,
-			  int * p6, int * p7, Stype_t p8, Dtype_t p9 , Mtype_t p10)
-    {
-	zCreate_CompCol_Matrix( p1,p2,p3,p4,dc(p5),p6,p7,p8,p9,p10);
-    }
-    
-    
-    static void
-    Create_CompRow_Matrix(SuperMatrix * p1, int p2, int p3, int p4, Complex * p5,
-			  int * p6, int * p7, Stype_t p8, Dtype_t p9, Mtype_t p10)
-    {
-	zCreate_CompRow_Matrix( p1,p2,p3,p4,dc(p5),p6,p7,p8,p9,p10);
-    }
-    
-    
-    static void
-    Create_Dense_Matrix(SuperMatrix * p1, int p2, int p3, Complex * p4, int p5,
-			Stype_t p6, Dtype_t p7, Mtype_t p8)
-    {
-	zCreate_Dense_Matrix( p1,p2,p3,dc(p4),p5,p6,p7,p8);
-    }
-    
-    
-    static void
-    Create_SuperNode_Matrix(SuperMatrix * p1, int p2, int p3, int p4, Complex * p5, 
-			    int * p6, int * p7, int * p8, int * p9, int * p10,
-			    Stype_t p11, Dtype_t p12, Mtype_t p13)
-    {
-	zCreate_SuperNode_Matrix( p1,p2,p3,p4,dc(p5),p6,p7,p8,p9,p10,  p11,p12,p13);
-    }
-    
-  static void 
-  CompRow_to_CompCol(int p1, int p2, int p3, Complex *p4, int *p5, 
-		     int *p6, Complex **p7, int **p8, int **p9)
-  {
-    zCompRow_to_CompCol( p1, p2, p3, dc(p4), p5, p6, dc(p7), p8, p9);
-  }
-    
-};
-
-// read options for superlu in freefem++
-/*
-#ifdef __cpluscplus
-int s_(char *ff, ...)
-{
-  int i = 0;
-  while( *(++i+&str) != 0 )
-    if( strcmp(str, (char*)*(&str+i)) == 0)
-      return i;
-  return 0;
-}
-
-#else
-*/
-int s_(char* str, const char* cmp[])
-{
-  int i = 0;
-  while( cmp[i] != 0){
-    if( strcmp(str, cmp[i]) == 0){
-      //cout << *str << " return" << i << endl;
-      return i+1 ;
-    }
-    i++;
-  }
-  //cout << *str << " return 0" << endl;
-  return 0;
-}
-//#endif
-/*
-  static const yes_no_t  enumyes_no_t[2] = {NO, YES};
-  static const fact_t  enumfact_t[4] = {DOFACT, SamePattern, SamePattern_SameRowPerm, FACTORED};
-  static const colperm_t  enumcolperm_t[5] = {NATURAL, MMD_ATA, MMD_AT_PLUS_A, COLAMD, MY_PERMC};
-  static const trans_t  enumtrans_t[3] = {NOTRANS, TRANS, CONJ};
-  static const  IterRefine_t enumIterRefine_t[4] = {NOREFINE, SINGLE, DOUBLE, EXTRA};  
-  
-  static const char*  compyes_no_t[] = {"NO", "YES",0};
-  static const char* compfact_t[] = {"DOFACT", "SamePattern", "SamePattern_SameRowPerm", "FACTORED",0};
-  static const char* compcolperm_t[] = {"NATURAL", "MMD_ATA", "MMD_AT_PLUS_A", "COLAMD", "MY_PERMC",0};
-  static const char* comptrans_t[] = {"NOTRANS", "TRANS", "CONJ",0};
-  static const char* compIterRefine_t[] = {"NOREFINE", "SINGLE", "DOUBLE", "EXTRA",0};
-  
-  static const char* comp[] = {"Fact", "Equil","ColPerm",
-  "DiagPivotThresh","Trans","IterRefine",
-  "SymmetricMode","PivotGrowth","ConditionNumber",
-  "PrintStat",0};
-*/
-
-void read_options_freefem(string string_option, superlu_options_t *options){
-  static const yes_no_t  enumyes_no_t[2] = {NO, YES};
-  static const fact_t  enumfact_t[4] = {DOFACT, SamePattern, SamePattern_SameRowPerm, FACTORED};
-  static const colperm_t  enumcolperm_t[5] = {NATURAL, MMD_ATA, MMD_AT_PLUS_A, COLAMD, MY_PERMC};
-  static const trans_t  enumtrans_t[3] = {NOTRANS, TRANS, CONJ};
-  static const  IterRefine_t enumIterRefine_t[4] = {NOREFINE, SLU_SINGLE, SLU_DOUBLE, SLU_EXTRA};  
-
-  static const char*  compyes_no_t[] = {"NO", "YES",0};
-  static const char* compfact_t[] = {"DOFACT", "SamePattern", "SamePattern_SameRowPerm", "FACTORED",0};
-  static const char* compcolperm_t[] = {"NATURAL", "MMD_ATA", "MMD_AT_PLUS_A", "COLAMD", "MY_PERMC",0};
-  static const char* comptrans_t[] = {"NOTRANS", "TRANS", "CONJ",0};
-  static const char* compIterRefine_t[] = {"NOREFINE", "SINGLE", "DOUBLE", "EXTRA",0};
-  
-  static const char* comp[] = {"Fact", "Equil","ColPerm",
-			       "DiagPivotThresh","Trans","IterRefine",
-			       "SymmetricMode","PivotGrowth","ConditionNumber",
-			       "PrintStat",0};
-
-
-   /* Set the default values for options argument:
-	options.Fact = DOFACT;
-	options.Equil = YES;
-	options.ColPerm = COLAMD;
-	options.DiagPivotThresh = 1.0;
-	options.Trans = NOTRANS;
-	options.IterRefine = NOREFINE;
-	options.SymmetricMode = NO;
-	options.PivotGrowth = NO;
-	options.ConditionNumber = NO;
-	options.PrintStat = YES;
-    */
-  //cout << "string_option" <<  *string_option << endl;
-    KN<char> kdata(string_option.size()+1);
-    
-    char * data=kdata;
-  strcpy( data, string_option.c_str()); 
-  cout << "data=" << data << endl;
-  char * tictac;
-  tictac = strtok(data," =,\t\n");
-  cout << "tictac=" << data << endl;
-// #ifdef __cplusplus
-//   while(tictac != NULL){
-//     int id_option = s_(tictac, "Fact", "Equil","ColPerm",
-// 				"DiagPivotThresh","Trans","IterRefine",
-// 				"SymmetricMode","PivotGrowth","ConditionNumber",
-// 				"PrintStat",0);
-//     tictac = strtok(NULL," ,\t\n");
-//     int val_options;
-//     switch (id_option)
-//       { 
-//       case 1 : // Fact
-// 	val_options= s_(tictac, "DOFACT", "SamePattern", "SamePattern_SameRowPerm", "FACTORED",0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","Fact");
-// 	  exit(1);
-// 	}
-// 	options->Fact= enumfact_t[val_options-1];
-// 	break;
-//       case 2:  // Equil
-// 	val_options= s_(tictac, "NO", "YES", 0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","Equil");
-// 	  exit(1);
-// 	}
-// 	options->Equil= enumyes_no_t[val_options-1];
-// 	break;
-//       case 3:  // ColPerm
-// 	val_options= s_(tictac,"NATURAL", "MMD_ATA", "MMD_AT_PLUS_A", "COLAMD", "MY_PERMC", 0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","ColPerm");
-// 	  exit(1);
-// 	}
-// 	options->ColPerm= enumcolperm_t[val_options-1];
-//       case 4:  // DiagPivotThresh
-// 	options->DiagPivotThresh= strtod(tictac,&tictac);
-// 	break;
-//       case 5:  // Trans
-// 	val_options= s_(tictac, "NOTRANS", "TRANS", "CONJ",0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","Trans");
-// 	  exit(1);
-// 	}
-// 	options->Trans= enumtrans_t[val_options-1];
-// 	break;
-//       case 6:  // IterRefine
-// 	val_options= s_(tictac, "NOREFINE", "SINGLE", "DOUBLE", "EXTRA",0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","IterRefine");
-// 	  exit(1);
-// 	}
-// 	options->IterRefine= enumIterRefine_t[val_options-1];
-// 	break;
-//       case 7:  // SymmetricMode
-// 	val_options= s_(tictac, "NO","YES",0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","SymmetricMode");
-// 	  exit(1);
-// 	}
-// 	options->SymmetricMode= enumyes_no_t[val_options-1];
-// 	break;
-//       case 8:  // PivotGrowth
-// 	val_options= s_(tictac, "NO","YES",0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","PivotGrowth");
-// 	  exit(1);
-// 	}
-// 	options->PivotGrowth= enumyes_no_t[val_options-1];
-// 	break;
-//       case 9:  // ConditionNumber
-// 	val_options= s_(tictac, "NO","YES",0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","ConditionNumber");
-// 	  exit(1);
-// 	}
-// 	options->ConditionNumber = enumyes_no_t[val_options-1];
-// 	break;
-//       case 10: // PrintStat
-// 	val_options= s_(tictac, "NO","YES",0);
-// 	if( val_options == 0){
-// 	  printf("value given for SuperLU for options %s is not correct\n","PrintStat");
-// 	  exit(1);
-// 	}
-// 	options->PrintStat = enumyes_no_t[val_options-1];
-// 	break;
-//       case 0: // Equivalent of case default
-// 	printf("A false parameter for  SuperLU is given %s \n",tictac);
-// 	exit(1);
-//       }  
-//     tictac = strtok(NULL," ,\t\n");
-//   }
-// #else
-  while(tictac != NULL){
-    //char* comp[] = {"Fact", "Equil","ColPerm",
-    //"DiagPivotThresh","Trans","IterRefine",
-    //"SymmetricMode","PivotGrowth","ConditionNumber",
-    //"PrintStat",0 };
-    int id_option = s_(tictac, comp);
-    tictac = strtok(NULL," =,\t\n");
-    int val_options;
-
-    switch (id_option)
-      { 
-      case 1 : // Fact
-	//char* comp1[] = {"DOFACT", "SamePattern", "SamePattern_SameRowPerm", "FACTORED",0};
-	val_options= s_(tictac,compfact_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","Fact");
-	  exit(1);
-	}
-	options->Fact = enumfact_t[val_options-1];
-	break;
-      case 2:  // Equil
-	//char* comp2[] = {"NO", "YES", 0};
-	val_options= s_(tictac,compyes_no_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","Equil");
-	  exit(1);
-	}
-	options->Equil = enumyes_no_t[val_options-1];
-	break;
-      case 3:  // ColPerm
-	//char* comp3[] = {"NATURAL", "MMD_ATA", "MMD_AT_PLUS_A", "COLAMD", "MY_PERMC", 0};
-	val_options= s_(tictac,compcolperm_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","ColPerm");
-	  exit(1);
-	}
-	options->ColPerm = enumcolperm_t[val_options-1];
-	break;
-      case 4:  // DiagPivotThresh
-	options->DiagPivotThresh= strtod(tictac,&tictac);
-	break;
-      case 5:  // Trans
-	//char* comp5[] = {"NOTRANS", "TRANS", "CONJ", 0};
-	val_options= s_(tictac, comptrans_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","Trans");
-	  exit(1);
-	}
-	options->Trans = enumtrans_t[val_options-1];
-	break;
-      case 6:  // IterRefine
-	//char* comp6[] = {"NOREFINE", "SINGLE", "DOUBLE", "EXTRA", 0};
-	val_options= s_(tictac, compIterRefine_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","IterRefine");
-	  exit(1);
-	}
-	options->IterRefine = enumIterRefine_t[val_options-1];
-	break;
-      case 7:  // SymmetricMode
-	//char* comp7[] = {"NO","YES", 0};
-	val_options= s_(tictac, compyes_no_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","SymmetricMode");
-	  exit(1);
-	}
-	options->SymmetricMode= enumyes_no_t[val_options-1]; 
-	break;
-      case 8:  // PivotGrowth
-	//char* comp8[] = {"NO","YES", 0};
-	val_options= s_(tictac,compyes_no_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","PivotGrowth");
-	  exit(1);
-	}
-	options->PivotGrowth = enumyes_no_t[val_options-1];
-	break;
-      case 9:  // ConditionNumber
-	//char* comp9[] = {"NO","YES", 0};
-	val_options= s_(tictac, compyes_no_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","ConditionNumber");
-	  exit(1);
-	}
-	options->ConditionNumber = enumyes_no_t[val_options-1];
-	break;
-      case 10: // PrintStat
-	val_options= s_(tictac, compyes_no_t);
-	if( val_options == 0){
-	  printf("value given for SuperLU for options %s is not correct\n","PrintStat");
-	  exit(1);
-	}
-	options->PrintStat = enumyes_no_t[val_options-1];
-	break;
-      case 0: // Equivalent of case default
-	break;
-      }  
-    tictac = strtok(NULL," =,\t\n");
-  }
-  //#endif
-}
-
-  
-
-
-
-
-template<class R>
-class SolveSuperLU :   public MatriceMorse<R>::VirtualSolver, public SuperLUDriver<R>   {
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-  
-  
-  mutable char           equed[1];
-  yes_no_t       equil;
-  mutable SuperMatrix    A, L, U;
-  NCformat       *Astore;
-  NCformat       *Ustore;
-  SCformat       *Lstore;
-  R              *a;
-  int            *asub, *xa;
-  KN<int>             perm_c; /* column permutation vector */
-  KN<int>             perm_r; /* row permutations from partial pivoting */
-  string string_option;
-  //string *file_option;
-  //string *file_perm_r;
-  //string *file_perm_c;
-  
-  KN<int>            etree;
-  R         *rhsb, *rhsx, *xact;
-  double         *RR, *CC;
-  int m, n, nnz;
-  
-  R         *arow;
-  int       *asubrow, *xarow;
-  
-   
-   mutable superlu_options_t options;
-   mutable mem_usage_t    mem_usage;
-   
-public:
-  SolveSuperLU(const MatriceMorse<R> &AA,int strategy,double ttgv, double epsilon,
-	       double pivot,double pivot_sym, string & param_char, KN<long> pperm_r, 
-	       KN<long> pperm_c ) : 
-    eps(epsilon),epsr(0),
-    tgv(ttgv),
-    etree(0),string_option(param_char),perm_r(pperm_r), perm_c(pperm_c),
-    RR(0), CC(0), 
-    tol_pivot_sym(pivot_sym),tol_pivot(pivot)
-  { 
-     SuperMatrix    B, X;
-     SuperLUStat_t stat;
-     void           *work=0;
-     int            info, lwork=0, nrhs=1;
-     int            i;
-     double         ferr[1];
-     double         berr[1];
-     double          rpg, rcond;
-    
-     R *bb;
-     R *xx;
-
-     A.Store=0;
-     B.Store=0;
-     X.Store=0;
-     L.Store=0;
-     U.Store=0;
-	
-    int status;
-
-    n=AA.n;
-    m=AA.m;
-    nnz=AA.nbcoef;
-
-    arow=AA.a;
-    asubrow=AA.cl;
-    xarow=AA.lg;
-
-    /* FreeFem++ use Morse Format */ 
-    // FFCS - "this->" required by g++ 4.7
-    this->CompRow_to_CompCol(m, n, nnz, arow, asubrow, xarow, 
-		       &a, &asub, &xa);
-
-    /* Defaults */
-    lwork = 0;
-    nrhs  = 0;
-    
-    /* Set the default values for options argument:
-	options.Fact = DOFACT;
-	options.Equil = YES;
-	options.ColPerm = COLAMD;
-	options.DiagPivotThresh = 1.0;
-	options.Trans = NOTRANS;
-	options.IterRefine = NOREFINE;
-	options.SymmetricMode = NO;
-	options.PivotGrowth = NO;
-	options.ConditionNumber = NO;
-	options.PrintStat = YES;
-    */
-    set_default_options(&options);
-    
-    printf(".. default options:\n");
-    printf("\tFact\t %8d\n", options.Fact);
-    printf("\tEquil\t %8d\n", options.Equil);
-    printf("\tColPerm\t %8d\n", options.ColPerm);
-    printf("\tDiagPivotThresh %8.4f\n", options.DiagPivotThresh);
-    printf("\tTrans\t %8d\n", options.Trans);
-    printf("\tIterRefine\t%4d\n", options.IterRefine);
-    printf("\tSymmetricMode\t%4d\n", options.SymmetricMode);
-    printf("\tPivotGrowth\t%4d\n", options.PivotGrowth);
-    printf("\tConditionNumber\t%4d\n", options.ConditionNumber);
-    printf("..\n");
-    
-    if(!string_option.empty()) read_options_freefem(string_option,&options);
-    
-    printf(".. options:\n");
-    printf("\tFact\t %8d\n", options.Fact);
-    printf("\tEquil\t %8d\n", options.Equil);
-    printf("\tColPerm\t %8d\n", options.ColPerm);
-    printf("\tDiagPivotThresh %8.4f\n", options.DiagPivotThresh);
-    printf("\tTrans\t %8d\n", options.Trans);
-    printf("\tIterRefine\t%4d\n", options.IterRefine);
-    printf("\tSymmetricMode\t%4d\n", options.SymmetricMode);
-    printf("\tPivotGrowth\t%4d\n", options.PivotGrowth);
-    printf("\tConditionNumber\t%4d\n", options.ConditionNumber);
-    printf("..\n");
-
-    Dtype_t R_SLU = SuperLUDriver<R>::R_SLU_T(); 
-
-    // FFCS - "this->" required by g++ 4.7
-    this->Create_CompCol_Matrix(&A, m, n, nnz, a, asub, xa, SLU_NC, R_SLU, SLU_GE);
-  
-    this->Create_Dense_Matrix(&B, m, 0, (R*) 0, m, SLU_DN, R_SLU, SLU_GE);
-    this->Create_Dense_Matrix(&X, m, 0, (R*) 0, m, SLU_DN, R_SLU, SLU_GE);
-      
-
-      if ( etree.size() ==0 )   etree.resize(n);   
-      if ( perm_r.size() ==0 )   perm_r.resize(n);   
-      if ( perm_c.size() ==0 )   perm_c.resize(n);   
-     
-    if ( !(RR = new double[n]) )
-        ABORT("SUPERLU_MALLOC fails for R[].");
-    for(int ii=0; ii<n; ii++){
-      RR[ii]=1.;
-    }
-    if ( !(CC = new double[m]) )
-        ABORT("SUPERLU_MALLOC fails for C[].");
-    for(int ii=0; ii<n; ii++){
-      CC[ii]=1.;
-    }    
-    ferr[0]=0;
-    berr[0]=0;
-    /* Initialize the statistics variables. */
-    StatInit(&stat);
-    
-    /* ONLY PERFORM THE LU DECOMPOSITION */
-    B.ncol = 0;  /* Indicate not to solve the system */
-    SuperLUDriver<R>::gssvx(&options, &A, perm_c, perm_r, etree, equed, RR, CC,
-           &L, &U, work, lwork, &B, &X, &rpg, &rcond, ferr, berr,
-           &mem_usage, &stat, &info);
-
-   
-
-    if(verbosity>2)
-    printf("LU factorization: dgssvx() returns info %d\n", info);
-    if(verbosity>3)
-    {
-    if ( info == 0 || info == n+1 ) {
-	
-	if ( options.PivotGrowth ) printf("Recip. pivot growth = %e\n", rpg);
-	if ( options.ConditionNumber )
-	    printf("Recip. condition number = %e\n", rcond);
-        Lstore = (SCformat *) L.Store;
-        Ustore = (NCformat *) U.Store;
-	printf("No of nonzeros in factor L = %d\n", Lstore->nnz);
-    	printf("No of nonzeros in factor U = %d\n", Ustore->nnz);
-    	printf("No of nonzeros in L+U = %d\n", Lstore->nnz + Ustore->nnz - n);
-	printf("L\\U MB %.3f\ttotal MB needed %.3f\texpansions %d\n",
-	       mem_usage.for_lu/1e6, mem_usage.total_needed/1e6,
-	       stat.expansions
-	       );
-	fflush(stdout);
-	
-    } else if ( info > 0 && lwork == -1 ) {
-        printf("** Estimated memory: %d bytes\n", info - n);
-    }
-    }
-    if ( verbosity>5 ) StatPrint(&stat);
-    StatFree(&stat);
-    if( B.Store)  Destroy_SuperMatrix_Store(&B);
-    if( X.Store)  Destroy_SuperMatrix_Store(&X);
-    options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */
-
-
-  }
-  void Solver(const MatriceMorse<R> &AA,KN_<R> &x,const KN_<R> &b) const  {
-    SuperMatrix    B, X;
-    SuperLUStat_t stat;
-    void           *work=0;
-    int            info=0, lwork=0, nrhs=1;
-    int            i;
-    double       ferr[1], berr[1];
-    double         rpg, rcond;
-    double       *xx;
-
-    B.Store=0;
-    X.Store=0;
-    ffassert ( &x[0] != &b[0]);
-    epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-    Dtype_t R_SLU = SuperLUDriver<R>::R_SLU_T(); 
-
-      { 
-	  KN_2Ptr<R> xx(x),bb(b);
-	  // cout << " xx #### " << xx.c.N() << " "<< xx.ca.N() <<  " " << xx.ca.step << endl;
-	  //cout << " bb #### " << bb.c.N() << " "<< bb.ca.N() << " " << bb.ca.step <<endl;
-	  // FFCS - "this->" required by g++ 4.7
-	  this->Create_Dense_Matrix(&B, m, 1, bb, m, SLU_DN, R_SLU, SLU_GE);
-	  this->Create_Dense_Matrix(&X, m, 1, xx, m, SLU_DN, R_SLU, SLU_GE);
-	  
-	  B.ncol = nrhs;  /* Set the number of right-hand side */
-	  
-	  /* Initialize the statistics variables. */
-	  StatInit(&stat);
-	  
-	  
-	  SuperLUDriver<R>::gssvx(&options, &A, perm_c, perm_r, etree, equed, RR, CC,
-				  &L, &U, work, lwork, &B, &X, &rpg, &rcond, ferr, berr,
-				  &mem_usage, &stat, &info);
-	  
-	  
-	  
-	  if(verbosity>2)
-	      printf("Triangular solve: dgssvx() returns info %d\n", info);
-	  
-      }
-  
-   
-
-    if(verbosity>3)
-    {
-    if ( info == 0 || info == n+1 ) {
-	
-        /* This is how you could access the solution matrix. */
-        R *sol = (R*) ((DNformat*) X.Store)->nzval; 
-	
-	
-	if ( options.IterRefine ) {
-            printf("Iterative Refinement:\n");
-	    printf("%8s%8s%16s%16s\n", "rhs", "Steps", "FERR", "BERR");
-	    printf("%8d%8d%16e%16e\n", i+1, stat.RefineSteps, ferr[0], berr[0]);
-	}
-	fflush(stdout);
-    } else if ( info > 0 && lwork == -1 ) {
-        printf("** Estimated memory: %d bytes\n", info - n);
-    }
-    }
-    
-
-    //cout << "   x min max " << x.min() << " " <<x.max() << endl;
-    //cout << "=========================================" << endl;
-    if( B.Store)  Destroy_SuperMatrix_Store(&B);
-    if( X.Store)  Destroy_SuperMatrix_Store(&X);
-  }
-
-  ~SolveSuperLU() { 
-   if(verbosity>3)
-       cout << "~SolveSuperLU S:" << endl;
-   //   if (etree)    delete[] etree; 
-   //   if (perm_r)   delete[] perm_r; 
-   //   if (perm_c)   delete[] perm_c; 
-      if (RR)   delete[] RR; 
-      if (CC)   delete[] CC; 
-      if( A.Store)  Destroy_SuperMatrix_Store(&A);
-      if( L.Store)  Destroy_SuperNode_Matrix(&L);
-      if( U.Store)  Destroy_CompCol_Matrix(&U);
-      
-  }
-  void addMatMul(const KN_<R> & x, KN_<R> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<R> &) (*this) * x; 
-  }
-     
-}; 
-
-MatriceMorse<double>::VirtualSolver *
-BuildSolverSuperLU(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-    if(verbosity>9)
-    cout << " BuildSolverSuperLU<double>" << endl;
-    return new SolveSuperLU<double>(*A,ds.strategy,ds.tgv,ds.epsilon,ds.tol_pivot,ds.tol_pivot_sym,ds.sparams,ds.perm_r,ds.perm_c);
-}
-
-MatriceMorse<Complex>::VirtualSolver *
-BuildSolverSuperLU(DCL_ARG_SPARSE_SOLVER(Complex,A))
-{
-  if(verbosity>9)
-    cout << " BuildSolverSuperLU<Complex>" << endl;
-  return new SolveSuperLU<Complex>(*A,ds.strategy,ds.tgv,ds.epsilon,ds.tol_pivot,ds.tol_pivot_sym,ds.sparams,ds.perm_r,ds.perm_c);
-}
-
-
-<<<<<<< HEAD
-/*  class Init { public:
-    Init();
-    };*/
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetSuperLU()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse solver to SuperLU" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverSuperLU;
-    DefSparseSolver<Complex>::solver =BuildSolverSuperLU;    
-    TypeSolveMat::defaultvalue =TypeSolveMatdefaultvalue;
-    return  true;
-}
-
-<<<<<<< HEAD
-static void Load_Init()
-=======
-
-
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: SuperLU,  defaultsolverSuperLU" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuildSolverSuperLU;
-  DefSparseSolver<Complex>::solver =BuildSolverSuperLU;
-  Global.Add("defaulttoSuperLU","(",new OneOperator0<bool>(SetSuperLU));
-}
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/VTK_writer.cpp.orig b/examples++-load/VTK_writer.cpp.orig
deleted file mode 100644
index 467b975..0000000
--- a/examples++-load/VTK_writer.cpp.orig
+++ /dev/null
@@ -1,352 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : 
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Cedric Ody (not an expert in c++)
-// E-MAIL   : cedric.listes at gmail.com
-// from the work of  Sala Lorenzo (Dxwriter)
-
-#include "mode_open.hpp"
-#include <iostream>
-#include <cfloat>
-#include <cmath>
-#include <iterator>
-using namespace std;
-#include "ff++.hpp"
-using namespace Fem2D;
-
-class VtkWriter 
-{
- struct tsinfo
- {
-  int imesh;//!<index of the mesh
-  std::string name;
-  std::vector<double> vecistant;
- };
- 
-private:
- std::vector<Fem2D::Mesh*> _vecmesh;
- //std::vector<tsinfo> _vecofts;
- std::string _nameoffile;
-
- /*! This string contains the name of data file with \\ where there's a \ in the path*/
- std::string _nameofdatafile;
-
- //!files containing the data and the timeseries
- std::ofstream _ofdata;
-
-public:
- VtkWriter() { std::cout << "Constructor of VtkWriter" << endl;  }
- void openfiles(const std::string& s)
-  {
-   _nameoffile=s;
-   std::string tmp=s+".vtu";
-   std::cout<<tmp<<" ";
-   _ofdata.open(tmp.c_str(), std::ios_base::out);
-   _nameofdatafile="";
-   for(int i=0;i<tmp.length();++i)
-    {
-     if(tmp.at(i)=='\\')
-      _nameofdatafile.append(1,'\\');
-     _nameofdatafile.append(1,tmp.at(i));
-    }
-  }
-
- void addmesh(Fem2D::Mesh* mesh)
-  {
-   Fem2D::Mesh& Th(*mesh);
-   _vecmesh.push_back(mesh);
-   _ofdata.flags(std::ios_base::scientific);
-   _ofdata.precision(15);
-
-   _ofdata << "<?xml version=\"1.0\"?>" << std::endl;
-   _ofdata << "<VTKFile type=\"UnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\">" ;
-   _ofdata << std::endl;
-   _ofdata << "<UnstructuredGrid>" ; _ofdata << std::endl;
-   _ofdata << "<Piece NumberOfPoints=\"" << Th.nv << "\" NumberOfCells=\"" << Th.nt << "\">"; 
-   _ofdata << std::endl;
-   _ofdata << "<Points>" << std::endl;
-   _ofdata << "<DataArray type=\"Float32\" Name=\"Position\" NumberOfComponents=\"3\" format=\"ascii\">"; 
-   _ofdata << std::endl;
-   for(int k=0;k<Th.nv;++k) _ofdata << Th(k).x<<" "<<Th(k).y<< " " << 0.0 << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata << "</Points>" << std::endl;
-   _ofdata << "<Cells>" << std::endl;
-   _ofdata << "<DataArray type=\"Int32\" Name=\"connectivity\" NumberOfComponents=\"1\" format=\"ascii\">"; 
-   _ofdata << std::endl;
-   for(int i=0;i<Th.nt;++i)
-    for (int j=0; j <3; j++) _ofdata << Th(i,j) << " " ;
-   _ofdata << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata << "<DataArray type=\"Int32\" Name=\"offsets\" NumberOfComponents=\"1\" format=\"ascii\">"; 
-   _ofdata << std::endl;	
-   for(int i=0;i<Th.nt;++i)  _ofdata << 3+3*(i) << " ";
-   _ofdata << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata << "<DataArray type=\"UInt8\" Name=\"types\" NumberOfComponents=\"1\" format=\"ascii\">" ; 
-   _ofdata<< std::endl;	
-   for(int i=0;i<Th.nt;++i)  _ofdata << 5 << " ";
-   _ofdata << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata << "</Cells>" << std::endl; 
-   _ofdata << "<PointData >" << endl; 
-  }
- 
- double checkprecision(double val)
-  {
-   double tmp;
-   if ( val >= 0. ) tmp=max(0.,val);
-   if ( val <  0. ) tmp=min(0.,val);
-   return tmp;
-  }
-
- /*!Add a field*/
- void addscalar(const string& nameoffield, Fem2D::Mesh* mesh, const KN<double>&val)
-  {
-   _ofdata.flags(std::ios_base::scientific);
-   _ofdata.precision(15);
-
-   _ofdata << "<DataArray type=\"Float32\" Name=\"";
-   _ofdata << nameoffield<<"\" NumberOfComponents=\"1\" format=\"ascii\">";
-   _ofdata << std::endl;
-   for(int i=0;i<val.size();++i) _ofdata<<checkprecision(val[i])<<std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   
-   _ofdata.flush();
-  }
- 
-  /*!Add a field*/
- void addvector(const string& nameoffield, Fem2D::Mesh* mesh, const KN<double>&val, const KN<double>&val2)
-  {
-   _ofdata.flags(std::ios_base::scientific);
-   _ofdata.precision(15);
-
-   _ofdata << "<DataArray type=\"Float32\" Name=\"";
-   _ofdata << nameoffield<<"\" NumberOfComponents=\"3\" format=\"ascii\">";
-   _ofdata << std::endl;
-   for(int i=0;i<val.size();++i) _ofdata<<checkprecision(val[i])<< " " << checkprecision(val2[i]) << " " << 0.0 << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata.flush();
-  }
-
- /*!Get the mesh associated with the series nameofts*/
- Fem2D::Mesh* getmeshts(const string& nameofts)
-  {
-   return _vecmesh[0];
-  }
- 
- void init()
-  {
-   new(this)VtkWriter(); 
-  }
- 
- void destroy() 
-  {
-   if(_ofdata.is_open())
-    {
-     _ofdata << "</PointData>" << endl;	
-     _ofdata << "<CellData>" << endl; 	
-     _ofdata << "</CellData>" << endl; 
-     _ofdata << "</Piece>" << endl;
-     _ofdata << "</UnstructuredGrid>" << endl;
-     _ofdata << "</VTKFile>" << endl;
-     _ofdata.close(); 		
-    }
-  } 
-}; //End of class
-
-class Vtkwritesol_Op : public E_F0mps 
-{
-public:
- typedef long  Result;
- Expression edx;
- Expression ename;//!<name of time series or field
- Expression et;//!<time
- long what; // 1 scalar, 2 vector, 3 symtensor
- long nbfloat; // 1 scalar, n vector (3D), n symtensor(3D)
- Expression evct,evct2;
- 
-public:
- Vtkwritesol_Op(const basicAC_F0 &  args) :  what(0), nbfloat(0)
-  {
-   evct=0;
-   evct2=0;
-   int nbofsol;
-   int ddim=2;
-   //There's no named parameter
-   args.SetNameParam();
-   if(args.size()!=3)
-    {
-     CompileError("Vtkwritesol accepts only 4 parameters");
-    }
-   if (BCastTo<VtkWriter *>(args[0])) edx = CastTo<VtkWriter *>(args[0]);
-   if (BCastTo<string *>(args[1])) ename = CastTo<string *>(args[1]);
-   
-   if ( args[2].left()==atype<double>() )
-    {
-     what=1;
-     nbfloat=1;
-     evct=to<double>( args[2] );
-    }
-   else if ( args[2].left()==atype<double *>() )
-    {
-     what=1;
-     nbfloat=1;
-     evct=to<double>( args[2] );
-    }
-   else if ( BCastTo<pfer>(args[2]) )
-    {
-     what=1;
-     nbfloat=1;
-     evct=to<double>( args[2] );
-    }
-   else if ( args[2].left()==atype<E_Array>() )
-    {
-     std::cout << "Until now only scalar solution" << std::endl;
-     
-     int i=2;
-     const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-         
-     if( a0->size() == ddim){
-      // vector solution
-      what=2;
-      nbfloat=a0->size();
-      evct = to<double>( (*a0)[0]);
-      evct2 = to<double>( (*a0)[1]);
-      
-     }
-      cout << "Passed Until now only scalar solution" << std::endl;
-    }
-   else 
-    {
-     CompileError("savesol in 2D: Sorry no way to save this kind of data");
-    }
-   
-  }
- // all type
- static ArrayOfaType  typeargs() { return  ArrayOfaType(atype<VtkWriter *>(), atype<string *>(), true); }
- static  E_F0 * f(const basicAC_F0 & args) { return new Vtkwritesol_Op(args);} 
- AnyType operator()(Stack stack)  const ;
-}; // end of class
-
-
-AnyType Vtkwritesol_Op::operator()(Stack stack)  const 
-{ 
- MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
- VtkWriter &dx=*(GetAny<VtkWriter *>((*edx)(stack)));
- string &name=*(GetAny<string *>((*ename)(stack)));
- //double t=GetAny<double>((*et)(stack));
- Mesh &Th=*(dx.getmeshts(name));
- 
- int nt = Th.nt;
- int nv = Th.nv;
- 
- int nbsol=nv;
- long longdefault;
- 
- KN<double> valsol(nbsol);
- valsol=0.;
- KN<int> takemesh(nbsol);
- takemesh=0;
- MeshPoint *mp3(MeshPointStack(stack));
- for (int it=0;it<nt;it++)
-  {
-  for(int iv=0;iv<3;iv++)
-   {
-    int i=Th(it,iv);
-    mp3->setP(&Th,it,iv);					
-    valsol[i] = valsol[i] + GetAny< double >((*evct)(stack));			
-    ++takemesh[i];
-   }
-  }
- for(int i=0; i<nbsol; i++)
-  {
-   valsol[i] /= takemesh[i]; 
-  }
- 
- //Writes valsol on the file file
- if (what==1) dx.addscalar(name,&Th,valsol);
-
- if (what == 2)
-  {
-   KN<double> valsol2(nbsol);
-   valsol2=0.;
-   KN<int> takemesh(nbsol);
-   takemesh=0;
-   MeshPoint *mp3(MeshPointStack(stack));
-   for (int it=0;it<nt;it++)
-    {
-     for(int iv=0;iv<3;iv++)
-      {
-       int i=Th(it,iv);
-       mp3->setP(&Th,it,iv);					
-       valsol2[i] = valsol2[i] + GetAny< double >((*evct2)(stack));			
-       ++takemesh[i];
-      }
-    }
-   for(int i=0; i<nbsol; i++)
-    {
-     valsol2[i] /= takemesh[i]; 
-    }
-   
-   //Writes valsol on the file file
-   dx.addvector(name,&Th,valsol,valsol2);
-   
-  }
-
- return longdefault;
-
-}
-
-
-
-// le vrai constructeur est la
-VtkWriter* init_VtkWriter(VtkWriter * const &a, string * const & s)
-{
- std::cout << "start init_VtkWriter" << std::endl;
- a->init();
- a->openfiles(*s);
- std::cout << "end init_VtkWriter" << std::endl;
- return a;
-} 
-
-void* call_addmesh( VtkWriter * const & mt, Fem2D::Mesh* const & pTh) {
-  mt->addmesh(pTh);
-  return NULL;
-}
- 
-//   Add the function name to the freefem++ table 
-<<<<<<< HEAD
-/*  class Init 
-=======
-class Init 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-public:
- Init();
-};
-
-<<<<<<< HEAD
-$1 */
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
- 
- Dcl_Type<VtkWriter*>(InitP<VtkWriter>,Destroy<VtkWriter>); 
-// declare deux nouveau type pour freefem++  un pointeur et 
-
- zzzfff->Add("VtkWriter",atype<VtkWriter*>()); // ajoute le type myType a freefem++ 
- // constructeur  d'un type myType  dans freefem 
- TheOperators->Add("<-", new OneOperator2_<VtkWriter*, VtkWriter* ,string*>(&init_VtkWriter));
- Global.Add("Vtkaddmesh","(",new OneOperator2_<void *, VtkWriter*, Fem2D::Mesh*>(call_addmesh)); 
- Global.Add("Vtkaddscalar","(",new OneOperatorCode< Vtkwritesol_Op> );
- 
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/VTK_writer_3d.cpp.orig b/examples++-load/VTK_writer_3d.cpp.orig
deleted file mode 100644
index ba847c8..0000000
--- a/examples++-load/VTK_writer_3d.cpp.orig
+++ /dev/null
@@ -1,380 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : 
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Cedric Ody (not an expert in c++)
-// E-MAIL   : cedric.listes at gmail.com
-// from the work of  Sala Lorenzo (Dxwriter)
-
-#include "mode_open.hpp"
-#include <iostream>
-#include <cfloat>
-#include <cmath>
-#include <iterator>
-using namespace std;
-#include "ff++.hpp"
-//using namespace Fem2D;
-#include <set>
-#include <vector>
-//#include "msh3.hpp"
-
-class VtkWriter 
-{
- struct tsinfo
- {
-  int imesh;//!<index of the mesh
-  std::string name;
-  std::vector<double> vecistant;
- };
- 
-private:
- std::vector<Mesh3*> _vecmesh;
- //std::vector<tsinfo> _vecofts;
- std::string _nameoffile;
-
- /*! This string contains the name of data file with \\ where there's a \ in the path*/
- std::string _nameofdatafile;
-
- //!files containing the data and the timeseries
- std::ofstream _ofdata;
-
-public:
- VtkWriter() { std::cout << "Constructor of VtkWriter" << endl;  }
- void openfiles(const std::string& s)
-  {
-   _nameoffile=s;
-   std::string tmp=s+".vtu";
-   std::cout<<tmp<<" ";
-   _ofdata.open(tmp.c_str(), std::ios_base::out);
-   _nameofdatafile="";
-   for(int i=0;i<tmp.length();++i)
-    {
-     if(tmp.at(i)=='\\')
-      _nameofdatafile.append(1,'\\');
-     _nameofdatafile.append(1,tmp.at(i));
-    }
-  }
-
- void addmesh(Mesh3* mesh)
-  {
-   Mesh3& Th(*mesh);
-   _vecmesh.push_back(mesh);
-   _ofdata.flags(std::ios_base::scientific);
-   _ofdata.precision(15);
-
-   _ofdata << "<?xml version=\"1.0\"?>" << std::endl;
-   _ofdata << "<VTKFile type=\"UnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\">" << std::endl;
-   _ofdata << "<UnstructuredGrid>" << std::endl;
-   _ofdata << "<Piece NumberOfPoints=\"" << Th.nv << "\" NumberOfCells=\"" << Th.nt << "\">" << std::endl;
-   _ofdata << "<Points>" << std::endl;
-   _ofdata << "<DataArray type=\"Float32\" Name=\"Position\" NumberOfComponents=\"3\" format=\"ascii\">" << std::endl;
-   for(int k=0;k<Th.nv;++k) _ofdata << Th(k).x<<" "<<Th(k).y<< " "<<Th(k).z<<std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata << "</Points>" << std::endl;
-   _ofdata << "<Cells>" << std::endl;
-   _ofdata << "<DataArray type=\"Int32\" Name=\"connectivity\" NumberOfComponents=\"1\" format=\"ascii\">" << std::endl;
-   for(int i=0;i<Th.nt;++i)
-    for (int j=0; j <4; j++) _ofdata << Th(i,j) << " " ;
-   _ofdata << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata << "<DataArray type=\"Int32\" Name=\"offsets\" NumberOfComponents=\"1\" format=\"ascii\">" << std::endl;	
-   for(int i=0;i<Th.nt;++i)  _ofdata << 4+4*(i) << " ";
-   _ofdata << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata << "<DataArray type=\"UInt8\" Name=\"types\" NumberOfComponents=\"1\" format=\"ascii\">" << std::endl;	
-   for(int i=0;i<Th.nt;++i)  _ofdata << 10 << " ";
-   _ofdata << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata << "</Cells>" << std::endl; 
-   _ofdata << "<PointData >" << endl; 
-  }
- 
- /*!Add a field*/
- void addscalar(const string& nameoffield, Mesh3* mesh, const KN<double>&val)
-  {
-   _ofdata.flags(std::ios_base::scientific);
-   _ofdata.precision(15);
-
-   _ofdata << "<DataArray type=\"Float32\" Name=\""<<nameoffield<<"\" NumberOfComponents=\"1\" format=\"ascii\">" << std::endl;
-   for(int i=0;i<val.size();++i) _ofdata<<checkprecision(val[i])<<std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   
-   _ofdata.flush();
-  }
- 
- double checkprecision(double val)
-  {
-   double tmp;
-   if ( val >= 0. ) tmp=max(0.,val);
-   if ( val <  0. ) tmp=min(0.,val);
-   return tmp;
-  }
-
-  /*!Add a field*/
- void addvector(const string& nameoffield, Mesh3* mesh, const KN<double>&val,
-                const KN<double>&val2,const KN<double>&val3 )
-  {
-   _ofdata.flags(std::ios_base::scientific);
-   _ofdata.precision(15);
-
-   _ofdata << "<DataArray type=\"Float32\" Name=\""<<nameoffield<<"\" NumberOfComponents=\"3\" format=\"ascii\">" << std::endl;
-   for(int i=0;i<val.size();++i) _ofdata<<checkprecision(val[i])<< " " << checkprecision(val2[i]) << " " << checkprecision(val3[i]) << std::endl;
-   _ofdata << "</DataArray>" << std::endl;
-   _ofdata.flush();
-  }
-
-
- /*!Get the mesh associated with the series nameofts*/
- Mesh3* getmeshts(const string& nameofts)
-  {
-   return _vecmesh[0];
-  }
- 
- void init()
-  {
-   new(this)VtkWriter(); 
-  }
- 
- void destroy() 
-  {
-   if(_ofdata.is_open())
-    {
-     _ofdata << "</PointData>" << endl;	
-     _ofdata << "<CellData>" << endl; 	
-     _ofdata << "</CellData>" << endl; 
-     _ofdata << "</Piece>" << endl;
-     _ofdata << "</UnstructuredGrid>" << endl;
-     _ofdata << "</VTKFile>" << endl;
-     _ofdata.close(); 		
-    }
-  } 
-}; //End of class
-
-class Vtkwritesol_Op : public E_F0mps 
-{
-public:
- typedef long  Result;
- Expression edx;
- Expression ename;//!<name of time series or field
- Expression et;//!<time
- long what; // 1 scalar, 2 vector, 3 symtensor
- long nbfloat; // 1 scalar, n vector (3D), n symtensor(3D)
- Expression evct,evct2,evct3;
- 
-public:
- Vtkwritesol_Op(const basicAC_F0 &  args) :  what(0), nbfloat(0)
-  {
-   evct=0;
-   evct2=0;
-   evct3=0;
-   int nbofsol;
-   int ddim=3;
-   //There's no named parameter
-   args.SetNameParam();
-   if(args.size()!=3)
-    {
-     CompileError("Vtkwritesol accepts only 4 parameters");
-    }
-   if (BCastTo<VtkWriter *>(args[0])) edx = CastTo<VtkWriter *>(args[0]);
-   if (BCastTo<string *>(args[1])) ename = CastTo<string *>(args[1]);
-   
-   if ( args[2].left()==atype<double>() )
-    {
-     what=1;
-     nbfloat=1;
-     evct=to<double>( args[2] );
-    }
-   else if ( args[2].left()==atype<double *>() )
-    {
-     what=1;
-     nbfloat=1;
-     evct=to<double>( args[2] );
-    }
-   else if ( BCastTo<pfer>(args[2]) )
-    {
-     what=1;
-     nbfloat=1;
-     evct=to<double>( args[2] );
-    }
-   else if ( args[2].left()==atype<E_Array>() )
-    {
-     std::cout << "Until now only scalar solution" << std::endl;
-     
-     int i=2;
-     const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-       
-
-      if( a0->size() == 1){
-      // scalar solution
-      what=1;
-      nbfloat=a0->size();
-      evct = to<double>( (*a0)[0]);
-      
-     }
-  
-     if( a0->size() == ddim){
-      // vector solution
-      what=2;
-      nbfloat=a0->size();
-      evct = to<double>( (*a0)[0]);
-      evct2 = to<double>( (*a0)[1]);
-      evct3 = to<double>( (*a0)[2]);
-      
-     }
-      cout << "Passed Until now only scalar solution" << std::endl;
-    }
-   else 
-    {
-     CompileError("savesol in 2D: Sorry no way to save this kind of data");
-    }
-   
-  }
- static ArrayOfaType  typeargs() { return  ArrayOfaType(atype<VtkWriter *>(), atype<string *>(), true); }// all type
- static  E_F0 * f(const basicAC_F0 & args) { return new Vtkwritesol_Op(args);} 
- AnyType operator()(Stack stack)  const ;
-}; // end of class
-
-
-AnyType Vtkwritesol_Op::operator()(Stack stack)  const 
-{ 
- MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
- VtkWriter &dx=*(GetAny<VtkWriter *>((*edx)(stack)));
- string &name=*(GetAny<string *>((*ename)(stack)));
- //double t=GetAny<double>((*et)(stack));
- Mesh3 &Th=*(dx.getmeshts(name));
- 
- int nt = Th.nt;
- int nv = Th.nv;
- 
- int nbsol=nv;
- long longdefault;
- 
- KN<double> valsol(nbsol);
- valsol=0.;
- KN<int> takemesh(nbsol);
- takemesh=0;
- MeshPoint *mp3(MeshPointStack(stack));
- for (int it=0;it<nt;it++)
-  {
-  for(int iv=0;iv<4;iv++)
-   {
-    int i=Th(it,iv);
-    mp3->setP(&Th,it,iv);					
-    valsol[i] = valsol[i] + GetAny< double >((*evct)(stack));			
-    ++takemesh[i];
-   }
-  }
- for(int i=0; i<nbsol; i++)
-  {
-   valsol[i] /= takemesh[i]; 
-  }
- 
- //Writes valsol on the file file
- if (what==1) 
-   dx.addscalar(name,&Th,valsol);
-
- if (what == 2)
-  {
-   KN<double> valsol2(nbsol);
-   valsol2=0.;
-   KN<int> takemesh(nbsol);
-   takemesh=0;
-   MeshPoint *mp3(MeshPointStack(stack));
-   for (int it=0;it<nt;it++)
-    {
-     for(int iv=0;iv<4;iv++)
-      {
-       int i=Th(it,iv);
-       mp3->setP(&Th,it,iv);					
-       valsol2[i] = valsol2[i] + GetAny< double >((*evct2)(stack));			
-       ++takemesh[i];
-      }
-    }
-   for(int i=0; i<nbsol; i++)
-    {
-     valsol2[i] /= takemesh[i]; 
-    }
-   
-   {
-    KN<double> valsol3(nbsol);
-    valsol3=0.;
-    KN<int> takemesh(nbsol);
-    takemesh=0;
-    MeshPoint *mp3(MeshPointStack(stack));
-    for (int it=0;it<nt;it++)
-     {
-      for(int iv=0;iv<4;iv++)
-       {
-        int i=Th(it,iv);
-        mp3->setP(&Th,it,iv);					
-        valsol3[i] = valsol3[i] + GetAny< double >((*evct3)(stack));			
-        ++takemesh[i];
-       }
-     }
-    for(int i=0; i<nbsol; i++)
-     {
-      valsol3[i] /= takemesh[i]; 
-     }
-
-   //Writes valsol on the file file
-   dx.addvector(name,&Th,valsol,valsol2,valsol3);
-
-      }
-   
-  }
-
- return longdefault;
-
-}
-
-
-
-// le vrai constructeur est la
-VtkWriter* init_VtkWriter(VtkWriter * const &a, string * const & s)
-{
- std::cout << "start init_VtkWriter" << std::endl;
- a->init();
- a->openfiles(*s);
- std::cout << "end init_VtkWriter" << std::endl;
- return a;
-} 
-
-void* call_addmesh( VtkWriter * const & mt, Mesh3* const & pTh) {
-  mt->addmesh(pTh);
-  return NULL;
-}
- 
-//   Add the function name to the freefem++ table 
-<<<<<<< HEAD
-/*  class Init 
-=======
-class Init 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-public:
- Init();
-};
-
-<<<<<<< HEAD
-$1 */
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
- 
- Dcl_Type<VtkWriter*>(InitP<VtkWriter>,Destroy<VtkWriter>); // declare deux nouveau type pour freefem++  un pointeur et 
- 
- zzzfff->Add("VtkWriter",atype<VtkWriter*>()); // ajoute le type myType a freefem++ 
- // constructeur  d'un type myType  dans freefem 
- TheOperators->Add("<-", new OneOperator2_<VtkWriter*, VtkWriter* ,string*>(&init_VtkWriter));
- Global.Add("Vtkaddmesh","(",new OneOperator2_<void *, VtkWriter*, Mesh3*>(call_addmesh)); 
- Global.Add("Vtkaddscalar","(",new OneOperatorCode< Vtkwritesol_Op> );
- 
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/addNewType.cpp.orig b/examples++-load/addNewType.cpp.orig
deleted file mode 100644
index 2995cdd..0000000
--- a/examples++-load/addNewType.cpp.orig
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Example C++ function "CppModTemplate" dynamically loaded into "load.edp"
-// ------------------------------------------------------------------------
-#include "ff++.hpp" 
-using namespace Fem2D;
-
-// see src/femlib/RNM.hpp
-
-class myType { public:
-  string * nom;
-  myType(char * nn) { cout << " nn = " << nn << endl;  }
-  double x(double u,double v) const { return u+v;}
-  void init() { cout << " init myTpe \n" ;  nom =0;} // init des pointeur
-  void destroy() { cout << " destroy de la variable associe \n";  delete  nom;nom=0; } 
-};
-
-class myType_uv { public:
-  myType * mt;
-  double u,v;
-  myType_uv(myType * mmt,double uu,double vv): mt(mmt),u(uu),v(vv) {}
-};
-
-// le vrai constructeur est la
-myType * init_MyType(myType * const &a, string * const & s)
-{
-  a->nom = new string(* s);
-  cout << " build MyType " << *a->nom << endl;
-  return NULL; // return value never used for now (13.1)
-} 
-
-
-myType_uv set_myType_uv( myType * const & mt,const double & u,const double & v)
-{  return myType_uv(mt,u,v);}
-
-double get_myType_uv_x(const myType_uv & muv)
-{
-  return muv.mt->x(muv.u,muv.v);
-}
-
-R3 * get_myType_uv_N(const myType_uv & muv)
-{
-  static R3 r;
-  r=R3(muv.mt->x(muv.u,muv.v),0.,0.);
-  return &r;
-}
-//   Add the function name to the freefem++ table 
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-$1 */
-static void Load_Init(){
-=======
-class Init { public:
-  Init();
-};
-LOADINIT(Init);
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-  Dcl_Type<myType*>(InitP<myType >,Destroy<myType>); // declare deux nouveau type pour freefem++  un pointeur et 
-  Dcl_Type<myType_uv>();
-  //  Dcl_Type<R3>();
-  //  cast d'un ** en * 
-  //  atype<myType**>()->AddCast( new E_F1_funcT<myType*,myType **>(UnRef<myType*>)); 
-
-  zzzfff->Add("myType",atype<myType*>()); // ajoute le type myType a freefem++ 
-  // constructeur  d'un type myType  dans freefem 
-  TheOperators->Add("<-", 
-		    new OneOperator2_<myType *,myType* ,string*>(&init_MyType)); 
-  // dans ff++
-  //    myType ff("qsdlqdjlqsjdlkq");
-  // ajoute la fonction  myType* (u,v) cree le type myType_uv
-  //   ff(0.1,0.6).x
-  //   deux etapes
-  //    1)  ff(u,v) -> myType_uv
-  //  ajoute la methode x sur myType_uv   ff(u,v).x 
-  // ajoute des fonction sur myType_uv
-  // 1)
-
-  atype< myType * >()->Add("(","",new OneOperator3_<myType_uv,myType *,double,double  >(set_myType_uv));  
-
-   Add<myType_uv>("x",".",new OneOperator1_<double,myType_uv>(get_myType_uv_x) );
-   Add<myType_uv>("N",".",new OneOperator1_<R3*,myType_uv>(get_myType_uv_N) );
-}
-
-
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/bfstream.cpp.orig b/examples++-load/bfstream.cpp.orig
deleted file mode 100644
index ce05cdc..0000000
--- a/examples++-load/bfstream.cpp.orig
+++ /dev/null
@@ -1,89 +0,0 @@
-<<<<<<< HEAD
-// to compile ff-c++ bstream.cpp
-=======
-// to compile ff-c++ pipe.cpp
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-//  warning do not compile under windows...
-#include "ff++.hpp"
-#include <cstdio>
-#include <unistd.h>
-
-template<class T>
-class Stream_b { public:
-    Stream_b(T * ff) :f(ff) {}
-    Stream_b(T ** ff) :f(*ff) {ffassert(f); }
-    Stream_b(const Stream_b &io): f(io.f) {}
-    
-    T * f;
-};
-
-template<class T>
- Stream_b<T>  pto_stream_b(T **f){ return Stream_b<T>(f);}
-template<class T>
-Stream_b<T>  to_stream_b(T *f){ return Stream_b<T>(f);}
-
-template<class T>
-istream * Read(Stream_b<istream> const &   io, T * const & data ) {
-    io.f->read(reinterpret_cast<char *>(data),sizeof(*data));
-    return io.f; }
-
-template<class T>
-istream * Read(Stream_b<istream> const &   io, KN<T> * const & data ) {
-     long n;
-    io.f->read(reinterpret_cast<char *>(&n),sizeof(long));
-    cout << " read  n =" << n << " " << n*sizeof(sizeof(T)) << " "  <<  endl;
-    if( n != data->N()) data->resize(n);
-    T*  p = *data;
-    io.f->read(reinterpret_cast<char *>(p),n*sizeof(T));
-    return io.f; }
-template<class T>
-ostream * Write(Stream_b<ostream> const &   io, KN<T> * const & data ) {
-    T*  p = *data;
-    long n=data->N();
-    cout << " write n =" << n << " " << n*sizeof(T) << " " << p <<  endl;
-    io.f->write(reinterpret_cast<const char *>(&n),sizeof(long));
-    io.f->write(reinterpret_cast<const char *>(p),n*sizeof(T));
-    return io.f; }
-
-template<class T>
-ostream * Write(Stream_b<ostream> const &   io, T * const & data ) {
-    io.f->write(reinterpret_cast<const char *>(data),sizeof(*data));
-    return io.f; }
-template<class T>
-ostream * Write(Stream_b<ostream> const &   io, T  const & data ) {
-    io.f->write(reinterpret_cast<const char *>(&data),sizeof(data));
-    return io.f; }
-template <class K>
-void initK()
-{
-    typedef Stream_b<ostream> OB;
-    typedef Stream_b<istream> IB;
-    Add<IB>("(","",new OneOperator2_<istream *,IB,K *>(Read));
-    Add<OB>("(","",new OneOperator2_<ostream *,OB,K *>(Write));
-    Add<OB>("(","",new OneOperator2_<ostream *,OB,K >(Write));
-    Add<IB>("(","",new OneOperator2_<istream *,IB,KN<K> *>(Read));
-    Add<OB>("(","",new OneOperator2_<ostream *,OB,KN<K> * >(Write));
-    
-}
-void inittt()
-{
-    typedef Stream_b<ostream> OB;
-    typedef Stream_b<istream> IB;
-    Dcl_Type< OB>  ();
-    Dcl_Type< IB> ();
-    
-    Add<istream**>("read",".",new OneOperator1<IB,istream**>(pto_stream_b<istream>));
-    Add<ostream**>("write",".",new OneOperator1<OB,ostream**>(pto_stream_b<ostream>));
-    initK<long>();
-    initK<double>();
-    initK<complex<double> >();
-    
-/*
-     Add<IB>("(","",new OneOperator2_<istream *,IB,double *>(Read));
-    Add<OB>("(","",new OneOperator2_<ostream *,OB,double *>(Write));
-    Add<OB>("(","",new OneOperator2_<ostream *,OB,double >(Write));
- */
-    
-}
-
-LOADFUNC(inittt);
diff --git a/examples++-load/dfft.cpp.orig b/examples++-load/dfft.cpp.orig
deleted file mode 100644
index 4ce81f4..0000000
--- a/examples++-load/dfft.cpp.orig
+++ /dev/null
@@ -1,284 +0,0 @@
-// Example C++ function "myfunction", dynamically loaded into "ff-c++ dfft.cpp "
-// ---------------------------------------------------------------------
-// $Id$
-
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep:   fftw3 
-//ff-c++-cpp-dep: 
-//  
-#include "ff++.hpp"
-#include "AFunction_ext.hpp"
-#include <fftw3.h>
-
-
-template<class Complex>
-class DFFT_1d2dor3d
-{  
-public: 
-  Complex * x;
-  int n, m,k;
-  int sign;   
-  DFFT_1d2dor3d(KN<Complex> * xx,long signn,long nn=1,long kk=1) : x(*xx),n(nn),m(xx->N()/(nn*kk)),k(kk),sign(signn) {
-    cout << xx << " " << signn << " " << nn << " " << xx->N() << " n: " << n << " m:" << m << " k:  " << k <<endl;
-    ffassert(n>0 && (n*m*k ==xx->N()));
-    
-  } 
-
-
-  DFFT_1d2dor3d(KNM<Complex> * xx,long signn) : x(*xx),n(xx->M()),m(xx->N()),sign(signn) {
-  }
-  
-};
-
-DFFT_1d2dor3d<Complex>  dfft(KN<Complex> * const  & x,const long &sign)
-{
-  return DFFT_1d2dor3d<Complex>(x,sign);
-}
-
-DFFT_1d2dor3d<Complex>  dfft(KN<Complex> *const  &x,const long &nn,const long &sign)
-{
-  return DFFT_1d2dor3d<Complex>(x,sign,nn);
-}
-DFFT_1d2dor3d<Complex>  dfft(KN<Complex> *const  &x,const long &nn,const long &kk,const long &sign)
-{
-  return DFFT_1d2dor3d<Complex>(x,sign,nn,kk);
-}
-
-DFFT_1d2dor3d<Complex> dfft(KNM<Complex> * const &  x,const long &sign)
-{
-  return DFFT_1d2dor3d<Complex>(x,sign);
-}
-bool ff_execute(fftw_plan *p)
-{
- if(*p)  fftw_execute(*p);
-    return 0; 
-}
-
-bool ff_delete(fftw_plan *p)
-{
-   if(*p)  fftw_destroy_plan(*p);
-    *p =0; 
-    return 0;
-}
-
-KN<Complex> * dfft_eq(  KN<Complex> * const   &x,const DFFT_1d2dor3d<Complex>  & d)
-{
-  ffassert(x->N()==d.n*d.m*d.k );
-  Complex *px =  *x;
-  fftw_plan p;
-  //cout << " dfft " << px << " = " << d.x << " n = " << d.n << " " << d.m << " sign = " << d.sign << endl; 
-  if ( d.k ==1)
-  {
-   if ( d.n > 1)
-    p = fftw_plan_dft_2d(d.n,d.m,reinterpret_cast<fftw_complex*>(d.x),reinterpret_cast<fftw_complex*> (px),d.sign,FFTW_ESTIMATE);
-   else
-    p = fftw_plan_dft_1d(d.m ,reinterpret_cast<fftw_complex*>(d.x),reinterpret_cast<fftw_complex*> (px),d.sign,FFTW_ESTIMATE);
-  }
-   else 
-   {
-       if ( d.n > 1)
-           p = fftw_plan_dft_3d(d.n,d.m,d.k,reinterpret_cast<fftw_complex*>(d.x),reinterpret_cast<fftw_complex*> (px),d.sign,FFTW_ESTIMATE);
-       else
-           p = fftw_plan_dft_2d(d.m,d.k,reinterpret_cast<fftw_complex*>(d.x),reinterpret_cast<fftw_complex*> (px),d.sign,FFTW_ESTIMATE);
-       
-   }
- // cout << " ---" ;
-  fftw_execute(p);
- // cout << " ---" ;
-  fftw_destroy_plan(p);
- // cout << " ---" ;
-  return  x;
-}
-
-
-KN<double> * dfft_eq(  KN<double> * const   &x,const DFFT_1d2dor3d<double>  & d)
-{
-  ffassert(0); 
-  return  x;
-}
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-  };*/
-=======
-class Init { public:
-  Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-// bofbof .. 
-struct  fftw_plan_s {};
-// ...
-
-template<> inline AnyType DeletePtr<fftw_plan*>(Stack,const AnyType &x) {
-    fftw_plan  * a=PGetAny<fftw_plan>(x);
-    if(*a) fftw_destroy_plan(*a);
-    *a =0; 
-    return  Nothing;
-};
-
-fftw_plan* plan__eq( fftw_plan* a, fftw_plan b)
-{
-    if(*a) fftw_destroy_plan(*a);
-    *a=b;
-    return a; 
-}
-fftw_plan* plan_set( fftw_plan* a, fftw_plan b)
-{
-  //    if(*a) fftw_destroy_plan(*a);
-    *a=b;
-    return a; 
-}
-
-fftw_plan plan_dfft(KN<Complex> * const  & x,KN<Complex> * const  & y,const long &sign)
-{
-  return  fftw_plan_dft_1d(x->N() ,reinterpret_cast<fftw_complex*>(&x[0]),reinterpret_cast<fftw_complex*> (&y[0]),sign,FFTW_ESTIMATE);
-}
-fftw_plan plan_dfft(KNM<Complex> * const  & x,KNM<Complex> * const  & y,const long &sign)
-{
-    long m=x->N(), n=x->M();
-    fftw_plan_dft_2d(n,m,reinterpret_cast<fftw_complex*>(&x[0]),reinterpret_cast<fftw_complex*> (&y[0]),sign,FFTW_ESTIMATE);
-    return 0;
-}
-
-fftw_plan plan_dfft(KN<Complex> * const  & x,KN<Complex> * const  & y,const long &n,const long &sign)
-{
-    long  nn=n, mm=y->N()/nn; ffassert( mm*nn == y->N() && x->N() == y->N()  );
-    return fftw_plan_dft_2d(nn,mm,reinterpret_cast<fftw_complex*>(&x[0]),reinterpret_cast<fftw_complex*> (&y[0]),sign,FFTW_ESTIMATE);
-    
-}
-
-fftw_plan plan_dfft(KN<Complex> * const  & x,KN<Complex> * const  & y,const long &n,const long &k,const long &sign)
-{
-    int nn=n, mm= y->N()/(k*n), kk= k;
-    ffassert(y->N() == nn*mm*kk) ;
-    if( nn >1)
-      return fftw_plan_dft_3d(nn,mm,kk, reinterpret_cast<fftw_complex*>(&x[0]),reinterpret_cast<fftw_complex*> (&y[0]),sign,FFTW_ESTIMATE);
-    else 
-      return fftw_plan_dft_2d(nn,mm,reinterpret_cast<fftw_complex*>(&x[0]),reinterpret_cast<fftw_complex*> (&y[0]),sign,FFTW_ESTIMATE);
-}
-
-
-
-class Mapkk :  public E_F0mps
-{
-    
-public:
-    typedef Complex R;
-    typedef  KN_<R>  Result;
-    ;
-    static basicAC_F0::name_and_type name_param[] ;
-    static const int n_name_param =0;
-    Expression nargs[n_name_param];
-    Expression expv, expm,exp;
-    
-    Mapkk(const basicAC_F0 & args)
-    : expv(0), expm(0),exp(0)
-    {
-        args.SetNameParam(n_name_param,name_param,nargs);
-        expv= to<KN<R>*>(args[0]);  // a the expression to get the mesh
-        expm= to<long>(args[1]);
-        exp= to<R>(args[2]);// a the expression to get the mesh
-     
-    }
-    
-    ~Mapkk()
-    {
-    }
-    
-    static ArrayOfaType  typeargs()
-    { return  ArrayOfaType(
-                           atype<KN<R> *>(),
-			   atype<long >(),
-                           atype<R >()
-			   );
-    }
-    static  E_F0 * f(const basicAC_F0 & args){ return new Mapkk(args);}
-    AnyType operator()(Stack s) const ;
-    
-};
-
-basicAC_F0::name_and_type Mapkk::name_param[]={};
-
-AnyType Mapkk::operator()(Stack s) const
-{
-    MeshPoint *mp(MeshPointStack(s)) , mps=*mp;
-    KN<R> * pv=GetAny<KN<R> *>((*expv)(s));
-    KN<R> v(*pv);
- 
-    long nn = v.N();
-    long m = GetAny<long>((*expm)(s));
-    cout << " expm " << expm << " m = " << m << endl; 
-    long n = nn/m;
-    double ki = 1./n ;
-    double kj = 1./m ;
-    double ki0=0., kj0=0;
-    cout <<  n << " " << m << " " << nn << " == " << n*m << endl;
-    ffassert( m* n  == nn );
-    long n2= (n+1)/2, m2=(m+1)/2;
-    for(long k=0,i=0;i < n; ++i)
-         for(long j=0;j < m; ++j,++k)
-         {//
-             int ii=i, jj=j;
-             if( ii > n2) ii=i-n;
-             if( jj > m2) jj=j-n;            
-             R2 P(i*ki+ki0 ,j*kj+kj0);
-             mp->set(P.x,P.y);
-             v[k] = GetAny< R>((*exp)(s));
-         }
-    *mp = mps;
-    return 0L;
-}
-
-<<<<<<< HEAD
-
-static void Load_Init(){
-=======
-LOADINIT(Init);
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  typedef DFFT_1d2dor3d<Complex>  DFFT_C;
-  typedef DFFT_1d2dor3d<double>  DFFT_R;
-
-  cout << " lood: init dfft " << endl;
-  Dcl_Type<DFFT_C >();
-  Dcl_Type<DFFT_R >();
-    
-  // cout << typeid(fftw_plan).name()  << endl;
-  Dcl_Type<fftw_plan*>(::InitializePtr<fftw_plan*>,::DeletePtr<fftw_plan*>);
-  Dcl_Type<fftw_plan>();
-  zzzfff->Add("fftwplan",atype<fftw_plan * >());
-    
-  TheOperators->Add("=", new OneOperator2<fftw_plan *,fftw_plan *,fftw_plan>(plan__eq));
-  TheOperators->Add("<-", new OneOperator2<fftw_plan *,fftw_plan *,fftw_plan>(plan_set));
-    
-  Global.Add("plandfft","(", new OneOperator3_<fftw_plan,KN<Complex>*,KN<Complex>*,long >(plan_dfft ));
-  Global.Add("plandfft","(", new OneOperator4_<fftw_plan,KN<Complex>*,KN<Complex>*,long,long >(plan_dfft ));
-  Global.Add("plandfft","(", new OneOperator5_<fftw_plan,KN<Complex>*,KN<Complex>*,long,long,long >(plan_dfft ));
-  Global.Add("plandfft","(", new OneOperator3_<fftw_plan,KNM<Complex>*,KNM<Complex>*,long >(plan_dfft ));
-    
-
-  Global.Add("execute","(", new OneOperator1<bool,fftw_plan*>(ff_execute));
-  Global.Add("delete","(", new OneOperator1<bool,fftw_plan*>(ff_delete));
-    
-    
-  Global.Add("dfft","(", new OneOperator2_<DFFT_C,KN<Complex>*,long >(dfft ));
-  Global.Add("dfft","(", new OneOperator3_<DFFT_C,KN<Complex>*,long,long >(dfft ));
-  Global.Add("dfft","(", new OneOperator4_<DFFT_C,KN<Complex>*,long,long, long >(dfft ));
-  Global.Add("dfft","(", new OneOperator2_<DFFT_C,KNM<Complex>*,long >(dfft ));
-  Global.Add("map","(", new OneOperatorCode<Mapkk>( ));
-  TheOperators->Add("=", new OneOperator2_<KN<Complex>*,KN<Complex>*,DFFT_C>(dfft_eq));
-  /*
-  Global.Add("dfft","(", new OneOperator2_<DFFT_R,KN<double>*,long >(dfft ));
-  Global.Add("dfft","(", new OneOperator3_<DFFT_R,KN<double>*,long,long >(dfft ));
-  Global.Add("dfft","(", new OneOperator4_<DFFT_R,KN<double>*,long,long, long >(dfft ));
-  Global.Add("dfft","(", new OneOperator2_<DFFT_R,KNM<double>*,long >(dfft ));
-  TheOperators->Add("=", new OneOperator2_<KN<double>*,KN<double>*,DFFT_R>(dfft_eq));
-  */
-  // TheOperators->Add("=", new OneOperator2_<KNM<Complex>*,KNM<Complex>*,DFFT_1d2dor3d>(dfft_eq));
-
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/ff-Ipopt.cpp.orig b/examples++-load/ff-Ipopt.cpp.orig
deleted file mode 100644
index 6ed8dd7..0000000
--- a/examples++-load/ff-Ipopt.cpp.orig
+++ /dev/null
@@ -1,1759 +0,0 @@
-/*
- *  ff-NLopt.cpp
- *
- *
- *  Created by Sylvain Auliac on 17/01/12.
- *
- */
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-//ff-c++-LIBRARY-dep:  Ipopt mumps-seq blas  libseq  fc
-
-//using namespace std;
-#include "IpTNLP.hpp"
-#include "IpIpoptApplication.hpp"
-#include "ff++.hpp"
-
-
-
-extern Block *currentblock;
-
-typedef double R;
-typedef KN_<R> Rn_;
-typedef KN<R> Rn;
-typedef KNM_<R> Rnm_;
-typedef KNM<R> Rnm;
-
-
-
-
-
-/*****************************************************************************************************************************
- *	Some misc. function usefull later...
- *****************************************************************************************************************************/
-
-//A variadic function to add an undefinite number of elements to a set of short int
-//This is used to define the set of named parameter which are not used when some assumptions
-//upon the optimization poblem functions are met
-void AddElements(std::set<unsigned short> &_set,int amount,int first,...)
-{
-    int elem=0;
-    va_list vl;
-    va_start(vl,first);
-    _set.insert(first);
-    for (int i=1;i<amount;i++)
-    {
-        elem=va_arg(vl,int);
-        _set.insert(elem);
-        
-    }
-    va_end(vl);
-    
-}
-
-//A raw pointer cleaner
-template<class T> inline void clean(T *p) {if(p) {delete p; p=0;} }
-
-//Pair compare (certainly already implemented in the STL with KeyLess...)
-inline bool operator<=(const std::pair<int,int> &l,const std::pair<int,int> &r) {return (l.first < r.first) || (l.first==r.first && l.second <= r.second);}
-
-//Some logical operators (exclussive or and its negation)
-inline bool XOR(bool a,bool b) {return (!a && b) || (a && !b);}
-inline bool NXOR(bool a,bool b) {return !XOR(a,b);}
-
-//A debug tool
-#ifdef DEBUG
-inline void SONDE() {static int i=1; cout << "SONDE " << i << endl; ++i;}
-#else
-inline void SONDE() {}
-#endif
-
-
-
-
-
-/*****************************************************************************************************************************
- *	FreeFem function callers
- *  ffcalfunc : template abstract mother class with a pointer to the freefem stack and the J virtual method which computes
- *              the function
- *****************************************************************************************************************************/
-template<class K> class ffcalfunc
-{
-public:
-    Stack stack;
-    ffcalfunc(const ffcalfunc &f) : stack(f.stack) {}
-    ffcalfunc(Stack _stack) : stack(_stack) {}
-    virtual K J(Rn_) const = 0;
-    virtual  ~ffcalfunc() {}
-};
-
-
-/*****************************************************************************************************************************
- *	GeneralFunc : Most general case (specialized for sparse matrix returning functions, because IPOPT need the hessian func
- *                to take some additional parameters).
- *    @theparame: ff expression of the parameter of the ff function, computing J(x) need the associated KN to be set to the
- *                values of x
- *    @JJ       : ff expression of the function
- *****************************************************************************************************************************/
-template<class K> class GeneralFunc : public ffcalfunc<K>
-{
-public:
-    Expression JJ,theparame;
-    GeneralFunc(const GeneralFunc &f) : ffcalfunc<K>(f),JJ(f.JJ),theparame(f.theparame) {}
-    GeneralFunc(Stack s,Expression JJJ,Expression epar) : ffcalfunc<K>(s),JJ(JJJ), theparame(epar) {}
-    K J(Rn_  x) const
-    {
-        KN<double> *p=GetAny<KN<double> *>( (*theparame)(this->stack) );
-        *p=x;
-        K ret= GetAny<K>( (*JJ)(this->stack) );
-        //cout << "call to ffcalfunc.J with " << *p << " and ret=" << ret << endl;
-        WhereStackOfPtr2Free(this->stack)->clean();
-        return  ret;
-    }
-};
-
-/*****************************************************************************************************************************
- *	P2ScalarFunc: encapsulate a function which is the sum of a bilinear and a linear form (no constant part since it will be
- *                used as fitness function). It also handles the case of pure quadratic or linear forms.
- *    @vf       : If true J will compute 0.5xMx - bx (x is the solution of Mx = b in the unconstrained optimization process)
- *                if false xMx + bx is returned
- *    @M        : FF expression of the matrix of the bilinear form (null pointer for linear form case)
- *    @b        : FF expression of the vector representation of the linear part (null for pure quadratic case)
- *****************************************************************************************************************************/
-class P2ScalarFunc : public ffcalfunc<R>
-{
-public:
-    const bool vf;
-    Expression M,b; //Matrix of the quadratic part, vector of the linear part
-    P2ScalarFunc(const P2ScalarFunc &f) : ffcalfunc<R>(f),M(f.M),b(f.b),vf(f.vf) {}
-    P2ScalarFunc(Stack s,Expression _M,Expression _b,bool _vf=false) : ffcalfunc<R>(s),M(_M),b(_b),vf(_vf) {}
-    R J(Rn_ x) const
-    {
-        Rn tmp(x.N(),0.);
-        if(M)
-        {
-            Matrice_Creuse<R> * a = GetAny<Matrice_Creuse<R> *>( (*M)(stack) );
-            MatriceMorse<R> *A = dynamic_cast<MatriceMorse<R> *>(&(*a->A));
-            assert(A);
-            tmp  = (*A)*x;
-            if(vf) tmp/=2.;
-        }
-        if(b)
-        {
-            Rn *B = GetAny<Rn*>( (*b)(stack) );
-            tmp += *B;
-            //if(vf) tmp -= (*B); else tmp += (*B);
-        }
-        R res=0.;
-        for(int i=0;i<x.N();++i) res += x[i]*tmp[i];
-        return res;
-    }
-};
-
-/*****************************************************************************************************************************
- *	P1VectorFunc: encapsulate a function which is the sum of a linear part and a constant, mostly used for affine/linear
- *                constraints, or for P2 fitness function gradient
- *    @vf       : Set to true if this is expected the gradient of a P2 scalar function associated to Ax=b linear system
- *                J will then return Ax - b. Otherwize Ax+b is returned.
- *    @M        : FF expression of the matrix of the linear part
- *    @b        : FF expression of the vector representation of the constant part
- *****************************************************************************************************************************/
-class P1VectorFunc : public ffcalfunc<Rn>
-{
-public:
-    const bool vf;
-    Expression M,b;
-    P1VectorFunc(const P1VectorFunc &f) : ffcalfunc<Rn>(f),M(f.M),b(f.b),vf(f.vf) {}
-    P1VectorFunc(Stack s,Expression _M,Expression _b,bool _vf=false) : ffcalfunc<Rn>(s),M(_M),b(_b),vf(_vf) {}
-    Rn J(Rn_ x) const
-    {
-        Rn tmp(0);
-        if(M)
-        {
-            Matrice_Creuse<R> * a = GetAny<Matrice_Creuse<R> *>( (*M)(stack) );
-            MatriceMorse<R> *A = dynamic_cast<MatriceMorse<R> *>(&(*a->A));
-            assert(A);
-            if(tmp.N() != A->n) {tmp.resize(A->n); tmp=0.;}
-            tmp  = (*A)*x;
-        }
-        if(b)
-        {
-            Rn* B = GetAny<Rn *>( (*b)(stack) );
-            if(tmp.N() != B->N()) {tmp.resize(B->N()); tmp=0.;}
-            tmp += *B;
-            //if(vf) tmp -= (*B); else tmp += (*B);
-        }
-        return tmp;
-    }
-};
-
-
-
-/*****************************************************************************************************************************
- *	ffcalfunc<Matrice_Creuse>R>*>: specialization for sparse matrix returning function. When it encapsulates the hessian
- *                function of the lagragian, non-linear constraints will need the additional obj_factor and lagrange multiplier
- *                parameters. The one parameter version of J is called if there is no non-linear constraints or if the objects
- *                represents the jacobian of the constraints.
- *****************************************************************************************************************************/
-template<> class ffcalfunc<Matrice_Creuse<R> *>
-{
-public:
-    typedef Matrice_Creuse<R> *K;
-    Stack stack;
-    ffcalfunc(const ffcalfunc &f) : stack(f.stack) {}
-    ffcalfunc(Stack s) : stack(s) {}
-    virtual K J(Rn_) const = 0;
-    virtual K J(Rn_,double,Rn_) const = 0;
-    virtual bool NLCHPEnabled() const = 0; //Non Linear Constraints Hessian Prototype
-    virtual ~ffcalfunc(){}
-    
-};
-
-/*****************************************************************************************************************************
- *	GeneralSparseMatFunc: general case of sparse matrix returning function. Members datas added are ff expression of the
- *                scalar objective factor and vectorial lagrange multipliers.
- *****************************************************************************************************************************/
-class GeneralSparseMatFunc : public ffcalfunc<Matrice_Creuse<R> *>
-{
-private:
-    typedef ffcalfunc<Matrice_Creuse<R> *> FFF;
-public:
-    Expression JJ,param,paramlm,paramof;
-    GeneralSparseMatFunc(const GeneralSparseMatFunc &f) : FFF(f),JJ(f.JJ),param(f.param),paramlm(f.paramlm),paramof(f.paramof) {};
-    GeneralSparseMatFunc(Stack s,Expression JJJ,Expression epar,Expression eparof=0,Expression eparlm=0)
-    : FFF(s),JJ(JJJ),param(epar),paramlm(eparlm),paramof(eparof)
-    {ffassert(NXOR(paramlm,paramof));}
-    bool NLCHPEnabled() const {return paramlm && paramof;}
-    K J(Rn_  x) const
-    {
-        KN<double> *p=GetAny<KN<double> *>( (*param)(stack) );
-        *p=x;
-        K ret= GetAny<K>( (*JJ)(stack));
-        //cout << "call to ffcalfunc.J with " << *p << " and ret=" << ret << endl;
-        WhereStackOfPtr2Free(stack)->clean();
-        return  ret;
-    }
-    K J(Rn_  x,double of,Rn_ lm) const
-    {
-        if(paramlm && paramof)
-        {
-            KN<double> *p=GetAny<KN<double> *>( (*param)(stack) );
-            double *pof=GetAny<double *>( (*paramof)(stack) );
-            KN<double > *plm=GetAny<KN<double> *>( (*paramlm)(stack) );
-            *p=x;
-            *pof=of;
-            int m= lm.N(), mm=plm->N();
-            if( (m != mm) && mm) {cout << " ff-ipopt H : big bug int size ???"<< m << " != " << mm <<  endl; abort();};
-            *plm=lm;
-            K ret= GetAny<K>( (*JJ)(stack));
-            //cout << "call to ffcalfunc.J with " << *p << " and ret=" << ret << endl;
-            WhereStackOfPtr2Free(stack)->clean();
-            return  ret;
-        }
-        else return J(x);
-    }
-};
-
-/*****************************************************************************************************************************
- *	ConstantSparseMatFunc: Encapsulate a constant matrix returning function. Just contains the ff expression of the matrix
- *                (and stack inherited from mother class), this matrix is returned regardless of x.
- *****************************************************************************************************************************/
-class ConstantSparseMatFunc : public ffcalfunc<Matrice_Creuse<R> *>
-{
-private:
-    typedef ffcalfunc<Matrice_Creuse<R> *> FFF;
-public:
-    Expression M; //Expression of the matrix
-    ConstantSparseMatFunc(const ConstantSparseMatFunc &f) : FFF(f),M(f.M) {}
-    ConstantSparseMatFunc(Stack s,Expression _M) : FFF(s),M(_M) {}
-    bool NLCHPEnabled() const {return false;}
-    K J(Rn_) const
-    {
-        K ret = M ? GetAny<K>( (*M)(stack) ) : 0;
-        WhereStackOfPtr2Free(stack)->clean();
-        return ret;
-    }
-    K J(Rn_ x,double,Rn_) const {return J(x);}
-};
-
-
-
-typedef ffcalfunc<double> ScalarFunc;
-typedef ffcalfunc<Rn> VectorFunc;
-typedef ffcalfunc<Rnm> FullMatrixFunc;
-typedef ffcalfunc<Matrice_Creuse<R>* > SparseMatFunc;
-
-
-
-
-
-/*****************************************************************************************************************************
- *	SparseMatStructure: a class for sparse matrix structure management (mostly merging). The most interesting methods in this
- *                class are :
- *    AddMatrix : merge the structure of the given matrix to the structure of current object
- *    AddArrays : merge structure in arrays form to the current object
- *    ToKn      : allocate the raws and cols pointers and fill them with the std::set<Z2> form of the structure
- *                structure is then emptied if this method is passed a true value
- * ==> update 28/03/2012, autostruct proved useless since the structure merging can be done with operator +
- *     (I did not no whether nullify coefficients where removed from the result but it actually doesn't so the structure of
- *      the lagrangian hessian can be guessed exactly by evaluating on a point yeilding the biggest fitness function
- *      hessian along with a dual vector filled with 1).
- *****************************************************************************************************************************/
-class SparseMatStructure
-{
-public:
-    typedef std::pair<int,int> Z2;
-    typedef std::set<Z2> Structure;
-    typedef std::pair<KN<int>,KN<int> > Zn2;
-    typedef Structure::const_iterator const_iterator;
-    typedef Structure::iterator iterator;
-    
-    SparseMatStructure(bool _sym=0) : structure(),sym(_sym),n(0),m(0),raws(0),cols(0) {}
-    SparseMatStructure(Matrice_Creuse<R> const * const M,bool _sym=0) : structure(),sym(_sym),n(M->N()),m(M->M()),raws(0),cols(0) {this->AddMatrix(M);}
-    template<class INT> SparseMatStructure(const KN<INT> &I,const KN<INT> &J,bool _sym=0) : structure(),sym(_sym),n(I.max()),m(J.max()),raws(0),cols(0) {this->AddArrays(I,J);}
-    ~SparseMatStructure() {if(raws) delete raws; if(cols) delete cols;}
-    
-    const_iterator begin() const {return structure.begin();}
-    iterator begin() {return structure.begin();}
-    const_iterator end() const {return structure.end();}
-    iterator end() {return structure.end();}
-    //Structure& operator()() {return structure;}
-    //const Structure& operator()() const {return structure;}
-    bool empty() const {return structure.empty() && !raws && !cols;}
-    int N() const {return n;}
-    int M() const {return m;}
-    
-    SparseMatStructure& clear() {structure.clear(); if(raws) delete raws; if(cols) delete cols; sym=false; n=0; m=0; return *this;}
-    int size() const {return structure.size() ? structure.size() : (raws ? raws->N() : 0);}
-    SparseMatStructure& AddMatrix(Matrice_Creuse<R> const * const);
-    template<class INT> SparseMatStructure& AddArrays(const KN<INT> &,const KN<INT> &);
-    SparseMatStructure& ToKn(bool emptystruct=false);
-    
-    
-    KN<int> & Raws() {return *raws;}
-    KN<int> const & Raws() const {return *raws;}
-    KN<int> & Cols() {return *cols;}
-    KN<int> const & Cols() const {return *cols;}
-    
-private:
-    int n,m;
-    Structure structure;
-    bool sym;
-    //Zn2 *array_structure;
-    KN<int> *raws,*cols;
-};
-
-SparseMatStructure& SparseMatStructure::ToKn(bool emptystruct)
-{
-    if(raws) delete raws;
-    if(cols) delete cols;
-    raws = new KN<int>(structure.size());
-    cols = new KN<int>(structure.size());
-    int k=0;
-    for(const_iterator i=begin();i!=end();++i) {(*raws)[k]=i->first; (*cols)[k]=i->second; ++k;}
-    if(emptystruct) structure.clear();
-    return *this;
-}
-
-SparseMatStructure& SparseMatStructure::AddMatrix(Matrice_Creuse<R> const * const _M)
-{
-    n = n > _M->N() ? n : _M->N();
-    m = m > _M->M() ? m : _M->M();
-    MatriceMorse<R> const * const M = dynamic_cast<MatriceMorse<R> const * const> (&(*_M->A));
-    if( !M ) {
-        cerr << " Err= "<< " Matrix is not morse or CSR "<< &(*_M->A) << endl;
-        ffassert(M);
-    }
-     {
-    if(!sym || (sym && M->symetrique))
-    {
-        for(int i=0;i < M->N;++i)
-        {
-            for(int k=M->lg[i]; k < M->lg[i+1]; ++k) structure.insert(Z2(i,M->cl[k]));
-        }
-    }
-    else // sym && !M->symetrique
-    {
-        for(int i=0;i<M->N;++i)
-        {
-            for(int k=M->lg[i]; k < M->lg[i+1]; ++k) if(i >= M->cl[k]) structure.insert(Z2(i,M->cl[k]));
-        }
-    }
-    }
-    return *this;
-}
-template<class INT> SparseMatStructure& SparseMatStructure::AddArrays(const KN<INT> &I,const KN<INT> &J)
-{
-    ffassert(I.N()==J.N());
-    n = n > I.max()+1 ? n : I.max()+1;
-    m = m > J.max()+1 ? m : J.max()+1;
-    if(!sym) for(int k=0;k<I.N();++k) structure.insert(Z2(I[k],J[k]));
-    else for(int k=0;k<I.N();++k) if(I[k]>=J[k]) structure.insert(Z2(I[k],J[k]));
-    return *this;
-}
-
-
-
-
-
-/*****************************************************************************************************************************
- *	ffNLP : Derived from the TNLP non-linear problem wrapper class of Ipopt. Virtual methods are defined as explain in
- *          the IPOPT documentation. Some of them are tricky because the sparse matrix format in freefem is CRS, whereas
- *          IPOPT use COO storage.
- *          It is even more tricky because most of time, FreeFem will remove null coefficient from the structure, leading to
- *          non constant indexing of the coefficient through the algorithm in case of very non linear functions. As IPOPT need
- *          a constant structure, a FindIndex method involving a dichotomic search has been implemented to prevent the errors
- *          related to that.
- *****************************************************************************************************************************/
-using namespace Ipopt;
-
-class ffNLP : public TNLP
-{
-public:
-    ffNLP() : xstart(0) {}
-    ffNLP(Rn &,const Rn &,const Rn &,const Rn &,const Rn &,ScalarFunc*, VectorFunc*, SparseMatFunc*, VectorFunc*, SparseMatFunc*);
-    ffNLP(Rn &,const Rn &,const Rn &,const Rn &,const Rn &,ScalarFunc*, VectorFunc*, SparseMatFunc*, VectorFunc*, SparseMatFunc*, int ,int ,int);
-    virtual ~ffNLP();
-    
-    bool get_nlp_info(Index&, Index&, Index&, Index&, IndexStyleEnum&); //the IPOPT methods
-    bool get_bounds_info(Index, Number*, Number*, Index, Number*, Number*);
-    bool get_starting_point(Index, bool, Number*,bool , Number* , Number*,Index , bool ,Number* );
-    bool eval_f(Index, const Number*, bool, Number&);
-    bool eval_grad_f(Index, const Number*, bool, Number*);
-    bool eval_g(Index, const Number*, bool, Index, Number*);
-    bool eval_jac_g(Index, const Number*, bool,Index, Index, Index*, Index *,Number*);
-    bool eval_h(Index, const Number*, bool ,Number , Index , const Number*,bool, Index, Index*,Index*, Number*);
-    void finalize_solution(SolverReturn, Index, const Number*, const Number*, const Number*, Index, const Number*, const Number*, Number,
-                           const IpoptData* ip_data,
-                           IpoptCalculatedQuantities* ip_cq);
-    
-    template<class INT> ffNLP& SetHessianStructure(const KN<INT> &,const KN<INT> &,bool reset=0);
-    template<class INT> ffNLP& SetJacobianStructure(const KN<INT> &,const KN<INT> &,bool reset=0);
-    enum Level {do_nothing,user_defined, one_evaluation, basis_analysis};
-    ffNLP& BuildMatrixStructures(Level,Level,int);
-    ffNLP& EnableCheckStruct() {checkstruct=true; return *this;}
-    ffNLP& DisableCheckStruct() {checkstruct=false; return *this;}
-    
-    Rn lambda_start,x_start,uz_start,lz_start;
-    double sigma_start;
-    
-    double final_value;
-private:
-    //algorithm datas
-    Rn *xstart,xl,xu,gl,gu;
-    ScalarFunc *fitness; //Pointers to functions wrappers
-    VectorFunc *dfitness,*constraints;
-    SparseMatFunc *hessian,*dconstraints;
-    int mm,nnz_jac,nnz_h; //duplicated datas? did not seems to be reachable in the base class
-    //bool sym;
-    bool checkstruct;
-    SparseMatStructure HesStruct,JacStruct;
-    
-    //some static functions...
-    template<class A,class B> static void KnToPtr(const KN<A> &a,B *b) {for(int i=0;i<a.N();++i) b[i]=a[i];} //Fill a pointer with a KN
-    template<class A,class B> static void KnFromPtr(KN<A> &a,B const *b) {for(int i=0;i<a.N();++i) a[i]=b[i];}//Fill a KN with a pointer <-- to avoid the use of const_cast
-    static int FindIndex(const KN<int> &irow,const KN<int> & jrow,int i,int j,int kmin,int kmax);
-};
-
-
-ffNLP::ffNLP(Rn &x,const Rn &_xl,const Rn &_xu,const Rn &_gl,const Rn &_gu,ScalarFunc * _fitness,VectorFunc * _dfitness,SparseMatFunc * _hessian,
-             VectorFunc * _constraints,SparseMatFunc * _dconstraints) :
-xstart(&x), xl(_xl), xu(_xu), gl(_gl), gu(_gu),final_value(299792458.),//sym(0),unsymind(),
-fitness(_fitness), dfitness(_dfitness), constraints(_constraints),uz_start(),lz_start(),
-hessian(_hessian), dconstraints(_dconstraints),mm(-1),nnz_jac(-1),nnz_h(-1),
-HesStruct(true),JacStruct(false),sigma_start(1.),lambda_start(),x_start(x),checkstruct(1) {}
-
-
-ffNLP::ffNLP(Rn &x,const Rn &_xl,const Rn &_xu,const Rn &_gl,const Rn &_gu,ScalarFunc * _fitness,VectorFunc * _dfitness,SparseMatFunc * _hessian,
-             VectorFunc * _constraints,SparseMatFunc * _dconstraints, int _mm,int _nnz_jac,int _nnz_h) :
-xstart(&x), xl(_xl), xu(_xu), gl(_gl), gu(_gu),hessian(_hessian),final_value(299792458.),//sym(0),unsymind(),
-fitness(_fitness),dfitness(_dfitness),constraints(_constraints),dconstraints(_dconstraints),uz_start(),lz_start(),
-mm(_mm),nnz_jac(_nnz_jac),nnz_h(_nnz_h),HesStruct(true),JacStruct(false),sigma_start(1.),lambda_start(),x_start(x),checkstruct(1) {}
-
-ffNLP::~ffNLP()
-{
-    /*
-     clean(fitness);
-     clean(dfitness);
-     clean(constraints);
-     clean(hessian);
-     clean(dconstraints);
-     */
-}
-
-template<class INT> ffNLP& ffNLP::SetHessianStructure(const KN<INT> &I,const KN<INT> &J,bool reset)
-{
-    if(reset) HesStruct.clear();
-    HesStruct.AddArrays(I,J);
-    return *this;
-}
-template<class INT> ffNLP& ffNLP::SetJacobianStructure(const KN<INT> &I,const KN<INT> &J,bool reset)
-{
-    if(reset) JacStruct.clear();
-    JacStruct.AddArrays(I,J);
-    return *this;
-}
-ffNLP& ffNLP::BuildMatrixStructures(Level hlvl, Level jlvl,int _mm)
-{
-    if(jlvl!=do_nothing && dconstraints)
-    {
-        if(jlvl==user_defined) ffassert(JacStruct.size());
-        else if((jlvl==one_evaluation || jlvl==basis_analysis) && dconstraints) JacStruct.AddMatrix(dconstraints->J(x_start));
-    }
-    if(hlvl!=do_nothing && hessian)
-    {
-        if(hlvl==user_defined) ffassert(HesStruct.size());
-        else if(hlvl==one_evaluation || !hessian->NLCHPEnabled() )
-        {
-            Rn lms=lambda_start;
-            lms=1.;
-            HesStruct.AddMatrix(hessian->J(x_start,sigma_start,lms));
-        }
-        else if(hlvl==basis_analysis)
-        {
-            {
-                Rn lambda(_mm,0.);
-                HesStruct.AddMatrix(hessian->J(x_start,1.,lambda));
-            }
-            for(int i=0;i<_mm;++i)
-            {
-                Rn lambda(_mm,0.);
-                lambda[i] = 1.;
-                HesStruct.AddMatrix(hessian->J(x_start,0.,lambda));
-                lambda[i] = 0.;
-            }
-        }
-    }
-    JacStruct.ToKn();
-    HesStruct.ToKn();
-    return *this;
-}
-int ffNLP::FindIndex(const KN<int> &irow,const KN<int> &jcol,int i,int j,int kmin,int kmax)
-{
-    //cout << "Trying to find (" << i << ',' << j << ") in :" << irow << jcol << " - kmin=" << kmin << " and kmax=" << kmax << endl;
-    typedef std::pair<int,int> Z2;
-    Z2 ij(i,j),ijmin(irow[kmin],jcol[kmin]),ijmax(irow[kmax],jcol[kmax]);
-    if(abs(kmin-kmax)<=1)
-    {
-        if(ij==ijmin) return kmin;
-        else if(ij==ijmax) return kmax;
-        else return -1;
-    }
-    else
-    {
-        int knew = (kmin + kmax) / 2;
-        Z2 ijnew(irow[knew],jcol[knew]);
-        if(ij <= ijnew) return FindIndex(irow,jcol,i,j,kmin,knew);
-        else return FindIndex(irow,jcol,i,j,knew,kmax);
-    }
-}
-
-
-bool ffNLP::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g,Index& nnz_h_lag, IndexStyleEnum& index_style)
-{
-    bool ret=true;
-    n = xstart ? xstart->N() : (ret=0);
-    //set(m,mm,constraints,xstart,ret);
-    //set(nnz_jac_g,nnz_jac,dconstraints,xstart,ret);
-    //set(nnz_h_lag,nnz_h,hessian,xstart,ret);
-    //if(JacStruct.empty() && constraints) BuildMatrixStructures(do_nothing,one_evaluation);
-    //if(HesStruct.empty()) BuildMatrixStructures(one_evaluation,do_nothing);
-    mm = m = constraints ? JacStruct.N() : 0;
-    nnz_jac = nnz_jac_g = constraints ? JacStruct.size() : 0;
-    nnz_h = nnz_h_lag = HesStruct.size();
-    index_style = TNLP::C_STYLE;
-    return ret;
-}
-
-bool ffNLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u)
-{
-    //cout << "n=" << n << " m=" << m << " mm=" << mm << " g_l.N()=" << gl.N() << " g_u.N()=" << gu.N() << endl;
-    //assert(gl.N()==mm);
-    //assert(gu.N()==mm);
-    KnToPtr(xl,x_l);
-    KnToPtr(xu,x_u);
-    if(mm) KnToPtr(gl,g_l);
-    if(mm) KnToPtr(gu,g_u);
-    /* DEBUG
-     cout << "constraints lower bound = (";
-     for(int i=0;i<m;++i) cout << g_l[i] <<  (i<m-1 ? ',':')');
-     cout << endl << "constraints upper bound = (";
-     for(int i=0;i<m;++i) cout << g_u[i] <<  (i<m-1 ? ',':')');
-     cout << endl;*/
-    return true;
-}
-bool ffNLP::get_starting_point(Index n, bool init_x, Number* x,bool init_z, Number* z_L, Number* z_U,Index m, bool init_lambda,Number* lambda)
-{
-    assert(init_x == true);
-    assert(xstart->N() == n);
-    KnToPtr(*xstart,x);
-    if(init_z)
-    {
-        if(uz_start.N() != n)
-        {
-            if(xu.min() < 1.e19)
-            {
-                cout << "ff-IPOPT warm start : upper simple bounds start multipliers array doesn't have the expected size (" << uz_start.N() << "!=" << n << ")." << endl;
-                cout << "                   ";
-                if(uz_start.N()==0) cout << "maybe because no upper bounds multiplier has been given. " << endl;
-                cout << " Initializing them to 1..." << endl;
-            }
-            uz_start.resize(n);
-            uz_start=1.;
-        }
-        if(lz_start.N() != n)
-        {
-            if(xl.max() > -1e19)
-            {
-                cout << "ff-IPOPT warm start : lower simple bounds start multipliers array doesn't have the expected size (" << lz_start.N() << "!=" << n << ")." << endl;
-                cout << "                   ";
-                if(lz_start.N()==0) cout << "maybe because no lower bounds multiplier has been given. " << endl;
-                cout << " Initializing them to 1..." << endl;
-            }
-            lz_start.resize(n);
-            lz_start=1.;
-        }
-        KnToPtr(uz_start, z_U);
-        KnToPtr(lz_start, z_L);
-    }
-    if(init_lambda)
-    {
-        if(lambda_start.N() != m)
-        {
-            cout << "ff-IPOPT warm start : constraints start multipliers array doesn't have the expected size (" << lambda_start.N() << "!=" << m << ")." << endl;
-            cout << "                   ";
-            if(lambda_start.N()==0) cout << "maybe because no constraints multiplier has been given. " << endl;
-            cout << " Initializing them to 1..." << endl;
-            lambda_start.resize(m);
-            lambda_start=1.;
-        }
-        KnToPtr(lambda_start, lambda);
-    }
-    return true;
-}
-bool ffNLP::eval_f(Index n, const Number* x, bool new_x, Number& obj_value)
-{
-    assert(n == xstart->N());
-    Rn X(n);
-    KnFromPtr(X,x);
-    obj_value = fitness->J(X);
-    return true;
-}
-bool ffNLP::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f)
-{
-    assert(n == xstart->N());
-    Rn X(n);
-    KnFromPtr(X,x);
-    Rn _grad_f=dfitness->J(X);
-    KnToPtr(_grad_f,grad_f);
-    return true;
-}
-bool ffNLP::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g)
-{
-    Rn X(n);
-    KnFromPtr(X,x);
-    if(constraints)
-    {
-        Rn _g=constraints->J(X);
-        KnToPtr(_g,g);
-    }
-    return true;
-}
-bool ffNLP::eval_jac_g(Index n, const Number* x, bool new_x,Index m, Index nele_jac, Index* iRow, Index *jCol,Number* values)
-{
-    assert(n==xstart->N());
-    Rn X(n);
-    if(x) KnFromPtr(X,x); else X=*xstart;
-    
-    if(values==0)
-    {
-        int k=0;
-        for(SparseMatStructure::const_iterator i=JacStruct.begin(); i != JacStruct.end(); ++i)
-        {
-            iRow[k] = i->first;
-            jCol[k] = i->second;
-            ++k;
-        }
-    }
-    else if(dconstraints)
-    {
-        Matrice_Creuse<R>* M = dconstraints->J(X);
-        MatriceMorse<R> *MM = dynamic_cast<MatriceMorse<R>* >(&(*M->A));  //ugly!
-        for(int i=0;i<MM->N;++i)
-        {
-            for(int k=MM->lg[i]; k < MM->lg[i+1]; ++k)
-            {
-                if(checkstruct)
-                {
-                    int kipopt = FindIndex(JacStruct.Raws(),JacStruct.Cols(),i,MM->cl[k],0,nele_jac-1);
-                    if(kipopt>=0) values[kipopt] = MM->a[k];
-                }
-                else values[k] = MM->a[k];
-            }
-        }
-    }
-    return true;
-}
-
-
-bool ffNLP::eval_h(Index n, const Number* x, bool new_x,Number obj_factor, Index m, const Number* lambda,bool new_lambda, Index nele_hess, Index* iRow,Index* jCol, Number* values)
-{
-    Rn X(n),L(m);
-    if(x) KnFromPtr(X,x); else X=*xstart;
-    if(lambda) KnFromPtr(L,lambda); else L=0.;
-    
-    bool NLCHPE = hessian->NLCHPEnabled();
-    Number _obj_factor = NLCHPE ? 1. : obj_factor;
-    if(values==0)
-    {
-        int k=0;
-        for(SparseMatStructure::const_iterator i=HesStruct.begin(); i != HesStruct.end(); ++i)
-        {
-            iRow[k] = i->first;
-            jCol[k] = i->second;
-            ++k;
-        }
-    }
-    else
-    {
-        Matrice_Creuse<R>* M=0;
-        if(NLCHPE) M=hessian->J(X,obj_factor,L); else M=hessian->J(X);
-        MatriceMorse<R> *MM = dynamic_cast<MatriceMorse<R>* >(&(*M->A));//ugly!
-        if(MM)
-        {
-            if(checkstruct)
-            {
-                for(int i=0;i<MM->N;++i)
-                {
-                    for(int k=MM->lg[i]; k < MM->lg[i+1]; ++k)
-                    {
-                        int kipopt = FindIndex(HesStruct.Raws(),HesStruct.Cols(),i,MM->cl[k],0,nele_hess-1);
-                        if(kipopt>=0) values[kipopt] = _obj_factor * (MM->a[k]);
-                        //else values[k] = (hessian->paramof &&hessian->paramlm ? 1. : obj_factor) * (MM->a[k]);
-                    }
-                }
-            }
-            else if(! MM->symetrique)
-            {
-                for(int i=0,kipopt=0;i<MM->N;++i)
-                {
-                    for(int k=MM->lg[i]; k < MM->lg[i+1]; ++k)
-                    {
-                        if(i >= MM->cl[k])
-                        {
-                            values[kipopt] = _obj_factor * (MM->a[k]);
-                            ++kipopt;
-                        }
-                    }
-                }
-            }
-            else
-            {
-                for(int i=0;i<MM->N;++i)
-                {
-                    for(int k=MM->lg[i]; k < MM->lg[i+1]; ++k) values[k] = _obj_factor * (MM->a[k]);
-                }
-            }
-        }
-    }
-    return true;
-}
-
-
-void ffNLP::finalize_solution(SolverReturn status,
-                              Index n, const Number* x, const Number* z_L, const Number* z_U,
-                              Index m, const Number* g, const Number* lambda,
-                              Number obj_value,const IpoptData* ip_data,
-                              IpoptCalculatedQuantities* ip_cq)
-{
-    KnFromPtr(*xstart,x);
-    KnFromPtr(lambda_start,lambda);
-    KnFromPtr(lz_start, z_L);
-    KnFromPtr(uz_start, z_U);
-    final_value = obj_value;
-}
-
-
-
-/*****************************************************************************************************************************
- *	Assumptions : these are tags used as template parameters for case specific function wrapping or warning message in the
- *                interface. Some case can be added here (but some class has to be specialized for the new cases)
- *  AssumptionF : undeff              --> undefined case (not used)
- *                no_assumption_f     --> most general case when the fitness function and all its derivative are coded in the
- *                                        freefem script with the func keyword (type Polymorphic in c++). These functions
- *                                        are then wrapped in GeneralFunc objects.
- *                P2_f                --> no longer used (it was used for fitness and its gradient defined as func in freefem
- *                                        script, while the hessian is a constant matrix directly given to the interface, but
- *                                        it leads to ambiguities).
- *                unavailable_hessian --> fitness function and its gradients coded with func in the ff script, wrapped into
- *                                        GeneralFunc objects, without second order derivative function. Enables the BFGS
- *                                        option of IPOPT.
- *                mv_P2_f             --> fitness function is a P2 function which will be defined by a [matrix,vector] array.
- *                                        The functions are passed to the ffNLP object as P2ScalarFunc, P1VectorFunc and
- *                                        ConstantSparseMatFunc respectively for the fitness function, its gradient and its
- *                                        hessian (with all vf=1).
- *                quadratic_f         --> f is a pure quadratic fonction, defined by a single matrix. Same type as mv_P2_f
- *                                        for function wrappers with a vf=0 tag.
- *                linear_f            --> f is a linear form, defined by a single vector. Same type as mv_P2_f
- *                                        for function wrappers with a vf=0 tag.
- *  AssumptionG : undeff              --> undefined case (not used)
- *                no_assumption_f     --> most general case when the constraint functions and all its derivative are coded in
- *                                        the freefem script with the func keyword (type Polymorphic in c++). These functions
- *                                        are then wrapped in GeneralFunc objects.
- *                P1_g                --> no longer used (it was used for constraints defined as func in freefem script
- *                                        , while the jacobian is a constant matrix directly given to the interface, but
- *                                        it leads to ambiguities).
- *                mv_P1_g             --> Constraints function is a P1 function which will be defined by a [matrix,vector]
- *                                        array. The functions are passed to the ffNLP object as P1VectorFunc and
- *                                        ConstantSparseMatFunc respectively for the constraints and its jacobian (with
- *                                        all vf=0).
- *                linear_g            --> Constraints are linear, defined by a single matrix. Same type as mv_P1_g
- *                                        for function wrappers with a vf=0 tag.
- *  Case : templatized with a pair of AssumptionF and AssumptionG, is used to build different constructor for the interface
- *         class in order to overload the freefem function which will call IPOPT
- *****************************************************************************************************************************/
-
-
-enum AssumptionF {undeff,no_assumption_f, P2_f, unavailable_hessian, mv_P2_f, quadratic_f, linear_f};
-enum AssumptionG {undefg,without_constraints, no_assumption_g, P1_g, mv_P1_g, linear_g};
-
-template<AssumptionF AF,AssumptionG AG> struct Case
-{
-    Case() {}
-    static const AssumptionF af=AF;
-    static const AssumptionG ag=AG;
-};
-
-
-/*****************************************************************************************************************************
- *	CheckMatrixVectorPair : Small function taking an E_Array and check whether the type of the 2 objects contained in the
- *  array are matrix and vector. Returns false if types are not matrix/vector.
- *  order is modified to know whether the matrix is in first position or not.
- *****************************************************************************************************************************/
-bool CheckMatrixVectorPair(const E_Array *mv,bool &order)
-{
-    const aType t1 = (*mv)[0].left(), t2 = (*mv)[1].left();
-    if(NXOR(t1 == atype<Matrice_Creuse<R>*>() , t2 == atype<Matrice_Creuse<R>*>())) return false;
-    else if(NXOR(t1 == atype<Rn*>(),t2 == atype<Rn*>())) return false;
-    else
-    {
-        order = (t1 == atype<Matrice_Creuse<R>*>());
-        return true;
-    }
-}
-
-
-/*****************************************************************************************************************************
- *	The following class offers a polymorphic way to build the function wrappers to pass to the ffNLP object
- *  Each element of the assumption enum define a "FunctionDatas" class in which the constructor and the operator() makes
- *  case specific task.
- *  If some new value in the Assumption enums are to be added, the FitnessFunctionDatas and/or ConstraintFunctionDatas with
- *  the new value as template parameter has to be specialized.
- *  What should the method do is (exemple at the end of the file with already coded cases):
- *  Constructor : define the Expression members using the arguments passed to the IPOPT function in the script
- *  operator()  : allocate with appropriate dynamic type the ScalarFunc, VectorFunc, SparseMatFunc pointers, and display some
- *                case dependant errors or warnings (note that there is no ScalarFunc ptr to allocate for constraints)
- *****************************************************************************************************************************/
-class GenericFitnessFunctionDatas
-{
-public:
-    static GenericFitnessFunctionDatas* New(AssumptionF,const basicAC_F0 &,Expression const *,const C_F0&,const C_F0&,const C_F0&);
-    bool CompletelyNonLinearConstraints;
-    Expression JJ,GradJ,Hessian;
-    GenericFitnessFunctionDatas() : CompletelyNonLinearConstraints(true),JJ(0),GradJ(0),Hessian(0) {}
-    virtual const AssumptionF A() const {return undeff;}
-    virtual void operator()(Stack,const C_F0&,const C_F0&,const C_F0&,Expression const *,ScalarFunc *&,VectorFunc *&,SparseMatFunc *&,bool) const = 0; //Build the functions
-    virtual ~GenericFitnessFunctionDatas() {}
-};
-template<AssumptionF AF> class FitnessFunctionDatas : public GenericFitnessFunctionDatas  //not really a template, since most of the methods of all cases have to be specialized
-{
-public:
-    FitnessFunctionDatas(const basicAC_F0 &,Expression const *,const C_F0 &,const C_F0 &,const C_F0 &);
-    const AssumptionF A() const {return AF;}
-    void operator()(Stack,const C_F0&,const C_F0&,const C_F0&,Expression const *,ScalarFunc *&,VectorFunc *&,SparseMatFunc *&,bool) const;
-    
-};
-
-class GenericConstraintFunctionDatas
-{
-public:
-    static GenericConstraintFunctionDatas* New(AssumptionG,const basicAC_F0 &,Expression const *,const C_F0 &);
-    Expression Constraints,GradConstraints;
-    GenericConstraintFunctionDatas() : Constraints(0),GradConstraints(0) {}
-    virtual const AssumptionG A() const {return undefg;}
-    virtual const bool WC() const =0;//with constraints
-    virtual void operator()(Stack,const C_F0 &,Expression const *,VectorFunc *&,SparseMatFunc *&,bool) const = 0;//build the functions`
-    virtual  ~GenericConstraintFunctionDatas() {}
-    
-};
-template<AssumptionG AG> class ConstraintFunctionDatas : public GenericConstraintFunctionDatas
-{
-public:
-    ConstraintFunctionDatas(const basicAC_F0 &,Expression const *,const C_F0 &);
-    const AssumptionG A() const {return AG;}
-    const bool WC() const {return AG!=without_constraints;}
-    void operator()(Stack,const C_F0&,Expression const *,VectorFunc *&,SparseMatFunc *&,bool) const ;
-};
-
-
-
-
-/*****************************************************************************************************************************
- *	OptimIpopt & OptimIpopt::E_Ipopt - The interface class
- *  Do the link beetween freefem and Ipopt
- *****************************************************************************************************************************/
-class OptimIpopt : public OneOperator
-{
-public:
-    const AssumptionF AF;
-    const AssumptionG AG;
-    class E_Ipopt : public E_F0mps
-    {
-    private:
-        bool spurious_cases;
-    public:
-        const AssumptionF AF;
-        const AssumptionG AG;
-        const bool WC;
-        std::set<unsigned short> unused_name_param; //In some case, some parameter are usless, this is the list of their index in nargs
-        void InitUNP(); //Initialize unusued_name_param at freefem compile time
-        static basicAC_F0::name_and_type name_param[];
-        static const int n_name_param=29;
-        Expression nargs[n_name_param];
-        Expression X;
-        mutable Rn lm;
-        C_F0 L_m;
-        C_F0 inittheparam,theparam,closetheparam;
-        C_F0 initobjfact,objfact;
-        GenericFitnessFunctionDatas * fitness_datas;
-        GenericConstraintFunctionDatas * constraints_datas;
-        bool arg(int i,Stack stack,bool a) const {return nargs[i] ? GetAny<bool>( (*nargs[i])(stack) ): a;}
-        long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-        R arg(int i,Stack stack,R a) const{ return nargs[i] ? GetAny<R>( (*nargs[i])(stack) ): a;}
-        Rn_ arg(int i,Stack stack,Rn_ a) const {return nargs[i] ? GetAny<Rn_>((*nargs[i])(stack)) : a;}
-        template<typename T> T Arg(int i,Stack s) const {return GetAny<T>( (*nargs[i])(s));}
-        
-        E_Ipopt(const basicAC_F0 & args,AssumptionF af,AssumptionG ag)
-        : lm(),L_m(CPValue(lm)),AF(af),AG(ag),WC(ag!=without_constraints),unused_name_param(),
-        spurious_cases(false),fitness_datas(0),constraints_datas(0)
-        {
-            InitUNP();
-            int nbj= args.size()-1;
-            Block::open(currentblock); // make a new block to
-            X = to<Rn*>(args[nbj]);
-            C_F0 X_n(args[nbj],"n");
-            //  the expression to init the theparam of all
-            inittheparam = currentblock->NewVar<LocalVariable>("the parameter",atype<KN<R> *>(),X_n);
-            initobjfact = currentblock->NewVar<LocalVariable>("objective factor",atype<double *>());
-            //C_F0 initlm = currentblock->NewVar<LocalVariable>("lagrange multiplier",atype<KN<R> *>(),L_m);
-            theparam = currentblock->Find("the parameter"); //  the expression for the parameter
-            objfact = currentblock->Find("objective factor");
-            args.SetNameParam(n_name_param,name_param,nargs);
-            fitness_datas = GenericFitnessFunctionDatas::New(AF,args,nargs,theparam,objfact,L_m); //Creates links to the freefem objects
-            constraints_datas = GenericConstraintFunctionDatas::New(AG,args,nargs,theparam);      //defining the functions
-            spurious_cases = AG==no_assumption_g && (AF==P2_f || AF==mv_P2_f || AF==quadratic_f || AF==linear_f);
-            closetheparam=currentblock->close(currentblock);   // the cleanning block expression
-        }
-        ~E_Ipopt()
-        {
-            if(fitness_datas) delete fitness_datas;
-            if(constraints_datas) delete constraints_datas;
-        }
-        
-        
-        virtual AnyType operator()(Stack stack)  const
-        {
-            double cost = nan("");
-            WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005
-            Rn &x = *GetAny<Rn *>((*X)(stack));
-            {
-                Expression test(theparam); //in some case the KN object associated to the param is never initialized, leading to failed assertion in KN::destroy
-                Rn *tt = GetAny<Rn *>((*test)(stack)); //this lines prevent this to happen
-                *tt = x;
-            }
-            long n=x.N();
-            bool warned=false;
-            cout << endl;
-            if(spurious_cases)
-            {
-                cout << "ff-IPOPT Spurious case detected : the hessian is defined as a constant matrix but constraints are given in function form." << endl;
-                cout << "If they are not affine, the optimization is likely to fail. In this case, try one of the following suggestions:" << endl;
-                cout << "  - if constraints have computable hessians, use function form for the fitness function and all its derivatives" << endl;
-                cout << "    and check the documentation to know how to express the whole lagrangian hessian." << endl;
-                cout << "  - if constraints hessians are difficult to obtain, force the BFGS mode using named parameter "<< name_param[12].name<< '.' << endl;
-                cout << "Do not worry about this message if you know all your constraints has a constant null hessian." << endl << endl;
-            }
-            if(nargs[7]) cout << "ff-IPOPT : the named parameter autostruct is no longer used in this version of the interface." << endl;
-            //Detection of mixed case dependant warnings or error
-            for(int i=0;i<n_name_param;++i)
-                if(nargs[i] && unused_name_param.find(i)!=unused_name_param.end())
-                {
-                    cout << "ff-IPOPT Warning: named parameter " << name_param[i].name << " is useless for the problem you have set." << endl;
-                    warned = true;
-                }
-            if(nargs[4] && nargs[5] && nargs[7])
-            {
-                cout << "ff-IPOPT Warning: both " << name_param[4].name << " and " << name_param[5].name << " has been defined, so " << name_param[7].name;
-                cout << " will be ignored." << endl;
-            }
-            if(warned)
-            {
-                if(!WC && AF==unavailable_hessian && nargs[8])
-                {
-                    cout << "  ==> " << name_param[8].name << " is useless because there should not be any function returning matrix in your problem," << endl;
-                    cout << "      (2 functions can only be J and dJ). You may as well have forgotten one function (IPOPT will certainly crash if so)." << endl;
-                }
-                if(AF!=no_assumption_f && AF!=unavailable_hessian && AG!=no_assumption_g && nargs[5])
-                {
-                    cout << "  ==> your lagrangian hessian is a constant matrix, so there is no need to specify its structure with " << name_param[5].name << endl;
-                    cout << "      since it is contained in the matrix object." << endl;
-                }
-                if(AF!=no_assumption_f && AF!=unavailable_hessian && AG!=no_assumption_g && nargs[7])
-                {
-                    cout << "  ==> " << name_param[7].name << " will be ignored since all matrices are constants and constraints do not" << endl;
-                    cout << "      contribute to the hessian, matrix structure determination is trivial." << endl;
-                }
-                if(AF==unavailable_hessian && AG!=no_assumption_g && (nargs[7] || nargs[8]))
-                {
-                    cout << "  ==> " << name_param[7].name << " or " << name_param[8].name << " will be ignored since the only matrix you have passed is constant. " << endl;
-                    cout << "      Or maybe did you forget to pass a function (IPOPT will certainly crash if so)." << endl;
-                }
-                if(AF!=no_assumption_f && AF!=unavailable_hessian && AG!=no_assumption_g && nargs[8])
-                {
-                    cout << "  ==> no need to use " << name_param[8].name << " since all matrices are constant, structures won't change through the algorithm," << endl;
-                    cout << "      it is automatically set to the default disabling value." << endl;
-                }
-            }
-            
-            long iprint = verbosity;
-            
-            ScalarFunc *ffJ=0;
-            VectorFunc *ffdJ=0,*ffC=0;
-            SparseMatFunc *ffH=0,*ffdC=0;
-            
-            (*fitness_datas)(stack,theparam,objfact,L_m,nargs,ffJ,ffdJ,ffH,warned);//Fill the functions
-            (*constraints_datas)(stack,theparam,nargs,ffC,ffdC,warned);
-            
-            Rn xl(n),xu(n),gl(nargs[2] ? Arg<Rn_>(2,stack).N() : 0),gu(nargs[3] ? Arg<Rn_>(3,stack).N() : 0);
-            int mmm=0;
-            if(WC && (gl.N()+gu.N())==0)
-            {
-                cout << "IPOPT Warning : constrained problem without constraints bounds." << endl;
-                mmm = ffC->J(x).N();
-            }
-            else mmm=gl.N()>gu.N() ? gl.N() : gu.N();
-            Rn_ *lag_mul=0,*l_z=0,*u_z=0;//Rn(mmm,1.);
-            //int niter=arg(6,stack,100L);
-            int autostructmode = ffNLP::one_evaluation;
-            bool checkindex = (AF!=no_assumption_f && AG!=no_assumption_g) ? false : arg(8,stack,true), cberror=false;
-            
-            if(nargs[0]) xl=Arg<Rn_>(0,stack); else xl=-1.e19;
-            if(nargs[1]) xu=Arg<Rn_>(1,stack); else xu=1.e19;
-            if(nargs[2]) gl=Arg<Rn_>(2,stack); else {gl.resize(mmm); gl=-1.e19;}
-            if(nargs[3]) gu=Arg<Rn_>(3,stack); else {gu.resize(mmm); gu=1.e19;}
-            const E_Array * ejacstruct = (WC && AF==no_assumption_f && AG==no_assumption_g && nargs[4]) ? dynamic_cast<const E_Array *> (nargs[4]) : 0,
-            * ehesstruct = (AF==no_assumption_f && nargs[5]) ? dynamic_cast<const E_Array *> (nargs[5]) : 0;
-            
-            if(nargs[6] && WC) lag_mul = new Rn_(GetAny<Rn_>((*nargs[6])(stack)));
-            if(nargs[21]) l_z = new Rn_(GetAny<Rn_>((*nargs[21])(stack)));
-            if(nargs[20]) u_z = new Rn_(GetAny<Rn_>((*nargs[20])(stack)));
-            
-            
-            SmartPtr<TNLP> optim = new ffNLP(x,xl,xu,gl,gu,ffJ,ffdJ,ffH,ffC,ffdC);
-            ffNLP * _optim = dynamic_cast<ffNLP *> (&(*optim));
-            assert(_optim);
-            if(WC && nargs[6]) _optim->lambda_start = *lag_mul;
-            else if(WC)
-            {
-                _optim->lambda_start.resize(mmm);
-                _optim->lambda_start = 1.;
-            }
-            _optim->sigma_start = 1.;
-            if(nargs[21] && nargs[0]) _optim->lz_start = *l_z;
-            else if(nargs[0]) {_optim->lz_start.resize(xl.N()); _optim->lz_start = 1.;}
-            if(nargs[20] && nargs[1]) _optim->uz_start = *u_z;
-            else if(nargs[1]) {_optim->uz_start.resize(xu.N()); _optim->uz_start = 1.;}
-            
-            if(ejacstruct)
-            {
-                if(ejacstruct->nbitem()!=2) ExecError("\nSorry, we were expecting an array with two componants in structjac=[iraw,jcol]");
-                if((*ejacstruct)[0].left() != atype<KN<long> *>()) CompileError("Sorry, array componants in structjac=[iraw,jcol] must be integer arrays");
-                if((*ejacstruct)[1].left() != atype<KN<long> *>()) CompileError("Sorry, array componants in structjac=[iraw,jcol] must be integer arrays");
-                Expression raws = (*ejacstruct)[0], cols = (*ejacstruct)[1];
-                _optim->SetJacobianStructure(*GetAny<KN<long>*>((*raws)(stack)),*GetAny<KN<long>*>((*cols)(stack)),true);
-            }
-            if(ehesstruct)
-            {
-                if(ehesstruct->nbitem()!=2) ExecError("\nSorry, we were expecting an array with two componants in structhess=[iraw,jcol]");
-                if((*ehesstruct)[0].left() != atype<KN<long> *>()) CompileError("Sorry, array componants in structhess=[iraw,jcol] must be integer arrays");
-                if((*ehesstruct)[1].left() != atype<KN<long> *>()) CompileError("Sorry, array componants in structhess=[iraw,jcol] must be integer arrays");
-                Expression raws = (*ehesstruct)[0], cols = (*ehesstruct)[1];
-                _optim->SetHessianStructure(*GetAny<KN<long>*>((*raws)(stack)),*GetAny<KN<long>*>((*cols)(stack)),true);
-            }
-            ffNLP::Level lh=ehesstruct ? ffNLP::user_defined : ffNLP::Level(autostructmode),lj=ejacstruct ? ffNLP::user_defined : ffNLP::Level(autostructmode);
-            if(AF==unavailable_hessian) lh=ffNLP::do_nothing;
-            _optim->BuildMatrixStructures(lh,lj,mmm);
-            if(checkindex) _optim->EnableCheckStruct();
-            
-            SmartPtr<IpoptApplication> app = new IpoptApplication();
-            
-            //app->Options()->SetNumericValue("tol", 1e-10);
-            if(nargs[9]) app->Options()->SetNumericValue("tol",GetAny<double>((*nargs[9])(stack)));
-            if(nargs[10]) app->Options()->SetIntegerValue("max_iter",GetAny<long>((*nargs[10])(stack)));
-            if(nargs[11]) app->Options()->SetNumericValue("max_cpu_time",GetAny<double>((*nargs[11])(stack)));
-            bool bfgs = nargs[12] ? GetAny<bool>((*nargs[12])(stack)) : false;
-            //app->Options()->SetStringValue("hessian_approximation","limited-memory");
-            if(AF==unavailable_hessian || bfgs)
-            {
-                if(AF==unavailable_hessian && !bfgs) cout << "IPOPT Note : No hessian given ==> LBFGS hessian approximation enabled" << endl;
-                app->Options()->SetStringValue("hessian_approximation","limited-memory");
-            }
-            if(nargs[13])
-            {
-                string derivative_test = *GetAny<string*>((*nargs[13])(stack)) ;
-                app->Options()->SetStringValue("derivative_test",derivative_test.c_str());
-            }
-            if(nargs[14])
-            {
-                string options_file = *GetAny<string*>((*nargs[14])(stack));
-                app->Options()->SetStringValue("option_file_name",options_file.c_str());
-            }
-            if(nargs[15]) app->Options()->SetIntegerValue("print_level",GetAny<long>((*nargs[15])(stack)));
-            if(AG==without_constraints || AG==mv_P1_g || AG==linear_g)
-            {
-                app->Options()->SetStringValue("jac_c_constant","yes");
-                app->Options()->SetStringValue("jac_d_constant","yes");
-            }
-            if(AF==mv_P2_f || AF==quadratic_f || AF==linear_f) app->Options()->SetStringValue("hessian_constant","yes");
-            if(nargs[16]) app->Options()->SetNumericValue("derivative_test_perturbation",GetAny<double>((*nargs[16])(stack)));
-            if(nargs[17]) app->Options()->SetNumericValue("derivative_test_tol",GetAny<double>((*nargs[16])(stack)));
-            if(nargs[18]) app->Options()->SetStringValue("fixed_variable_treatment",GetAny<string*>((*nargs[18])(stack))->c_str());
-            if(nargs[19])
-            {
-                app->Options()->SetStringValue("warm_start_init_point","yes");
-                if(WC && !nargs[6])
-                {
-                    cout << "ff-IPOPT Warning : warm start for constrained problem without initial constraints dual variables (" << name_param[6].name << " parameter)." << endl;
-                    cout << "                   ==> Starting with " << name_param[6].name << "=(1,1,...,1)." << endl;
-                }
-                if(nargs[0] && !nargs[21])
-                {
-                    cout << "ff-IPOPT Warning : warm start with simple lower bounds without initial lower bounds dual variables (" << name_param[21].name << " parameter)." << endl;
-                    cout << "                   ==> Starting with " << name_param[21].name << "=(1,1,...,1)." << endl;
-                }
-                if(nargs[1] && !nargs[20])
-                {
-                    cout << "ff-IPOPT Warning : warm start with simple upper bounds without initial upper bounds dual variables (" << name_param[20].name << " parameter)." << endl;
-                    cout << "                   ==> Starting with " << name_param[20].name << "=(1,1,...,1)." << endl;
-                }
-                if(l_z) _optim->lz_start = *l_z;
-                if(u_z) _optim->uz_start = *u_z;
-                if(lag_mul) _optim->lambda_start = *lag_mul;
-            }
-            
-            if(nargs[22]) app->Options()->SetNumericValue("mu_init",GetAny<double>((*nargs[22])(stack)));
-            else app->Options()->SetStringValue("mu_strategy", "adaptive");
-            if(nargs[23]) app->Options()->SetNumericValue("mumps_pivtol",GetAny<double>((*nargs[23])(stack)));
-            if(nargs[24]) app->Options()->SetNumericValue("bound_relax_factor",GetAny<double>((*nargs[24])(stack)));
-            if(nargs[25]) app->Options()->SetStringValue("mu_strategy",GetAny<string*>((*nargs[25])(stack))->c_str());
-            if(nargs[27]) app->Options()->SetNumericValue("mu_min",GetAny<double>((*nargs[27])(stack)));
-            if(nargs[28]) if(!GetAny<bool>((*nargs[28])(stack))) app->Options()->SetStringValue("accept_every_trial_step","yes");
-            //if(nargs[26]) app->Options()->SetNumericValue("obj_scaling_factor",GetAny<double>((*nargs[26])(stack)));
-            if(verbosity>1) app->Options()->SetStringValue("print_user_options","yes");
-            app->Options()->SetStringValue("output_file", "ipopt.out");
-            if(AF!=no_assumption_f && AF!=unavailable_hessian && AG!=no_assumption_g) app->Options()->SetStringValue("mehrotra_algorithm", "yes");
-            
-            ApplicationReturnStatus status;
-            app->Initialize();
-            
-            // Ask Ipopt to solve the problem
-            status = app->OptimizeTNLP(optim);
-            
-            if(lag_mul) *lag_mul = _optim->lambda_start;
-            if(l_z) *l_z = _optim->lz_start;
-            if(u_z) *u_z = _optim->uz_start;
-            cost = _optim->final_value;
-            
-            if(nargs[26])
-            {
-                double *pfv = GetAny<double*>((*nargs[26])(stack));
-                *pfv = cost;
-            }
-            if(verbosity)
-            {
-                if(status == Solve_Succeeded) printf("\n\n*** Ipopt succeeded \n");
-                else if(static_cast<int>(status)<0) printf("\n\n*** Ipopt failure!\n");
-                else printf("\n\n*** Ipopt mixed results.\n");
-            }
-            
-            
-            clean(lag_mul);
-            clean(l_z);
-            clean(u_z);
-            clean(ffJ);
-            clean(ffdJ);
-            clean(ffH);
-            clean(ffC);
-            clean(ffdC);
-            if(lm) lm.destroy(); // clean memory of LM
-            closetheparam.eval(stack); // clean memory
-            WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005
-            return SetAny<long>(static_cast<long>(static_cast<int>(status))); //SetAny<long>(0);  Modif FH  july 2005
-        }
-        
-        operator aType () const { return atype<long>();}
-        
-    };
-    
-    E_F0 * code(const basicAC_F0 & args) const {return new E_Ipopt(args,AF,AG);}
-    
-    //Constructors - they define the different prototype of the overloaded IPOPT function reachable in freefem scripts
-    
-    OptimIpopt(Case<no_assumption_f,no_assumption_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<KN<R> *>()),
-    AF(no_assumption_f),AG(no_assumption_g) {}
-    OptimIpopt(Case<no_assumption_f,without_constraints>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<KN<R> *>()),
-    AF(no_assumption_f),AG(without_constraints) {}
-    OptimIpopt(Case<no_assumption_f,P1_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R> *>(),atype<KN<R> *>()),
-    AF(no_assumption_f),AG(P1_g) {}
-    OptimIpopt(Case<no_assumption_f,mv_P1_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<E_Array>(),atype<KN<R> *>()),
-    AF(no_assumption_f),AG(mv_P1_g) {}
-    OptimIpopt(Case<no_assumption_f,linear_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R> *>()),
-    AF(no_assumption_f),AG(linear_g) {}
-    
-    
-    OptimIpopt(Case<P2_f,P1_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R> *>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R> *>(),atype<KN<R> *>()),
-    AF(P2_f),AG(P1_g) {}
-    OptimIpopt(Case<P2_f,without_constraints>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R> *>(),atype<KN<R> *>()),
-    AF(P2_f),AG(without_constraints) {}
-    OptimIpopt(Case<P2_f,no_assumption_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R> *>(),atype<Polymorphic*>(),atype<Polymorphic *>(),atype<KN<R> *>()),
-    AF(P2_f),AG(no_assumption_g) {}
-    OptimIpopt(Case<P2_f,mv_P1_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R>*>(),atype<E_Array>(),atype<KN<R> *>()),
-    AF(P2_f),AG(mv_P1_g) {}
-    OptimIpopt(Case<P2_f,linear_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R>*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R> *>()),
-    AF(P2_f),AG(linear_g) {}
-    
-    OptimIpopt(Case<unavailable_hessian,no_assumption_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<KN<R> *>()),
-    AF(unavailable_hessian),AG(no_assumption_g) {}
-    OptimIpopt(Case<unavailable_hessian,without_constraints>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<KN<R> *>()),AF(unavailable_hessian),AG(without_constraints) {}
-    OptimIpopt(Case<unavailable_hessian,P1_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R> *>()),
-    AF(unavailable_hessian),AG(P1_g) {}
-    OptimIpopt(Case<unavailable_hessian,mv_P1_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<E_Array>(),atype<KN<R>*>()),
-    AF(unavailable_hessian),AG(mv_P1_g) {}
-    OptimIpopt(Case<unavailable_hessian,linear_g>) :
-    OneOperator(atype<long>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R>*>()),
-    AF(unavailable_hessian),AG(linear_g) {}
-    
-    OptimIpopt(Case<mv_P2_f,no_assumption_g>) :
-    OneOperator(atype<long>(),atype<E_Array>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<KN<R>*>()),
-    AF(mv_P2_f),AG(no_assumption_g) {}
-    OptimIpopt(Case<mv_P2_f,without_constraints>) :
-    OneOperator(atype<long>(),atype<E_Array>(),atype<KN<R>*>()),
-    AF(mv_P2_f),AG(without_constraints) {}
-    OptimIpopt(Case<mv_P2_f,P1_g>) :
-    OneOperator(atype<long>(),atype<E_Array>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R>*>()),
-    AF(mv_P2_f),AG(P1_g) {}
-    OptimIpopt(Case<mv_P2_f,mv_P1_g>) :
-    OneOperator(atype<long>(),atype<E_Array>(),atype<E_Array>(),atype<KN<R>*>()),
-    AF(mv_P2_f),AG(mv_P1_g) {}
-    OptimIpopt(Case<mv_P2_f,linear_g>) :
-    OneOperator(atype<long>(),atype<E_Array>(),atype<Matrice_Creuse<R>*>(),atype<KN<R>*>()),
-    AF(mv_P2_f),AG(linear_g) {}
-    
-    OptimIpopt(Case<quadratic_f,no_assumption_g>) :
-    OneOperator(atype<long>(),atype<Matrice_Creuse<R>*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<KN<R>*>()),
-    AF(quadratic_f),AG(no_assumption_g) {}
-    OptimIpopt(Case<quadratic_f,without_constraints>) :
-    OneOperator(atype<long>(),atype<Matrice_Creuse<R>*>(),atype<KN<R>*>()),
-    AF(quadratic_f),AG(without_constraints) {}
-    OptimIpopt(Case<quadratic_f,P1_g>) :
-    OneOperator(atype<long>(),atype<Matrice_Creuse<R>*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R>*>()),
-    AF(quadratic_f),AG(P1_g) {}
-    OptimIpopt(Case<quadratic_f,mv_P1_g>) :
-    OneOperator(atype<long>(),atype<Matrice_Creuse<R>*>(),atype<E_Array>(),atype<KN<R>*>()),
-    AF(quadratic_f),AG(mv_P1_g) {}
-    OptimIpopt(Case<quadratic_f,linear_g>) :
-    OneOperator(atype<long>(),atype<Matrice_Creuse<R>*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R>*>()),
-    AF(quadratic_f),AG(linear_g) {}
-    
-    
-    OptimIpopt(Case<linear_f,no_assumption_g>) :
-    OneOperator(atype<long>(),atype<KN<R>*>(),atype<Polymorphic*>(),atype<Polymorphic*>(),atype<KN<R>*>()),
-    AF(linear_f),AG(no_assumption_g) {}
-    OptimIpopt(Case<linear_f,without_constraints>) :
-    OneOperator(atype<long>(),atype<KN<R>*>(),atype<KN<R>*>()),
-    AF(linear_f),AG(without_constraints) {}
-    OptimIpopt(Case<linear_f,P1_g>) :
-    OneOperator(atype<long>(),atype<KN<R>*>(),atype<Polymorphic*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R>*>()),
-    AF(linear_f),AG(P1_g) {}
-    OptimIpopt(Case<linear_f,mv_P1_g>) :
-    OneOperator(atype<long>(),atype<KN<R>*>(),atype<E_Array>(),atype<KN<R>*>()),
-    AF(linear_f),AG(mv_P1_g) {}
-    OptimIpopt(Case<linear_f,linear_g>) :
-    OneOperator(atype<long>(),atype<KN<R>*>(),atype<Matrice_Creuse<R>*>(),atype<KN<R>*>()),
-    AF(linear_f),AG(linear_g) {}
-    
-};
-
-
-
-/*
- enum AssumptionF {no_assumption_f, P2_f, unavailable_hessian, mv_P2_f, quadratic_f,linear_f};
- enum AssumptionG {without_constraints, no_assumption_g, P1_g, mv_P1_g, linear_g};
- */
-
-//Case dependant initialization of unused_name_param
-//exemple : AF==no_assumption_f && AG==without_constraints ==> no constraint related named parameter should be used (index 2,3,4,6 - first integer is how many are not used)
-void OptimIpopt::E_Ipopt::InitUNP()
-{
-    if(AF==no_assumption_f && AG==no_assumption_g) {} //no unused named parameter
-    if(AF==no_assumption_f && AG==without_constraints)			AddElements(unused_name_param,4,2,3,4,6);
-    if(AF==no_assumption_f && AG==P1_g)											AddElements(unused_name_param,1,4);
-    if(AF==no_assumption_f && AG==mv_P1_g)									AddElements(unused_name_param,1,4);
-    if(AF==no_assumption_f && AG==linear_g)									AddElements(unused_name_param,1,4);
-    if(AF==P2_f	&& AG==P1_g)																AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==P2_f && AG==without_constraints)									AddElements(unused_name_param,8,2,3,4,5,6,7,8,12);
-    if(AF==P2_f && AG==no_assumption_g)											AddElements(unused_name_param,1,5);
-    if(AF==P2_f && AG==mv_P1_g)															AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==P2_f && AG==linear_g)														AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==unavailable_hessian && AG==no_assumption_g)			AddElements(unused_name_param,1,5);
-    if(AF==unavailable_hessian && AG==without_constraints)	AddElements(unused_name_param,7,2,3,4,5,6,7,8);
-    if(AF==unavailable_hessian && AG==P1_g)									AddElements(unused_name_param,4,4,5,7,8);
-    if(AF==unavailable_hessian && AG==mv_P1_g)							AddElements(unused_name_param,4,4,5,7,8);
-    if(AF==unavailable_hessian && AG==linear_g)							AddElements(unused_name_param,4,4,5,7,8);
-    if(AF==mv_P2_f && AG==without_constraints)							AddElements(unused_name_param,8,2,3,4,5,6,7,8,12);
-    if(AF==mv_P2_f && AG==no_assumption_g)									AddElements(unused_name_param,1,5);
-    if(AF==mv_P2_f && AG==P1_g)															AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==mv_P2_f && AG==mv_P1_g)													AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==mv_P2_f && AG==linear_g)													AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==quadratic_f && AG==without_constraints)					AddElements(unused_name_param,8,2,3,4,5,6,7,8,12);
-    if(AF==quadratic_f && AG==no_assumption_g)							AddElements(unused_name_param,1,5);
-    if(AF==quadratic_f && AG==P1_g)													AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==quadratic_f && AG==mv_P1_g)											AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==quadratic_f && AG==linear_g)											AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==linear_f && AG==without_constraints)							AddElements(unused_name_param,8,2,3,4,5,6,7,8,12);
-    if(AF==linear_f && AG==no_assumption_g)									AddElements(unused_name_param,1,5);
-    if(AF==linear_f && AG==P1_g)														AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==linear_f && AG==mv_P1_g)													AddElements(unused_name_param,5,4,5,7,8,12);
-    if(AF==linear_f && AG==linear_g)												AddElements(unused_name_param,5,4,5,7,8,12);
-}
-
-
-
-basicAC_F0::name_and_type  OptimIpopt::E_Ipopt::name_param[]=
-{
-    //DONT CHANGE THE ORDER!!!! If some parameters need to be added, add them after the last one
-    //otherwize warning message of this interface will be a mess
-    {"lb",				&typeid(KN_<double>) },									//0  -  lower bound on optimization parameter X
-    {"ub",				&typeid(KN_<double>) },									//1  -  upper bound on optimization parameter X
-    {"clb",				&typeid(KN_<double>) },									//2  -  constraints lower bounds
-    {"cub",				&typeid(KN_<double>) },									//3  -  constraints upper bounds
-    {"structjacc",&typeid(E_Array)},											//4  -  constraints jacobian structure
-    {"structhess",&typeid(E_Array)},											//5  -  lagrangian hessian structure
-    {"lm",				&typeid(KN_<double>)},									//6  -  lagrange multiplier (for autostruct or to get their value at the end of the algorithm)
-    {"autostruct",&typeid(long)},													//7  -  automatic structure determination
-    {"checkindex",&typeid(bool)},													//8  -  whether to use the FindIndex function or not
-    {"tol",				&typeid(double)},												//9  -  stopping criteria tol
-    {"maxiter",		&typeid(long)},													//10 -  stopping criteria : maximum number of iterations
-    {"maxcputime",&typeid(double)},												//11 -  stopping criteria : maximum CPU time
-    {"bfgs",      &typeid(bool)},													//12 -  force the bfgs hessian approximation
-    {"derivativetest", &typeid(string*)},									//13 -  call the derivative checker
-    {"optfile",		&typeid(string*)},											//14 -  set the ipopt option file name (default is ipopt.opt)
-    {"printlevel",&typeid(long)},													//15 -  controls IPOPT print level output
-    {"dth",				&typeid(double)},												//16 -  perturbation for finite difference derivative test
-    {"dttol",			&typeid(double)},												//17 -  relative tolerence for the derivative test error detection
-    {"fixedvar",	&typeid(string*)},											//18 -  remove the equality simple bounds from problem
-    {"warmstart", &typeid(bool)},													//19 -  do we initialize multipliers with given values
-    {"uz",				&typeid(KN_<double>) },									//20 -  simple upper bounds dual variable
-    {"lz",				&typeid(KN_<double>) },									//21 -  simple lower bounds dual variable
-    {"muinit",		&typeid(double) },											//22 -  barrier parameter initialization
-    {"pivtol",		&typeid(double) },											//23 -  pivot tolerance for the linear solver
-    {"brf",				&typeid(double) },											//24 -  bounds relax factor
-    {"mustrategy",&typeid(string*) },											//25 -  strategy for barrier parameter update
-    {"objvalue",  &typeid(double*) },											//26 -  to get the last objective function value
-    {"mumin",			&typeid(double) },											//27 -  minimal value for the barrier parameter
-    {"linesearch",&typeid(bool) }                         //28 -  use the line search or not (if no, the usual Newton step is kept)
-    //{"osf",				&typeid(double) }												//26 -  objective function scalling factor
-};
-
-
-
-<<<<<<< HEAD
-/*  class Init { public:
-=======
-class Init { public:
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    Init();
-};
-
-static Init init;
-<<<<<<< HEAD
-*/
-static void Load_Init()
-=======
-
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-    Global.Add("IPOPT","(",new OptimIpopt(Case<no_assumption_f,no_assumption_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<no_assumption_f,without_constraints>()));
-    //Global.Add("IPOPT","(",new OptimIpopt(Case<no_assumption_f,P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<no_assumption_f,mv_P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<no_assumption_f,linear_g>()));
-    /*Global.Add("IPOPT","(",new OptimIpopt(Case<P2_f,P1_g>()));
-     Global.Add("IPOPT","(",new OptimIpopt(Case<P2_f,without_constraints>()));
-     Global.Add("IPOPT","(",new OptimIpopt(Case<P2_f,no_assumption_g>()));
-     Global.Add("IPOPT","(",new OptimIpopt(Case<P2_f,mv_P1_g>()));
-     Global.Add("IPOPT","(",new OptimIpopt(Case<P2_f,linear_g>()));*/
-    Global.Add("IPOPT","(",new OptimIpopt(Case<unavailable_hessian,no_assumption_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<unavailable_hessian,without_constraints>()));
-    //Global.Add("IPOPT","(",new OptimIpopt(Case<unavailable_hessian,P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<unavailable_hessian,mv_P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<unavailable_hessian,linear_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<mv_P2_f,no_assumption_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<mv_P2_f,without_constraints>()));
-    //Global.Add("IPOPT","(",new OptimIpopt(Case<mv_P2_f,P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<mv_P2_f,mv_P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<mv_P2_f,linear_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<quadratic_f,no_assumption_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<quadratic_f,without_constraints>()));
-    //Global.Add("IPOPT","(",new OptimIpopt(Case<quadratic_f,P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<quadratic_f,mv_P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<quadratic_f,linear_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<linear_f,no_assumption_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<linear_f,without_constraints>()));
-    //Global.Add("IPOPT","(",new OptimIpopt(Case<linear_f,P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<linear_f,mv_P1_g>()));
-    Global.Add("IPOPT","(",new OptimIpopt(Case<linear_f,linear_g>()));
-}
-
-
-
-
-/*****************************************************************************************************************************
- *	Specialization of functions builders' constructor and operator()
- *****************************************************************************************************************************/
-
-
-template<> FitnessFunctionDatas<no_assumption_f>::FitnessFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m)
-: GenericFitnessFunctionDatas()
-{
-    const Polymorphic * opJ  = dynamic_cast<const Polymorphic *>(args[0].LeftValue()),
-    * opdJ = dynamic_cast<const Polymorphic *>(args[1].LeftValue()),
-    * opH  = dynamic_cast<const Polymorphic *>(args[2].LeftValue());
-    ArrayOfaType hprototype2(atype<KN<R> *>(),atype<double>(),atype<KN<R>*>()),hprototype1(atype<KN<R> *>());
-    JJ =	to<R>(C_F0(opJ,"(",theparam));
-    GradJ = to<Rn_>(C_F0(opdJ,"(",theparam));
-    if(opH->Find("(",hprototype2))
-    {
-        CompletelyNonLinearConstraints = true;
-        Hessian = to<Matrice_Creuse<R>* >(C_F0(opH,"(",theparam,objfact,L_m));
-    }
-    else if(opH->Find("(",hprototype1))
-    {
-        CompletelyNonLinearConstraints = false; //When constraints are affine, lagrange multipliers are not used in the hessian, obj_factor is also hidden to the user
-        Hessian = to<Matrice_Creuse<R>* >(C_F0(opH,"(",theparam));
-    }
-    else CompileError("Error, wrong hessian function prototype. Must be either (real[int] &) or (real[int] &,real,real[int] &)");
-}
-template<> void FitnessFunctionDatas<no_assumption_f>::operator()
-(Stack stack,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m,Expression const *nargs,ScalarFunc *&ffJ,VectorFunc *&ffdJ,SparseMatFunc *&ffH,bool warned) const
-{
-    ffJ = new GeneralFunc<R>(stack,JJ,theparam);
-    ffdJ = new GeneralFunc<Rn>(stack,GradJ,theparam);
-    if(CompletelyNonLinearConstraints) ffH = new GeneralSparseMatFunc(stack,Hessian,theparam,objfact,L_m);
-    else ffH = new GeneralSparseMatFunc(stack,Hessian,theparam);
-}
-
-
-template<> FitnessFunctionDatas<P2_f>::FitnessFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m)
-: GenericFitnessFunctionDatas()
-{
-    CompletelyNonLinearConstraints = false;
-    const Polymorphic * opJ  = dynamic_cast<const Polymorphic *>(args[0].LeftValue()),* opdJ = dynamic_cast<const Polymorphic *>(args[1].LeftValue());
-    JJ =	to<R>(C_F0(opJ,"(",theparam));
-    GradJ = to<Rn_>(C_F0(opdJ,"(",theparam));
-    Hessian = to<Matrice_Creuse<R> *>(args[2]);
-}
-template<> void FitnessFunctionDatas<P2_f>::operator()
-(Stack stack,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m,Expression const *nargs,ScalarFunc *&ffJ,VectorFunc *&ffdJ,SparseMatFunc *&ffH,bool warned) const
-{
-    if(warned && nargs[5])
-    {
-        cout << "  ==> your lagrangian hessian is a constant matrix, so there is no need to specify its structure with ";
-        cout << OptimIpopt::E_Ipopt::name_param[5].name << endl;
-        cout << "      since it is contained in the matrix object." << endl;
-    }
-    ffJ = new GeneralFunc<R>(stack,JJ,theparam);
-    ffdJ = new GeneralFunc<Rn>(stack,GradJ,theparam);
-    ffH = new ConstantSparseMatFunc(stack,Hessian);
-}
-
-
-template<> FitnessFunctionDatas<unavailable_hessian>::FitnessFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m)
-: GenericFitnessFunctionDatas()
-{
-    CompletelyNonLinearConstraints = false;
-    const Polymorphic * opJ = dynamic_cast<const Polymorphic *> (args[0].LeftValue()),* opdJ = dynamic_cast<const Polymorphic *>(args[1].LeftValue());
-    JJ =	to<R>(C_F0(opJ,"(",theparam));
-    GradJ = to<Rn_>(C_F0(opdJ,"(",theparam));
-}
-template<> void FitnessFunctionDatas<unavailable_hessian>::operator()
-(Stack stack,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m,Expression const *nargs,ScalarFunc *&ffJ,VectorFunc *&ffdJ,SparseMatFunc *&ffH,bool warned) const
-{
-    if(warned && nargs[5])
-    {
-        cout << "  ==> no hessian has been given, the LBFGS mode has been enabled, thus making ";
-        cout << OptimIpopt::E_Ipopt::name_param[5].name << " useless. You may also" << endl << "      have forgoten a function (IPOPT will certainly crash if so)." << endl;
-    }
-    ffJ = new GeneralFunc<R>(stack,JJ,theparam);
-    ffdJ = new GeneralFunc<Rn>(stack,GradJ,theparam);
-    ffH = 0;
-}
-
-
-template<> FitnessFunctionDatas<mv_P2_f>::FitnessFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m)
-: GenericFitnessFunctionDatas()
-{
-    const E_Array *M_b = dynamic_cast<const E_Array *>(args[0].LeftValue());
-    if(M_b->nbitem() != 2) CompileError("\nSorry, we were expecting an array with two componants, either [M,b] or [b,M] for the affine constraints expression." );
-    bool order = true;
-    if(CheckMatrixVectorPair(M_b,order))
-    {
-        Hessian = to<Matrice_Creuse<R> *>((*M_b)[order ? 0:1]);
-        GradJ = to<Rn*>((*M_b)[order ? 1:0]); //This is gradJ evaluated on x=0
-    }
-}
-template<> void FitnessFunctionDatas<mv_P2_f>::operator()
-(Stack stack,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m,Expression const *nargs,ScalarFunc *&ffJ,VectorFunc *&ffdJ,SparseMatFunc *&ffH,bool warned) const
-{
-    if(warned && nargs[5])
-    {
-        cout << "  ==> your lagrangian hessian is a constant matrix, so there is no need to specify its structure with ";
-        cout << OptimIpopt::E_Ipopt::name_param[5].name << endl;
-        cout << "      since it is contained in the matrix object." << endl;
-    }
-    ffJ = new P2ScalarFunc(stack,Hessian,GradJ,true);
-    ffdJ = new P1VectorFunc(stack,Hessian,GradJ,true);
-    ffH = new ConstantSparseMatFunc(stack,Hessian);
-}
-
-
-template<> FitnessFunctionDatas<quadratic_f>::FitnessFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m)
-: GenericFitnessFunctionDatas() {Hessian = to<Matrice_Creuse<R> *>(args[0]);}
-template<> void FitnessFunctionDatas<quadratic_f>::operator()
-(Stack stack,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m,Expression const *nargs,ScalarFunc *&ffJ,VectorFunc *&ffdJ,SparseMatFunc *&ffH,bool warned) const
-{
-    if(warned && nargs[5])
-    {
-        cout << "  ==> your lagrangian hessian is a constant matrix, so there is no need to specify its structure with ";
-        cout << OptimIpopt::E_Ipopt::name_param[5].name << endl;
-        cout << "      since it is contained in the matrix object." << endl;
-    }
-    ffJ = new P2ScalarFunc(stack,Hessian,0,true);
-    ffdJ = new P1VectorFunc(stack,Hessian,0,true);
-    ffH = new ConstantSparseMatFunc(stack,Hessian);
-}
-
-
-template<> FitnessFunctionDatas<linear_f>::FitnessFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m)
-: GenericFitnessFunctionDatas() {GradJ = to<Rn *>(args[0]);}
-template<> void FitnessFunctionDatas<linear_f>::operator()
-(Stack stack,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &L_m,Expression const *nargs,ScalarFunc *&ffJ,VectorFunc *&ffdJ,SparseMatFunc *&ffH,bool warned) const
-{
-    if(warned && nargs[5])
-    {
-        cout << "  ==> your lagrangian hessian is a null matrix, so there is no need to specify its structure with ";
-        cout << OptimIpopt::E_Ipopt::name_param[5].name << endl;
-        cout << "      since it is empty." << endl;
-    }
-    ffJ = new P2ScalarFunc(stack,0,GradJ);
-    ffdJ = new P1VectorFunc(stack,0,GradJ);
-    ffH = 0;
-}
-
-
-
-
-template<> ConstraintFunctionDatas<without_constraints>::ConstraintFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam)
-: GenericConstraintFunctionDatas() {}
-template<> void ConstraintFunctionDatas<without_constraints>::operator()(Stack stack,const C_F0 &theparam,Expression const *nargs,VectorFunc *&ffC,SparseMatFunc *&ffdC,bool warned) const
-{
-    if(warned)
-    {
-        if(nargs[2] || nargs[3]) cout << "  ==> Some constraints bounds have been defined while no constraints function has been passed." << endl;
-        if(nargs[4]) cout << "  ==> A structure has been provided for the constraints jacobian but there is no constraint function." << endl;
-        if(nargs[6]) cout << "  ==> Unconstrained problem make the use of " << OptimIpopt::E_Ipopt::name_param[6].name << " pointless (see the documentation for more details)." << endl;
-    }
-    ffC = 0;
-    ffdC = 0;
-}
-
-template<> ConstraintFunctionDatas<no_assumption_g>::ConstraintFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam)
-: GenericConstraintFunctionDatas()
-{
-    int nbj = args.size()-1;
-    const Polymorphic * opG = dynamic_cast<const Polymorphic *> (args[nbj-2].LeftValue()),
-    * opjG= dynamic_cast<const Polymorphic *> (args[nbj-1].LeftValue());
-    Constraints = to<Rn_>(C_F0(opG,"(",theparam));
-    GradConstraints = to<Matrice_Creuse<R>*>(C_F0(opjG,"(",theparam));
-}
-template<> void ConstraintFunctionDatas<no_assumption_g>::operator()(Stack stack,const C_F0 &theparam,Expression const *nargs,VectorFunc *&ffC,SparseMatFunc *&ffdC,bool) const 
-{
-    ffC = new GeneralFunc<Rn>(stack,Constraints,theparam);
-    ffdC = new GeneralSparseMatFunc(stack,GradConstraints,theparam);
-}
-
-template<> ConstraintFunctionDatas<P1_g>::ConstraintFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam)
-: GenericConstraintFunctionDatas() 
-{
-    int nbj = args.size()-1;
-    const Polymorphic * opG = dynamic_cast<const Polymorphic *> (args[nbj-2].LeftValue());
-    Constraints = to<Rn_>(C_F0(opG,"(",theparam));
-    GradConstraints = to<Matrice_Creuse<R> *>(args[nbj-1]);
-}
-template<> void ConstraintFunctionDatas<P1_g>::operator()(Stack stack,const C_F0 &theparam,Expression const *nargs,VectorFunc *&ffC,SparseMatFunc *&ffdC,bool warned) const 
-{
-    if(warned && nargs[4])
-    {
-        cout << "  ==> your constraints jacobian is a constant matrix, there is no need to specify its structure with " << OptimIpopt::E_Ipopt::name_param[4].name << endl;
-        cout << "      since it is contained in the matrix object." << endl;
-    }
-    ffC = new GeneralFunc<Rn>(stack,Constraints,theparam);
-    ffdC = new ConstantSparseMatFunc(stack,GradConstraints);
-}
-
-template<> ConstraintFunctionDatas<mv_P1_g>::ConstraintFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam)
-: GenericConstraintFunctionDatas() 
-{
-    int nbj = args.size()-1;
-    const E_Array *M_b = dynamic_cast<const E_Array *>(args[nbj-1].LeftValue());
-    if(M_b->nbitem() != 2) CompileError("\nSorry, we were expecting an array with two componants, either [M,b] or [b,M] for the affine constraints expression." );
-    bool order=true;
-    if(CheckMatrixVectorPair(M_b,order))
-    {
-        GradConstraints = to<Matrice_Creuse<R> *>((*M_b)[order ? 0:1]);
-        Constraints = to<Rn*>((*M_b)[order ? 1:0]); //Constraint on x=0
-    }
-    else CompileError("\nWrong types in the constraints [matrix,vector] pair, expecting a sparse matrix and real[int].");
-}
-template<> void ConstraintFunctionDatas<mv_P1_g>::operator()(Stack stack,const C_F0 &theparam,Expression const *nargs,VectorFunc *&ffC,SparseMatFunc *&ffdC,bool warned) const 
-{
-    if(warned && nargs[4])
-    {
-        cout << "  ==> your constraints jacobian is a constant matrix, there is no need to specify its structure with " << OptimIpopt::E_Ipopt::name_param[4].name << endl;
-        cout << "      since it is contained in the matrix object." << endl;
-    }
-    ffC = new P1VectorFunc(stack,GradConstraints,Constraints);
-    ffdC = new ConstantSparseMatFunc(stack,GradConstraints);
-}
-
-template<> ConstraintFunctionDatas<linear_g>::ConstraintFunctionDatas(const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam)
-: GenericConstraintFunctionDatas() 
-{
-    int nbj = args.size()-1;
-    GradConstraints = to<Matrice_Creuse<R> *>(args[nbj-1]);
-}
-template<> void ConstraintFunctionDatas<linear_g>::operator()(Stack stack,const C_F0 &theparam,Expression const *nargs,VectorFunc *&ffC,SparseMatFunc *&ffdC,bool warned) const 
-{
-    if(warned && nargs[4])
-    {
-        cout << "  ==> your constraints jacobian is a constant matrix, there is no need to specify its structure with " << OptimIpopt::E_Ipopt::name_param[4].name << endl;
-        cout << "      since it is contained in the matrix object." << endl;
-    }
-    ffC = new P1VectorFunc(stack,GradConstraints,0);
-    ffdC = new ConstantSparseMatFunc(stack,GradConstraints);
-}
-
-
-GenericFitnessFunctionDatas* GenericFitnessFunctionDatas::New(AssumptionF AF,const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam,const C_F0 &objfact,const C_F0 &lm)
-{
-    switch (AF) 
-    {
-        case no_assumption_f:
-            return new FitnessFunctionDatas<no_assumption_f>(args,nargs,theparam,objfact,lm);
-            break;
-        case P2_f:
-            return new FitnessFunctionDatas<P2_f>(args,nargs,theparam,objfact,lm);
-            break;
-        case unavailable_hessian:
-            return new FitnessFunctionDatas<unavailable_hessian>(args,nargs,theparam,objfact,lm);
-            break;
-        case mv_P2_f:
-            return new FitnessFunctionDatas<mv_P2_f>(args,nargs,theparam,objfact,lm);
-            break;
-        case quadratic_f:
-            return new FitnessFunctionDatas<quadratic_f>(args,nargs,theparam,objfact,lm);
-            break;
-        case linear_f:
-            return new FitnessFunctionDatas<linear_f>(args,nargs,theparam,objfact,lm);
-            break;
-        default:
-            return 0; 
-            break;
-    }
-}
-
-GenericConstraintFunctionDatas* GenericConstraintFunctionDatas::New(AssumptionG AG,const basicAC_F0 &args,Expression const *nargs,const C_F0 &theparam)
-{
-    switch (AG)
-    {
-        case no_assumption_g:
-            return new ConstraintFunctionDatas<no_assumption_g>(args,nargs,theparam);
-            break;
-        case without_constraints:
-            return new ConstraintFunctionDatas<without_constraints>(args,nargs,theparam);
-            break;
-        case P1_g:
-            return new ConstraintFunctionDatas<P1_g>(args,nargs,theparam);
-            break;
-        case mv_P1_g:
-            return new ConstraintFunctionDatas<mv_P1_g>(args,nargs,theparam);
-            break;
-        case linear_g:
-            return new ConstraintFunctionDatas<linear_g>(args,nargs,theparam);
-            break;
-        default:
-            return 0;
-            break;
-    }
-}
-
-/*
- enum AssumptionF {undeff,no_assumption_f, P2_f, unavailable_hessian, mv_P2_f, quadratic_f, linear_f};
- enum AssumptionG {undefg,without_constraints, no_assumption_g, P1_g, mv_P1_g, linear_g};
- */
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
diff --git a/examples++-load/ff-NLopt.cpp.orig b/examples++-load/ff-NLopt.cpp.orig
deleted file mode 100644
index a2bca4e..0000000
--- a/examples++-load/ff-NLopt.cpp.orig
+++ /dev/null
@@ -1,891 +0,0 @@
-/*
- *  ff-NLopt.cpp
- *  
- *
- *  Created by Sylvain Auliac on 25/05/11.
- *
- */
-
-//ff-c++-LIBRARY-dep:   nlopt
-//ff-c++-cpp-dep: 
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Sylvain Auliac
-// E-MAIL   : auliac at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include  <iostream>
-#include <stack>
-#include <vector>
-using namespace std;
-#include "ff++.hpp"
-
-#include <nlopt.hpp>
-
-
-extern Block *currentblock;
-
-typedef double R;
-typedef double (*NLoptFuncType)(unsigned,const double *,double *,void*);
-
-template<nlopt::algorithm ALGO> struct Info								{static const bool DF=true,SA=false; static const char *name;};//DF=Derivative Free , SA=need a Sub Algorithm
-template<> struct Info<nlopt::LD_LBFGS_NOCEDAL>						{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_LBFGS>										{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_VAR1>										{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_VAR2>										{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_TNEWTON>									{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_TNEWTON_RESTART>					{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_TNEWTON_PRECOND>					{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_TNEWTON_PRECOND_RESTART>	{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_MMA>											{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::LD_AUGLAG>									{static const bool DF=false,SA=true; static const char *name;};
-template<> struct Info<nlopt::LD_AUGLAG_EQ>								{static const bool DF=false,SA=true; static const char *name;};
-template<> struct Info<nlopt::LD_SLSQP>										{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::GD_STOGO>										{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::GD_STOGO_RAND>							{static const bool DF=false,SA=false; static const char *name;};
-template<> struct Info<nlopt::GD_MLSL>										{static const bool DF=false,SA=true; static const char *name;};
-template<> struct Info<nlopt::GD_MLSL_LDS>								{static const bool DF=false,SA=true; static const char *name;};
-template<> struct Info<nlopt::GN_MLSL>										{static const bool DF=true,SA=true; static const char *name;};
-template<> struct Info<nlopt::GN_MLSL_LDS>								{static const bool DF=true,SA=true; static const char *name;};
-template<> struct Info<nlopt::LN_AUGLAG>									{static const bool DF=true,SA=true; static const char *name;};
-template<> struct Info<nlopt::LN_AUGLAG_EQ>								{static const bool DF=true,SA=true; static const char *name;};
-template<> struct Info<nlopt::G_MLSL>											{static const bool DF=true,SA=true; static const char *name;};
-template<> struct Info<nlopt::G_MLSL_LDS>									{static const bool DF=true,SA=true; static const char *name;};
-template<> struct Info<nlopt::AUGLAG>											{static const bool DF=true,SA=true; static const char *name;};
-template<> struct Info<nlopt::AUGLAG_EQ>									{static const bool DF=true,SA=true; static const char *name;};
-
-
-
-template<nlopt::algorithm ALGO> const char *Info<ALGO>::name					= "ALGORITHM";
-template<> const char *Info<nlopt::GN_DIRECT>::name										= "Dividing Rectangles";
-template<> const char *Info<nlopt::GN_DIRECT_L>::name									= "Locally Biased Dividing Rectangles";
-template<> const char *Info<nlopt::GN_DIRECT_L_RAND>::name						=	"Randomized Locally Biased Dividing Rectangles";
-template<> const char *Info<nlopt::GN_DIRECT_NOSCAL>::name						= "Dividing Rectangles (no scaling)";
-template<> const char *Info<nlopt::GN_DIRECT_L_NOSCAL>::name					= "Locally Biased Dividing Rectangles (no scaling)";
-template<> const char *Info<nlopt::GN_DIRECT_L_RAND_NOSCAL>::name			= "Randomized Locally Biased Dividing Rectangles (no scaling)";
-template<> const char *Info<nlopt::GN_ORIG_DIRECT>::name							= "Original Glabonsky's Dividing Rectangles";
-template<> const char *Info<nlopt::GN_ORIG_DIRECT_L>::name						= "Original Glabonsky's Locally Biased Dividing Rectangles";
-					 const char *Info<nlopt::GD_STOGO>::name										=	"StoGO";
-					 const char *Info<nlopt::GD_STOGO_RAND>::name								= "Randomized StoGO";
-					 const char *Info<nlopt::LD_LBFGS_NOCEDAL>::name						= "Nocedal's Low-Storage BFGS";
-					 const char *Info<nlopt::LD_LBFGS>::name										= "Low-Storage BFGS";
-template<> const char *Info<nlopt::LN_PRAXIS>::name										= "Principal Axis";
-					 const char *Info<nlopt::LD_VAR1>::name											= "Rank-1 Shifted Limited Memory Variable Metric";
-					 const char *Info<nlopt::LD_VAR2>::name											=	"Rank-2 Shifted Limited Memory Variable Metric";
-					 const char *Info<nlopt::LD_TNEWTON>::name									=	"Truncated Newton";
-					 const char *Info<nlopt::LD_TNEWTON_RESTART>::name					=	"Steepest Descent Restarting Truncated Newton";
-					 const char *Info<nlopt::LD_TNEWTON_PRECOND>::name					=	"BFGS Preconditionned Truncated Newton";
-					 const char *Info<nlopt::LD_TNEWTON_PRECOND_RESTART>::name	=	"BFGS Precondionned Truncated Newton with Steepest Descent Resrtarting";
-template<> const char *Info<nlopt::GN_CRS2_LM>::name									= "Controlled Random Search with Local Mutation";
-					 const char *Info<nlopt::GN_MLSL>::name											= "Multi-Level Single-Linkage (derivative free)";
-					 const char *Info<nlopt::GD_MLSL>::name											=	"Multi-Level Single-Linkage (with gradient-based local search)";
-					 const char *Info<nlopt::GN_MLSL_LDS>::name									= "Low Discrepancy Sequence Multi-Level Single-Linkage (derivative free)";
-					 const char *Info<nlopt::GD_MLSL_LDS>::name									=	"Low Discrepancy Sequence Multi-Level Single-Linkage (with gradient-based local search)";
-					 const char *Info<nlopt::LD_MMA>::name											= "Method of Moving Asymptotes";
-template<> const char *Info<nlopt::LN_COBYLA>::name										= "Constrained Optimization by Linear Approximations";
-template<> const char *Info<nlopt::LN_NEWUOA>::name										= "NEWUOA";
-template<> const char *Info<nlopt::LN_NEWUOA_BOUND>::name							= "NEWUOA for bounded optimization";
-template<> const char *Info<nlopt::LN_NELDERMEAD>::name								= "Nelder-Mead Simplex";
-template<> const char *Info<nlopt::LN_SBPLX>::name										= "Subplex";
-					 const char *Info<nlopt::LN_AUGLAG>::name										= "Inequality/Equality Constraints Augmented Lagrangian (derivative free)";
-					 const char *Info<nlopt::LD_AUGLAG>::name										= "Inequality/Equality Constraints Augmented Lagrangian (with gradient-based subsidiary search)";
-					 const char *Info<nlopt::LN_AUGLAG_EQ>::name								= "Equality Constraints Augmented Lagrangian (derivative free)";
-					 const char *Info<nlopt::LD_AUGLAG_EQ>::name								= "Equality Constraints Augmented Lagrangian (with gradient-based subsidiary search)";
-template<> const char *Info<nlopt::LN_BOBYQA>::name										= "BOBYQA";
-template<> const char *Info<nlopt::GN_ISRES>::name										= "Improved Stochastic Ranking Evolution Strategy";
-					 const char *Info<nlopt::LD_SLSQP>::name										= "Sequential Least-Squares Quadratic Programming";
-					 const char *Info<nlopt::G_MLSL>::name											= "Multi-Level Single-Linkage";
-					 const char *Info<nlopt::G_MLSL_LDS>::name									= "Low Discrepancy Multi-level Single-Linkage";
-					 const char *Info<nlopt::AUGLAG>::name											= "Inequality/Equality Constraints Augmented Lagrangian";
-					 const char *Info<nlopt::AUGLAG_EQ>::name										= "Equality Constraints Augmented Lagrangian";
-
-					 
-
-inline void Sonde(int i) {cout << "sonde " << i << endl;}
-
-
-typedef KN_<R> Rn_;
-typedef KN<R> Rn;
-typedef KNM_<R> Rnm_;
-typedef KNM<R> Rnm;
-
-/*template<class T> inline std::vector<T> KnToStdVect(const KN<T> &V)
-{
-	std::vector<T> v(V.n);
-	for(int i=0;i<v.size();++i) v[i] = V[i];
-	return v;
-}*/
-
-template<class T> inline std::vector<T> KnToStdVect(const KN_<T> &V)
-{
-	std::vector<T> v(V.n);
-	for(int i=0;i<v.size();++i) v[i] = V[i];
-	return v;
-}
-
-
-
-template<class K> class ffcalfunc  //   to call the freefem function .. J, constraints, and derivatives
-{ 
-	public:
-		Stack stack;
-		Expression JJ,theparame;
-    
-		ffcalfunc(const ffcalfunc &f) : stack(f.stack),JJ(f.JJ),theparame(f.theparame) {}
-		ffcalfunc(Stack s,Expression JJJ,Expression epar) : stack(s),JJ(JJJ), theparame(epar) {}
-		K J(Rn_  x) const 
-		{
-			KN<double> *p=GetAny<KN<double> *>( (*theparame)(stack) );
-			*p=x;
-			K ret= GetAny<K>( (*JJ)(stack));
-			//cout << "call to ffcalfunc.J with " << *p << " and ret=" << ret << endl;
-			WhereStackOfPtr2Free(stack)->clean();
-			return  ret; 
-		}
-};
-
-
-typedef ffcalfunc<double> * ScalarFunc;
-typedef ffcalfunc<Rn> * VectorFunc;
-typedef ffcalfunc<Rnm> * MatrixFunc;
-
-
-class GenericOptimizer
-{
-	public:
-		/*GenericOptimizer(nlopt::algorithm ALGO) : opt(ALGO,0),x(0),econsttol(0),iconsttol(0),econstrained(false),iconstrained(false),fit(0),d_fit(0),equaconst(0),
-																							d_equaconst(0),ineqconst(0),d_ineqconst(0),subopt(0)
-		{}*/
-		GenericOptimizer(nlopt::algorithm ALGO,int dim=0) : opt(ALGO,dim),x(0),econsttol(0),iconsttol(0),econstrained(false),iconstrained(false),fit(0),d_fit(0),equaconst(0),
-																							d_equaconst(0),ineqconst(0),d_ineqconst(0),subopt(0)
-		{}
-		GenericOptimizer(nlopt::algorithm ALGO,const ffcalfunc<R> &_ff,Rn &xstart) : opt(ALGO,xstart.n),x(&xstart),econsttol(0),iconsttol(0),econstrained(false),iconstrained(false),
-																							fit(new ffcalfunc<R>(_ff)),d_fit(0),equaconst(0),d_equaconst(0),ineqconst(0),d_ineqconst(0),subopt(0)
-		{
-			opt.set_min_objective(NLoptFunc, static_cast<void*>(this));
-		}
-		virtual ~GenericOptimizer()
-		{
-			Clean(fit);
-			Clean(d_fit);
-			Clean(equaconst);
-			Clean(d_equaconst);
-			Clean(ineqconst);
-			Clean(d_ineqconst);
-			Clean(subopt);
-		}
-	
-	
-			
-		double operator() () 
-		{
-			double minf; 
-			vector<double> vv(x->n);
-			for(int i=0;i<vv.size();++i) vv[i] = (*x)[i];
-			opt.optimize(vv,minf);
-			for(int i=0;i<vv.size();++i) (*x)[i] = vv[i];
-			return minf;
-		}
-		
-		virtual bool DF() const {return true;}
-		virtual bool SA() const {return false;}
-		virtual const char * Name() const {return "Generic Algorithm";}
-		virtual nlopt::algorithm Tag() const = 0;
-		
-		GenericOptimizer& SetEqualityConstraintsTolerance(const Rn_ &val) {econsttol=val; return *this;}
-		GenericOptimizer& SetInequalityConstraintsTolerance(const Rn_ &val) {iconsttol=val; return *this;}
-		GenericOptimizer& SetSCXRelativeTolerance(const double val) {opt.set_xtol_rel(val); return *this;} //SC = stopping criteria
-		GenericOptimizer& SetSCXAbsoluteTolerance(const Rn_ &val) {opt.set_xtol_abs(KnToStdVect(val)); return *this;}
-		GenericOptimizer& SetLowerBounds(const Rn_ &lb) {opt.set_lower_bounds(KnToStdVect(lb)); return *this;}
-		GenericOptimizer& SetUpperBounds(const Rn_ &ub) {opt.set_upper_bounds(KnToStdVect(ub)); return *this;}
-		GenericOptimizer& SetSCStopFunctionValue(const double val) {opt.set_stopval(val); return *this;}
-		GenericOptimizer& SetSCRelativeFunctionTolerance(const double val) {opt.set_ftol_rel(val); return *this;}
-		GenericOptimizer& SetSCAbsoluteFunctionTolerance(const double val) {opt.set_ftol_abs(val); return *this;}
-		GenericOptimizer& SetSCMaxFunctionEvaluations(const long val) {opt.set_maxeval(val); return *this;}
-		GenericOptimizer& SetSCEllapsedTime(const double val) {opt.set_maxtime(val); return *this;}
-		GenericOptimizer& SetPopulationSize(const int val) {opt.set_population(static_cast<unsigned>(val)); return *this;}
-		virtual GenericOptimizer& SetVectorStorage(const int val) {opt.set_vector_storage(static_cast<unsigned>(val)); return *this;}
-		
-		GenericOptimizer& SetObjectiveFunctionGradient(const ffcalfunc<Rn> &g) {Clean(d_fit) = new ffcalfunc<Rn>(g); return *this;}
-		GenericOptimizer& SetEqualityConstraintFunction(const ffcalfunc<Rn> &f) {Clean(equaconst) = new ffcalfunc<Rn>(f); return *this;}
-		GenericOptimizer& SetEqualityConstraintGradient(const ffcalfunc<Rnm> &g) {Clean(d_equaconst) = new ffcalfunc<Rnm>(g); return *this;}
-		GenericOptimizer& SetInequalityConstraintFunction(const ffcalfunc<Rn> &f) {Clean(ineqconst) = new ffcalfunc<Rn>(f); return *this;}
-		GenericOptimizer& SetInequalityConstraintGradient(const ffcalfunc<Rnm> &g) {Clean(d_ineqconst) = new ffcalfunc<Rnm>(g); return *this;}
-		
-		
-		
-		GenericOptimizer& SetEqualityConstraints()
-		{
-			if(econstrained) opt.remove_equality_constraints();
-			Rn etestv = equaconst->J(*x);
-			if(econsttol.n==0) {econsttol.resize(etestv.n); econsttol = 1.e-12;}
-			else assert(econsttol.n == etestv.n);
-			opt.add_equality_mconstraint(NLoptECDF,static_cast<void*>(this),KnToStdVect(econsttol));
-			econstrained = true;
-			return *this;
-		}
-		GenericOptimizer& SetInequalityConstraints()
-		{
-			if(iconstrained) opt.remove_inequality_constraints();
-			Rn itestv = ineqconst->J(*x);
-			//cout << "itestv = " << itestv << "(x=" << *x << ")" <<  endl;
-			if(iconsttol.n==0) {iconsttol.resize(itestv.n); iconsttol = 1.e-12;}
-			else assert(iconsttol.n == itestv.n);
-			opt.add_inequality_mconstraint(NLoptICDF,static_cast<void*>(this),KnToStdVect(iconsttol));
-			iconstrained = true;
-			return *this;
-		}
-		
-		static double NLoptFunc(const std::vector<double> &xx,std::vector<double> &grad, void *data)
-		{
-			GenericOptimizer * pthis = static_cast<GenericOptimizer *>(data);
-			int n = xx.size();
-			Rn X(n);
-			for(int i=0;i<n;++i) X[i] = xx[i];
-			//cout << "grad: " << grad << "d_fit.top():" << d_fit.top() << endl;
-			if(grad.size() && pthis->d_fit)
-			{
-				Rn dJ=pthis->d_fit->J(X);
-				for(int i=0;i<n;++i) grad[i] = dJ[i];
-			} 
-			//cout << "call to NLoptFunc with x=" << X << endl;
-			return pthis->fit->J(X);
-		}
-		static void NLoptECDF(unsigned m,double *result,unsigned n,const double *xx,double *grad,void *data)
-		{
-			GenericOptimizer * pthis = static_cast<GenericOptimizer *>(data);
-			if(pthis->equaconst)
-			{
-				Rn X(n);
-				for(int k=0;k<n;++k) X[k] = xx[k];
-				Rn Y=pthis->equaconst->J(X);
-				assert(Y.n==m);
-				for(int i=0;i<m;++i) result[i] = Y[i];
-				if(grad)
-				{
-					assert(pthis->d_equaconst);
-					Rnm dconst=pthis->d_equaconst->J(X);
-					assert(dconst.N()==m && dconst.M()==n);
-					for(int i=0;i<m;++i)
-						for(int j=0;j<n;++j) grad[i*n + j] = dconst(i,j);
-				}
-			}
-			else 
-			{
-				for(int i=0;i<m;++i)
-				{
-					result[i] = 0;
-					if(grad) for(int j=0;j<n;++j) grad[i*n+j]=0;
-				}
-			}
-		}
-		static void NLoptICDF(unsigned m,double *result,unsigned n,const double *xx,double *grad,void *data)
-		{
-			GenericOptimizer * pthis = static_cast<GenericOptimizer *>(data);
-			if(pthis->ineqconst)
-			{
-				Rn X(n);
-				for(int k=0;k<n;++k) X[k] = xx[k];
-				Rn Y=pthis->ineqconst->J(X);
-				assert(Y.N()==m);
-				for(int i=0;i<m;++i) result[i] = Y[i];
-				if(grad)
-				{
-					assert(pthis->d_ineqconst);
-					Rnm dconst=pthis->d_ineqconst->J(X);
-					assert(dconst.N()==m && dconst.M()==n);
-					for(int i=0;i<m;++i)
-						for(int j=0;j<n;++j) grad[i*n + j] = dconst(i,j);
-				}
-			}
-			else 
-			{
-				for(int i=0;i<m;++i)
-				{
-					result[i] = 0;
-					if(grad) for(int j=0;j<n;++j) grad[i*n+j]=0;
-				}
-			}
-		}
-			
-	
-	
-	
-		nlopt::opt opt,*subopt;
-		Rn *x,econsttol,iconsttol;
-		bool iconstrained,econstrained;
-		ScalarFunc fit;
-		VectorFunc d_fit,equaconst,ineqconst;
-		MatrixFunc d_equaconst,d_ineqconst;
-	private:
-		GenericOptimizer();
-		template<class T> static T*& Clean(T*& p) 
-		{
-			if(p) delete p;
-			p=0;
-			return p;
-		}
-};
-
-
-
-
-
-template<nlopt::algorithm ALGO> class Optimizer : public GenericOptimizer
-{
-	public:
-		
-		Optimizer(int dim=0) : GenericOptimizer(ALGO,dim) {}
-		Optimizer(const ffcalfunc<R> &_ff,Rn &xstart) : GenericOptimizer(ALGO,_ff,xstart) {}
-		~Optimizer() {}
-		
-		
-		bool DF() const {return Info<ALGO>::DF;}
-		bool SA() const {return Info<ALGO>::SA;}
-		nlopt::algorithm Tag() const {return ALGO;}
-		const char * Name() const {return Info<ALGO>::name;}
-		
-	private:
-};
-
-
-
-template<bool a> struct MyCheck {MyCheck() {} };
-template<> struct MyCheck<false>
-{
-	private:
-		MyCheck() {}
-};
-
-template<nlopt::algorithm ALGO> class SAOptimizer : public GenericOptimizer
-{
-	public:
-
-		SAOptimizer(int dim=0) : GenericOptimizer(ALGO,dim),subopt(0) {MyCheck<Info<ALGO>::SA>();}
-		SAOptimizer(const ffcalfunc<R> &_ff,Rn &xstart) : GenericOptimizer(ALGO,_ff,xstart),subopt(0) {MyCheck<Info<ALGO>::SA>();}
-		~SAOptimizer() {if(subopt) delete subopt; subopt=0;}
-		
-		GenericOptimizer *subopt;
-		
-		bool DF() const {return Info<ALGO>::DF && (subopt ? subopt->DF() : false);}
-		bool SA() const {return true;}
-		nlopt::algorithm Tag() const {return ALGO;}
-		const char * Name() const {return Info<ALGO>::name;}
-		
-		GenericOptimizer& SetSubOptimizer(const string & name=string(),bool save= 1);
-		GenericOptimizer& SetSASCXRelativeTolerance(const double val) {if(subopt) subopt->opt.set_xtol_rel(val); return *this;} //SC = stopping criteria
-		GenericOptimizer& SetSASCXAbsoluteTolerance(const Rn_ &val) {if(subopt) subopt->opt.set_xtol_abs(KnToStdVect(val)); return *this;}
-		GenericOptimizer& SetSASCStopFunctionValue(const double val) {if(subopt) subopt->opt.set_stopval(val); return *this;}
-		GenericOptimizer& SetSASCRelativeFunctionTolerance(const double val) {if(subopt) subopt->opt.set_ftol_rel(val); return *this;}
-		GenericOptimizer& SetSASCAbsoluteFunctionTolerance(const double val) {if(subopt) subopt->opt.set_ftol_abs(val); return *this;}
-		GenericOptimizer& SetSASCMaxFunctionEvaluations(const long val) {if(subopt) subopt->opt.set_maxeval(val); return *this;}
-		GenericOptimizer& SetSASCEllapsedTime(const double val) {if(subopt) subopt->opt.set_maxtime(val); return *this;}
-		GenericOptimizer& SetSAPopulationSize(const int val) {if(subopt) subopt->opt.set_population(static_cast<unsigned>(val));return *this;}
-		GenericOptimizer& SetVectorStorage(const int val) {if(subopt) subopt->opt.set_vector_storage(static_cast<unsigned>(val)); return *this;}
-		
-};
-template<nlopt::algorithm ALGO> GenericOptimizer& SAOptimizer<ALGO>::SetSubOptimizer(const string &name,bool save)
-{
-	if(!subopt)
-	{
-		if(name=="DIRECT") subopt = new Optimizer<nlopt::GN_DIRECT>(x->n);
-		else if(name=="DIRECTL") subopt = new Optimizer<nlopt::GN_DIRECT_L>(x->n);
-		else if(name=="DIRECTLRand") subopt = new Optimizer<nlopt::GN_DIRECT_L_RAND>(x->n);
-		else if(name=="DIRECTNoScal") subopt = new Optimizer<nlopt::GN_DIRECT_NOSCAL>(x->n);
-		else if(name=="DIRECTLNoScal") subopt = new Optimizer<nlopt::GN_DIRECT_L_NOSCAL>(x->n);
-		else if(name=="DIRECTLRandNoScal") subopt = new Optimizer<nlopt::GN_DIRECT_L_RAND_NOSCAL>(x->n);
-		else if(name=="OrigDIRECT") subopt = new Optimizer<nlopt::GN_ORIG_DIRECT>(x->n);
-		else if(name=="OrigDIRECTL") subopt = new Optimizer<nlopt::GN_ORIG_DIRECT_L>(x->n);
-		else if(name=="StoGO") subopt = new Optimizer<nlopt::GD_STOGO>(x->n);
-		else if(name=="StoGORand") subopt = new Optimizer<nlopt::GD_STOGO_RAND>(x->n);
-		else if(name=="LBFGS") subopt = new Optimizer<nlopt::LD_LBFGS>(x->n);
-		else if(name=="PRAXIS") subopt = new Optimizer<nlopt::LN_PRAXIS>(x->n);
-		else if(name=="Var1") subopt = new Optimizer<nlopt::LD_VAR1>(x->n);
-		else if(name=="Var2") subopt = new Optimizer<nlopt::LD_VAR2>(x->n);
-		else if(name=="TNewton") subopt = new Optimizer<nlopt::LD_TNEWTON>(x->n);
-		else if(name=="TNewtonRestart") subopt = new Optimizer<nlopt::LD_TNEWTON_RESTART>(x->n);
-		else if(name=="TNewtonPrecond") subopt = new Optimizer<nlopt::LD_TNEWTON_PRECOND>(x->n);
-		else if(name=="TNewtonPrecondRestart") subopt = new Optimizer<nlopt::LD_TNEWTON_PRECOND_RESTART>(x->n);
-		else if(name=="CRS2") subopt = new Optimizer<nlopt::GN_CRS2_LM>(x->n);
-		else if(name=="MMA") subopt = new Optimizer<nlopt::LD_MMA>(x->n);
-		else if(name=="COBYLA") subopt = new Optimizer<nlopt::LN_COBYLA>(x->n);
-		else if(name=="NEWUOA") subopt = new Optimizer<nlopt::LN_NEWUOA>(x->n);
-		else if(name=="NEWUOABound") subopt = new Optimizer<nlopt::LN_NEWUOA_BOUND>(x->n);
-		else if(name=="NelderMead") subopt = new Optimizer<nlopt::LN_NELDERMEAD>(x->n);
-		else if(name=="Sbplx") subopt = new Optimizer<nlopt::LN_SBPLX>(x->n);
-		else if(name=="BOBYQA") subopt = new Optimizer<nlopt::LN_BOBYQA>(x->n);
-		else if(name=="ISRES") subopt = new Optimizer<nlopt::GN_ISRES>(x->n);
-		else if(name=="SLSQP") subopt = new Optimizer<nlopt::LD_SLSQP>(x->n);
-		else cout << "Warning: unknown or unauthorized optimizer name passed as sub algorithm to " << Info<ALGO>::name << endl;
-	}
-	if(subopt && save) opt.set_local_optimizer(subopt->opt);
-	return *this;
-}
-
-
-
-
-
-template<nlopt::algorithm ALGO,bool SA=Info<ALGO>::SA> class OptimNLopt : public OneOperator 
-{
-	public:
-		const int cas;
-
-		class E_NLopt : public E_F0mps 
-		{ 
-			public:
-				const int cas;
-				static basicAC_F0::name_and_type name_param[] ;
-				static const int n_name_param =18;
-				Expression nargs[n_name_param];
-				Expression X;
-				C_F0 inittheparam,theparam,closetheparam; 
-				Expression JJ;
-				Expression GradJ,EIConst,EGradIConst,EEConst,EGradEConst;
-				long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-				R arg(int i,Stack stack,R a) const{ return nargs[i] ? GetAny<R>( (*nargs[i])(stack) ): a;}
-				Rn_ arg(int i,Stack stack,Rn_ a) const {return nargs[i] ? GetAny<Rn_>((*nargs[2])(stack)) : a;}
-				template<typename T> T Arg(int i,Stack s) const {return GetAny<T>( (*nargs[i])(s));}
-      
-				E_NLopt(const basicAC_F0 & args,int cc) : cas(cc)
-				{
-					int nbj= args.size()-1;
-					Block::open(currentblock); // make a new block to 
-					X = to<Rn*>(args[nbj]);
-					C_F0 X_n(args[nbj],"n");
-					//  the expression to init the theparam of all 
-					inittheparam = currentblock->NewVar<LocalVariable>("the parameter",atype<KN<R> *>(),X_n);
-					theparam = currentblock->Find("the parameter"); //  the expression for the parameter
-					args.SetNameParam(n_name_param,name_param,nargs);
-					const  Polymorphic * opJ=0;
-					if (nbj>0)
-					{
-						opJ=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-						assert(opJ);
-					}      
-					JJ= to<R>(C_F0(opJ,"(",theparam));
-					const Polymorphic * gradient = nargs[0] ? dynamic_cast<const Polymorphic *>(nargs[0]) : 0,
-														* iconst = nargs[1] ? dynamic_cast<const Polymorphic *>(nargs[1]) : 0,
-														* gradiconst = nargs[2] ? dynamic_cast<const Polymorphic *>(nargs[2]) : 0,
-														* econst = nargs[3] ? dynamic_cast<const Polymorphic *>(nargs[3]) : 0,
-														* gradeconst = nargs[4] ? dynamic_cast<const Polymorphic *>(nargs[4]) : 0;
-					if(gradient) GradJ = to<Rn_>(C_F0(gradient,"(",theparam));
-					if(iconst) EIConst = to<Rn_>(C_F0(iconst,"(",theparam));
-					if(gradiconst) EGradIConst = to<Rnm_>(C_F0(gradiconst,"(",theparam));
-					if(econst) EEConst = to<Rn_>(C_F0(econst,"(",theparam));
-					if(gradeconst) EGradEConst = to<Rnm_>(C_F0(gradeconst,"(",theparam));
-					closetheparam=currentblock->close(currentblock);   // the cleanning block expression 
-				}
-    
-				virtual AnyType operator()(Stack stack)  const
-				{
-					double cost = 1e100;
-					WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005 
-					Rn &x = *GetAny<Rn *>((*X)(stack));	
-					long n=x.N();	
-					
-					const bool  gradient = nargs[0] ? dynamic_cast<const Polymorphic *>(nargs[0]) : 0,
-											iconst = nargs[1] ? dynamic_cast<const Polymorphic *>(nargs[1]) : 0,
-											gradiconst = nargs[2] ? dynamic_cast<const Polymorphic *>(nargs[2]) : 0,
-											econst = nargs[3] ? dynamic_cast<const Polymorphic *>(nargs[3]) : 0,
-											gradeconst = nargs[4] ? dynamic_cast<const Polymorphic *>(nargs[4]) : 0;
-					
-					long iprint = verbosity;	
-					ffcalfunc<double> ffJ(stack,JJ,theparam);
-					
-					Optimizer<ALGO> optim(ffJ,x);
-					if(nargs[5])  optim.SetLowerBounds(Arg<Rn_>(5,stack));
-					if(nargs[6])  optim.SetUpperBounds(Arg<Rn_>(6,stack));
-					if(nargs[7])  optim.SetSCStopFunctionValue(Arg<R>(7,stack));
-					if(nargs[8])  optim.SetEqualityConstraintsTolerance(Arg<Rn_>(8,stack));
-					if(nargs[9])  optim.SetSCXRelativeTolerance(Arg<R>(9,stack));
-					if(nargs[10]) optim.SetSCXAbsoluteTolerance(Arg<Rn_>(10,stack));
-					if(nargs[11]) optim.SetSCRelativeFunctionTolerance(Arg<R>(11,stack));
-					if(nargs[12]) optim.SetSCAbsoluteFunctionTolerance(Arg<R>(12,stack));
-					if(nargs[13]) optim.SetSCMaxFunctionEvaluations(Arg<long>(13,stack));
-					if(nargs[14]) optim.SetSCEllapsedTime(Arg<R>(14,stack));
-					if(nargs[15]) optim.SetInequalityConstraintsTolerance(Arg<Rn_>(15,stack));
-					if(nargs[16]) optim.SetPopulationSize(static_cast<int>(Arg<long>(16,stack)));
-					if(nargs[17])
-					{
-						optim.SetVectorStorage(static_cast<int> (Arg<long>(17,stack)));
-						if(optim.DF()) cout << "Warning: in " << optim.Name() << " algorithm - using nGradStored is pointless (no gradient to store in a derivative free context)." << endl;
-						else if(ALGO==nlopt::LD_SLSQP || ALGO==nlopt::LD_MMA) cout << "Warning: nGradStored can't be used with " << optim.Name() << ", parameter will be ignored." << endl;
-					}
-					
-					if(econst) optim.SetEqualityConstraintFunction(ffcalfunc<Rn>(stack,EEConst,theparam));
-					if(iconst) optim.SetInequalityConstraintFunction(ffcalfunc<Rn>(stack,EIConst,theparam));
-					
-					if(optim.DF())
-					{
-						if(gradient) cout << "Warning: in " << optim.Name() << " algorithm - derivative free algorithm will ignore the objective function gradient." << endl;
-						if(gradiconst)
-						{
-							cout << "Warning: in " << optim.Name() << " algorithm - derivative free algorithm will ignore the inequality constraints gradient." << endl;
-							if(!iconst) cout << "Also note that this gradient has been provided for an inexisting set of inequality constraints!" << endl;
-						}
-						if(gradeconst)
-						{
-							cout << "Warning: in " << optim.Name() << " algorithm - derivative free algorithm will ignore the equality constraints gradient." << endl;
-							if(!econst) cout << "Also note that this gradient has been provided for an inexisting set of equality constraints!" << endl;
-						}
-					}
-					else
-					{
-						if(gradient) optim.SetObjectiveFunctionGradient(ffcalfunc<Rn>(stack,GradJ,theparam));
-						else cout << "Warning: in " << optim.Name() << " algorithm - no objective function gradient has been provided (choose a derivative free algorithm if it is not available)." << endl;
-						
-						if(econst)
-						{
-							if(gradeconst) optim.SetEqualityConstraintGradient(ffcalfunc<Rnm>(stack,EGradEConst,theparam));
-							else cout << "Warning: in " << optim.Name() << " algorithm - no equality constraints gradients has been provided." << endl;
-						}
-						else if(gradeconst) cout << "Warning: in " << optim.Name() << " algorithm - gradients have been provided for an inexisting set of equality constraints." << endl;
-						
-						if(iconst)
-						{
-							if(gradiconst) optim.SetInequalityConstraintGradient(ffcalfunc<Rnm>(stack,EGradIConst,theparam));
-							else cout << "Warning: in " << optim.Name() << " algorithm - no inequality constraints gradients has been provided." << endl;
-						}
-						else if(gradiconst)cout << "Warning: in " << optim.Name() << " algorithm - gradients have been provided for an inexisting set of inequality constraints." << endl;
-					}
-					
-					if(econst) optim.SetEqualityConstraints();
-					if(iconst) optim.SetInequalityConstraints();
-					
-					if(verbosity>1) cout << Info<ALGO>::name << " starting..." << endl; 
-					try {cost = optim();}
-					catch(nlopt::roundoff_limited) {cout << " nlopt roundoff limited" << endl;}
-					catch(nlopt::forced_stop) { cout << " nlopt forced stop" << endl;}
-					catch(std::runtime_error) {cout << "runtime error" << endl;}
-					catch(std::invalid_argument) {cout << "invalid argument" << endl;}
-					catch(std::bad_alloc) {cout << "bad alloc" << endl;}
-					
-					//x = KN_<double>(optim.xbestever(),optim.dimension());
-					//cout << "Number of fitness evalution(s) : " << optim.eval() << endl;
-					
-					closetheparam.eval(stack); // clean memory 
-					WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-					return cost; //SetAny<long>(0);  Modif FH  july 2005       
-				}
-				    
-				operator aType () const { return atype<double>();}         
-		};
-  
-		E_F0 * code(const basicAC_F0 & args) const {return new E_NLopt(args,cas);}
-  
-		OptimNLopt(int c) :   OneOperator(atype<double>(),atype<Polymorphic*>(),atype<KN<R> *>()),cas(c){}
-};
-
-
-template<nlopt::algorithm ALGO,bool SA> basicAC_F0::name_and_type  OptimNLopt<ALGO,SA>::E_NLopt::name_param[]= 
-{
-	{"grad",						&typeid(Polymorphic*) },
-	{"IConst",					&typeid(Polymorphic*) },
-	{"gradIConst",			&typeid(Polymorphic*) },
-	{"EConst",					&typeid(Polymorphic*) },
-	{"gradEConst",			&typeid(Polymorphic*) },
-	{"lb",							&typeid(KN_<double>) },
-	{"ub",							&typeid(KN_<double>) },
-	{"stopFuncValue",   &typeid(double) },
-	{"tolEConst",				&typeid(KN_<double>) },
-	{"stopRelXTol",			&typeid(double) },
-	{"stopAbsXTol",     &typeid(KN_<double>) },
-	{"stopRelFTol",			&typeid(double) },
-	{"stopAbsFTol",			&typeid(double) },
-	{"stopMaxFEval",		&typeid(long) },
-	{"stopTime",				&typeid(double) },
-	{"tolIConst",				&typeid(KN_<double>) },
-	{"popSize",					&typeid(long) },
-	{"nGradStored",			&typeid(long) }
-};
-
-
-
-
-template<nlopt::algorithm ALGO> class OptimNLopt<ALGO,true> : public OneOperator 
-{
-	public:
-		const int cas;
-
-		class E_NLopt : public E_F0mps 
-		{ 
-			public:
-				const int cas;
-				static basicAC_F0::name_and_type name_param[] ;
-				static const int n_name_param =27;
-				Expression nargs[n_name_param];
-				Expression X;
-				C_F0 inittheparam,theparam,closetheparam; 
-				Expression JJ;
-				Expression GradJ,EIConst,EGradIConst,EEConst,EGradEConst;
-				long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-				R arg(int i,Stack stack,R a) const{ return nargs[i] ? GetAny<R>( (*nargs[i])(stack) ): a;}
-				Rn_ arg(int i,Stack stack,Rn_ a) const {return nargs[i] ? GetAny<Rn_>((*nargs[2])(stack)) : a;}
-				template<typename T> T Arg(int i,Stack s) const {return GetAny<T>( (*nargs[i])(s));}
-      
-				E_NLopt(const basicAC_F0 & args,int cc) : cas(cc)
-				{
-					int nbj= args.size()-1;
-					Block::open(currentblock); // make a new block to 
-					X = to<Rn*>(args[nbj]);
-					C_F0 X_n(args[nbj],"n");
-					//  the expression to init the theparam of all 
-					inittheparam = currentblock->NewVar<LocalVariable>("the parameter",atype<KN<R> *>(),X_n);
-					theparam = currentblock->Find("the parameter"); //  the expression for the parameter
-					args.SetNameParam(n_name_param,name_param,nargs);
-					const  Polymorphic * opJ=0;
-					if (nbj>0)
-					{
-						opJ=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-						assert(opJ);
-					}      
-					JJ= to<R>(C_F0(opJ,"(",theparam));
-					const Polymorphic * gradient = nargs[0] ? dynamic_cast<const Polymorphic *>(nargs[0]) : 0,
-														* iconst = nargs[1] ? dynamic_cast<const Polymorphic *>(nargs[1]) : 0,
-														* gradiconst = nargs[2] ? dynamic_cast<const Polymorphic *>(nargs[2]) : 0,
-														* econst = nargs[3] ? dynamic_cast<const Polymorphic *>(nargs[3]) : 0,
-														* gradeconst = nargs[4] ? dynamic_cast<const Polymorphic *>(nargs[4]) : 0;
-					if(gradient) GradJ = to<Rn_>(C_F0(gradient,"(",theparam));
-					if(iconst) EIConst = to<Rn_>(C_F0(iconst,"(",theparam));
-					if(gradiconst) EGradIConst = to<Rnm_>(C_F0(gradiconst,"(",theparam));
-					if(econst) EEConst = to<Rn_>(C_F0(econst,"(",theparam));
-					if(gradeconst) EGradEConst = to<Rnm_>(C_F0(gradeconst,"(",theparam));
-					closetheparam=currentblock->close(currentblock);   // the cleanning block expression 
-				}
-    
-				virtual AnyType operator()(Stack stack)  const
-				{
-					double cost = 1e100;
-					WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005 
-					Rn &x = *GetAny<Rn *>((*X)(stack));	
-					long n=x.N();	
-					
-					const bool  gradient = nargs[0] ? dynamic_cast<const Polymorphic *>(nargs[0]) : 0,
-											iconst = nargs[1] ? dynamic_cast<const Polymorphic *>(nargs[1]) : 0,
-											gradiconst = nargs[2] ? dynamic_cast<const Polymorphic *>(nargs[2]) : 0,
-											econst = nargs[3] ? dynamic_cast<const Polymorphic *>(nargs[3]) : 0,
-											gradeconst = nargs[4] ? dynamic_cast<const Polymorphic *>(nargs[4]) : 0;
-											
-					
-					long iprint = verbosity;	
-					ffcalfunc<double> ffJ(stack,JJ,theparam);
-					
-					SAOptimizer<ALGO> optim(ffJ,x);
-					if(nargs[5])  optim.SetLowerBounds(Arg<Rn_>(5,stack));
-					if(nargs[6])  optim.SetUpperBounds(Arg<Rn_>(6,stack));
-					if(nargs[7])  optim.SetSCStopFunctionValue(Arg<R>(7,stack));
-					if(nargs[8])  optim.SetEqualityConstraintsTolerance(Arg<Rn_>(8,stack));
-					if(nargs[9])  optim.SetSCXRelativeTolerance(Arg<R>(9,stack));
-					if(nargs[10]) optim.SetSCXAbsoluteTolerance(Arg<Rn_>(10,stack));
-					if(nargs[11]) optim.SetSCRelativeFunctionTolerance(Arg<R>(11,stack));
-					if(nargs[12]) optim.SetSCAbsoluteFunctionTolerance(Arg<R>(12,stack));
-					if(nargs[13]) optim.SetSCMaxFunctionEvaluations(Arg<long>(13,stack));
-					if(nargs[14]) optim.SetSCEllapsedTime(Arg<R>(14,stack));
-					if(nargs[15]) optim.SetInequalityConstraintsTolerance(Arg<Rn_>(15,stack));
-					if(nargs[16]) optim.SetPopulationSize(static_cast<int>(Arg<long>(16,stack)));
-					if(nargs[17]) optim.SetSubOptimizer(*Arg<string*>(17,stack),0);
-					else cout << "Warning: in " << optim.Name() << " algorithm - you have to specify a local optimizer, aboarting optimization (use the subOpt named parameter)." << endl;
-					if(nargs[18])  optim.SetSASCStopFunctionValue(Arg<R>(18,stack));
-					if(nargs[19])  optim.SetSASCXRelativeTolerance(Arg<R>(19,stack));
-					if(nargs[20]) optim.SetSASCXAbsoluteTolerance(Arg<Rn_>(20,stack));
-					if(nargs[21]) optim.SetSASCRelativeFunctionTolerance(Arg<R>(21,stack));
-					if(nargs[22]) optim.SetSASCAbsoluteFunctionTolerance(Arg<R>(22,stack));
-					if(nargs[23]) optim.SetSASCMaxFunctionEvaluations(Arg<long>(23,stack));
-					if(nargs[24]) optim.SetSASCEllapsedTime(Arg<R>(24,stack));
-					if(nargs[25]) optim.SetSAPopulationSize(static_cast<int>(Arg<long>(25,stack)));
-					if(nargs[26]) 
-					{
-						optim.SetVectorStorage(static_cast<int> (Arg<long>(26,stack)));
-						if(optim.DF()) cout << "Warning: in " << optim.subopt->Name() << " algorithm - using nGradStored is pointless (no gradient to store in a derivative free context)." << endl;
-						else if(optim.subopt->Tag()==nlopt::LD_SLSQP || optim.subopt->Tag()==nlopt::LD_MMA) 
-							cout << "Warning: nGradStored can't be used with " << optim.Name() << ", parameter will be ignored." << endl;
-					}
-					optim.SetSubOptimizer();
-
-					
-					if(econst) optim.SetEqualityConstraintFunction(ffcalfunc<Rn>(stack,EEConst,theparam));
-					if(iconst) optim.SetInequalityConstraintFunction(ffcalfunc<Rn>(stack,EIConst,theparam));
-					
-					if(optim.subopt)
-					{
-						if(optim.subopt->DF())
-						{
-							if(gradient) cout << "Warning: in " << optim.Name() << " algorithm - derivative free sub-algorithm will ignore the objective function gradient." << endl;
-							if(gradiconst)
-							{
-								cout << "Warning: in " << optim.Name() << " algorithm - derivative free sub-algorithm will ignore the inequality constraints gradient." << endl;
-								if(!iconst) cout << "Also note that this gradient has been provided for an inexisting set of inequality constraints!" << endl;
-							}
-							if(gradeconst)
-							{
-								cout << "Warning: in " << optim.Name() << " algorithm - derivative free sub-algorithm will ignore the equality constraints gradient." << endl;
-								if(!econst) cout << "Also note that this gradient has been provided for an inexisting set of equality constraints!" << endl;
-							}
-						}
-						else
-						{
-							if(gradient) optim.SetObjectiveFunctionGradient(ffcalfunc<Rn>(stack,GradJ,theparam));
-							else cout << "Warning: in " << optim.Name() << " algorithm - no objective function gradient has been provided (choose a derivative free local search if it is not available)." << endl;
-						
-							if(econst)
-							{
-								if(gradeconst) optim.SetEqualityConstraintGradient(ffcalfunc<Rnm>(stack,EGradEConst,theparam));
-								else cout << "Warning: in " << optim.Name() << " algorithm - no equality constraints gradients has been provided." << endl;
-							}
-							else if(gradeconst) cout << "Warning: in " << optim.Name() << " algorithm - gradients have been provided for an inexisting set of equality constraints." << endl;
-						
-							if(iconst)
-							{
-								if(gradiconst) optim.SetInequalityConstraintGradient(ffcalfunc<Rnm>(stack,EGradIConst,theparam));
-								else cout << "Warning: in " << optim.Name() << " algorithm - no inequality constraints gradients has been provided." << endl;
-							}
-							else if(gradiconst)cout << "Warning: in " << optim.Name() << " algorithm - gradients have been provided for an inexisting set of inequality constraints." << endl;
-						}
-					
-						if(econst) optim.SetEqualityConstraints();
-						if(iconst) optim.SetInequalityConstraints();
-					
-						if(verbosity>1) cout << Info<ALGO>::name << " starting..." << endl; 
-						try {cost = optim();}
-						catch(nlopt::roundoff_limited) {cout << " nlopt roundoff limited" << endl;}
-						catch(nlopt::forced_stop) { cout << " nlopt forced stop" << endl;}
-						catch(std::runtime_error) {cout << "runtime error" << endl;}
-						catch(std::invalid_argument) {cout << "invalid argument" << endl;}
-						catch(std::bad_alloc) {cout << "bad alloc" << endl;}
-					}
-					//x = KN_<double>(optim.xbestever(),optim.dimension());
-					//cout << "Number of fitness evalution(s) : " << optim.eval() << endl;
-					
-					closetheparam.eval(stack); // clean memory 
-					WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-					return cost; //SetAny<long>(0);  Modif FH  july 2005       
-				}
-				    
-				operator aType () const { return atype<double>();}         
-		};
-  
-		E_F0 * code(const basicAC_F0 & args) const {return new E_NLopt(args,cas);}
-  
-		OptimNLopt(int c) :   OneOperator(atype<double>(),atype<Polymorphic*>(),atype<KN<R> *>()),cas(c){}
-};
-
-
-template<nlopt::algorithm ALGO> basicAC_F0::name_and_type  OptimNLopt<ALGO,true>::E_NLopt::name_param[]= 
-{
-	{"grad",						&typeid(Polymorphic*) },
-	{"IConst",					&typeid(Polymorphic*) },
-	{"gradIConst",			&typeid(Polymorphic*) },
-	{"EConst",					&typeid(Polymorphic*) },
-	{"gradEConst",			&typeid(Polymorphic*) },
-	{"lb",							&typeid(KN_<double>) },
-	{"ub",							&typeid(KN_<double>) },
-	{"stopFuncValue",   &typeid(double) },
-	{"tolEConst",				&typeid(KN_<double>) },
-	{"stopRelXTol",			&typeid(double) },
-	{"stopAbsXTol",     &typeid(KN_<double>) },
-	{"stopRelFTol",			&typeid(double) },
-	{"stopAbsFTol",			&typeid(double) },
-	{"stopMaxFEval",		&typeid(long) },
-	{"stopTime",				&typeid(double) },
-	{"tolIConst",				&typeid(KN_<double>) },
-	{"popSize",					&typeid(long) }, //16
-	{"subOpt",					&typeid(string*) },
-	{"SOStopFuncValue", &typeid(double) },
-	{"SOStopRelXTol",		&typeid(double) },
-	{"SOStopAbsXTol",   &typeid(KN_<double>) },
-	{"SOStopRelFTol",		&typeid(double) },
-	{"SOStopAbsFTol",		&typeid(double) },
-	{"SOStopMaxFEval",	&typeid(long) },
-	{"SOStopTime",			&typeid(double) },
-	{"SOPopSize",				&typeid(long) },
-	{"nGradStored",			&typeid(long) }
-};
-
-
-
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-
-static void Load_Init()  
-=======
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init()  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  Global.Add("nloptDIRECT",								"(",new OptimNLopt<nlopt::GN_DIRECT>(1)); 
-  Global.Add("nloptDIRECTL",							"(",new OptimNLopt<nlopt::GN_DIRECT_L>(1));
-  Global.Add("nloptDIRECTLRand",					"(",new OptimNLopt<nlopt::GN_DIRECT_L_RAND>(1)); 
-  Global.Add("nloptDIRECTNoScal",					"(",new OptimNLopt<nlopt::GN_DIRECT_NOSCAL>(1)); 
-  Global.Add("nloptDIRECTLNoScal",				"(",new OptimNLopt<nlopt::GN_DIRECT_L_NOSCAL>(1)); 
-  Global.Add("nloptDIRECTLRandNoScal",		"(",new OptimNLopt<nlopt::GN_DIRECT_L_RAND_NOSCAL>(1)); 
-  Global.Add("nloptOrigDIRECT",						"(",new OptimNLopt<nlopt::GN_ORIG_DIRECT>(1)); 
-  Global.Add("nloptOrigDIRECTL",					"(",new OptimNLopt<nlopt::GN_ORIG_DIRECT_L>(1));
-  Global.Add("nloptStoGO",								"(",new OptimNLopt<nlopt::GD_STOGO>(1));
-  Global.Add("nloptStoGORand",						"(",new OptimNLopt<nlopt::GD_STOGO_RAND>(1));
-  //Global.Add("nloptLBFGSNocedal",					"(",new OptimNLopt<nlopt::LD_LBFGS_NOCEDAL>(1)); //Invalid argument
-  Global.Add("nloptLBFGS",								"(",new OptimNLopt<nlopt::LD_LBFGS>(1)); 
-  Global.Add("nloptPRAXIS",								"(",new OptimNLopt<nlopt::LN_PRAXIS>(1));
-  Global.Add("nloptVar1",									"(",new OptimNLopt<nlopt::LD_VAR1>(1));  
-  Global.Add("nloptVar2",									"(",new OptimNLopt<nlopt::LD_VAR2>(1));  
-  Global.Add("nloptTNewton",							"(",new OptimNLopt<nlopt::LD_TNEWTON>(1));
-  Global.Add("nloptTNewtonRestart",				"(",new OptimNLopt<nlopt::LD_TNEWTON_RESTART>(1));
-  Global.Add("nloptTNewtonPrecond",				"(",new OptimNLopt<nlopt::LD_TNEWTON_PRECOND>(1));
-  Global.Add("nloptTNewtonPrecondRestart","(",new OptimNLopt<nlopt::LD_TNEWTON_PRECOND_RESTART>(1));  
-  Global.Add("nloptCRS2",									"(",new OptimNLopt<nlopt::GN_CRS2_LM>(1));
-  Global.Add("nloptMMA",									"(",new OptimNLopt<nlopt::LD_MMA>(1));  
-  Global.Add("nloptCOBYLA",								"(",new OptimNLopt<nlopt::LN_COBYLA>(1));  
-  Global.Add("nloptNEWUOA",								"(",new OptimNLopt<nlopt::LN_NEWUOA>(1));  
-  Global.Add("nloptNEWUOABound",					"(",new OptimNLopt<nlopt::LN_NEWUOA_BOUND>(1)); 
-  Global.Add("nloptNelderMead",						"(",new OptimNLopt<nlopt::LN_NELDERMEAD>(1));
-	Global.Add("nloptSbplx",								"(",new OptimNLopt<nlopt::LN_SBPLX>(1));
-	Global.Add("nloptBOBYQA",								"(",new OptimNLopt<nlopt::LN_BOBYQA>(1));
-	Global.Add("nloptISRES",								"(",new OptimNLopt<nlopt::GN_ISRES>(1));
-	Global.Add("nloptSLSQP",								"(",new OptimNLopt<nlopt::LD_SLSQP>(1));
-	Global.Add("nloptMLSL",									"(",new OptimNLopt<nlopt::G_MLSL>(1));
-	Global.Add("nloptMLSLLDS",							"(",new OptimNLopt<nlopt::G_MLSL_LDS>(1));
-	Global.Add("nloptAUGLAG",								"(",new OptimNLopt<nlopt::AUGLAG>(1));
-	Global.Add("nloptAUGLAGEQ",							"(",new OptimNLopt<nlopt::AUGLAG_EQ>(1));
-}
-
-
-
-
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/ff-cmaes.cpp.orig b/examples++-load/ff-cmaes.cpp.orig
deleted file mode 100644
index e01d37e..0000000
--- a/examples++-load/ff-cmaes.cpp.orig
+++ /dev/null
@@ -1,321 +0,0 @@
-
-//ff-c++-cpp-dep: cmaes.cpp
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Sylvain Auliac
-// E-MAIL   : auliac at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-/* 
-	This is a freefem interface of the Hansen's CMA-ES C optimizer.
-	The class CMAES is a quick C++ interface for the contents of the C files
-	then follow the real FreeFem++ stuff.
-*/
-
-
-#include  <iostream>
-using namespace std;
-#include "ff++.hpp"
-
-#include "cmaes_interface.h"
-
-
-class CMAES //Abstract class, because the fitness function prototype may differ from users to users
-{
-	public:
-		//typedef double (*FFT)(double const *); //Fitness Function Type
-		CMAES() : pop(0),fitvals(0),evo() {}
-		CMAES(int d,double *xstart,double *stddev,long seed,int lambda,const char *ipf="initials.par") : pop(0),fitvals(0),evo()
-		{
-			fitvals = init(d,xstart,stddev,seed,lambda,ipf);
-			cout << SayHello() << endl;
-		}
-		virtual ~CMAES() {exit();}
-		
-		void resume_distribution(char *filename) {return cmaes_resume_distribution(&evo, filename);}
-		double * const * & SamplePopulation() {return pop = cmaes_SamplePopulation(&evo);}
-		double * UpdateDistribution() {return cmaes_UpdateDistribution(&evo,fitvals);}
-		const char * TestForTermination() const {return cmaes_TestForTermination(&evo);}
-		double * const * & ReSampleSingle(int index) {return pop = cmaes_ReSampleSingle(&evo,index);}
-		double const * ReSampleSingle_old(double *rgx) {return cmaes_ReSampleSingle_old(&evo,rgx);}
-		void UpdateEigensystem(int flgforce) {return cmaes_UpdateEigensystem(&evo, flgforce);}
-		virtual void PopEval() =0;
-		//{for(int i=0;i<popsize();++i) fitvals[i] = ff(pop[i]);} //the thing to parralelize
-		
-		double axisratio() const {return cmaes_Get(&evo,"axisratio");}	//between lengths of longest and shortest principal axis of the distribution ellipsoid 
-		int eval() const {return floor(cmaes_Get(&evo,"eval"));}				//number of function evaluations
-		double fitness() const {return cmaes_Get(&evo,"fitness");}			//recent best function evaluation
-		double fbestever() const {return cmaes_Get(&evo,"fbestever");}  //ever best function value
-		int generation() const {return floor(cmaes_Get(&evo,"generation"));}
-		int maxeval() const {return floor(cmaes_Get(&evo,"maxeval"));}	//maximal number of function evaluations
-		int maxgen() const {return floor(cmaes_Get(&evo,"maxgen"));}		//maximal number of generations
-		double maxaxislength() const {return cmaes_Get(&evo,"maxaxislength");}
-		double minaxislength() const {return cmaes_Get(&evo,"minaxislength");}
-		double maxstddev() const {return cmaes_Get(&evo,"maxstddev");}
-		double minstddev() const {return cmaes_Get(&evo,"minstddev");}
-		int dimension() const {return floor(cmaes_Get(&evo,"dimension"));}
-		int popsize() const {return floor(cmaes_Get(&evo,"lambda"));}
-		double sigma() const {return cmaes_Get(&evo,"sigma");}
-		double * diagC() const {return const_cast<double*>(cmaes_GetPtr(&evo,"diag(C)"));}
-		double * diagD() const {return const_cast<double*>(cmaes_GetPtr(&evo,"diag(D)"));}
-		double * stddev() const {return const_cast<double*>(cmaes_GetPtr(&evo,"stddev"));}
-		double * xbestever() const {return const_cast<double*>(cmaes_GetPtr(&evo,"xbestever"));}
-		double * xbest() const {return const_cast<double*>(cmaes_GetPtr(&evo,"xbest"));}
-		double * xmean() const {return const_cast<double*>(cmaes_GetPtr(&evo,"xmean"));}
-		
-		void ReadSignals(char const * filename) const {cmaes_ReadSignals(&evo,filename);}
-		char * SayHello() const {return cmaes_SayHello(&evo);}
-		void WriteToFile(char const * keyword,char const * output_filename) const {cmaes_WriteToFile(&evo,keyword,output_filename);}
-		
-		virtual double * operator() () 
-		{
-			//ReadSignals("signals.par");
-			while(!TestForTermination())
-			{
-				SamplePopulation();
-				PopEval();
-				UpdateDistribution();
-				//ReadSignals("signals.par");
-			}
-			cout << "Stop : " << TestForTermination() << endl;
-			return xmean();
-		}
-		cmaes_t& optimizer() {return evo;}
-	protected:
-		double * const * pop;
-		double * fitvals;
-	private:
-		void exit() {cmaes_exit(&evo);}
-		double*& init(int dimension,double *xstart,double *stddev,long seed,int lambda,const char *input_parameter_filename)
-			{return fitvals = cmaes_init(&evo,dimension,xstart,stddev,seed,lambda,input_parameter_filename);}
-		mutable cmaes_t evo;
-};
-
-
-
-
-/*
-	Now comes the FreeFem ++ part :
-*/
-
-extern Block *currentblock;
-
-typedef double R;
-
-class OptimCMA_ES : public OneOperator 
-{
-	public:
-		typedef KN<R> Kn;
-		typedef KN_<R> Kn_;
-		const int cas;
-
-
-		class ffcalfunc  //   to call the freefem function .. J 
-		{ 
-			public:
-				Stack stack;
-				Expression JJ,theparame;
-    
-				ffcalfunc(Stack s,Expression JJJ,Expression epar) : stack(s),JJ(JJJ), theparame(epar) {}
-				double J(Kn_  x) const 
-				{
-					KN<double> *p=GetAny<KN<double> *>( (*theparame)(stack) );
-					*p=x;
-					double ret= GetAny<R>( (*JJ)(stack));
-					WhereStackOfPtr2Free(stack)->clean();
-					return  ret; 
-				}
-		}; 
-		class CMA_ES : public CMAES
-		{
-			public:
-				typedef KN<double> Rn;
-				typedef KN_<double> Rn_;
-		
-		
-				CMA_ES() : CMAES(),x(0),fit(0) {}
-				/*CMA_ES(ffcalfunc &_ff,int d,Rn &xstart,double *stddev,long seed,int lambda)
-					: CMAES(d,xstart.n ? xstart:0,stddev,seed,lambda,"non"),x(&xstart),fit(&_ff) {}
-				CMA_ES(ffcalfunc &_ff,int d,Rn &xstart,const Rn &stddev,long seed,int lambda) 
-					: CMAES(d,xstart.n ? xstart:0,stddev,seed,lambda,"non"),x(&xstart),fit(&_ff) {}*/
-				CMA_ES(ffcalfunc &_ff,Rn &xstart,const Rn &stddev,long seed,int lambda)
-					: CMAES(xstart.n,xstart,stddev,seed,lambda,"non"),x(&xstart),fit(&_ff) {}
-				CMA_ES(ffcalfunc &_ff,Rn &xstart,const Rn &stddev,long seed,int lambda,const string &ipf)
-					: CMAES(xstart.n,xstart,stddev,seed,lambda,ipf.c_str()),x(&xstart),fit(&_ff) {}
-		
-		
-				void PopEval() {for(int i=0;i<popsize();++i) {Rn_ popi(pop[i],dimension()); fitvals[i] = fit->J(popi);}}
-				double * operator() () {return *x = Rn(x->n,CMAES::operator()());}
-			private:
-				ffcalfunc *fit;
-				Rn *x;
-		};
-
-  
-
-		class E_CMA_ES: public E_F0mps 
-		{ 
-			public:
-				const int cas;
-				static basicAC_F0::name_and_type name_param[] ;
-				static const int n_name_param =11;
-				Expression nargs[n_name_param];
-				Expression X;
-				C_F0 inittheparam,theparam,closetheparam; 
-				Expression JJ;
-				long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-				R arg(int i,Stack stack,R a) const{ return nargs[i] ? GetAny<R>( (*nargs[i])(stack) ): a;}
-      
-				E_CMA_ES(const basicAC_F0 & args,int cc) : cas(cc)
-				{
-					int nbj= args.size()-1;
-					Block::open(currentblock); // make a new block to 
-					X = to<Kn*>(args[nbj]);
-					C_F0 X_n(args[nbj],"n");
-					//  the expression to init the theparam of all 
-					inittheparam = currentblock->NewVar<LocalVariable>("the parameter",atype<KN<R> *>(),X_n);
-					theparam = currentblock->Find("the parameter"); //  the expression for the parameter
-					args.SetNameParam(n_name_param,name_param,nargs);
-					const  Polymorphic * opJ=0;
-					if (nbj>0)
-					{
-						opJ=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-						assert(opJ);
-					}      
-					JJ= to<R>(C_F0(opJ,"(",theparam));
-					closetheparam=currentblock->close(currentblock);   // the cleanning block expression 
-				}
-    
-				virtual AnyType operator()(Stack stack)  const
-				{
-					double cost = 1e100;
-					WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005 
-					Kn &x = *GetAny<Kn *>((*X)(stack));	
-					long n=x.N();	
-					long seed =	arg(0,stack,0L); //The seed for random numbers generation
-					double initialStdDev = arg(1,stack,0.3); //Initial standard deviation
-					KN<double> iSD(n,1.);
-					iSD *= initialStdDev;
-					KN<double> initialStdDevs(nargs[2] ? GetAny<KN_<double> >((*nargs[2])(stack)) : (KN_<double>)iSD);
-					//cout << "dans le dylib :" << initialStdDevs << endl;
-					double stopTolFun = arg(3,stack,1.E-12);
-					double stopTolFunHist = arg(4,stack,0.);
-					double stopTolX = arg(5,stack,0.);
-					double stopTolUpXFactor = arg(6,stack,1.E3);
-					long popsize = arg(7,stack,4 + (long) floor(3*log(n)));
-					//long mu = arg(8,stack,popsize/2);
-					string pipf = nargs[10] ? *GetAny<string*>((*nargs[10])(stack)) : string("") ;
-					
-					long iprint = verbosity;	
-					ffcalfunc ffJ(stack,JJ,theparam);
-					
-					CMA_ES *optim=0;
-					if(pipf.size()>0)
-					{
-						cout << "input file : " << pipf << endl;
-						optim = new CMA_ES(ffJ,x,initialStdDevs,seed,popsize,pipf);
-					}
-					else 
-					{
-						cout << "no input file " << endl;
-						optim = new CMA_ES(ffJ,x,initialStdDevs,seed,popsize);
-						long meval = arg(8,stack,static_cast<long>(optim->maxeval()));
-						long mgen = arg(9,stack,static_cast<long>(optim->maxgen()));
-						optim->optimizer().sp.stopTolFun = stopTolFun;
-						optim->optimizer().sp.stopTolFunHist = stopTolFunHist;
-						optim->optimizer().sp.stopTolX = stopTolX;
-						optim->optimizer().sp.stopTolUpXFactor = stopTolUpXFactor;
-						optim->optimizer().sp.stopMaxFunEvals = meval;
-						optim->optimizer().sp.stopMaxIter = mgen;
-					}
-					
-					(*optim)();
-					cost = optim->fitness();
-					x = KN_<double>(optim->xbestever(),optim->dimension());
-					cout << "Number of fitness evalution(s) : " << optim->eval() << endl;
-					
-					closetheparam.eval(stack); // clean memory 
-					
-					if(optim) {delete optim; optim=0;}
-					WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-					return cost; //SetAny<long>(0);  Modif FH  july 2005       
-				}
-				    
-				operator aType () const { return atype<double>();}         
-		};
-  
-		E_F0 * code(const basicAC_F0 & args) const {return new E_CMA_ES(args,cas);}
-  
-		OptimCMA_ES(int c) :   OneOperator(atype<double>(),atype<Polymorphic*>(),atype<KN<R> *>()),cas(c){}
-};
-
-basicAC_F0::name_and_type  OptimCMA_ES::E_CMA_ES::name_param[]= 
-{
-	{"seed",						&typeid(long) },
-	{"initialStdDev",		&typeid(double) },
-	{"initialStdDevs",	&typeid(KN_<double>) },
-	{"stopTolFun",			&typeid(double) },
-	{"stopTolFunHist",	&typeid(double) },
-	{"stopTolX",				&typeid(double) },
-	{"stopTolUpXFactor",&typeid(double) },
-	{"popsize",					&typeid(long) },
-	{"stopMaxFunEval",  &typeid(long) },
-	{"stopMaxIter",			&typeid(long) },
-	{"paramFile",				&typeid(string*) }
-	//{"mu",							&typeid(long) }
-};
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-
-static void Load_Init()  
-=======
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init()  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  Global.Add("cmaes","(",new OptimCMA_ES(1)); 
-
-}
-
-
-
-
-
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/ff-get-dep.in.orig b/examples++-load/ff-get-dep.in.orig
deleted file mode 100755
index 5a3f457..0000000
--- a/examples++-load/ff-get-dep.in.orig
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-# ff-c++ `./ff-get-dep -ff metis.cpp`
-
-case "$1" in
-    -dlib)
-	shift
-<<<<<<< HEAD
-	awk -F:  '/^[\/]+ff-c[+][+]-LIBRARY-dep:/  { printf("%s",$2); exit 0;}' $@
-=======
-	awk -F:  '/ff-c[+][+]-LIBRARY-dep/  { print $2}' $@
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	exit 0; 
-	;;
-    -dcpp)
-	shift
-<<<<<<< HEAD
-	awk -F:  '/^[\/]+ff-c[+][+]-cpp-dep:/  { printf("%s",$2); exit 0;}' $@
-=======
-	awk -F:  '/ff-c[+][+]-cpp-dep/  { print $2}' $@
-	echo $@
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	exit 0; 
-	;;
-    -ff)
-	shift;
-<<<<<<< HEAD
-#  ajout  de lib  with check
-	libs=`$0 -dlib $@`
-	cpp=`$0 -dcpp $@`" $@"
-=======
-	libs=`$0 -dlib $@`
-	cpp=`$0 -dcpp $@`
-	inclins=`$0 -i $libs` 
-	ldlibs=`$0 -l $libs`
-	if [ -n "$ldlibs" -o -z "$libs" ]; then
-	    echo "$cpp" "$inclins" "$ldlibs"
-	else
-	     # FFCS - we need errors returns to insure that all compilations run well. ERROR is detected by ff-c++
-	    echo "ERROR: find libs of $0 :  $libs "
-	fi
-	exit 0;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	;;
-esac 
-dircommand=`dirname $0`
-if [   -f "WHERE_LIBRARY-download" ] ; then
-<<<<<<< HEAD
-dircommand="./"
-=======
-    dirwhere=.
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-elif [   -f "$dircommand/WHERE_LIBRARY-download" ] ; then
-    dirwhere=$dircommand
-elif [ -f '@ff_prefix_dir@/lib/WHERE_LIBRARY-download' ] ; then
-    dirwhere='@ff_prefix_dir@/lib'
-else
-   echo " error no WHERE_LIBRARY  file "
-   exit 1;
-fi
-cd "$dirwhere"
-wherel=WHERE_LIBRARY-download
-test -f WHERE_LIBRARY-config && wherel="$wherel  WHERE_LIBRARY-config"
-test -f WHERE_LIBRARY && wherel="$wherel WHERE_LIBRARY"
-<<<<<<< HEAD
-awk -f ff-get-dep.awk -v libs="$libs"  -v cpp="$cpp" $wherel
-exit $?
-=======
-
-
-case "$1" in
-    -i*)
-	shift;
-	for i in $@ ; do
-	#    echo "$1" 
-	#    echo 	awk -v p="$1" -v m=INCLUDE ' ($1 == p) && ($2 == m) { for (i=3;i<=NF;++i) {print $i," ";}}' WHERE_LIBRARY  WHERE_LIBRARY-download
-	    
-	    # FFCS: print everything on the same line to avoid splitting paths containing spaces
-         awk -v p="$i" -v m=INCLUDE ' ($1 == p) && ($2 == m) && (!first){ first=1;for (i=3;i<=NF;++i) {printf("%s ",$i);}}' $wherel
-	done
-	
-	;;
-    -l*)
-	shift;
-	for i in $@ ; do   
-
-	    # FFCS: print everything on the same line to avoid splitting paths containing spaces
-	    awk -v p="$i" -v  m=LD ' ($1 == p) && ($2 == m) && (!first) {first=1; for (i=3;i<=NF;++i) {printf("%s ",$i);}} 
-          END  { if(!first) print "ERROR-missing-lib:" p;} ' $wherel
-	done
-	;;
-  *)  
-	for i in $@ ; do   
-	    awk -v p="$i" ' ($1 == p) { k=0;  for (i=3;i<=NF;++i) {k=1;} print k}' $wherel
-	done
-	
-shift;;
-esac
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/fflapack.cpp.orig b/examples++-load/fflapack.cpp.orig
deleted file mode 100644
index 7d8980d..0000000
--- a/examples++-load/fflapack.cpp.orig
+++ /dev/null
@@ -1,995 +0,0 @@
-//ff-c++-LIBRARY-dep:   lapack
-//ff-c++-LIBRARY-dep:   blas
-#include "ff++.hpp"
-#include "RNM.hpp"
-#include "AFunction_ext.hpp" // Extension of "AFunction.hpp" to deal with more than 3 parameters function
-
-using namespace std;
-
-#ifdef __LP64__
-  typedef int intblas;
-  typedef int integer;
-#else
-  typedef long intblas;
-  typedef long integer;
-#endif
-
-typedef integer  logical;
-typedef float   LAPACK_real;
-typedef double   doublereal;
-typedef logical  (* L_fp)();
-typedef integer      ftnlen;
-
-typedef complex<float> LAPACK_complex;
-typedef complex<double> doublecomplex;
-typedef void VOID; 
-#define complex LAPACK_complex 
-#define real LAPACK_real 
-
-#include "clapack.h"
-#undef real
-#undef complex 
-<<<<<<< HEAD
-=======
-class Init { public:
-  Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-long lapack_inv(KNM<double>* A)
-{
-  intblas n=A->N();
-  intblas m=A->M();
-  double *a=&(*A)(0,0);
-  intblas info;
-  intblas lda=n;
-  KN<intblas> ipiv(n);
-  intblas  lw=10*n;
-  KN<double> w(lw);
-  ffassert(n==m);
-  dgetrf_(&n,&n,a,&lda,ipiv,&info);
-  if(info) return info;
-  dgetri_(&n,a,&lda,ipiv,w,&lw,&info);
-  return info;
-}
-
-long lapack_inv(KNM<Complex>* A)
-{
-    intblas n=A->N();
-    intblas m=A->M();
-    Complex *a=&(*A)(0,0);
-    intblas info;
-    intblas lda=n;
-    KN<intblas> ipiv(n);
-    intblas  lw=10*n;
-    KN<Complex> w(lw);
-    ffassert(n==m);
-    zgetrf_(&n,&n,a,&lda,ipiv,&info);
-    if(info) return info;
-    zgetri_(&n,a,&lda,ipiv,w,&lw,&info);
-    return info;
-}
-
-// (computation of the eigenvalues and right eigenvectors of a real nonsymmetric matrix)
-long lapack_dgeev(KNM<double> *const &A,KN<Complex> *const &vp,KNM<Complex> *const &vectp)
-{
-  /*
-    SUBROUTINE DGEEV( JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR, LDVR, WORK, LWORK, INFO )
-   *  JOBVL   (input) CHARACTER*1
-   *          = 'N': left eigenvectors of A are not computed;
-   *          = 'V': left eigenvectors of A are computed.
-   *
-   *  JOBVR   (input) CHARACTER*1
-   *          = 'N': right eigenvectors of A are not computed;
-   *          = 'V': right eigenvectors of A are computed.
-   *
-   *  N       (input) INTEGER
-   *          The order of the matrix A. N >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
-   *          On entry, the N-by-N matrix A.
-   *          On exit, A has been overwritten.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  WR      (output) DOUBLE PRECISION array, dimension (N)
-   *  WI      (output) DOUBLE PRECISION array, dimension (N)
-   *          WR and WI contain the real and imaginary parts,
-   *          respectively, of the computed eigenvalues.  Complex
-   *          conjugate pairs of eigenvalues appear consecutively
-   *          with the eigenvalue having the positive imaginary part
-   *          first.
-   *
-   *  VL      (output) DOUBLE PRECISION array, dimension (LDVL,N)
-   *          If JOBVL = 'V', the left eigenvectors u(j) are stored one
-   *          after another in the columns of VL, in the same order
-   *          as their eigenvalues.
-   *          If JOBVL = 'N', VL is not referenced.
-   *          If the j-th eigenvalue is real, then u(j) = VL(:,j),
-   *          the j-th column of VL.
-   *          If the j-th and (j+1)-st eigenvalues form a complex
-   *          conjugate pair, then u(j) = VL(:,j) + i*VL(:,j+1) and
-   *          u(j+1) = VL(:,j) - i*VL(:,j+1).
-   *
-   *  LDVL    (input) INTEGER
-   *          The leading dimension of the array VL.  LDVL >= 1; if
-   *          JOBVL = 'V', LDVL >= N.
-   *
-   *  VR      (output) DOUBLE PRECISION array, dimension (LDVR,N)
-   *          If JOBVR = 'V', the right eigenvectors v(j) are stored one
-   *          after another in the columns of VR, in the same order
-   *          as their eigenvalues.
-   *          If JOBVR = 'N', VR is not referenced.
-   *          If the j-th eigenvalue is real, then v(j) = VR(:,j),
-   *          the j-th column of VR.
-   *          If the j-th and (j+1)-st eigenvalues form a complex
-   *          conjugate pair, then v(j) = VR(:,j) + i*VR(:,j+1) and
-   *          v(j+1) = VR(:,j) - i*VR(:,j+1).
-   *
-   *  LDVR    (input) INTEGER
-   *          The leading dimension of the array VR.  LDVR >= 1; if
-   *          JOBVR = 'V', LDVR >= N.
-   *
-   *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
-   *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
-   *
-   *  LWORK   (input) INTEGER
-   *          The dimension of the array WORK.  LWORK >= max(1,3*N), and
-   *          if JOBVL = 'V' or JOBVR = 'V', LWORK >= 4*N.  For good
-   *          performance, LWORK must generally be larger.
-   *
-   *          If LWORK = -1, then a workspace query is assumed; the routine
-   *          only calculates the optimal size of the WORK array, returns
-   *          this value as the first entry of the WORK array, and no error
-   *          message related to LWORK is issued by XERBLA.
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value.
-   *          > 0:  if INFO = i, the QR algorithm failed to compute all the
-   *                eigenvalues, and no eigenvectors have been computed;
-   *                elements i+1:N of WR and WI contain eigenvalues which
-   *                have converged.
-   */
-  intblas n=A->N();
-  ffassert(A->M()==n);
-  ffassert(vectp->M()>=n);
-  ffassert(vectp->N()>=n);
-  ffassert(vp->N()>=n);
-  KN<double> wr(n),wi(n),w(1);
-  KNM<double> mat(*A),vr(n,n),vl(n,n);
-  intblas info,lw=-1;
-  char JOBVL='N',JOBVR='V';
-  dgeev_(&JOBVL,&JOBVR,&n,mat,&n,wr,wi,vl,&n,vr,&n,w,&lw,&info);
-  lw=w[0];
-  w.resize(lw);
-  //cout << mat << endl;
-  dgeev_(&JOBVL,&JOBVR,&n,mat,&n,wr,wi,vl,&n,vr,&n,w,&lw,&info);
-  //cout << wr << endl;
-  //cout << wi << endl;
-  if (info<0)
-     {
-     cout << "   dgeev: the " << info << "-th argument had an illegal value." << endl;
-     (*vp)=Complex();
-     (*vectp)=Complex();
-     }
-  else if (info>0)
-     {
-     cout << "   dgeev: the QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed." << endl;
-     (*vp)=Complex();
-     (*vectp)=Complex();
-     }
-  else if (info==0)
-     {
-     for (int i=0;i<n;++i)
-        {
-        (*vp)[i]=Complex(wr[i],wi[i]);
-        if (verbosity>2)
-           cout << "   dgeev: vp "<< i << " : "  << (*vp)[i] << endl;
-        if (wi[i]==0)
-           for (int j=0;j<n;++j)
-              (*vectp)(j,i)=vr(j,i);
-        else if (wi[i]>0)
-	   {
-	   for (int j=0;j<n;++j)
-              (*vectp)(j,i)=Complex(vr(j,i),vr(j,i+1));
-           }
-	else if (wi[i]<0)
-	   {
-           for (int j=0;j<n;++j)
-              (*vectp)(j,i)=Complex(vr(j,i-1),-vr(j,i));	      
-           }
-        if (verbosity>5)
-           cout << "   dgeev:   " << (*vectp)(':',i) <<endl;
-        }
-     }
-  return info;
-}
-
-// (computation of the eigenvalues and right eigenvectors of a complex nonsymmetric matrix)
-long lapack_zgeev(KNM<Complex> *const &A,KN<Complex> *const &vp,KNM<Complex> *const &vectp)
-{
-  intblas nvp =0,zero=0;
-  intblas n= A->N();
-  ffassert(A->M()==n);
-  ffassert(vectp->M()>=n);
-  ffassert(vectp->N()>=n);
-  ffassert(vp->N()>=n);
-  KN<Complex> w(n),vr(n*n),vl(n*n);
-  KNM<Complex> mat(*A);
-  intblas info,lw=n*(n+1)*10;
-  KN<Complex> wk(lw);
-  KN<double> rwk(2*n);
-
-  char N='N',V='V';
-  // lw=1;// to get opt size value 
-  zgeev_(&N,&V,&n, mat,&n, w, vl,&n, vr,&n,wk,&lw,rwk,&info);
-  //  cout << lw << " " << wk[0] << " " << info <<   endl;
-  /* lw=wk[0].real();
-  w.resize(lw);
-  zgeev_(&N,&V,&n, mat,&n, w, vl,&n, vr,&n,wk,&lw,rwk,&info);
-  */
-  if(info)
-    cout << " info =  " << info << endl;
-  if(!info)
-    {
-      int k=0;
-      for(int i=0;i<n;++i)
-        {
-          (*vp)[i]=w[i];
-          if(verbosity>2)
-            cout << "   zgeev: vp "<< i << " : "  << (*vp)[i] << endl;
-	  for(int j=0;j<n;++j)
-              (*vectp)(j,i)=vr[k++];
-          if(verbosity>5)
-            cout << "   zgeev :   " << (*vectp)(':',i) <<endl;
-        }
-    }
-  else
-    {
-      nvp=0;
-      (*vp)=Complex();
-      (*vectp)=Complex();
-    }
-  return nvp;
-}
-
-// VL, 10/02/2010
-long lapack_dggev(KNM<double> *const &A,KNM<double> *const &B,KN<Complex> *const &vpa,KN<double> *const &vpb,KNM<Complex> *const &vectp)
-{
-    intblas nvp =0,zero=0;
-    intblas n=A->N();
-    ffassert(A->M()==n);
-    ffassert(B->M()==n);
-    ffassert(B->N()==n);
-    ffassert(vectp->M()>=n);
-    ffassert(vectp->N()>=n);
-    ffassert(vpa->N()>=n);
-    ffassert(vpb->N()>=n);
-    
-    KN<double> war(n),wai(n),wb(n),vr(n*n),vl(n*n);
-    KNM<double> matA(*A);
-    KNM<double> matB(*B);
-    intblas info,lw=-1;  
-    KN<double> w(1);
-    //char N='N',V='V'; VL: do not compute eigenvectors (if yes, switch with following line)
-    char VL='N',VR='N';
-    
-    dggev_(&VL,&VR,&n,matA,&n,matB,&n,war,wai,wb,vl,&n,vr,&n,w,&lw,&info);
-    lw=w[0];
-    // cout << lw << endl;
-    w.resize(lw);
-    dggev_(&VL,&VR,&n,matA,&n,matB,&n,war,wai,wb,vl,&n,vr,&n,w,&lw,&info);
-    if(info)
-	cout << " info =  " << info << endl;
-    if(!info)
-      {
-	int k=0;
-	for(int i=0;i<n;++i)
-	  {
-	    (*vpa)[i]=Complex(war[i],wai[i]);
-	    (*vpb)[i]=wb[i];
-	    if(verbosity>2)
-		cout << "   dggev: vp "<< i << " : "  << (*vpa)[i] << " ; " << (*vpb)[i] << endl;
-	    if( wai[i] == 0)
-		for(int j=0;j<n;++j)
-		    (*vectp)(j,i)=vr[k++];
-	    else if (  wai[i] >  0)
-	      {
-		int ki= k+n;
-		for(int j=0;j<n;++j)
-		    (*vectp)(j,i)=Complex(vr[k++],vr[ki++]);	      
-	      }
-	    else 
-	      {
-		int kr= k-n;
-		for(int j=0;j<n;++j)
-		    (*vectp)(j,i)=Complex(vr[kr++],-vr[k++]);	      
-	      }
-	    if(verbosity>5)
-		cout << "   dggev :   " << (*vectp)(':',i) <<endl;
-	  }
-      }
-    else
-      {
-	nvp=0;
-	(*vpa)=Complex();
-	(*vectp)=Complex();
-      }
-    return nvp;
-}
-
-// GL, 05/10/2011 (computation of all the eigenvalues and the eigenvectors of a real generalized symmetric-definite eigenproblem, of the form A*x=(lambda)*B*x)
-long lapack_dsygvd(KNM<double> *const &A,KNM<double> *const &B,KN<double> *const &vp,KNM<double> *const &vectp)
-{
-  /*
-    SUBROUTINE DSYGVD( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, IWORK, LIWORK, INFO )
-   *  ITYPE   (input) INTEGER
-   *          Specifies the problem type to be solved:
-   *          = 1:  A*x = (lambda)*B*x
-   *          = 2:  A*B*x = (lambda)*x
-   *          = 3:  B*A*x = (lambda)*x
-   *
-   *  JOBZ    (input) CHARACTER*1
-   *          = 'N':  Compute eigenvalues only;
-   *          = 'V':  Compute eigenvalues and eigenvectors.
-   *
-   *  UPLO    (input) CHARACTER*1
-   *          = 'U':  Upper triangles of A and B are stored;
-   *          = 'L':  Lower triangles of A and B are stored.
-   *
-   *  N       (input) INTEGER
-   *          The order of the matrices A and B.  N >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA, N)
-   *          On entry, the symmetric matrix A.  If UPLO = 'U', the
-   *          leading N-by-N upper triangular part of A contains the
-   *          upper triangular part of the matrix A.  If UPLO = 'L',
-   *          the leading N-by-N lower triangular part of A contains
-   *          the lower triangular part of the matrix A.
-   *
-   *          On exit, if JOBZ = 'V', then if INFO = 0, A contains the
-   *          matrix Z of eigenvectors.  The eigenvectors are normalized
-   *          as follows:
-   *          if ITYPE = 1 or 2, Z**T*B*Z = I;
-   *          if ITYPE = 3, Z**T*inv(B)*Z = I.
-   *          If JOBZ = 'N', then on exit the upper triangle (if UPLO='U')
-   *          or the lower triangle (if UPLO='L') of A, including the
-   *          diagonal, is destroyed.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  B       (input/output) DOUBLE PRECISION array, dimension (LDB, N)
-   *          On entry, the symmetric matrix B.  If UPLO = 'U', the
-   *          leading N-by-N upper triangular part of B contains the
-   *          upper triangular part of the matrix B.  If UPLO = 'L',
-   *          the leading N-by-N lower triangular part of B contains
-   *          the lower triangular part of the matrix B.
-   *
-   *          On exit, if INFO <= N, the part of B containing the matrix is
-   *          overwritten by the triangular factor U or L from the Cholesky
-   *          factorization B = U**T*U or B = L*L**T.
-   *
-   *  LDB     (input) INTEGER
-   *          The leading dimension of the array B.  LDB >= max(1,N).
-   *
-   *  W       (output) DOUBLE PRECISION array, dimension (N)
-   *          If INFO = 0, the eigenvalues in ascending order.
-   *
-   *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
-   *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
-   *
-   *  LWORK   (input) INTEGER
-   *          The dimension of the array WORK.
-   *          If N <= 1,               LWORK >= 1.
-   *          If JOBZ = 'N' and N > 1, LWORK >= 2*N+1.
-   *          If JOBZ = 'V' and N > 1, LWORK >= 1 + 6*N + 2*N**2.
-   *
-   *          If LWORK = -1, then a workspace query is assumed; the routine
-   *          only calculates the optimal sizes of the WORK and IWORK
-   *          arrays, returns these values as the first entries of the WORK
-   *          and IWORK arrays, and no error message related to LWORK or
-   *          LIWORK is issued by XERBLA.
-   *
-   *  IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
-   *          On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
-   *
-   *  LIWORK  (input) INTEGER
-   *          The dimension of the array IWORK.
-   *          If N <= 1,                LIWORK >= 1.
-   *          If JOBZ  = 'N' and N > 1, LIWORK >= 1.
-   *          If JOBZ  = 'V' and N > 1, LIWORK >= 3 + 5*N.
-   *
-   *          If LIWORK = -1, then a workspace query is assumed; the
-   *          routine only calculates the optimal sizes of the WORK and
-   *          IWORK arrays, returns these values as the first entries of
-   *          the WORK and IWORK arrays, and no error message related to
-   *          LWORK or LIWORK is issued by XERBLA.
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value
-   *          > 0:  DPOTRF or DSYEVD returned an error code:
-   *             <= N:  if INFO = i and JOBZ = 'N', then the algorithm
-   *                    failed to converge; i off-diagonal elements of an
-   *                    intermediate tridiagonal form did not converge to
-   *                    zero;
-   *                    if INFO = i and JOBZ = 'V', then the algorithm
-   *                    failed to compute an eigenvalue while working on
-   *                    the submatrix lying in rows and columns INFO/(N+1)
-   *                    through mod(INFO,N+1);
-   *             > N:   if INFO = N + i, for 1 <= i <= N, then the leading
-   *                    minor of order i of B is not positive definite.
-   *                    The factorization of B could not be completed and
-   *                    no eigenvalues or eigenvectors were computed.
-   */
-  intblas n=A->N();
-  ffassert(A->M()==n);
-  ffassert(B->M()==n);
-  ffassert(B->N()==n);
-  ffassert(vp->N()>=n);
-  ffassert(vectp->M()>=n);
-  ffassert(vectp->N()>=n);
-  KN<double> war(n),wai(n),wb(n),vr(n*n),vl(n*n);
-  KNM<double> matA(*A),matB(*B);
-  intblas itype=1,info,lw=-1;
-  KN<double> w(1);
-  KN<intblas> iw(1);
-  char JOBZ='V',UPLO='U';
-  
-  dsygvd_(&itype,&JOBZ,&UPLO,&n,matA,&n,matB,&n,*vp,w,&lw,iw,&lw,&info);
-  lw=w[0];
-  w.resize(lw);
-  iw.resize(lw);
-  dsygvd_(&itype,&JOBZ,&UPLO,&n,matA,&n,matB,&n,*vp,w,&lw,iw,&lw,&info);
-  if (info<0)
-     {
-     cout << "   dsygvd: the " << info << "-th argument had an illegal value." << endl;
-     }
-  else if (info>0)
-     {
-     cout << "   dsygvd: DPOTRF or DSYEVD returned an error code." << endl;
-     }
-  else if (info==0)
-     {
-     for (int i=0;i<n;++i)
-        {
-        for (int i=0;i<n;++i)
-           {
-           for (int j=0;j<n;++j)
-              (*vectp)(j,i)=matA(j,i);	      
-           }
-        }  
-     }
-  return info;
-}
-
-// GL,27/09/2011 (singular value decomposition of a rectangular real matrix)
-long lapack_dgesdd(KNM<double> *const &A,KNM<double> *const &U,KN<double> *const &S,KNM<double> *const &V)
-{
-  /*
-    SUBROUTINE DGESDD( JOBZ, M, N, A, LDA, S, U, LDU, VT, LDVT, WORK, LWORK, IWORK, INFO )
-   *  JOBZ    (input) CHARACTER*1
-   *          Specifies options for computing all or part of the matrix U:
-   *          = 'A':  all M columns of U and all N rows of V**T are
-   *                  returned in the arrays U and VT;
-   *          = 'S':  the first min(M,N) columns of U and the first
-   *                  min(M,N) rows of V**T are returned in the arrays U
-   *                  and VT;
-   *          = 'O':  If M >= N, the first N columns of U are overwritten
-   *                  on the array A and all rows of V**T are returned in
-   *                  the array VT;
-   *                  otherwise, all columns of U are returned in the
-   *                  array U and the first M rows of V**T are overwritten
-   *                  in the array A;
-   *          = 'N':  no columns of U or rows of V**T are computed.
-   *
-   *  M       (input) INTEGER
-   *          The number of rows of the input matrix A.  M >= 0.
-   *
-   *  N       (input) INTEGER
-   *          The number of columns of the input matrix A.  N >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
-   *          On entry, the M-by-N matrix A.
-   *          On exit,
-   *          if JOBZ = 'O',  A is overwritten with the first N columns
-   *                          of U (the left singular vectors, stored
-   *                          columnwise) if M >= N;
-   *                          A is overwritten with the first M rows
-   *                          of V**T (the right singular vectors, stored
-   *                          rowwise) otherwise.
-   *          if JOBZ .ne. 'O', the contents of A are destroyed.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,M).
-   *
-   *  S       (output) DOUBLE PRECISION array, dimension (min(M,N))
-   *          The singular values of A, sorted so that S(i) >= S(i+1).
-   *
-   *  U       (output) DOUBLE PRECISION array, dimension (LDU,UCOL)
-   *          UCOL = M if JOBZ = 'A' or JOBZ = 'O' and M < N;
-   *          UCOL = min(M,N) if JOBZ = 'S'.
-   *          If JOBZ = 'A' or JOBZ = 'O' and M < N, U contains the M-by-M
-   *          orthogonal matrix U;
-   *          if JOBZ = 'S', U contains the first min(M,N) columns of U
-   *          (the left singular vectors, stored columnwise);
-   *          if JOBZ = 'O' and M >= N, or JOBZ = 'N', U is not referenced.
-   *
-   *  LDU     (input) INTEGER
-   *          The leading dimension of the array U.  LDU >= 1; if
-   *          JOBZ = 'S' or 'A' or JOBZ = 'O' and M < N, LDU >= M.
-   *
-   *  VT      (output) DOUBLE PRECISION array, dimension (LDVT,N)
-   *          If JOBZ = 'A' or JOBZ = 'O' and M >= N, VT contains the
-   *          N-by-N orthogonal matrix V**T;
-   *          if JOBZ = 'S', VT contains the first min(M,N) rows of
-   *          V**T (the right singular vectors, stored rowwise);
-   *          if JOBZ = 'O' and M < N, or JOBZ = 'N', VT is not referenced.
-   *
-   *  LDVT    (input) INTEGER
-   *          The leading dimension of the array VT.  LDVT >= 1; if
-   *          JOBZ = 'A' or JOBZ = 'O' and M >= N, LDVT >= N;
-   *          if JOBZ = 'S', LDVT >= min(M,N).
-   *
-   *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
-   *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK;
-   *
-   *  LWORK   (input) INTEGER
-   *          The dimension of the array WORK. LWORK >= 1.
-   *          If JOBZ = 'N',
-   *            LWORK >= 3*min(M,N) + max(max(M,N),7*min(M,N)).
-   *          If JOBZ = 'O',
-   *            LWORK >= 3*min(M,N) + 
-   *                     max(max(M,N),5*min(M,N)*min(M,N)+4*min(M,N)).
-   *          If JOBZ = 'S' or 'A'
-   *            LWORK >= 3*min(M,N) +
-   *                     max(max(M,N),4*min(M,N)*min(M,N)+4*min(M,N)).
-   *          For good performance, LWORK should generally be larger.
-   *          If LWORK = -1 but other input arguments are legal, WORK(1)
-   *          returns the optimal LWORK.
-   *
-   *  IWORK   (workspace) INTEGER array, dimension (8*min(M,N))
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit.
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value.
-   *          > 0:  DBDSDC did not converge, updating process failed.
-   */
-  intblas n=A->N();
-  intblas m=A->M();
-  U->resize(n,n);
-  S->resize(min(n,m));
-  V->resize(m,m);
-  KNM<double> VT(m,m);
-  KN<intblas> iw(8*min(n,m));
-  intblas info,lw=-1;
-  KN<double> w(1);
-  char JOBZ='A';
-  dgesdd_(&JOBZ,&n,&m,*A,&n,*S,*U,&n,VT,&m,w,&lw,iw,&info);
-  lw=w[0];
-  w.resize(lw);
-  dgesdd_(&JOBZ,&n,&m,*A,&n,*S,*U,&n,VT,&m,w,&lw,iw,&info);
-  if (info<0)
-     {
-     cout << "   dgesdd: the " << info << "-th argument had an illegal value." << endl;
-     }
-  else if (info>0)
-     {
-     cout << "   dgesdd: DBDSDC did not converge, updating process failed." << endl;
-     }
-  else if (info==0)
-     {
-     for (int i=0;i<m;++i)
-	for (int j=0;j<m;++j)
-	   (*V)(i,j)=VT(j,i);
-     }
-  return info;
-}
-
-// GL,28/09/2011 (computation of the eigenvalues and eigenvectors of a real symmetric matrix)
-long lapack_dsyev(KNM<double> *const &A,KN<double> *const &vp,KNM<double> *const &vectp)
-{
-  /*
-    SUBROUTINE DSYEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO )
-   *  JOBZ    (input) CHARACTER*1
-   *          = 'N':  Compute eigenvalues only;
-   *          = 'V':  Compute eigenvalues and eigenvectors.
-   *
-   *  UPLO    (input) CHARACTER*1
-   *          = 'U':  Upper triangle of A is stored;
-   *          = 'L':  Lower triangle of A is stored.
-   *
-   *  N       (input) INTEGER
-   *          The order of the matrix A.  N >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA, N)
-   *          On entry, the symmetric matrix A.  If UPLO = 'U', the
-   *          leading N-by-N upper triangular part of A contains the
-   *          upper triangular part of the matrix A.  If UPLO = 'L',
-   *          the leading N-by-N lower triangular part of A contains
-   *          the lower triangular part of the matrix A.
-   *          On exit, if JOBZ = 'V', then if INFO = 0, A contains the
-   *          orthonormal eigenvectors of the matrix A.
-   *          If JOBZ = 'N', then on exit the lower triangle (if UPLO='L')
-   *          or the upper triangle (if UPLO='U') of A, including the
-   *          diagonal, is destroyed.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  W       (output) DOUBLE PRECISION array, dimension (N)
-   *          If INFO = 0, the eigenvalues in ascending order.
-   *
-   *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
-   *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
-   *
-   *  LWORK   (input) INTEGER
-   *          The length of the array WORK.  LWORK >= max(1,3*N-1).
-   *          For optimal efficiency, LWORK >= (NB+2)*N,
-   *          where NB is the blocksize for DSYTRD returned by ILAENV.
-   *
-   *          If LWORK = -1, then a workspace query is assumed; the routine
-   *          only calculates the optimal size of the WORK array, returns
-   *          this value as the first entry of the WORK array, and no error
-   *          message related to LWORK is issued by XERBLA.
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value
-   *          > 0:  if INFO = i, the algorithm failed to converge; i
-   *                off-diagonal elements of an intermediate tridiagonal
-   *                form did not converge to zero.
-   */
-  intblas n=A->N();
-  ffassert(A->M()==n);
-  ffassert(vectp->N()==n);
-  ffassert(vectp->M()==n);
-  ffassert(vp->N()==n);
-  KNM<double> mat(*A);
-  intblas info,lw=-1;  
-  KN<double> w(1);
-  char JOBZ='V',UPLO='U';
-  dsyev_(&JOBZ,&UPLO,&n,mat,&n,*vp,w,&lw,&info);
-  lw=w[0];
-  w.resize(lw);
-  dsyev_(&JOBZ,&UPLO,&n,mat,&n,*vp,w,&lw,&info);
-  if (info<0)
-     {
-     cout << "   dsyev: the " << info << "-th argument had an illegal value." << endl;
-     }
-  else if (info>0)
-     {
-     cout << "   dsyev: the algorithm failed to converge." << endl;
-     }
-  else if (info==0)
-     {
-     *vectp=mat;
-     }
-  return info;
-}
-
-template<class T>
-class Inverse{ public:
-  T  t;
-  Inverse( T  v)
-   : t(v) {}
-  template<class TT> Inverse( TT  v) : t(v) {}  
-  template<class TT> Inverse( TT * v) : t(*v) {}  
-  operator const T & () const {return t;}
-};
-
-template<class T>
-class Mult{ public:
-    T  a;bool ta;
-  T  b;bool tb;
-  Mult( T  aa,T bb)
-    : a(aa),b(bb),ta(0),tb(0) {}
-    // Transpose<
-  Mult( Transpose<T>  aa,T bb)   
-    : a(aa),b(bb),ta(1),tb(0) {}
-  Mult( Transpose<T>  aa,Transpose<T> bb)   
-    : a(aa),b(bb),ta(1),tb(1) {}
-    Mult( T  aa,Transpose<T> bb)   
-    : a(aa),b(bb),ta(1),tb(1) {}
-    
-};
-
-template<class K>
-class OneBinaryOperatorRNM_inv : public OneOperator { public:  
-    OneBinaryOperatorRNM_inv() 
-      : OneOperator( atype< Inverse< KNM<K>* > >(),atype<KNM<K> *>(),atype<long>()) {}
-  E_F0 * code(const basicAC_F0 & args) const 
-  { Expression p=args[1];
-    if ( ! p->EvaluableWithOutStack() ) 
-      { 
-	bool bb=p->EvaluableWithOutStack();
-	cout << "  Error exposant ??? " <<  bb << " " <<  * p <<  endl;
-	CompileError(" A^p, The p must be a constant == -1, sorry");}
-    long pv = GetAny<long>((*p)(0));
-    if (pv !=-1)   
-      { char buf[100];
-	sprintf(buf," A^%ld, The pow must be  == -1, sorry",pv);
-	CompileError(buf);}     
-    return  new E_F_F0<Inverse< KNM<K>* > ,KNM<K> *>(Build<Inverse< KNM<K>* > ,KNM<K> *>,t[0]->CastTo(args[0])); 
-  }
-};
-
-
-<<<<<<< HEAD
-=======
-/* 
-class Init { public:
-  Init();
-};
-*/
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-template <int INIT>
-KNM<R>* Solve(KNM<R>* a,Inverse<KNM<R >*> b) 
-{
-  /*
-    SUBROUTINE DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )
-   *  N       (input) INTEGER
-   *          The number of linear equations, i.e., the order of the
-   *          matrix A.  N >= 0.
-   *
-   *  NRHS    (input) INTEGER
-   *          The number of right hand sides, i.e., the number of columns
-   *          of the matrix B.  NRHS >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
-   *          On entry, the N-by-N coefficient matrix A.
-   *          On exit, the factors L and U from the factorization
-   *          A = P*L*U; the unit diagonal elements of L are not stored.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  IPIV    (output) INTEGER array, dimension (N)
-   *          The pivot indices that define the permutation matrix P;
-   *          row i of the matrix was interchanged with row IPIV(i).
-   *
-   *  B       (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
-   *          On entry, the N-by-NRHS matrix of right hand side matrix B.
-   *          On exit, if INFO = 0, the N-by-NRHS solution matrix X.
-   *
-   *  LDB     (input) INTEGER
-   *          The leading dimension of the array B.  LDB >= max(1,N).
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value
-   *          > 0:  if INFO = i, U(i,i) is exactly zero.  The factorization
-   *                has been completed, but the factor U is exactly
-   *                singular, so the solution could not be computed.
-   *
-   */
-  typedef double R;
-  integer info;
-  KNM<R> B(*b);
-  integer  n= B.N();
-  KN<integer> p(n);
-  ffassert(B.M()==n);
-  if(INIT)
-      a->init(n,n);
-   else
-    a->resize(n,n);
-  *a=0.;
-  for(int i=0;i<n;++i)
-    (*a)(i,i)=(R) 1;;
-
-  dgesv_(&n,&n,B,&n,p,*a,&n,&info);
-  if(info) cerr << " error:  dgesv_ "<< info << endl;
-  return a;
-}
-
-
-// Template interface 
-inline int gemm(char *transa, char *transb, integer *m, integer *
-	   n, integer *k, double *alpha, double *a, integer *lda, 
-	   double *b, integer *ldb, double *beta, double *c, integer 
-	   *ldc) {
-   return  dgemm_(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc);
-}
-inline int gemm(char *transa, char *transb, integer *m, integer *
-		 n, integer *k, Complex *alpha, Complex *a, integer *lda, 
-		 Complex *b, integer *ldb, Complex *beta, Complex *c, integer 
-		 *ldc) {
-    return  zgemm_(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc);
-}
-
-
-template<class R,bool init, int ibeta> 
-KNM<R>* mult(KNM<R >* a,const KNM_<R> & A,const KNM_<R> & B) 
-{ // C=A*B 
-   
-    R alpha=1.,beta=R(ibeta);
-    char tA, tB;
-    if(init) a->init();
-    intblas N= A.N();
-    intblas M=B.M();
-    intblas K=A.M();
-    KNM<R> & C= *a;
-    C.resize(N,M); 
-    ffassert(K==B.N());
-    R *A00=&A(0,0), *A10= &A(1,0), *A01= &A(0,1); 
-    R *B00=&B(0,0), *B10= &B(1,0), *B01= &B(0,1); 
-    R *C00=&C(0,0), *C10= &C(1,0), *C01= &C(0,1); 
-    intblas lsa=A10-A00 ,lsb=B10-B00,lsc=C10-C00;
-    intblas lda=A01-A00 ,ldb=B01-B00,ldc=C01-C00;
-    if(verbosity>10) {
-	cout << lsa << " " << lsb << " "<< lsc << " init " << init <<  endl;
-	cout << lda << " " << ldb << " "<< ldc << endl;	
-    }
-    tA=lda==1?'T':'N';
-    tB=ldb==1?'T':'N';
-    
-    if(lda==1) lda=lsa;
-    if(ldb==1) ldb=lsb;
-    if(beta==0.)
-     C=R(); 
-#ifdef XXXXXXXXXXXXXX
-    
-    for(int i=0;i<N;++i)
-	 for(int j=0;j<M;++j)
-	      for(int k=0;k<K;++k)
-		  C(i,j) += A(i,k)*B(k,j)  ;
-#else    
-    gemm(&tB,&tA,&N,&M,&K,&alpha,A00,&lda,B00,&ldb,&beta,C00,&ldc);
-#endif
-    return a;
-    /*
-     The Fortran interface for these procedures are:
-     SUBROUTINE xGEMM ( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC )
-     where TRANSA and TRANSB determines if the matrices A and B are to be transposed.
-     M is the number of rows in matrix A and C. N is the number of columns in matrix B and C. 
-     K is the number of columns in matrix A and rows in matrix B. 
-     LDA, LDB and LDC specifies the size of the first dimension of the matrices, as laid out in memory;
-     meaning the memory distance between the start of each row/column, depending on the memory structure (Dongarra et al. 1990).
-     */
-}
-template<class R,bool init, int ibeta> 
-KNM<R>* mult(KNM<R >* a,Mult<KNM<R >*> bc) 
-{
-    if( (bc.ta == 0) && (bc.tb == 0))
-     return  mult<R,init,ibeta>(a,*bc.a,*bc.b) ;
-    else if((bc.ta == 1 )&& (bc.tb == 0))
-     return  mult<R,init,ibeta>(a,bc.a->t(),*bc.b) ;
-    else if((bc.ta == 0) && (bc.tb == 1))
-	return  mult<R,init,ibeta>(a,*bc.a,bc.b->t()) ;
-    else if((bc.ta == 1) && (bc.tb == 1))
-	return  mult<R,init,ibeta>(a,bc.a->t(),bc.b->t()) ;
-    else
-        // should never happen
-        return NULL;
-}
-
-template <int INIT>
-KNM<Complex>* SolveC(KNM<Complex>* a,Inverse<KNM<Complex >*> b) 
-{
-  /*
-    SUBROUTINE DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )
-   *  N       (input) INTEGER
-   *          The number of linear equations, i.e., the order of the
-   *          matrix A.  N >= 0.
-   *
-   *  NRHS    (input) INTEGER
-   *          The number of right hand sides, i.e., the number of columns
-   *          of the matrix B.  NRHS >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
-   *          On entry, the N-by-N coefficient matrix A.
-   *          On exit, the factors L and U from the factorization
-   *          A = P*L*U; the unit diagonal elements of L are not stored.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  IPIV    (output) INTEGER array, dimension (N)
-   *          The pivot indices that define the permutation matrix P;
-   *          row i of the matrix was interchanged with row IPIV(i).
-   *
-   *  B       (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
-   *          On entry, the N-by-NRHS matrix of right hand side matrix B.
-   *          On exit, if INFO = 0, the N-by-NRHS solution matrix X.
-   *
-   *  LDB     (input) INTEGER
-   *          The leading dimension of the array B.  LDB >= max(1,N).
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value
-   *          > 0:  if INFO = i, U(i,i) is exactly zero.  The factorization
-   *                has been completed, but the factor U is exactly
-   *                singular, so the solution could not be computed.
-   *
-   */
-  typedef Complex R;
-  integer info;
-  KNM<R> B(*b);
-  integer   n= B.N();
-  KN<integer> p(n);
-  ffassert(B.M()==n);
-  if(INIT)
-     a->init(n,n);
-  else
-     a->resize(n,n);
-  *a=0.;
-  for(int i=0;i<n;++i)
-    (*a)(i,i)=(R) 1;;
-
-  zgesv_(&n,&n,(R*) B,&n,p, (R*) *a,&n,&info);
-  if(info) cerr << " error:  zgesv_ "<< info << endl;
-  return a;
-}
-
-<<<<<<< HEAD
-=======
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-template<class R,class A,class B> R Build2(A a,B b) {
-    return R(a,b);
-}
-<<<<<<< HEAD
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-  if( map_type.find(typeid(Inverse<KNM<double >* >).name() ) == map_type.end() )
-    {
-      if(verbosity) 
-	cout << " Add lapack interface ..." ;
-      Dcl_Type< Inverse<KNM<double >* > > ();
-      Dcl_Type< Inverse<KNM<Complex >* > > ();
-      Dcl_Type< Mult<KNM<Complex >* > > ();
-      Dcl_Type< Mult<KNM<double >* > > ();
-      
-      TheOperators->Add("^", new OneBinaryOperatorRNM_inv<double>());
-      TheOperators->Add("*", new OneOperator2< Mult< KNM<double>* >,KNM<double>*,KNM<double>*>(Build2));
-      TheOperators->Add("*", new OneOperator2< Mult< KNM<Complex>* >,KNM<Complex>*,KNM<Complex>*>(Build2));
-      
-      TheOperators->Add("^", new OneBinaryOperatorRNM_inv<Complex>());
-      TheOperators->Add("=", new OneOperator2<KNM<double>*,KNM<double>*,Inverse<KNM<double >*> >( Solve<0>) );
-      TheOperators->Add("=", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Inverse<KNM<Complex >*> >( SolveC<0>) );
-      TheOperators->Add("<-", new OneOperator2<KNM<double>*,KNM<double>*,Inverse<KNM<double >*> >( Solve<1>) );
-      TheOperators->Add("<-", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Inverse<KNM<Complex >*> >( SolveC<1>) );
-        
-      TheOperators->Add("=", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,false,0> ) );
-      TheOperators->Add("=", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,false,0> ) );
-      
-      TheOperators->Add("+=", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,false,1> ) );
-      TheOperators->Add("+=", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,false,1> ) );
-      
-      TheOperators->Add("-=", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,false,-1> ) );
-      TheOperators->Add("-=", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,false,-1> ) );
-      
-      TheOperators->Add("<-", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,true,0> ) );
-      TheOperators->Add("<-", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,true,0> ) );
-      
-      Global.Add("inv","(",new  OneOperator1<long,KNM<double>*>(lapack_inv));  
-      Global.Add("inv","(",new  OneOperator1<long,KNM<Complex>*>(lapack_inv));
-        
-      Global.Add("dgeev","(",new  OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
-      Global.Add("zgeev","(",new  OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
-        // add FH
-       Global.Add("geev","(",new  OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
-       Global.Add("geev","(",new  OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
-        
-      Global.Add("dggev","(",new  OneOperator5_<long,KNM<double>*,KNM<double>*,KN<Complex>*,KN<double>*,KNM<Complex>*>(lapack_dggev));
-      Global.Add("dsygvd","(",new  OneOperator4_<long,KNM<double>*,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dsygvd));
-      Global.Add("dgesdd","(",new  OneOperator4_<long,KNM<double>*,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dgesdd));
-      Global.Add("dsyev","(",new  OneOperator3_<long,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dsyev));
-    }
-  else
-    if(verbosity)
-      cout << "( load: lapack <=> fflapack , skeep ) ";
-}
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/ffnewuoa.cpp.orig b/examples++-load/ffnewuoa.cpp.orig
deleted file mode 100644
index 83a5375..0000000
--- a/examples++-load/ffnewuoa.cpp.orig
+++ /dev/null
@@ -1,206 +0,0 @@
-//ff-c++-cpp-dep: newuoa.f
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#include  <iostream>
-#include  <cfloat>
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-#include "rgraph.hpp"
-#include "RNM.hpp"
-#include "MatriceCreuse_tpl.hpp"
-#include "Mesh3dn.hpp"
-#include "MeshPoint.hpp"
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-
-typedef int integer;
-typedef int logical;
-
-
-typedef void  (*typecalfunc)( integer *, double *, double *f, void * );
-
-#define F77newuoa newuoa_
-
-extern "C" {
-double F77newuoa(integer *N, integer *NPT, double *x , double * rhob, double *rhog,
-		     integer *iprint, integer *maxfun,
-		     double *w, void * iwf,  typecalfunc  calfun);
-}
-
-
-void   calfun( integer * n, double * x, double *f, void * t);
-
- 
-//template<class R>
-extern Block *currentblock;
-
-typedef double R;
-void   calfun( integer * n, double * x, double *f, void * t);
-class OptimNewoa : public OneOperator 
-{
-public:
-  typedef KN<R> Kn;
-  typedef KN_<R> Kn_;
-   const int cas;
-
-
-class ffcalfunc {  //   to call the freefem function .. J 
-    public:
-	Stack stack;
-	Expression JJ,theparame;
-    
-      ffcalfunc(Stack s,Expression JJJ,Expression epar)
-        : stack(s),JJ(JJJ), theparame(epar) {}
-    
-	double J(Kn_  x) const 
-	{
-	     KN<double> *p=GetAny<KN<double> *>( (*theparame)(stack) );
-	    *p=x;
-	    double  ret= GetAny<R>( (*JJ)(stack));
-	    WhereStackOfPtr2Free(stack)->clean();
-	return  ret; }
-	
-    }; 
-  
-
-  class E_newoa: public E_F0mps { public:
-    const int cas;
-    static basicAC_F0::name_and_type name_param[] ;
-    static const int n_name_param =4;
-    Expression nargs[n_name_param];
-    Expression X;
-    C_F0 inittheparam,theparam,closetheparam; 
-    Expression JJ;
-    long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-    R arg(int i,Stack stack,R a) const{ return nargs[i] ? GetAny<R>( (*nargs[i])(stack) ): a;}
-      
- 
-      
-    E_newoa(const basicAC_F0 & args,int cc) :
-      cas(cc)
-    {
-      int nbj= args.size()-1;
-      Block::open(currentblock); // make a new block to 
-      X = to<Kn*>(args[nbj]);
-      C_F0 X_n(args[nbj],"n");
-      //  the expression to init the theparam of all 
-      inittheparam = currentblock->NewVar<LocalVariable>("the parameter",atype<KN<R> *>(),X_n);
-      theparam = currentblock->Find("the parameter"); //  the expression for the parameter
-      args.SetNameParam(n_name_param,name_param,nargs);
-      const  Polymorphic * opJ=0;
-      if (nbj>0)
-	{
-	  opJ=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-	  assert(opJ);
-	}      
-      JJ= to<R>(C_F0(opJ,"(",theparam));
-      closetheparam=currentblock->close(currentblock);   // the cleanning block expression 
-    }
-    
-    virtual AnyType operator()(Stack stack)  const
-    {
-      double cost = 1e100;
-      WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005 
-      Kn &x = *GetAny<Kn *>((*X)(stack));	
-      long n=x.N();	
-      double rhobeg=arg(0,stack,1E-6); // not used ....
-      double rhoend=arg(1,stack,2.); // not used ....
-      long maxfun=arg(2,stack,1000L); // bof bof 
-      long npt=arg(3,stack,n*2L+1L); // bof bof 
-      long iprint = verbosity;	
-      ffcalfunc ffJ(stack,JJ,theparam);
-      int lw =   (npt+13)*(npt+n)+3*n*(n+3)/2;
-      KN<double> w(lw);
-      integer N=n,NPT=npt,IPRINT=iprint,MAXFUN=maxfun;
-      cost= F77newuoa(&N,&NPT,(double *)x,&rhobeg,&rhoend,&IPRINT,&MAXFUN,(double *)w,(void *) &ffJ, calfun);
-      closetheparam.eval(stack); // clean memory 
-      WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-      return cost; //SetAny<long>(0);  Modif FH  july 2005       
-    }    
-    
-    
-    operator aType () const { return atype<double>();}         
-    
-  };
-  
-  
-  
-  E_F0 * code(const basicAC_F0 & args) const {
-    return new E_newoa(args,cas);}
-  
-  OptimNewoa(int c) :   OneOperator(atype<double>(),
-				    atype<Polymorphic*>(),
-				    atype<KN<R> *>()),cas(c){}
-      
-};
-
-basicAC_F0::name_and_type  OptimNewoa::E_newoa::name_param[]= 
-  {
-    {  "rhobeg", &typeid(double)  },
-    {  "rhoend", &typeid(double)  },
-    { "maxfun",&typeid(long) },
-    { "npt",&typeid(long) }
-  };
-
-void   calfun( integer * n, double * x, double *f, void * t)
-{
-  OptimNewoa::ffcalfunc * tt=static_cast<OptimNewoa::ffcalfunc *>(t); 
-  *f=tt->J(KN_<double>(x,*n));
-  if(verbosity>20)  cout << " F= " << * f << endl;
-}
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-
-static void Load_Init()  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init()  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  Global.Add("newuoa","(",new OptimNewoa(1));  //  j + dJ
-
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/freeyams.cpp.orig b/examples++-load/freeyams.cpp.orig
deleted file mode 100644
index b5fd5fb..0000000
--- a/examples++-load/freeyams.cpp.orig
+++ /dev/null
@@ -1,844 +0,0 @@
-// ORIG-DATE:     Fev 2010
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : liaison medit freefem++ : adaptmesh in 3d 
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep:   freeyams libMesh
-//ff-c++-cpp-dep: 
-//  
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-/*
-ff-c++ -auto freeyams.cpp 
-*/
-
-// ./ff-c++ yams.cpp -I../src/libMesh/ -I../download/include/yams/ -L../download/lib/yams/ -lyams2 -L/Users/morice/work/postdoc/freefem++prod/src/libMesh/ -lMesh
-
-#include "ff++.hpp" 
-#include "msh3.hpp"
-//#define ADAPTLIBRARY
-#include "memory.h"
-#include "freeyamslib.h"
-#include "eigenv.h"  // include dans libMesh
-
-using namespace  Fem2D;
-using namespace  yams;
-
-// 3d mesh function
-
-void mesh3_to_yams_pSurfMesh( const Mesh3 &Th3 , int memory, int choix, 
-			      yams_pSurfMesh meshyams){
-
-  /*
-    Mesh3  :: maillage initiale
-    memory :: memoire pour yams
-    choix  :: option du remaillage
-    ref    :: 
-   */ 
-  int k;
-  int npinit,neinit;
-
-  meshyams->dim = 3;
-  meshyams->npfixe = Th3.nv;
-  meshyams->nefixe = Th3.nbe;
-  meshyams->ntet = Th3.nt;
-  meshyams->nafixe  = 0; // Edges
-  meshyams->nvfixe  = 0; // Normals 
-  meshyams->ntfixe  = 0; // Tangents 
-  npinit = meshyams->npfixe;
-  neinit = meshyams->nefixe;
-  // cette fonction change la taille des tableaux en fonctions des options : choix, memory, sm->type
-  zaldy1( meshyams->nefixe, meshyams->npfixe, meshyams->nvfixe, memory, meshyams, choix);
-
-  
-  yams_pPoint ppt;
-  for (k=1; k<=npinit; k++) {
-    ppt = &meshyams->point[k];
-    ppt->c[0] = Th3.vertices[k-1].x;
-    ppt->c[1] = Th3.vertices[k-1].y;
-    ppt->c[2] = Th3.vertices[k-1].z;
-    ppt->ref  = Th3.vertices[k-1].lab & 0x7fff;
-   
-    ppt->tag  = M_UNUSED;
-    ppt->color= 0;
-    ppt->size = -1.;
-    ppt->tge  = 0;
-    ppt->geom = M_CURVE;
-  }
-  meshyams->npfixe = npinit;
-  
-  /* read mesh triangles */
-  yams_pTriangle ptriangle;
-  for (k=1; k<=neinit; k++) {
-    const Triangle3 & K(Th3.be(k-1));
-    ptriangle = &meshyams->tria[k];
-    ptriangle->v[0] = Th3.operator()(K[0])+1;
-    ptriangle->v[1] = Th3.operator()(K[1])+1;
-    ptriangle->v[2] = Th3.operator()(K[2])+1;
-    ptriangle->ref = K.lab& 0x7fff; 
-  }
-
-  /* tetrahedra */
-  if( meshyams->ntet ){
-    yams_pTetra ptetra;
-    meshyams->tetra = (yams_Tetra*)calloc((meshyams->ntet+1),sizeof(yams_Tetra));
-    assert(meshyams->tetra);
-    
-    for (k=1; k<=meshyams->ntet; k++) {
-      const Tet & K(Th3.elements[k-1]);
-      ptetra = &meshyams->tetra[k];
-      ptetra->v[0] = Th3.operator()(K[0])+1;
-      ptetra->v[1] = Th3.operator()(K[1])+1;
-      ptetra->v[2] = Th3.operator()(K[2])+1;
-      ptetra->v[3] = Th3.operator()(K[3])+1;
-      ptetra->ref = K.lab & 0x7fff;
-    }
-  }
-
-  
-  meshyams->ne = meshyams->nefixe;
-  meshyams->np = meshyams->npfixe;
-}
-
-Mesh3 * yams_pSurfMesh_to_mesh3( yams_pSurfMesh sm, int infondang, int infocc, int choix){
-
-  /*
-    Mesh3  :: maillage initiale
-    memory :: memoire pour yams
-    choix  :: option du remaillage
-    ref    :: 
-   */ 
-  // variable a enlever par la suite
-  yams_pGeomSupp    gs;
-  yams_pGeomtge     gt;
-  yams_pPoint       ppt;
-  yams_pTriangle    pt1;
-  yams_pTetra       ptt;
-  yams_pEdge        pte;
-  int i,k,np,ne,nn,nt,nav,natv,tatv,nbl;
-  int          nedge,nridge,ndang,nrequis;
-  int          is1,is2,ncorner,prequis;
-   
-  // freefempp variable
-  int ff_nv, ff_nt, ff_nbe;
-  
-  
-  /* mark connected component */
-  ne = 0;
-  for (k=1; k<=sm->npmax; k++) {
-    ppt = & sm->point[k];
-    ppt->tag |= M_UNUSED;
-    ppt->flag = ppt->color = 0;
-  }
-  // a enlever pour l'instant  
-  if ( sm->connex > 0 ) {
-    for (k=1; k<=sm->ne; k++) {
-      pt1 = &sm->tria[k];
-      if ( pt1->v[0] > 0 && pt1->cc == sm->connex ) {
-        ne++;
-        for (i=0; i<3; i++) {
-          ppt = &sm->point[pt1->v[i]];
-          ppt->tag &= ~M_UNUSED;
-        }
-      }
-    }
-  }
-  else {
-    /* mark used faces */
-    for (k=1; k<=sm->ne; k++) {
-      pt1 = &sm->tria[k];
-      if ( !pt1->v[0] )  continue;
-      ++ne;
-      for (i=0; i<3; i++) {
-        ppt = &sm->point[pt1->v[i]];
-        ppt->tag &= ~M_UNUSED;
-      }
-    }
-  }
-  
-  cout << "sm->ntet=" << sm->ntet << endl;
-  // a enlever on ne garde pas les tetrahedres
-  // demander P. Frey
-  if ( choix == 6 && sm->ntet ) {
-    for (k=1; k<=sm->ntet; k++) {
-      ptt = &sm->tetra[k];
-      if ( !ptt->v[0] )  continue;
-      for (i=0; i<4; i++) {
-        ppt = &sm->point[ptt->v[i]];
-        ppt->tag &= ~M_UNUSED;
-      }
-    }
-  }
-
-  /* mark used vertices */
-  np = nav = 0;
-  ncorner = prequis = 0;
-  for (k=1; k<=sm->npmax; k++) {
-    ppt = &sm->point[k];
-    if ( ppt->tag & M_UNUSED )  continue;
-    ppt->tmp = ++np;
-    if ( ppt->tag == M_NOTAG )  nav++;
-  }
-
-  ff_nv = np;   // number of vertex
-  //
-  Vertex3 *ff_v = new Vertex3[ff_nv];
-  int kk=0;
-  for(k=1; k<=sm->npmax; k++) {
-    ppt = &sm->point[k];
-    if ( ppt->tag & M_UNUSED )  continue;
-    ff_v[kk].x = ppt->c[0];
-    ff_v[kk].y = ppt->c[1];
-    ff_v[kk].z = ppt->c[2];
-    ff_v[kk].lab = ppt->ref;
-    kk++;
-    if (ppt->tag & M_CORNER)    ncorner++;
-    if (ppt->tag & M_REQUIRED ) prequis++;    
-  }
-  assert(kk==ff_nv);
-  // write triangle
-  nedge  = sm->dim == 3 ? infondang : 0;
-  nridge = nrequis = nn = nt = natv = tatv = 0;
-  
-  for (k=1; k<=sm->ne; k++) {
-    pt1  = &sm->tria[k];
-    if ( !pt1->v[0] )  continue;
-    else if ( sm->connex > 0 && pt1->cc != sm->connex ) continue;
-    nt++;
-  }
-  
-  ff_nbe = nt;
-  Triangle3 *ff_b = new Triangle3[ff_nbe];
-  Triangle3 *ff_bb = ff_b;
-
-
-  for (k=1; k<=sm->ne; k++) {
-    int iv[3],lab;
-    pt1  = &sm->tria[k];
-    //    lab = pt1->ref; 
-    if ( !pt1->v[0] )  continue;
-    else if ( sm->connex > 0 && pt1->cc != sm->connex ) continue;
-    iv[0] = sm->point[pt1->v[0]].tmp-1;
-    iv[1] = sm->point[pt1->v[1]].tmp-1;
-    iv[2] = sm->point[pt1->v[2]].tmp-1;
-    lab =  pt1->ref; //  change fh 02/2013
-    //cout << " lab : " << sm->connex  << " " << pt1->cc << " " << pt1->ref<< " " << endl;
-    (*ff_bb++).set( ff_v, iv, lab);
-    
-    for (i=0; i<3; i++) {
-      ppt = &sm->point[pt1->v[i]];
-      gs  = &sm->geom[pt1->vn[i]];
-      gt  = &sm->tgte[ppt->tge];
-      if ( ppt->tag > M_NOTAG ) {
-        natv++;
-        if ( ppt->tag & M_CORNER )  tatv++;
-      }
-      if ( !gs->newnum )  gs->newnum = ++nn;
-      if ( !gt->newnum )  gt->newnum = ++nt;
-      if ( !pt1->edg[i] && pt1->tag[i] == M_NOTAG )  continue;
-      else if ( pt1->adj[i] && (k > pt1->adj[i]) )   continue;
-      nedge++;
-      if ( pt1->tag[i] & M_RIDGE_GEO )  nridge++;
-      if ( pt1->tag[i] & M_REQUIRED )   nrequis++;
-    } 
-    
-  }
-  
-  Tet *ff_t;
-  if ( choix == 6 && sm->ntet ) ff_t  = new Tet[sm->ntet];
-  Tet *ff_tt = ff_t;
-
-  if ( choix == 6 && sm->ntet ) {
-    int iv[4],lab;
-    for (k=1; k<=sm->ntet; k++) {
-      ptt  = &sm->tetra[k];
-      if ( !ptt->v[0] )  continue;
-      for (i=0; i<4; i++)
-        iv[i] = sm->point[ptt->v[i]].tmp-1;
-      lab = ptt->ref;
-      (*ff_tt++).set( ff_v, iv, lab); 
-    }
-  }
-
-
-  // les autres avoir par la suite
-  if( verbosity>1 ) cout << " nv " << ff_nv << " nbe" << ff_nbe << endl;
-  if( choix == 6 && sm->ntet){
-    int ff_nt = sm->ntet;
-    Mesh3 *TH3_T = new Mesh3(ff_nv,ff_nt,ff_nbe,ff_v,ff_t,ff_b);   
-    TH3_T->BuildGTree();
-    return TH3_T;
-  }
-  else{
-    Mesh3 *TH3_T = new Mesh3(ff_nv,ff_nbe,ff_v,ff_b);   
-    return TH3_T;
-  }
-}
-
-void solyams_pSurfMesh( yams_pSurfMesh sm, const int &type, const KN<double> & tabsol, float hmin, float hmax){
-  yams_pPoint ppt;
-  yams_pMetric  pm;
-  int i,k;
-  double   sizeh,m[6],lambda[3],vp[2][2],vp3[3][3];
-  hmin =  FLT_MAX;
-  hmax = -FLT_MAX;
-  float vpmin=FLT_MAX, vpmax=-FLT_MAX, mmin=FLT_MAX,mmax=-FLT_MAX;
-  
-  if(type == 1)
-    {
-      for (k=1; k<=sm->npfixe; k++) {
-	ppt = &sm->point[k];
-	ppt->size = (float) tabsol[k-1];// change FH nov 2010: k -> k-1
-	hmin = min(ppt->size,hmin);
-	hmax = max(ppt->size,hmax);
-	
-      }
-    }
-  else if( type == 3 ){
-    if ( !sm->metric && !zaldy3(sm,3) )  {
-      ExecError("Pb alloc metric in freeyam ??? ");
-    }
-    
-    for (k=1; k<=sm->npfixe; k++) {
-      ppt = &sm->point[k];    
-      pm  = &sm->metric[k];// coorrection FH dec 2010..
-      memset(pm->m,6*sizeof(float),0.);
-      
-      for (i=0; i<6; i++)
-	m[i] = (float) tabsol[(k-1)*6+i];
-      
-      pm->m[0] = m[0];
-      pm->m[1] = m[1];
-      pm->m[2] = m[3];
-      pm->m[3] = m[2];
-      pm->m[4] = m[4];
-      pm->m[5] = m[5];
-      pm->k1   = pm->k2 = (float)FLT_MAX;
-      for (i=0; i<6; i++)  m[i] = pm->m[i];
-      if ( !eigenv(1,m,lambda,vp3) ) {
-	fprintf(stderr,"  ## ERR 9201, inbbf, Not a metric tensor. Discarded\n");
-	free(sm->metric);
-	sm->metric = 0;
-	ExecError("freeyamerr: ## ERR 9201, inbbf, Not a metric tensor. Discarded");
-      }
-
-      float vmn = min(min(lambda[0],lambda[1]),lambda[2]);
-      float vmx = max(max(lambda[0],lambda[1]),lambda[2]);
-		      
-      vpmin= min(vpmin, vmn);
-      vpmax= max(vpmax,vmx);
-      sizeh     = vpmax;
-      ppt->size = max(1.0 / sqrt(sizeh),EPS);
-      hmin = min(ppt->size,hmin);
-      hmax = max(ppt->size,hmax);
-    }
-  }
-  //if(verbosity>4)
-    {
-      cout << " freeyams (metric in) :  hmin " <<  hmin << " , hmax " << hmax << endl;
-      if(type==3)
-      cout << "             min max of eigen val  " << vpmin << " " << vpmax << endl;
-    }
-
-  if(type==3 && vpmin <0 )
-    {
-      cout << "   Error Freeyam :  metric    min max of eigen val  " << vpmin << " " << vpmax << endl;
-      ExecError("Error in metric definition freeyams (negative eigen value");
-    }
-}
-
-
-static const int wrapper_intopt[13] = {  0,  3,  7,  8, 9,
-				       11, 12, 13, 14, 15,
-				       17, 18, 22};
-
-/*
-static const int wrapper_fopt[12] = {  0, 1, 3,  4,  6,
-                                       7, 8, 9, 10, 11,
-				      12, 13};
-*/
-static const int wrapper_fopt[11] = { 1, 3,  4,  6,
-                                      7, 8, 9, 10, 11,
-				      12, 13};
-
-void yams_inival(int intopt[23],double fopt[14]){
-
-/*
-    intopt : 0  !! anisotropie
-             1  !! ecp  // enl
-             2  !! extended out put file // enl
-	     3  !! FE correction 
-	     4  !! Formatted (ascii) output file // enl
-	     5  !! save metric file // enl
-	     6  !! msh2  // enl
-	     7  !! Split multiple connected points
-	     8  !! memory
-	     9  !! connected component
-	    10  !! vrml  //enl
-	    11  !! imprim  
-	    12  !! nm : Create point on straight edge (no mapping)
-	    13  !! nc : No validity check during smoothing (opt. 9)
-	    14  !! np : Specify number of points desired
-	    15  !! nit : Nb Iter
-	    16  !! nq  : Output quads // enl
-	    17  !! nr  : No ridge detection
-	    18  !! ns  : No point smoothing
-	    19  !! no  : No output file  // enl
-	    20  !! ref : Ignore face references // enl
-	    // rajouter lors de l'ouverture du fichiers yams
-	    21  !! absolute : opts.ctrl &= ~REL; par default 1 // enl
-	    22  !! set optim option
-
-    fopt   : 0  !! iso 
-             1  !! eps 
-	     pas de 2
-	     3  !! opts.lambda
-	     4  !! opts.mu
-	     pas de 5
-	     6  !! hgrad  :: opts.shock
-	     7  !! hmin   :: opts.hmin
-	     8  !! hmax   :: opts.hmax
-	     // rajouter lors de l'ouverture du fichiers yams
-	     9  !! tolerance :: opts.bande
-	     10 !! degrad :: opts.degrad
-	     11 !! declic :: opts.declic 
-	     12 !! walton :: opts.walton = cos(dummy/180.0*M_PI);
-	     13 !! ridge  :: opts.ridge
-   */
-
-/* Set default values for options */
-  // fopt 5,
-  fopt[7]   = -2.0;    
-  fopt[8]   = -2.0;
-  fopt[6]   =   1.3;       /* default mesh gradation     */
-  fopt[1]   =   0.01;      /* geometric approximation    */
-  fopt[0]   =   0.0;
-  fopt[11]  =   1.0 / BETAC;
-  fopt[3]   =   -1.0;
-  fopt[4]   =   -1.0;
-  fopt[13]  =   45.;  // default RIDG = 45.
-  //opts.ridge  =   cos(RIDG*M_PI/180.);
-  //opts.geom   =   cos(GEOM*M_PI/180.);
-  fopt[12] =   COS45DEG;  /* Walton limitation          */
-  fopt[9]  =   -2;       /* default = 1 unit           */
-  fopt[10] =   QUALCOE;   /* quality degradation        */
-  //opts.ctrl   =   REL | ISO;  initialisation by default
-  
-  
-
-  // intopt :: 3,7,13,14,15,20
-  intopt[15]  = -1;
-  intopt[13]  = 0;
-  intopt[14]  = -1;
-  
-  /* get decimation parameters */
-  intopt[20] = 0;
-  intopt[3]  = 0;
-  intopt[7]  = 0;//  Split multiple connected points  (no manifold) 
-  intopt[22] = 1;// set optim option
-
-  // demander P. Frey
-  intopt[0] = 0; //  anisotropie  
-  intopt[1] = 0; // 
-  intopt[2] = 0;  
-    
-  intopt[4] = 0;
-  intopt[5] = 0;
-  intopt[6] = 0;
-
-  intopt[8] = -1; // memory 
-  intopt[9] =  -1; // par default   connex connected component (tout) 
-  intopt[10] = 0;// vrml 
-  intopt[11] = verbosity;
-  intopt[12] = 0;   //nm
-
-  intopt[16] = 0; // quad
-  intopt[17] = 0;// noridge
-  intopt[18] = 0;// nosmooth
-  intopt[19] = 1;// 1
-  intopt[21] = 1;
-  
-}
-
-class yams_Op: public E_F0mps 
-{
-public:
-  typedef pmesh3  Result;
-  Expression eTh;
-  int nbsol;
-  int nbsolsize;
-  int type;
-  int dim;
-  vector<Expression> sol;
-
-  static const int n_name_param = 14; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long  arg(int i,Stack stack, long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  int  arg(int i,Stack stack, int a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  bool  arg(int i,Stack stack, bool a ) const{ return nargs[i] ? GetAny< bool >( (*nargs[i])(stack) ): a;}
-  
-  
-public:
-  yams_Op(const basicAC_F0 &  args) : sol( args.size()-1 )
-  {
-    
-    cout << "yams"<< endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    eTh=to<pmesh3>(args[0]); 
-    dim=3;
-    nbsol = args.size()-1;
-    if(nbsol >1) 
-      CompileError(" yams accept only one solution ");
-    int ksol=0; 
-      
-    if(nbsol == 1){
-      int i=1;
-      if (args[i].left()==atype<E_Array>())
-	{
-	  const E_Array * a = dynamic_cast<const E_Array *>(args[i].LeftValue());
-	  ffassert(a);
-	  ksol+=a->size(); 
-	}
-      else
-	ksol++;
-      sol.resize(ksol); 
-      
-      // type :: 1 sca, 2 vector, 3 symtensor
-      
-      ksol=0; 
-      nbsolsize=0;
-      type = 0;
-          
-      if (args[i].left()==atype<E_Array>())
-	{
-	  const E_Array * a = dynamic_cast<const E_Array *>(args[i].LeftValue());
-	  ffassert(a);
-	  int N=a->size();
-	  nbsolsize=nbsolsize+N;
-	  switch (N){
-	    /*
-	      case 3 :
-		type[i-1]=2; 
-		for (int j=0;j<N;j++)             
-		sol[ksol++]=to<double>((*a)[j]);
-		break;
-	    */
-	  case 6 :
-	    type=3;   
-	    for (int j=0;j<N;j++)             
-	      sol[ksol++]=to<double>((*a)[j]); 
-	    break;
-	  default :
-	    CompileError(" 3D solution for yams is a scalar (1 comp) or a symetric tensor (6 comp)");
-	    break;
-	  }
-	}
-      else 
-	{
-	  type=1;
-	  nbsolsize=nbsolsize+1;
-	  sol[ksol++]=to<double>(args[i]);
-	} 
-
-      if( nargs[2]  ) 
-	CompileError(" we give two metric for yams ");
-    }
-
-  }
-    
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype< pmesh3 >(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new yams_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-  operator aType () const { return atype< pmesh3 >();} 
-};
-
-
-basicAC_F0::name_and_type  yams_Op::name_param[]= {
-
-  {  "loptions", &typeid(KN_<long>)},  //0
-  {  "doptions", &typeid(KN_<double>)},
-  {  "metric", &typeid(KN_<double>)},
-  {  "aniso", &typeid(bool)} ,//3
-  {  "mem", &typeid(long)} ,
-  {  "hmin", &typeid(double)} ,
-  {  "hmax", &typeid(double)} ,//6
-  {  "gradation", &typeid(double)} ,
-  {  "option", &typeid(long)} , // 8
-  {  "ridgeangle", &typeid(double)} ,//9
-  {  "absolute", &typeid(bool)}, //10 
-  {  "verbosity", &typeid(long)}, //11 
-    
-  {  "nr", &typeid(long)}, // 12 no ridge
-  {  "ns", &typeid(long)} // 13 no point smoothing
-};
-
-AnyType yams_Op::operator()(Stack stack)  const 
-{
-  // initialisation
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  ffassert( pTh );
-  Mesh3 &Th3=*pTh;
-  int nv=Th3.nv;
-  int nt=Th3.nt;
-  int nbe=Th3.nbe;
-
-  KN<int> defaultintopt(23);
-  KN<double> defaultfopt(14);
-  defaultintopt = 0;
-  defaultfopt   = 0.;
-  yams_inival( defaultintopt, defaultfopt);
-  
-  KN<int> intopt(23);
-  for(int ii=0; ii< 23; ii++){
-    intopt[ii]=defaultintopt[ii];
-  }
- 
-  KN<double> fopt(14);
-  for(int ii=0; ii< 14; ii++){
-    fopt[ii]=defaultfopt[ii];
-  }
-  assert( fopt.N() == 14 );
-  
-  if( nargs[0] ){
-    KN<int> intopttmp =  GetAny<KN_<long> >( (*nargs[0])(stack) );
-    if( intopttmp.N() != 13 ){
-      cerr <<"the size of vector loptions is 13 "  << endl;
-      exit(1);
-    }
-    else{
-      for(int ii=0; ii<13; ii++){
-	intopt[ wrapper_intopt[ii] ] = intopttmp[ii];
-      }
-    }
-  }
-  
-  if( nargs[1] ){
-    KN<double> fopttmp =  GetAny<KN_<double> >( (*nargs[1])(stack) );
-    if( fopttmp.N() != 11 ){
-      cerr <<"the size of vector loptions is 11 not "  << fopttmp.N()<< endl;
-	ExecError("FreeYams");
-    }
-    else{
-      for(int ii=0; ii<11; ii++){
-	fopt[ wrapper_fopt[ii] ] = fopttmp[ii];
-      }
-    }
-  }
- 
-  intopt[0] = arg(3,stack,intopt[0]!=1);
-  intopt[8] = arg(4,stack,intopt[8]);
-  fopt[7] = arg(5,stack,fopt[7]);
-  fopt[8] = arg(6,stack,fopt[7]);
-  fopt[6] = arg(7,stack,fopt[6]);
-  intopt[22] = arg(8,stack, intopt[22] ); // optim option  
-  if(nargs[9]) intopt[17]=1; 
-  fopt[13] = arg(9,stack,fopt[13]); // ridge angle
-  intopt[21] = arg(10,stack, intopt[21] ); // absolue 
-  intopt[11] = arg(11,stack,(int) verbosity); // verbosity 
-  intopt[17] = arg(12,stack,intopt[17]); // no ridge 
-  intopt[18] = arg(13,stack,intopt[18]); // nb smooth 
-  if(verbosity>1)
-     {
-       cout << " fopt = [";
-       for(int i=0;i<11;++i)
-	   cout   << fopt[wrapper_fopt[i]]  <<  (i < 10 ? ",": "];\n") ;       
-       cout << " intopt = [";
-       for(int i=0;i<13;++i)
-	   cout << intopt[wrapper_intopt[i]]  <<  (i < 12 ? ",": "];\n" );         
-     }
-
-    
- 
-  
-  /*
-    KN<int> intopt(arg(0,stack,defaultintopt));
-    assert( intopt.N() == 23 );
-    KN<double> fopt(arg(1,stack,defaultfopt));
-    assert( fopt.N() == 14 );
-  */
-  KN<double> metric;
-    
-  int mtype=type;
-  if( nargs[2]  )
-    { 
-      metric = GetAny<KN_<double> >( (*nargs[2])(stack) );
-      if(metric.N()==Th3.nv){
-	mtype=1;
-	intopt[1]=0;
-      }
-      else if(metric.N()==6*Th3.nv){ 
-	intopt[1]=1; 
-	mtype=3;
-      }
-      else 
-	cerr << "sizeof vector metric is incorrect, size will be Th.nv or 6*Th.nv" << endl;
-    }  
-  else if(nbsol>0)
-    {
-    if( type == 1 )
-      {
-	intopt[1]=0;
-	metric.resize(Th3.nv);
-	metric=0.;
-      }
-    else if( type ==3 )
-      {
-	intopt[1]=1;
-	metric.resize(6*Th3.nv);
-	metric=0.;
-      }
-    }
-  else
-    {
-      if( intopt[1]==0 ){ metric.resize(Th3.nv); metric=0.;}
-      else if ( intopt[1]==1 ){ metric.resize(6*Th3.nv); metric=0.;}
-    }
-  // mesh for yams
-  yams_pSurfMesh yamsmesh;
-  yamsmesh = (yams_pSurfMesh)calloc(1,sizeof(yams_SurfMesh));
-  if ( !yamsmesh ){
-    cerr << "allocation error for SurfMesh for yams" << endl;
-  }
-  yamsmesh->infile  = NULL;
-  yamsmesh->outfile = NULL;
-  yamsmesh->type    = M_SMOOTH | M_QUERY | M_DETECT | M_BINARY | M_OUTPUT;
-  
-  
-  mesh3_to_yams_pSurfMesh( Th3 , intopt[8], intopt[22], yamsmesh);
-    
-  
-  // solution for freeyams2
-  if(nbsol)
-    {
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      
-      KN<bool> takemesh(nv);
-      takemesh=false;
-      for(int it=0;it<nt;it++){
-	for(int iv=0;iv<4;iv++){
-	  int i=Th3(it,iv);
-	  
-	  if(takemesh[i]==false){
-	  mp3->setP(&Th3,it,iv);
-	  
-	  for(int ii=0;ii<nbsolsize;ii++){
-	    metric[i*nbsolsize+ii] = GetAny< double >( (*sol[ii])(stack) );
-	  }
-	  takemesh[i] = true; 
-	  }
-      }
-      }
-    }
-  if(verbosity>10)    
-  cout << "nbsol  " <<  nargs[2] << endl;
-  if( nargs[2] || (nbsol > 0) ){ 
-    float hmin,hmax;
-    solyams_pSurfMesh( yamsmesh, mtype, metric, hmin, hmax);
-    yamsmesh->nmfixe = yamsmesh->npfixe;
-    if( fopt[7] < 0.0 ) 
-      fopt[7]= max(fopt[7],hmin);
-    if( fopt[8] < 0.0 )
-      fopt[8]=max(fopt[8],hmax);
-  }
-  else{
-    yamsmesh->nmfixe = 0;
-  }
-  int infondang=0, infocc=0;
-  int res = yams_main( yamsmesh, intopt, fopt, infondang, infocc);
-  if(verbosity>10)
-   cout << " yamsmesh->dim " << yamsmesh->dim << endl;
-  if( res > 0){
-    cout << " problem with yams :: error " <<  res << endl; 
-      ExecError("Freeyams error");
-  }
-  
-  Mesh3 *Th3_T = yams_pSurfMesh_to_mesh3( yamsmesh, infondang, infocc ,intopt[22] );
-  
-  // recuperer la solution ????
-  if(verbosity>10)
-    {
-      cout << &yamsmesh->point << " " << &yamsmesh->tria << " "  <<&yamsmesh->geom << " "  << &yamsmesh->tgte << endl;
-      cout << &yamsmesh << endl;
-      
-    }
-  free(yamsmesh->point);
-  free(yamsmesh->tria);
-  free(yamsmesh->geom);
-  free(yamsmesh->tgte);
-  if ( yamsmesh->metric ) free(yamsmesh->metric);
-  if ( yamsmesh->edge )   free(yamsmesh->edge);
-  if ( yamsmesh->tetra )   free(yamsmesh->tetra);
-  free(yamsmesh);
-
-  *mp=mps;
-  Add2StackOfPtr2FreeRC(stack,Th3_T);
-  return SetAny<pmesh3>(Th3_T);
-}
-
-
-
-<<<<<<< HEAD
-/*  class Init1 { public:
-  Init1();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init1 { public:
-  Init1();
-};
-
-LOADINIT(Init1)  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init1::Init1(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  //typedef Mesh3 *pmesh3;
-  if(verbosity) cout << " load: freeyams  " << endl;
-  
-  Global.Add("freeyams","(",new OneOperatorCode<yams_Op>);
- 
-}
-
-
-#define  WITH_NO_INIT
-#include "msh3.hpp" 
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/funcTemplate.cpp.orig b/examples++-load/funcTemplate.cpp.orig
deleted file mode 100644
index 65fab10..0000000
--- a/examples++-load/funcTemplate.cpp.orig
+++ /dev/null
@@ -1,142 +0,0 @@
-// Example C++ function "CppModTemplate" dynamically loaded into "load.edp"
-// ------------------------------------------------------------------------
-#include <ff++.hpp>
-#include "AFunction_ext.hpp" // Extension of "AFunction.hpp" to deal with more than 3 parameters function
-using namespace Fem2D;
-
-// see src/femlib/RNM.hpp
-
-// dummy routine to understand how to use vector
-double CppModTemplate3(KN<double> *const & A,                            // OUTPUT
-		       KN<double> *const & B, KN<double> *const & C)     // INPUTS
-{
-  
-  // Remarque:
-  // It might prove usefull to have a look in the cpp file where KN is defined: src/femlib/RNM.hpp
-  //
-  // To access value at node i of vector N, do as follow: *(N[0]+i)
-  // Explanation (C++ for dummies as I am ;-):
-  //   N         is an alias to the KN object.
-  //   N[0]      is a pointer to the first element of the vector.
-  //   N[0]+i    is a pointer to the ith element of the vector.
-  //   *(N[0]+i) is the value of the ith element of the vector.
-  
-  int nn = A->N(); // get number of nodes
-
-  cout << "nn: " << nn << endl;
-  
-  for(int i=0; i<nn; i++) {
-    (*(A[0]+i)) = (*(B[0]+i)) *  (*(C[0]+i));
-    cout << (*(A[0]+i)) << endl;
-  }
-
-  return 0.0;  // dummy return value.
-}
-
-double CppModTemplate4(KN<double> *const & A,                            // OUTPUT
-		       KN<double> *const & B, KN<double> *const & C,     // INPUTS
-		       KN<double> *const & D)   
-{
-  int nn = A->N(); // get number of nodes
-  cout << "nn: " << nn << endl;
-  for(int i=0; i<nn; i++) {
-    (*(A[0]+i)) = (*(B[0]+i)) *  (*(C[0]+i)) * (*(D[0]+i));
-    cout << (*(A[0]+i)) << endl;
-  }
-  return 0.0;  // dummy return value.
-}
-
-double CppModTemplate5(KN<double> *const & A,                            // OUTPUT
-		       KN<double> *const & B, KN<double> *const & C,     // INPUTS
-		       KN<double> *const & D, KN<double> *const & E)   
-{
-  int nn = A->N(); // get number of nodes
-  cout << "nn: " << nn << endl;
-  for(int i=0; i<nn; i++) {
-    (*(A[0]+i)) = (*(B[0]+i)) *  (*(C[0]+i)) * (*(D[0]+i)) * (*(E[0]+i));
-    cout << (*(A[0]+i)) << endl;
-  }
-  return 0.0;  // dummy return value.
-
-}
-
-
-double CppModTemplate6(KN<double> *const & A,                            // OUTPUT
-		       KN<double> *const & B, KN<double> *const & C,     // INPUTS
-		       KN<double> *const & D, KN<double> *const & E,
-		       KN<double> *const & F)   
-{
-  int nn = A->N(); // get number of nodes
-  cout << "nn: " << nn << endl;
-  for(int i=0; i<nn; i++) {
-    (*(A[0]+i)) = (*(B[0]+i)) *  (*(C[0]+i)) * (*(D[0]+i)) * (*(E[0]+i)) * (*(F[0]+i));
-    cout << (*(A[0]+i)) << endl;
-  }
-  return 0.0;  // dummy return value.
-}
-
-double CppModTemplate7(KN<double> *const & A,                            // OUTPUT
-		       KN<double> *const & B, KN<double> *const & C,     // INPUTS
-		       KN<double> *const & D, KN<double> *const & E,
-		       KN<double> *const & F, KN<double> *const & G)   
-{
-  int nn = A->N(); // get number of nodes
-  cout << "nn: " << nn << endl;
-  for(int i=0; i<nn; i++) {
-    (*(A[0]+i)) = (*(B[0]+i)) *  (*(C[0]+i)) * (*(D[0]+i)) * (*(E[0]+i)) * (*(F[0]+i)) * (*(G[0]+i));
-    cout << (*(A[0]+i)) << endl;
-  }
-  return 0.0;  // dummy return value.
-}
-
-double CppModTemplate8(KN<double> *const & A,                            // OUTPUT
-		       KN<double> *const & B, KN<double> *const & C,     // INPUTS
-		       KN<double> *const & D, KN<double> *const & E,
-		       KN<double> *const & F, KN<double> *const & G,
-		       KN<double> *const & H)   
-{
-  int nn = A->N(); // get number of nodes
-  cout << "nn: " << nn << endl;
-  for(int i=0; i<nn; i++) {
-    (*(A[0]+i)) = (*(B[0]+i)) *  (*(C[0]+i)) * (*(D[0]+i)) * (*(E[0]+i)) * (*(F[0]+i)) * (*(G[0]+i)) * (*(H[0]+i)) ;
-    cout << (*(A[0]+i)) << endl;
-  }
-  return 0.0;  // dummy return value.
-}
-
-double funcs3(Stack s,const double &a,const  double &b,const  double &c){  return a+b+c;}
-double funcs2(Stack s,const double &a,const  double &b){  return a+b;}
-double funcs1(Stack s,const double &a){  return a;}
-
-//   add the function name to the freefem++ table 
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-$1 */
-static void Load_Init(){
-=======
-class Init { public:
-  Init();
-};
-LOADINIT(Init);
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  // Add function with 3 arguments
-  Global.Add("funcs1","(",new OneOperator1s_<double, double>(funcs1)); 
-  Global.Add("funcs2","(",new OneOperator2s_<double, double, double >(funcs2)); 
-  Global.Add("funcs3","(",new OneOperator3s_<double, double, double, double  >(funcs3)); 
-  Global.Add("CppModTemplate3","(",new OneOperator3_<double, KN<double>*, KN<double>*, KN<double>*>(CppModTemplate3)); 
-  Global.Add("CppModTemplate4","(",new OneOperator4_<double, KN<double>*, KN<double>*, KN<double>*, KN<double>*>(CppModTemplate4)); 
-  Global.Add("CppModTemplate5","(",new OneOperator5_<double, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*>(CppModTemplate5)); 
-  Global.Add("CppModTemplate6","(",new OneOperator6_<double, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*>(CppModTemplate6)); 
-  Global.Add("CppModTemplate7","(",new OneOperator7_<double, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*>(CppModTemplate7)); 
-  Global.Add("CppModTemplate8","(",new OneOperator8_<double, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*, KN<double>*>(CppModTemplate8)); 
-}
-
-
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/gmsh.cpp.orig b/examples++-load/gmsh.cpp.orig
deleted file mode 100644
index e06e8a5..0000000
--- a/examples++-load/gmsh.cpp.orig
+++ /dev/null
@@ -1,854 +0,0 @@
-// ORIG-DATE:   September 2009
-// -*- Mode : c++ -*%
-//
-// SUMMARY  : interface avec le logiciel gmsh    
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-//  FH   July 2009
-//   comment all
-//       Th3_t->BuildBound();
-//       Th3_t->BuildAdj();
-//       Th3_t->Buildbnormalv();  
-//       Th3_t->BuildjElementConteningVertex();
-//   is now in the constructor of Mesh3 to be consistante. 
-//   
-//  Vincent HUBER - vincent.huber at cemosis.fr   October 2014
-//  manage verbosity levels
-//
-#include "ff++.hpp"
-
-using namespace Fem2D;
-
-// Table of number of vertex for an element type of gmsh 
-static const int nvElemGmsh[30] = { 2, 3, 0, 4, 0, 
-				    0, 0, 0, 0, 0, 
-				    0, 0, 0, 0, 1, 
-				    0, 0, 0, 0, 0, 
-				    0, 0, 0, 0, 0, 
-				    0, 0, 0, 0, 0 };   
-// we considerer only edges, triangles and tetrahedrons in Freefem++
-// 15 :: Vertex Corner
-// 1  :: Edge/line
-// 2  :: triangles
-// 4  :: tetrahedrons
-void SwapBytes(char *array, int size, int n)
-  {
-    char *x = new char[size];
-    for(int i = 0; i < n; i++) {
-      char *a = &array[i * size];
-      memcpy(x, a, size);
-      for(int c = 0; c < size; c++)
-        a[size - 1 - c] = x[c];
-    }
-    delete [] x;
-  }
-
-
-class GMSH_LoadMesh_Op : public E_F0mps 
-{
-public:
-  Expression filename;
-  static const int n_name_param = 2; // 
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-public:
-  GMSH_LoadMesh_Op(const basicAC_F0 &  args,Expression ffname) 
-    : filename(ffname)
-  {
-    if(verbosity>1) cout << "Load mesh given by GMSH " << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-basicAC_F0::name_and_type GMSH_LoadMesh_Op::name_param[]= {
-  {  "reftri", &typeid(long)},
-  {  "renum", &typeid(long)}
-};
-
-
-class  GMSH_LoadMesh : public OneOperator { public:  
-    GMSH_LoadMesh() : OneOperator(atype<pmesh>(),atype<string *>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new GMSH_LoadMesh_Op( args,t[0]->CastTo(args[0]) ); 
-  }
-};
-
-Mesh * GMSH_Load(const string & filename)
-  {
-    // variable freefem++
-    int nv, nt=0, nbe=0;
-    Mesh::Vertex   *vff;
-    map<int,int> mapnumv;
-
-    // loading mesh and reading mesh in gmsh are in the file GModelIO_Mesh.cpp (directory Geo) 
-    char str[256]  = "ZZZ";
-    double version = 2.0;
-    bool binary = false, swap = false, postpro = false;
-    
-    FILE *fp = fopen(filename.c_str(), "rb");
-    if(!fp){
-      cerr << "Unable to open file " << filename.c_str() << endl;
-      exit(1);
-    }
-    
-    while( !feof(fp) ){
-      fgets(str, sizeof(str), fp);  
-      if( str[0] == '$'){
-	if(!strncmp(&str[1], "MeshFormat", 10)) {
-	  if(!fgets(str, sizeof(str), fp)) exit(1);
-	  int format, size;
-	  if(sscanf(str, "%lf %d %d", &version, &format, &size) != 3) exit(1);
-	  if(verbosity>1) cout << "Mesh Format is " <<  format << endl;
-	  if(format){
-	    binary = true;
-	    if(verbosity>2) cout << "Mesh is in binary format" << endl;
-	    int one;
-	    if(fread(&one, sizeof(int), 1, fp) != 1) exit(1);
-	    if(one != 1){
-	      swap = true;
-	      if(verbosity>2) cout << "Swapping bytes from binary file" << endl;
-	    }
-	  }
-	}
-	else if(!strncmp(&str[1], "PhysicalNames", 13)) {	  
-	  if(verbosity>0) cout << " PhysicalNames is not considered in freefem++ " << endl;
-	}
-	
-	else if(!strncmp(&str[1], "NO", 2) || !strncmp(&str[1], "Nodes", 5) ||
-		!strncmp(&str[1], "ParametricNodes", 15)) {
-	  
-	  const bool parametric = !strncmp(&str[1], "ParametricNodes", 15);
-	  if( parametric == true ){
-	    cerr << " ParametricNodes is not considered yet in freefem++" << endl;
-	    exit(1);
-	  }
-	  if(!fgets(str, sizeof(str), fp)) exit(1);
-	  
-	  if(sscanf(str, "%d", &nv) != 1) exit(1);
-	  printf("%d vertices\n", nv);
-	  
-	  // local variables freefem++
-	  vff = new Mesh::Vertex[nv]; 
-
-	  int minVertex = nv + 1, maxVertex = -1;
-	  for(int i = 0; i < nv; i++) {
-	    int num;	
-	    double xyz[3], uv[2];
-	    
-	    //if (!parametric){		
-	    if(!binary){
-	      if (fscanf(fp, "%d %lf %lf %lf", &num, &xyz[0], &xyz[1], &xyz[2]) != 4)
-		exit(1);	  
-	    }
-	    else{
-	      if(fread(&num, sizeof(int), 1, fp) != 1) exit(1);
-	      if(swap) SwapBytes((char*)&num, sizeof(int), 1);
-	      if(fread(xyz, sizeof(double), 3, fp) != 3) exit(1);
-	      if(swap) SwapBytes((char*)xyz, sizeof(double), 3);
-	    }
-	    
-	    assert( abs(xyz[2]) < 1.e-7);
-	    vff[i].x = xyz[0];
-	    vff[i].y = xyz[1];
-	    vff[i].lab = 1;
-	    mapnumv[num] = i;
-	  }
-	}
-	else if(!strncmp(&str[1], "ELM", 3) || !strncmp(&str[1], "Elements", 8)) {
-
-	  if(!fgets(str, sizeof(str), fp)) exit(1);
-	  int numElements;
-	  sscanf(str, "%d", &numElements);
-	   
-	  if(verbosity>2) cout << "Loading elements\n" << endl; 
-	  if(!binary){
-	    for(int i = 0; i < numElements; i++) {
-	      int num, type, physical = 0, elementary = 0, partition = 0, numVertices;
-	      if(version <= 1.0){
-		fscanf(fp, "%d %d %d %d %d", &num, &type, &physical, &elementary, &numVertices);		
-	      }
-	      else{
-		int numTags;
-		fscanf(fp, "%d %d %d", &num, &type, &numTags);
-		for(int j = 0; j < numTags; j++){
-		  int tag;
-		  fscanf(fp, "%d", &tag);       
-		  if(j == 0)      physical = tag;
-		  else if(j == 1) elementary = tag;
-		  else if(j == 2) partition = tag;
-		  // ignore any other tags for now
-		}
-		assert(type>=1 && type <=31);
-		if( (numVertices = nvElemGmsh[type-1]) == 0){
-		  cerr << "Element of type " << type  << " is not considered in Freefem++" << endl;
-		  exit(1);
-		}
-	      }
-	      
-	      if( type == 1 ) nbe++;
-	      if( type == 2 ) nt++;
-	      if( type == 4 ){
-					cout << "We are loading a two dimensionnal mesh " << endl;
-					exit(1);
-	      }
-	      
-	      int indices[60];
-	      for(int j = 0; j < numVertices; j++) fscanf(fp, "%d", &indices[j]);
-	      
-	    }
-	  }
-	  else{
-	    int numElementsPartial = 0;
-	    while(numElementsPartial < numElements){
-	      int header[3];
-	      if( fread(header, sizeof(int), 3, fp) != 3 ) exit(1);
-	      if(swap) SwapBytes((char*)header, sizeof(int), 3);
-	      int type = header[0];
-	      int numElms = header[1];
-	      int numTags = header[2];
-	      int numVertices; 
-	      assert(type>=1 && type <=31);
-	      if( (numVertices = nvElemGmsh[type-1]) == 0){
-		cerr << "Element of type " << type  << " is not considered in Freefem++" << endl;
-		exit(1);
-	      }
-	      unsigned int n = 1 + numTags + numVertices;
-	      int *data = new int[n];
-
-	      for(int i = 0; i < numElms; i++) {
-		if(fread(data, sizeof(int), n, fp) != n) exit(1);
-		if(swap) SwapBytes((char*)data, sizeof(int), n);
-		int num = data[0];
-		int physical = (numTags > 0) ? data[4 - numTags] : 0;
-		int elementary = (numTags > 1) ? data[4 - numTags + 1] : 0;
-		int partition = (numTags > 2) ? data[4 - numTags + 2] : 0;
-		int *indices = &data[numTags + 1];
-		
-		if( type == 1 )  nbe++;
-		if( type == 2 )  nt++;
-		if( type == 4 ){
-		  cout << "We are loading a two dimensionnal mesh " << endl;
-		  exit(1);
-		}
-		
-	      }
-	      delete [] data;
-	      numElementsPartial += numElms;
-	      
-	    }
-	  }
-	  break;
-	}
-      }
-    }
-    fclose(fp);
-    
-    Mesh::Triangle *tff  = new Mesh::Triangle[nt];
-    Mesh::Triangle *ttff = tff;
-
-    Mesh::BorderElement *bff  = new Mesh::BorderElement[nbe];
-    Mesh::BorderElement *bbff = bff;
-
-    // second reading
-    fp = fopen(filename.c_str(), "rb");
-    
-    while( !feof(fp) ){
-      fgets(str, sizeof(str), fp);  
-      if( str[0] == '$'){
-	
-	if(!strncmp(&str[1], "ELM", 3) || !strncmp(&str[1], "Elements", 8)) {
-
-	  if(!fgets(str, sizeof(str), fp)) exit(1);
-	  int numElements;
-	  sscanf(str, "%d", &numElements);
-	   
-	 
-	  if(!binary){
-
-	    int ie=0; 
-	    int it=0;
-
-	    for(int i = 0; i < numElements; i++) {
-	      int num, type, physical = 0, elementary = 0, partition = 0, numVertices;
-	      if(version <= 1.0){
-		fscanf(fp, "%d %d %d %d %d", &num, &type, &physical, &elementary, &numVertices);		
-	      }
-	      else{
-		int numTags;
-		fscanf(fp, "%d %d %d", &num, &type, &numTags);
-		for(int j = 0; j < numTags; j++){
-		  int tag;
-		  fscanf(fp, "%d", &tag);       
-		  if(j == 0)      physical = tag;
-		  else if(j == 1) elementary = tag;
-		  else if(j == 2) partition = tag;
-		  // ignore any other tags for now
-		}
-		assert(type>=1 && type <=31);
-		if( (numVertices = nvElemGmsh[type-1]) == 0){
-		  cerr << "Element of type " << type  << " is not considered in Freefem++" << endl;
-		  exit(1);
-		}
-	      }
-
-	      int indices[60];
-	      for(int j = 0; j < numVertices; j++) fscanf(fp, "%d", &indices[j]);
-
-	      if( type == 1 ){
-		int iv0,iv1;
-		iv0 = mapnumv[ indices[0] ];	
-		iv1 = mapnumv[ indices[1] ];
-		if(verbosity>2) cout << "Elem " << ie+1 << " " << iv0+1 << " " << iv1+1 << endl;
-		(bbff++)->set(vff, iv0, iv1, physical);
-		ie++;
-	      }
-	      if( type == 2 ){
-		int iv0,iv1,iv2;
-		iv0 = mapnumv[ indices[0] ];	
-		iv1 = mapnumv[ indices[1] ];
-		iv2 = mapnumv[ indices[2] ];	
-		if(verbosity>2) cout << "Triangles " << it+1 << " " << iv0+1 << " " << iv1+1 << " " << iv2+1 << endl;
-		
-		(ttff++)->set(vff, iv0, iv1, iv2, physical);
-		if(verbosity>2) cout << "mes=" << tff[it].area << endl;
-		if( tff[it].area < 1e-8 ){
-		  cout << "bug : mes < 1e-8 !" << endl;
-		  exit(1);
-		}
-		it++;
-	      }
-	    }
-	    assert(it==nt);
-	    assert(ie==nbe);
-	  }
-	  else{
-	    
-	    int ie=0; 
-	    int it=0;
-
-	    int numElementsPartial = 0;
-	    while(numElementsPartial < numElements){
-	      int header[3];
-	      if( fread(header, sizeof(int), 3, fp) != 3 ) exit(1);
-	      if(swap) SwapBytes((char*)header, sizeof(int), 3);
-	      int type = header[0];
-	      int numElms = header[1];
-	      int numTags = header[2];
-	      int numVertices;
-	      assert(type>=1 && type <=31);
-	      if( (numVertices = nvElemGmsh[type-1]) == 0){
-		cerr << "Element of type " << type  << " is not considered in Freefem++" << endl;
-		exit(1);
-	      }
-	      unsigned int n = 1 + numTags + numVertices;
-	      int *data = new int[n];
-	      for(int i = 0; i < numElms; i++) {
-		if(fread(data, sizeof(int), n, fp) != n) exit(1);
-		if(swap) SwapBytes((char*)data, sizeof(int), n);
-		int num = data[0];
-		int physical = (numTags > 0) ? data[4 - numTags] : 0;
-		int elementary = (numTags > 1) ? data[4 - numTags + 1] : 0;
-		int partition = (numTags > 2) ? data[4 - numTags + 2] : 0;
-		int *indices = &data[numTags + 1];
-		
-		if( type == 1 ){
-		  int iv0,iv1;
-		  iv0 = mapnumv[ indices[0] ];	
-		  iv1 = mapnumv[ indices[1] ];
-		  (bbff++)->set(vff, iv0, iv1, physical);
-		  ie++;
-		}
-		if( type == 2 ){
-		  double mes=-1;
-		  int iv0,iv1,iv2;
-		  iv0 = mapnumv[ indices[0] ];	
-		  iv1 = mapnumv[ indices[1] ];
-		  iv2 = mapnumv[ indices[2] ];		
-		  (ttff++)->set(vff, iv0, iv1, iv2, physical,mes);
-		  
-		  it++;
-		}
-		
-	      }
-	      delete [] data;
-	      numElementsPartial += numElms;
-	  
-	      
-	    }
-	    assert(it==nt);
-	    assert(ie==nbe);
-	  }
-	}
-        else if(!strncmp(&str[1], "NodeData", 8)) {
-	  if(verbosity>1) cout << " NodeData is not considered in freefem++ " << endl;
-	}
-	else if(!strncmp(&str[1], "ElementData", 11) ||
-		!strncmp(&str[1], "ElementNodeData", 15)){
-
-	  if(verbosity>1) cout << " ElementData/ElementNodeData is not considered in freefem++ " << endl;
-	}
-      }
-    }
-    fclose(fp);
-
-    Mesh *pTh = new Mesh(nv,nt,nbe,vff,tff,bff);
-    R2 Pn,Px;
-    pTh->BoundingBox(Pn,Px);
-    if(!pTh->quadtree)
-        pTh->quadtree=new Fem2D::FQuadTree(pTh,Pn,Px,pTh->nv);
-
-    return pTh;
-
-  }
-
-
-
-AnyType GMSH_LoadMesh_Op::operator()(Stack stack)  const 
-{
- 
-  string * pffname= GetAny<string *>((*filename)(stack));
-  int renumsurf = 0; 
-  if( nargs[1] )  renumsurf = GetAny<long>( (*nargs[1])(stack) );
-  assert( renumsurf <=1 && renumsurf >= 0);
-
-  Mesh * Th = GMSH_Load( *pffname ); 
-   
-  Add2StackOfPtr2FreeRC(stack,Th);
-		
-  return Th;
-}
-
-// Load three dimensionnal mesh
-
-class GMSH_LoadMesh3_Op : public E_F0mps 
-{
-public:
-  Expression filename;
-  static const int n_name_param = 2; // 
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-public:
-  GMSH_LoadMesh3_Op(const basicAC_F0 &  args,Expression ffname) 
-    : filename(ffname)
-  {
-    if(verbosity>1) cout << "Load mesh given by GMSH " << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-basicAC_F0::name_and_type GMSH_LoadMesh3_Op::name_param[]= {
-  {  "reftet", &typeid(long)},
-  {  "renum", &typeid(long)}
-};
-
-
-class  GMSH_LoadMesh3 : public OneOperator { public:  
-    GMSH_LoadMesh3() : OneOperator(atype<pmesh3>(),atype<string *>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new GMSH_LoadMesh3_Op( args,t[0]->CastTo(args[0]) ); 
-  }
-};
-
-Mesh3 * GMSH_Load3(const string & filename)
-  {
-    // variable freefem++
-    int nv, nt=0, nbe=0;
-    Vertex3   *vff;
-    map<int,int> mapnumv; 
-	  
-    // loading mesh and reading mesh in gmsh are in the file GModelIO_Mesh.cpp (directory Geo) 
-    char str[256]  = "ZZZ";
-    double version = 2.0;
-    bool binary = false, swap = false, postpro = false;
-    
-    FILE *fp = fopen(filename.c_str(), "rb");
-    if(!fp){
-      cerr << "Unable to open file " << filename.c_str() << endl;
-      exit(1);
-    }
-    
-    while( !feof(fp) ){
-      fgets(str, sizeof(str), fp);  
-      if( str[0] == '$'){
-	if(!strncmp(&str[1], "MeshFormat", 10)) {
-	  if(!fgets(str, sizeof(str), fp)) exit(1);
-	  int format, size;
-	  if(sscanf(str, "%lf %d %d", &version, &format, &size) != 3) exit(1);
-	  if(format){
-	    binary = true;
-	    if(verbosity>1) cout << "Mesh is in binary format" << endl;
-	    int one;
-	    if(fread(&one, sizeof(int), 1, fp) != 1) exit(1);
-	    if(one != 1){
-	      swap = true;
-	      if(verbosity>1) cout << "Swapping bytes from binary file" << endl;
-	    }
-	  }
-	}
-	else if(!strncmp(&str[1], "PhysicalNames", 13)) {
-	  if(verbosity>1) cout << " PhysicalNames is not considered in freefem++ " << endl;
-	}
-	
-	else if(!strncmp(&str[1], "NO", 2) || !strncmp(&str[1], "Nodes", 5) ||
-		!strncmp(&str[1], "ParametricNodes", 15)) {
-	  
-	  const bool parametric = !strncmp(&str[1], "ParametricNodes", 15);
-	  if( parametric == true ){
-	    cerr << " ParametricNodes is not considered yet in freefem++" << endl;
-	    exit(1);
-	  }
-	  if(!fgets(str, sizeof(str), fp)) exit(1);
-	  
-	  if(sscanf(str, "%d", &nv) != 1) exit(1);
-	  printf("%d vertices\n", nv);
-	  
-	  // local variables freefem++
-	  vff = new Vertex3[nv]; 
-	  //map<int,int> mapnumv; 
-	  
-	  int minVertex = nv + 1, maxVertex = -1;
-	  for(int i = 0; i < nv; i++) {
-	    int num;	
-	    double xyz[3], uv[2];
-	    
-	    //if (!parametric){		
-	    if(!binary){
-	      if (fscanf(fp, "%d %lf %lf %lf", &num, &xyz[0], &xyz[1], &xyz[2]) != 4)
-		exit(1);	  
-	    }
-	    else{
-	      if(fread(&num, sizeof(int), 1, fp) != 1) exit(1);
-	      if(swap) SwapBytes((char*)&num, sizeof(int), 1);
-	      if(fread(xyz, sizeof(double), 3, fp) != 3) exit(1);
-	      if(swap) SwapBytes((char*)xyz, sizeof(double), 3);
-	    }
-	    
-	    vff[i].x = xyz[0];
-	    vff[i].y = xyz[1];
-	    vff[i].z = xyz[2];
-	    vff[i].lab = 1;
-	    mapnumv[num] = i;
-	  }
-	}
-	else if(!strncmp(&str[1], "ELM", 3) || !strncmp(&str[1], "Elements", 8)) {
-
-	  if(!fgets(str, sizeof(str), fp)) exit(1);
-	  int numElements;
-	  sscanf(str, "%d", &numElements);
-	   
-	  if(!binary){
-	    for(int i = 0; i < numElements; i++) 
-	      {
-		int num, type, physical = 0, elementary = 0, partition = 0, numVertices;
-		if(version <= 1.0)
-		  {
-		    fscanf(fp, "%d %d %d %d %d", &num, &type, &physical, &elementary, &numVertices);		
-		  }
-		else{
-		  int numTags;
-		  fscanf(fp, "%d %d %d", &num, &type, &numTags);
-		  for(int j = 0; j < numTags; j++){
-		    int tag;
-		    fscanf(fp, "%d", &tag);       
-		    if(j == 0)      physical = tag;
-		    else if(j == 1) elementary = tag;
-		    else if(j == 2) partition = tag;
-		    // ignore any other tags for now
-		  }
-		  assert(type>=1 && type <=31);
-		  if( (numVertices = nvElemGmsh[type-1]) == 0){		  
-		    cerr << "Element of type " << type  << " is not considered in Freefem++" << endl;
-		    exit(1);
-		  }
-		}
-		
-		if( type == 1 ){
-		  if(i==0)
-		   if(verbosity>0)  cout << "edges in 3D mesh are not considered yet in freefem++, skeep data" << endl;	
-		}
-		if( type == 2 ) nbe++;
-		if( type == 4 ) nt++;
-		
-		int indices[60];
-		for(int j = 0; j < numVertices; j++) fscanf(fp, "%d", &indices[j]);
-		
-	      }
-	  }
-	  else
-	    {
-	      int numElementsPartial = 0;
-	      while(numElementsPartial < numElements){
-		int header[3];
-		if( fread(header, sizeof(int), 3, fp) != 3 ) exit(1);
-		if(swap) SwapBytes((char*)header, sizeof(int), 3);
-		int type = header[0];
-		int numElms = header[1];
-		int numTags = header[2];
-		int numVertices; 
-		assert(type>=1 && type <=31);
-		if( (numVertices = nvElemGmsh[type-1]) == 0){
-		  cout << "Element of type " << type  << " is not considered in Freefem++" << endl;
-		  exit(1);
-	  }
-		unsigned int n = 1 + numTags + numVertices;
-		int *data = new int[n];
-		
-		for(int i = 0; i < numElms; i++) {
-		  if(fread(data, sizeof(int), n, fp) != n) exit(1);
-		  if(swap) SwapBytes((char*)data, sizeof(int), n);
-		  int num = data[0];
-		  int physical = (numTags > 0) ? data[4 - numTags] : 0;
-		  int elementary = (numTags > 1) ? data[4 - numTags + 1] : 0;
-		  int partition = (numTags > 2) ? data[4 - numTags + 2] : 0;
-		  int *indices = &data[numTags + 1];
-		  
-		  if( type == 1 && i==0 ){
-		   cout << "edges in 3D mesh are not used in freefem++,skeep data" << endl;
-		    //exit(1);
-		  }
-		  if( type == 2 ) nbe++;
-		  if( type == 4 ) nt++;
-		}
-		delete [] data;
-		numElementsPartial += numElms;
-		
-	    }
-	  }
-	  break;
-	}
-      }
-    }
-    fclose(fp);
-    
-   if(verbosity>1)  cout << "closing file " << nt << " " << nbe << endl;
-
-    Tet *tff  = new Tet[nt];
-    Tet *ttff = tff;
-
-    Triangle3 *bff  = new Triangle3[nbe];
-    Triangle3 *bbff = bff;
-
-    // second reading
-    fp = fopen(filename.c_str(), "rb");
-    
-    while( !feof(fp) ){
-      fgets(str, sizeof(str), fp);  
-      if( str[0] == '$'){
-	
-	if(!strncmp(&str[1], "ELM", 3) || !strncmp(&str[1], "Elements", 8)) {
-
-	  if(!fgets(str, sizeof(str), fp)) exit(1);
-	  int numElements;
-	  sscanf(str, "%d", &numElements);
-
-	  printf("%d tetrahedrons\n", nt);
-	  printf("%d triangles\n", nbe);
-	  printf("%d numElements\n", numElements);
-	  if(!binary){
-
-	    int ie=0; 
-	    int it=0;
-
-	    for(int i = 0; i < numElements; i++) {
-	      int num, type, physical = 0, elementary = 0, partition = 0, numVertices;
-	      if(version <= 1.0){
-		fscanf(fp, "%d %d %d %d %d", &num, &type, &physical, &elementary, &numVertices);		
-	      }
-	      else{
-		int numTags;
-		fscanf(fp, "%d %d %d", &num, &type, &numTags);
-		for(int j = 0; j < numTags; j++){
-		  int tag;
-		  fscanf(fp, "%d", &tag);  
-	 
-		  if(j == 0)      physical = tag;
-		  else if(j == 1) elementary = tag;
-		  else if(j == 2) partition = tag;
-		  // ignore any other tags for now
-		}
-		assert(type>=1 && type <=31);
-		if( (numVertices = nvElemGmsh[type-1]) == 0){
-		  cerr << "Element of type " << type  << " is not considered in Freefem++" << endl;
-		  exit(1);
-		}
-	      }
-
-	      int indices[60];
-	      for(int j = 0; j < numVertices; j++){
-		fscanf(fp, "%d", &indices[j]);
-	      }
-	      if( type == 2 ){
-		int ivff[3];
-		for(int ii=0; ii < numVertices; ii++){
-		  ivff[ii] = mapnumv[ indices[ii] ];
-		  assert( ivff[ii]>=0 && ivff[ii]< nv );
-		}
-		(bbff++)->set(vff,ivff,physical);
-		ie++;
-	      }
-	      if( type == 4 ){
-		int ivff[4];
-		for(int ii=0; ii < numVertices; ii++){
-		  ivff[ii] = mapnumv[ indices[ii] ];
-		  assert( ivff[ii]>=0 && ivff[ii]< nv );
-		}
-		(ttff++)->set(vff,ivff,physical);
-		it++;
-	      }
-	    }
-	    assert( it==nt );
-	    assert( ie==nbe );
-	  }
-	  else{
-	    
-	    int ie=0; 
-	    int it=0;
-
-	    int numElementsPartial = 0;
-	    while(numElementsPartial < numElements){
-	      int header[3];
-	      if( fread(header, sizeof(int), 3, fp) != 3 ) exit(1);
-	      if(swap) SwapBytes((char*)header, sizeof(int), 3);
-	      int type = header[0];
-	      int numElms = header[1];
-	      int numTags = header[2];
-	      int numVertices;
-	      assert(type>=1 && type <=31);
-	      if( (numVertices = nvElemGmsh[type-1]) == 0){
-		cerr << "Element of type " << type  << " is not considered in Freefem++" << endl;
-		exit(1);
-	      }
-	      unsigned int n = 1 + numTags + numVertices;
-	      int *data = new int[n];
-	      for(int i = 0; i < numElms; i++) {
-		if(fread(data, sizeof(int), n, fp) != n) exit(1);
-		if(swap) SwapBytes((char*)data, sizeof(int), n);
-		int num = data[0];
-		int physical = (numTags > 0) ? data[4 - numTags] : 0;
-		int elementary = (numTags > 1) ? data[4 - numTags + 1] : 0;
-		int partition = (numTags > 2) ? data[4 - numTags + 2] : 0;
-		int *indices = &data[numTags + 1];
-
-		if( type == 2 ){
-		  int ivff[3];
-		  for(int ii=0; ii < numVertices; ii++) ivff[ii] = mapnumv[ indices[ii] ];		
-		  (bbff++)->set(vff,ivff,physical);
-		  ie++;
-		}
-		if( type == 4 ){
-		  int ivff[4];
-		  for(int ii=0; ii < numVertices; ii++) ivff[ii] = mapnumv[ indices[ii] ];		
-		  (ttff++)->set(vff,ivff,physical);
-		  it++;
-		}
-		
-	      }
-	      delete [] data;
-	      numElementsPartial += numElms;
-	     
-	    }
-	    assert(it==nt);
-	    assert(ie==nbe);
-	  }
-	}
-        else if(!strncmp(&str[1], "NodeData", 8)) {
-	  if(verbosity) cout << " NodeData is not considered in freefem++ " << endl;
-	}
-	else if(!strncmp(&str[1], "ElementData", 11) ||
-		!strncmp(&str[1], "ElementNodeData", 15)){
-
-	 if(verbosity)  cout << " ElementData/ElementNodeData is not considered in freefem++ " << endl;
-	}
-      }
-    }
-    fclose(fp);
-
-    if(nt==0){
-      Mesh3 *Th3 = new Mesh3(nv,nbe,vff,bff);
-      return Th3;
-    }
-    else{
-      Mesh3 *Th3 = new Mesh3(nv,nt,nbe,vff,tff,bff);
-      return Th3;  
-    }
-    
-
-  }
-
-
-
-AnyType GMSH_LoadMesh3_Op::operator()(Stack stack)  const 
-{
- 
-  string * pffname= GetAny<string *>((*filename)(stack));
-  int renumsurf = 0; 
-  if( nargs[1] )  renumsurf = GetAny<long>( (*nargs[1])(stack) );
-  assert( renumsurf <=1 && renumsurf >= 0);
-
-  Mesh3 * Th3_t = GMSH_Load3( *pffname); 
- 
-  Th3_t->BuildGTree();  
-  Add2StackOfPtr2FreeRC(stack,Th3_t);
-		
-  return Th3_t;
-}
-
-<<<<<<< HEAD
-/*  class Init1 { public:
-  Init1();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init1 { public:
-  Init1();
-};
-
-LOADINIT(Init1)  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init1::Init1(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  
-  //if (verbosity)
-  if(verbosity>1) cout << " load: gmsh " << endl;
-  Global.Add("gmshload3","(",new GMSH_LoadMesh3);
-  Global.Add("gmshload","(",new GMSH_LoadMesh);
-  if(verbosity>1) cout << " load: gmsh  " << endl;
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/gsl.cpp.orig b/examples++-load/gsl.cpp.orig
deleted file mode 100644
index ee753f6..0000000
--- a/examples++-load/gsl.cpp.orig
+++ /dev/null
@@ -1,268 +0,0 @@
-// Example C++ function "myfunction", dynamically loaded into "load.edp"
-// ---------------------------------------------------------------------
-// $Id$
-//ff-c++-LIBRARY-dep:   gsl
-//ff-c++-cpp-dep:  
-#include <ff++.hpp>
-#include <gsl/gsl_sf.h>
-#include <gsl/gsl_sf_airy.h>
-#include <gsl/gsl_sf_bessel.h>
-#include <gsl/gsl_sf_clausen.h>
-#include <gsl/gsl_sf_coulomb.h>
-#include <gsl/gsl_sf_coupling.h>
-#include <gsl/gsl_sf_dawson.h>
-#include <gsl/gsl_sf_debye.h>
-#include <gsl/gsl_sf_dilog.h>
-#include <gsl/gsl_sf_elementary.h>
-#include <gsl/gsl_sf_ellint.h>
-#include <gsl/gsl_sf_elljac.h>
-#include <gsl/gsl_sf_erf.h>
-#include <gsl/gsl_sf_exp.h>
-#include <gsl/gsl_sf_expint.h>
-#include <gsl/gsl_sf_fermi_dirac.h>
-#include <gsl/gsl_sf_gamma.h>
-#include <gsl/gsl_sf_gegenbauer.h>
-#include <gsl/gsl_sf_hyperg.h>
-#include <gsl/gsl_sf_laguerre.h>
-#include <gsl/gsl_sf_lambert.h>
-#include <gsl/gsl_sf_legendre.h>
-#include <gsl/gsl_sf_log.h>
-#include <gsl/gsl_sf_mathieu.h>
-#include <gsl/gsl_sf_pow_int.h>
-#include <gsl/gsl_sf_psi.h>
-#include <gsl/gsl_sf_result.h>
-#include <gsl/gsl_sf_synchrotron.h>
-#include <gsl/gsl_sf_transport.h>
-#include <gsl/gsl_sf_trig.h>
-#include <gsl/gsl_sf_zeta.h>
-#include <gsl/gsl_poly.h>
-
-#include <gsl/gsl_bspline.h>
-#include <gsl/gsl_multifit.h>
-
-#include <gsl/gsl_rng.h>
-#include <gsl/gsl_randist.h>
-#include <gsl/gsl_cdf.h>
-
-#include "ff_gsl_awk.hpp"
-
-long gslpolysolvequadratic( KN_<double> a,  KN_<double> x)
-{
-  ffassert(a.N()>2 && x.N()>1);
-  return gsl_poly_solve_quadratic (a[2],a[1],a[0],&(x[0]),&(x[1]));
-}
-long gslpolysolvecubic( KN_<double> a,  KN_<double> x)
-{
-  ffassert(a.N()>2 && x.N()>2);
-  return gsl_poly_solve_cubic (a[2],a[1],a[0],&(x[0]),&(x[1]),&(x[2]));
-  }
-
-long gslpolycomplexsolve( KN_<double> a,  KN_<Complex> x)
-{
-  int n = a.N();
-  ffassert( n-1 <=  x.N()); 
-  KN<double> z(n*2); 
-  gsl_poly_complex_workspace * w= gsl_poly_complex_workspace_alloc (n);
-  int ok=gsl_poly_complex_solve (&a[0], n, w, &z[0]);
-  gsl_poly_complex_workspace_free (w);
-  for (long i = 0; i < n-1; i++)
-    x[i] = Complex(z[2*i], z[2*i+1]);
-  return ok; 
-}
-
-//  Ramdom part..
-AnyType  init_gsl_rng(Stack,const AnyType &x){
-  gsl_rng ** pp = PGetAny< gsl_rng *>(x);
-    *pp = gsl_rng_alloc(gsl_rng_default) ;
-    return  x;
-};
-AnyType delete_gsl_rng(Stack,const AnyType &x)
-{
- gsl_rng ** pp = PGetAny< gsl_rng *>(x);
- if(*pp) gsl_rng_free(*pp);
- *pp=0;
- return  Nothing;
-};
-
-gsl_rng ** init_gsl_rng_type( gsl_rng ** pp, const gsl_rng_type * g)
-{
-    *pp = gsl_rng_alloc(g) ;
-    return pp;
-}
-
-gsl_rng ** set_gsl_rng_type( gsl_rng ** pp, const gsl_rng_type * g)
-{
-    if(*pp) gsl_rng_free(*pp);
-    *pp = gsl_rng_alloc(g) ;
-    return pp;
-}
-gsl_rng ** set_gsl_cpy( gsl_rng ** pp, gsl_rng ** gg)
-{
-    if(*pp) gsl_rng_free(*pp);
-    *pp =  gsl_rng_clone(*gg);
-    return pp;
-}
-
-double gslrnguniform( gsl_rng ** pr) { return gsl_rng_uniform(*pr);}
-double gslrnguniformpos( gsl_rng ** pr) { return gsl_rng_uniform_pos(*pr);}
-long gsl_rng_get(gsl_rng ** pr){ return gsl_rng_get(*pr);}
-long gsl_rng_min(gsl_rng ** pr){ return gsl_rng_min(*pr);}
-long gsl_rng_max(gsl_rng ** pr){ return gsl_rng_max(*pr);}
-long gsl_rng_set(gsl_rng ** pr, long s){  gsl_rng_set(*pr,s);return 0; }
-string * gsl_name(Stack s,const gsl_rng_type * const & pr)
-  {return Add2StackOfPtr2Free(s,new string((*pr).name));}
-
-long  ngslrng =0;
-long  gslabort =1;
-static const gsl_rng_type ** gsl_rngpp; 
-
-const gsl_rng_type * gslrngtype(long i)
-{ 
-  ffassert(i >=0 && i < ngslrng);
-  return gsl_rngpp[i]; 
-}
-
-extern "C" {
-    void ffhandler (const char * reason,
-                  const char * file,
-                  int line,
-                    int gsl_errno);
-
-}
-void ffhandler (const char * reason,
-                const char * file,
-                int line,
-                int gsl_errno)
-{
-    cerr << "\n GSL Error = " << reason << " in " <<file << " at " << line << " err= " <<gsl_errno << endl;
-    if(gslabort) ExecError("Gsl errorhandler");
-}
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-$1 */
-using  namespace Fem2D ;
-static void Load_Init(){
-=======
-class Init { public:
-  Init();
-};
-LOADINIT(Init);
-using  namespace Fem2D ;
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    
-  Global.Add("gslpolysolvequadratic","(",new OneOperator2<long,KN_<double>,KN_<double> >( gslpolysolvequadratic));
-  Global.Add("gslpolysolvecubic","(",new OneOperator2<long,KN_<double>,KN_<double> >(gslpolysolvecubic));
-  Global.Add("gslpolycomplexsolve","(",new OneOperator2<long,KN_<double>,KN_<Complex> >( gslpolycomplexsolve));
-/* spline gsl and June 2013 */
-    /*
-    Dcl_Type<gsl_bspline_workspace**>(::InitializePtr<gsl_bspline_workspace **>,::DeletePtr<gsl_bspline_workspace **>);
-    zzzfff->Add("gslbspline",atype<gsl_bspline_workspace ** >());
-    TheOperators->Add("<-",
-                      new OneOperator3_<gsl_bspline_workspace **,gsl_bspline_workspace **,KNM_<double>  >(pBuilQFd<R1>),
-*/
-    // a faire ... interface randon of gsl ... 
-  gsl_rng_env_setup();
-  gsl_rngpp =gsl_rng_types_setup(); 
-  for(long  i=0; gsl_rngpp[i]; )
-    ngslrng=++i; 
-   Dcl_Type< gsl_rng **  > (init_gsl_rng,delete_gsl_rng);
-   Dcl_Type< const gsl_rng_type * > (); //gsl_rng_type
-   Global.New("ngslrng",CConstant<long>(ngslrng)); 
-//
-// all gsl random generator .???? .
-/*
-Global.New("gslrngborosh13",CConstant<const gsl_rng_type *>(gsl_rng_borosh13));
-Global.New("gslrngcoveyou",CConstant<const gsl_rng_type *>(gsl_rng_coveyou));
-Global.New("gslrngcmrg",CConstant<const gsl_rng_type *>(gsl_rng_cmrg));
-Global.New("gslrngfishman18",CConstant<const gsl_rng_type *>(gsl_rng_fishman18));
-Global.New("gslrngfishman20",CConstant<const gsl_rng_type *>(gsl_rng_fishman20));
-Global.New("gslrngfishman2x",CConstant<const gsl_rng_type *>(gsl_rng_fishman2x));
-Global.New("gslrnggfsr4",CConstant<const gsl_rng_type *>(gsl_rng_gfsr4));
-Global.New("gslrngknuthran",CConstant<const gsl_rng_type *>(gsl_rng_knuthran));
-Global.New("gslrngknuthran2",CConstant<const gsl_rng_type *>(gsl_rng_knuthran2));
-Global.New("gslrngknuthran2002",CConstant<const gsl_rng_type *>(gsl_rng_knuthran2002));
-Global.New("gslrnglecuyer21",CConstant<const gsl_rng_type *>(gsl_rng_lecuyer21));
-Global.New("gslrngminstd",CConstant<const gsl_rng_type *>(gsl_rng_minstd));
-Global.New("gslrngmrg",CConstant<const gsl_rng_type *>(gsl_rng_mrg));
-Global.New("gslrngmt19937",CConstant<const gsl_rng_type *>(gsl_rng_mt19937));
-Global.New("gslrngmt199371999",CConstant<const gsl_rng_type *>(gsl_rng_mt19937_1999));
-Global.New("gslrngmt199371998",CConstant<const gsl_rng_type *>(gsl_rng_mt19937_1998));
-Global.New("gslrngr250",CConstant<const gsl_rng_type *>(gsl_rng_r250));
-Global.New("gslrngran0",CConstant<const gsl_rng_type *>(gsl_rng_ran0));
-Global.New("gslrngran1",CConstant<const gsl_rng_type *>(gsl_rng_ran1));
-Global.New("gslrngran2",CConstant<const gsl_rng_type *>(gsl_rng_ran2));
-Global.New("gslrngran3",CConstant<const gsl_rng_type *>(gsl_rng_ran3));
-Global.New("gslrngrand",CConstant<const gsl_rng_type *>(gsl_rng_rand));
-Global.New("gslrngrand48",CConstant<const gsl_rng_type *>(gsl_rng_rand48));
-Global.New("gslrngrandom128bsd",CConstant<const gsl_rng_type *>(gsl_rng_random128_bsd));
-Global.New("gslrngrandom128glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random128_glibc2));
-Global.New("gslrngrandom128libc5",CConstant<const gsl_rng_type *>(gsl_rng_random128_libc5));
-Global.New("gslrngrandom256bsd",CConstant<const gsl_rng_type *>(gsl_rng_random256_bsd));
-Global.New("gslrngrandom256glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random256_glibc2));
-Global.New("gslrngrandom256libc5",CConstant<const gsl_rng_type *>(gsl_rng_random256_libc5));
-Global.New("gslrngrandom32bsd",CConstant<const gsl_rng_type *>(gsl_rng_random32_bsd));
-Global.New("gslrngrandom32glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random32_glibc2));
-Global.New("gslrngrandom32libc5",CConstant<const gsl_rng_type *>(gsl_rng_random32_libc5));
-Global.New("gslrngrandom64bsd",CConstant<const gsl_rng_type *>(gsl_rng_random64_bsd));
-Global.New("gslrngrandom64glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random64_glibc2));
-Global.New("gslrngrandom64libc5",CConstant<const gsl_rng_type *>(gsl_rng_random64_libc5));
-Global.New("gslrngrandom8bsd",CConstant<const gsl_rng_type *>(gsl_rng_random8_bsd));
-Global.New("gslrngrandom8glibc2",CConstant<const gsl_rng_type *>(gsl_rng_random8_glibc2));
-Global.New("gslrngrandom8libc5",CConstant<const gsl_rng_type *>(gsl_rng_random8_libc5));
-Global.New("gslrngrandombsd",CConstant<const gsl_rng_type *>(gsl_rng_random_bsd));
-Global.New("gslrngrandomglibc2",CConstant<const gsl_rng_type *>(gsl_rng_random_glibc2));
-Global.New("gslrngrandomlibc5",CConstant<const gsl_rng_type *>(gsl_rng_random_libc5));
-Global.New("gslrngrandu",CConstant<const gsl_rng_type *>(gsl_rng_randu));
-Global.New("gslrngranf",CConstant<const gsl_rng_type *>(gsl_rng_ranf));
-Global.New("gslrngranlux",CConstant<const gsl_rng_type *>(gsl_rng_ranlux));
-Global.New("gslrngranlux389",CConstant<const gsl_rng_type *>(gsl_rng_ranlux389));
-Global.New("gslrngranlxd1",CConstant<const gsl_rng_type *>(gsl_rng_ranlxd1));
-Global.New("gslrngranlxd2",CConstant<const gsl_rng_type *>(gsl_rng_ranlxd2));
-Global.New("gslrngranlxs0",CConstant<const gsl_rng_type *>(gsl_rng_ranlxs0));
-Global.New("gslrngranlxs1",CConstant<const gsl_rng_type *>(gsl_rng_ranlxs1));
-Global.New("gslrngranlxs2",CConstant<const gsl_rng_type *>(gsl_rng_ranlxs2));
-Global.New("gslrngranmar",CConstant<const gsl_rng_type *>(gsl_rng_ranmar));
-Global.New("gslrngslatec",CConstant<const gsl_rng_type *>(gsl_rng_slatec));
-Global.New("gslrngtaus",CConstant<const gsl_rng_type *>(gsl_rng_taus));
-Global.New("gslrngtaus2",CConstant<const gsl_rng_type *>(gsl_rng_taus2));
-Global.New("gslrngtaus113",CConstant<const gsl_rng_type *>(gsl_rng_taus113));
-Global.New("gslrngtransputer",CConstant<const gsl_rng_type *>(gsl_rng_transputer));
-Global.New("gslrngtt800",CConstant<const gsl_rng_type *>(gsl_rng_tt800));
-Global.New("gslrnguni",CConstant<const gsl_rng_type *>(gsl_rng_uni));
-Global.New("gslrnguni32",CConstant<const gsl_rng_type *>(gsl_rng_uni32));
-Global.New("gslrngvax",CConstant<const gsl_rng_type *>(gsl_rng_vax));
-Global.New("gslrngwaterman14",CConstant<const gsl_rng_type *>(gsl_rng_waterman14));
-Global.New("gslrngzuf",CConstant<const gsl_rng_type *>(gsl_rng_zuf));
-Global.New("gslrngdefault",CConstant<const gsl_rng_type *>(gsl_rng_default));
-*/    
-    
-zzzfff->Add("gslrng",atype<gsl_rng ** >());
-TheOperators->Add("<-",new OneOperator2<gsl_rng  **,gsl_rng  **, const gsl_rng_type *  >(init_gsl_rng_type));
-TheOperators->Add("=",new OneOperator2<gsl_rng  **,gsl_rng  **, const gsl_rng_type *  >(set_gsl_rng_type));
-TheOperators->Add("=",new OneOperator2<gsl_rng  **,gsl_rng  **, gsl_rng  **   >(set_gsl_cpy));
-//map_type[typeid(gsl_rng *).name()]->AddCast(   new E_F1_funcT<gsl_rng *,gsl_rng **>(UnRef<gsl_rng*>) );
-//map_type[typeid(gsl_rng *).name()]->AddCast(   new E_F1_funcT<gsl_rng *,gsl_rng **>(UnRef<gsl_rng*>) );
-
-Global.Add("gslrnguniform","(",new OneOperator1<double,gsl_rng **>( gslrnguniform));
-Global.Add("gslrnguniformpos","(",new OneOperator1<double,gsl_rng **>( gslrnguniformpos));
-    
-Global.Add("gslname","(",new OneOperator1s_<string * ,const gsl_rng_type *>( gsl_name));
-Global.Add("gslrngget","(",new OneOperator1<long   ,gsl_rng **>( gsl_rng_get));
-Global.Add("gslrngmin","(",new OneOperator1<long   ,gsl_rng **>( gsl_rng_min));
-Global.Add("gslrngmax","(",new OneOperator1<long   ,gsl_rng **>( gsl_rng_max));
-Global.Add("gslrngset","(",new OneOperator2<long   ,gsl_rng **, long>(gsl_rng_set));
- Global.Add("gslrngtype","(",new OneOperator1<const gsl_rng_type * ,long>(gslrngtype));     
-  init_gsl_sf() ;
- gslabort=1;
- Global.New("gslabortonerror",CConstant<long*>(&gslabort));
-   
- gsl_set_error_handler(ffhandler);
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/ilut.cpp.orig b/examples++-load/ilut.cpp.orig
deleted file mode 100644
index f463e02..0000000
--- a/examples++-load/ilut.cpp.orig
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * ilut.cpp: ILUT plugin for FreeFem++ wrapping GMM++ functions.
- * Copyright (C) 2008, Alessandro Proverbio and David Radice.
- *
- * ilut.cpp is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1
- * as published by the Free Software Foundation;
- *
- * ilut.cpp  is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with ilut.cpp; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-//ff-c++-LIBRARY-dep:   gmm
-//ff-c++-cpp-dep: 
-
-#include <cmath>
-#include <iostream>
-#include "AFunction.hpp"
-#include "RNM.hpp"
-#include "error.hpp"
-#include <gmm/gmm.h>
-#include <vector>
-
-#define ILUT_K_FILLIN 5
-#define ILUT_EPS 1e-6
-
-#define PRINT(VAR) cout << VAR << endl
-
-using namespace std;
-using namespace gmm;
-
-typedef ilut_precond<row_matrix<rsvector<double> > > my_ilut_precond;
-
-class ILUT;
-
-class ILUT_Matrix {
-	private:
-		long * _i;
-		long * _j;
-		double * _c;
-
-		long _nelem;
-		long _size;
-	public:
-		ILUT_Matrix(KN<long> * const & i,
-				KN<long> * const & j,
-				KN<double> * const & c): _i(*i),
-					_j(*j),
-					_c(*c),
-					_nelem(c->N()) {
-			_size=max(i->max(),j->max());
-			++_size;
-		}
-	friend class ILUT;
-};
-
-class ILUT_Vector {
-	private:
-		double * _v;
-		long _size;
-	public:
-		ILUT_Vector(KN<double> * const & c) : _v(*c),_size(c->N()) {}
-	friend class ILUT;
-};
-
-class ILUT {
-	private:
-		static my_ilut_precond * p;
-		static long size;
-	public:
-		static long make_ilut_precond(ILUT_Matrix const & m) {
-			row_matrix<rsvector<double> > A(m._size,m._size);
-			row_matrix<wsvector<double> > w_A(m._size,m._size);
-
-			for(long k(0);k<m._nelem;++k) {
-				w_A[m._i[k]][m._j[k]]=m._c[k];
-			}
-
-			copy(w_A,A);  // A <-- w_A
-			delete p;
-			p = new my_ilut_precond(A,ILUT_K_FILLIN,ILUT_EPS);
-
-			size=m._size;
-
-			return 0;
-		}
-		static void apply_ilut_precond(ILUT_Vector const & v,
-				KN<double> * const & x) {
-
-			vector<double> vv(size);
-			vector<double> xx(size);
-
-			for(long k=0;k<size;++k) {
-				vv[k]=v._v[k];
-			}
-
-			mult(*p,vv,xx); // xx <-- p.solve(vv)
-
-			for(long k=0;k<size;++k) {
-				(*x)[k]=xx[k];
-			}
-
-			// If used for the full vector fill the remaining components
-			for(long k=0;k+size<x->N();++k) {
-				(*x)[k+size]=v._v[k+size];
-			}
-		}
-
-};
-
-my_ilut_precond * ILUT::p=0;
-long ILUT::size=0;
-
-long * make_ilut_precond_eq(long * const & errorcode,
-		ILUT_Matrix const & mat) {
-	*errorcode=ILUT::make_ilut_precond(mat);
-	return errorcode;
-}
-
-KN<double> * apply_ilut_precond_eq(KN<double> * const & x,
-		ILUT_Vector const & vec) {
-	ILUT::apply_ilut_precond(vec, x);
-	return x;
-}
-
-ILUT_Matrix make_ilut_precond(KN<long> * const & i,
-		KN<long> * const & j,
-		KN<double> * const & v) {
-	return ILUT_Matrix(i,j,v);
-}
-
-ILUT_Vector apply_ilut_precond(KN<double> * const & v) {
-	return ILUT_Vector(v);
-}
-
-<<<<<<< HEAD
-static void Load_Init() {
-  if(verbosity) cout << " -- load ilut init : " << endl;
-  Dcl_Type<ILUT_Matrix>();
-  Dcl_Type<ILUT_Vector>();
-  Global.Add("applyIlutPrecond","(",new OneOperator1_<ILUT_Vector,KN<double>* >(apply_ilut_precond));
-  Global.Add("makeIlutPrecond","(", new OneOperator3_<ILUT_Matrix,KN<long> *,KN<long> *,KN<double> *>(make_ilut_precond));
-  TheOperators->Add("=", new OneOperator2_<long *,long *,ILUT_Matrix>(make_ilut_precond_eq));
-  TheOperators->Add("=", new OneOperator2_<KN<double> *, KN<double> *,ILUT_Vector>(apply_ilut_precond_eq));
-}
-
-LOADFUNC(Load_Init)
-=======
-class IluInit {
-	public:
-		IluInit() {
-		  if(verbosity) cout << " -- load ilut init : " << endl;
-			Dcl_Type<ILUT_Matrix>();
-			Dcl_Type<ILUT_Vector>();
-			Global.Add("applyIlutPrecond","(",new OneOperator1_<ILUT_Vector,KN<double>* >(apply_ilut_precond));
-			Global.Add("makeIlutPrecond","(", new OneOperator3_<ILUT_Matrix,KN<long> *,KN<long> *,KN<double> *>(make_ilut_precond));
-			TheOperators->Add("=", new OneOperator2_<long *,long *,ILUT_Matrix>(make_ilut_precond_eq));
-			TheOperators->Add("=", new OneOperator2_<KN<double> *, KN<double> *,ILUT_Vector>(apply_ilut_precond_eq));
-		}
-};
-
-//static IluInit init;
-LOADINIT(IluInit) 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/iovtk.cpp b/examples++-load/iovtk.cpp
index 419fe19..dde51d9 100644
--- a/examples++-load/iovtk.cpp
+++ b/examples++-load/iovtk.cpp
@@ -829,7 +829,7 @@ void VTU_WRITE_MESH( FILE *fp, const Mesh3 &Th, bool binary, int datasize, bool
   // Elemenents
   BEGINTYPE_VTU( fp, "Cells");
   VTU_DATA_ARRAY( fp, "Int32", "connectivity" , binary); // rgmin=0 ; rgmax=nc-1;
-  // begin :: connectivit� des elements
+  // begin :: connectivit� des elements
   if(binary){
     int IntType=4;
     if(verbosity > 1) printf("writting tetrahedre elements \n");
@@ -888,7 +888,7 @@ void VTU_WRITE_MESH( FILE *fp, const Mesh3 &Th, bool binary, int datasize, bool
     }
   }
   if(binary) fprintf(fp, "\n");
-  // end :: connectivit� des elements
+  // end :: connectivit� des elements
   ENDTYPE_VTU( fp, "DataArray");
   
   VTU_DATA_ARRAY( fp, "Int32", "offsets" , binary); // rgmin=; rgmax=;
@@ -1192,7 +1192,7 @@ Mesh * VTK_Load(const string & filename, bool bigEndian)
     case 5:  // Triangle
       nt++; // 2D
       break;   
-    case 10: // Tetrah�dre
+    case 10: // Tetrah�dre
       cout << "We are loading a three dimensional mesh. Three is no tetrahedron." << endl;
       ExecError("error in reading vtk file");
       break;  
@@ -2705,7 +2705,7 @@ Mesh3 * VTK_Load3(const string & filename, bool bigEndian)
       case 5:  // Triangle
 	nbe++; // 3D
 	break;   
-      case 10: // Tetrah�dre
+      case 10: // Tetrah�dre
 	nt++;
 	break;  
       default: 
@@ -2746,7 +2746,7 @@ Mesh3 * VTK_Load3(const string & filename, bool bigEndian)
 	}
 	(bbff++)->set(vff, ivb, label);
 	break;   
-      case 10: // Tetrah�dre
+      case 10: // Tetrah�dre
 	assert( (firstCell[i+1]-firstCell[i]) == 4 );
 	for(int j=firstCell[i]; j<firstCell[i+1]; j++){
     	  ivt[j-firstCell[i]] = IntCells[j];
diff --git a/examples++-load/iovtk.cpp.orig b/examples++-load/iovtk.cpp.orig
deleted file mode 100644
index 9468f47..0000000
--- a/examples++-load/iovtk.cpp.orig
+++ /dev/null
@@ -1,4049 +0,0 @@
-// ORIG-DATE:   September 2009
-// -*- Mode : c++ -*%
-//
-// SUMMARY  : READ/WRITE MESH AND SOLUTION IN FORMAT VTK    
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the #License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-//  FH   July 2009
-//   comment all
-//       Th3_t->BuildBound();
-//       Th3_t->BuildAdj();
-//       Th3_t->Buildbnormalv();  
-//       Th3_t->BuildjElementConteningVertex();
-//   is now in the constructor of Mesh3 to be consistante. 
-//  FH  nev 2009
-//  correct  gestion of nameofuser    variable
-//  JM :: VTU extension file
-#include  <iostream>
-#include  <cfloat>
-#include <cmath>
-#include <complex>
-using namespace std;
-
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-using namespace std;  
-#include "rgraph.hpp"
-#include "RNM.hpp"
-#include "fem.hpp"
-
-
-#include "FESpacen.hpp" 
-#include "FESpace.hpp" 
-
-#include "MatriceCreuse_tpl.hpp"
-#include "MeshPoint.hpp"
-#include "Operator.hpp" 
-#include "lex.hpp"
-
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-//#include "LayerMesh.hpp"
-//#include "TransfoMesh_v2.hpp"
-#include "msh3.hpp"
-//#include "GQuadTree.hpp"
-//#include "lex.hpp"
-#include <set>
-#include <vector>
-#include <list>
-#include <fstream>
-
-using namespace Fem2D;
-
-static const char* EncodeB64_LoopByte ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ";
-
-static const char* EncodeB64_Mul4Byte ="AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSSTTTTUUUUVVVVWWWWXXXXYYYYZZZZaaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmmnnnnooooppppqqqqrrrrssssttttuuuuvvvvwwwwxxxxyyyyzzzz0000111122223333444455556666777788889999++++//// ";
-
-// =====================
-// Test for BigEndian
-// =====================
-bool isBigEndian() { 
- 
-  const int i=1;
-  char *c=(char *)&i;
-  if (c[sizeof(int)-1]==0) return false;
-  else return true;
-}
-
-
-void encodeB64_3Bytes(unsigned char *in3Bytes, unsigned char *out4Bytes) {
-   if (in3Bytes==NULL || out4Bytes==NULL) return;
-   out4Bytes[0]=EncodeB64_Mul4Byte[in3Bytes[0]];
-   out4Bytes[1]=EncodeB64_LoopByte[((in3Bytes[0]&0x03)<<4)+
-                                 ((in3Bytes[1]&0xf0)>>4)];
-   out4Bytes[2]=EncodeB64_LoopByte[((in3Bytes[1]&0x0f)<<2)+
-                                 ((in3Bytes[2]&0xc0)>>6)];
-   out4Bytes[3]=EncodeB64_LoopByte[in3Bytes[2]];
-}
-
-// ===========================
-//                                   
-// ===========================
-int encodeB64(int n, unsigned char *inBytes, unsigned char *outBytes) {
-  if (inBytes==NULL || outBytes==NULL || n<=0) return 0;
-  int m=n-(n%3);
-  int ii, jj;
-  jj=0;
-  for ( ii=0; ii<m; ii+=3 ){  
-    encodeB64_3Bytes(inBytes+ii,outBytes+jj);
-    jj=jj+4;
-  }
-  if (m!=n) {
-   unsigned char lastBytes[3] = {0,0,0};
-   // give last (n-m) chars
-   lastBytes[0]=inBytes[ii];
-   if((n-m)==2) lastBytes[1]=inBytes[ii+1];
-   // encoding chars
-   encodeB64_3Bytes(lastBytes,outBytes+jj);
-   // definition of bytes which is not encoding 
-   outBytes[jj+3]='=';
-   if ((n-m)==1) outBytes[jj+2]='=';
-   jj=jj+4;
-  }
-  return jj;
-}
-
-int runEncodeB64(int n, unsigned char *inBytes, unsigned char *outBytes) {
-  static int nbcached=0;
-  static unsigned char charCache[3];
-  
-  int l=0;
-  
-  int nn=n;
-  int nbcachedInBytes=0;
-
-  if( n == 0 ){ 
-    // no bytes are given :: the bytes cached is encoding 
-    if (nbcached>0){
-       l=encodeB64(nbcached,charCache,outBytes);
-       nbcached=0;
-    } 
-  }
-  else{
-    // bytes are given :: 
-    if (nbcached>0) {
-      // give chars to the Cache 
-      if (nn>0) { 
-	charCache[nbcached++]=inBytes[nbcachedInBytes];
-	nbcachedInBytes++;
-	nn--; 
-      }
-      if(nbcached<3 && nn>0) { 
-	charCache[nbcached++]=inBytes[nbcachedInBytes];
-	nbcachedInBytes++;    
-	nn--; 
-      }
-      
-      if(nbcached==3) {
-	// the cache is filled :: encode bytes
-	l=encodeB64(nbcached,charCache,outBytes);
-	outBytes+=l;
-	nbcached=0;
-      }
-    }
-    if(nn==0) return l; 
-    
-    unsigned char *newInBytes  = &inBytes[nbcachedInBytes];
-    //unsigned char *newOutBytes = &outBytes[l];
-    int m=nn-nn%3;
-    if( nn==m) {
-      l+=encodeB64(nn,newInBytes,outBytes);
-      return l;
-    }
-    // cache left overs
-    charCache[nbcached++]=newInBytes[m];
-    if (m+1<nn) charCache[nbcached++]=newInBytes[m+1];
-    l+=encodeB64(m,newInBytes,outBytes);
-  }
-  return l;
-}
-
-char * newcopy(const char * s)
-{
-  char *r(new char  [strlen(s)+1]);
-  strcpy(r, s);
-  return r;
-}
-
-char * newcopy(const string * s)
-{
-  char *r(new char [s->size()+1]);
-  strcpy(r, s->c_str() );
-  return r;
-}
-
-// Tables of element type of VTK considered in Freefem++
-static const int nvElemVTK[25] = {  1, 0, 2, 0, 3, 
-				    0, 0, 0, 0, 4, 
-				    0, 0, 0, 0, 0, 
-				    0, 0, 0, 0, 0, 
-				    0, 0, 0, 0, 0 };   
-
-// we considerer only vertex, edges, triangles and tetrahedrons in Freefem++
-//  1  :: Vertex Corner
-//  3  :: Edge/line
-//  5  :: triangles
-// 10  :: tetrahedrons
-
-enum FFppCells{VTK_EDGE=3, VTK_TRI=5, VTK_TET=10};
-
-static const int NbColorTable=30;
-// Table of colors for Labels of elements :: RGB
-static const float ColorTable[30][3] = {  
-  {1.0,0.0,0.0},  /* red    */
-  {1.0,1.0,0.0},  /* yellow */
-  {1.0,0.0,1.0},  /* ????   */ 
-  {0.0,1.0,0.0},  /* green  */ 
-  {0.0,1.0,1.0},  /* cyan   */ 
-  {0.0,0.0,1.0},  /* blue   */ 
-  {1.0,  0.5, 0.0},  /* orange */
-  {0.5,  0.0, 1.0},  /* violet */ 
-  {1.0,  0.0, 0.5},  /* ???  */
-  {0.5,  1.0, 0.0},  /* ???  */
-  {0.0,  1.0, 0.5},  /* ???  */
-  {0.0,  0.5, 1.0},  /* ???  */
-  {1.0,  0.5, 0.5},  /*  ???    */
-  {1.0,  1.0, 0.5},  /*  ???    */
-  {1.0,  0.5, 1.0},  /*  ???    */ 
-  {0.5,  1.0, 0.5},  /*  ???    */ 
-  {0.5,  1.0, 1.0},  /*  ???   */ 
-  {0.5,  0.5, 1.0},  /*  ???   */ 
-  {0.4,  0.0, 0.0},  /* dark blue    */
-  {0.4,  0.4, 0.0},  /* dark yellow */
-  {0.4,  0.0, 0.4},  /* dark ????   */ 
-  {0.0,  0.4, 0.0},  /* dark green  */ 
-  {0.0,  0.4, 0.4},  /* dark cyan   */ 
-  {0.0,  0.0, 0.4},  /* dark blue   */
-  {0.8,  0.0, 0.0},  /*  ???    */
-  {0.8,  0.8, 0.0},  /*  ???    */
-  {0.8,  0.0, 0.8},  /*  ???    */ 
-  {0.0,  0.8, 0.0},  /*  ???    */ 
-  {0.0,  0.8, 0.8},  /*  ???    */ 
-  {0.0,  0.0, 0.8},  /*  ???    */
-};  // a voir F.Hecht
-
-void SwapBytes(char *array, int size, int n)
-  {
-    char *x = new char[size];
-    for(int i = 0; i < n; i++) {
-      char *a = &array[i * size];
-      memcpy(x, a, size);
-      for(int c = 0; c < size; c++)
-        a[size - 1 - c] = x[c];
-    }
-    delete [] x;
-  }
-
-
-//==============================================
-// Fichier Format .vtu
-//==============================================
-// general functions
-
-void VTU_BEGIN( FILE *fp ){ 
-  string version="1.0";
-  fprintf(fp,"<?xml version=\"%s\"?>\n",version.c_str());
-}
-
-void VTU_VTKFILE( FILE *fp, bool bigEndian){ 
-  string type("UnstructuredGrid");
-  string byte_big("BigEndian");
-  string byte_little("LittleEndian");
-  string version("0.1");
-
-  fprintf(fp,"<VTKFile type=\"%s\"",type.c_str());
-  fprintf(fp," version=\"%s\"",version.c_str()); 
-  if(bigEndian)
-    fprintf(fp," byte_order=\"%s\">\n",byte_big.c_str());
-  else
-    fprintf(fp," byte_order=\"%s\">\n", byte_little.c_str()); 
-
-  //fprintf(fp,"<%s>\n",type.c_str());
-}
-
-void VTU_PIECE( FILE *fp, const int &nv, const int &nc){ 
-  fprintf(fp,"<Piece NumberOfPoints=\"%d\" NumberOfCells=\"%d\">\n",nv,nc);
-}
-
-
-void VTU_DATA_ARRAY( FILE *fp, const string &type,const string &name,bool binary){ 
-  fprintf(fp,"<DataArray type=\"%s\"",type.c_str());
-  fprintf(fp," Name=\"%s\"",name.c_str());
- 
-  if(binary) fprintf(fp," format=\"binary\"");  
-  else fprintf(fp," format=\"ascii\"");
-  fprintf(fp,">\n");
-}
-
-void VTU_DATA_ARRAY( FILE *fp, const string &type,const string &name,const long &noc,bool binary){ 
-  fprintf(fp,"<DataArray type=\"%s\"",type.c_str());
-  fprintf(fp," Name=\"%s\"",name.c_str());
-  fprintf(fp," NumberOfComponents=\"%ld\"",noc);
-  
-  if(binary) fprintf(fp," format=\"binary\"");
-  else fprintf(fp," format=\"ascii\"");
-
-  fprintf(fp,">\n");
-}
-
-void BEGINTYPE_VTU( FILE *fp, string begintype){ 
-  fprintf(fp,"<%s>\n",begintype.c_str());
-}
-
-void ENDTYPE_VTU( FILE *fp , string endtype){ 
-  fprintf(fp,"</%s>\n",endtype.c_str());
-}
-
-
-void VTU_WRITE_MESH( FILE *fp, const Mesh &Th, bool binary, int datasize, bool surface, bool bigEndian){
-  int nc,nv,nconnex;
-  if(surface) nc=Th.nt+Th.neb;
-  else nc=Th.nt;
-
-  if(surface) nconnex=3*Th.nt+2*Th.neb;
-  else nconnex=3*Th.nt;
-
-  unsigned char ElementChars[256];
-  fprintf(fp,"<?xml version=\"1.0\"?>\n");
-  fprintf(fp,"<VTKFile type=\"UnstructuredGrid\" ");
-  if (isBigEndian())
-    fprintf(fp,"byte_order=\"BigEndian\">\n"); 
-  else
-    fprintf(fp," byte_order=\"LittleEndian\">\n");  
-  
-  fprintf(fp,"<UnstructuredGrid>\n");
-  fprintf(fp,"<Piece NumberOfPoints=\"%d\" NumberOfCells=\" %d\">\n",Th.nv,nc);
-  
-  fprintf(fp,"<Points>\n");
-  fprintf(fp,"<DataArray type=\"Float32\" NumberOfComponents=\"3\"");
-  
-  // A definir coord 
-
-  float *coord= new float[3*Th.nv];
-  for(int ii=0; ii<Th.nv; ii++){
-    coord[3*ii] = Th.vertices[ii].x; 
-    coord[3*ii+1] = Th.vertices[ii].y;
-    coord[3*ii+2] = 0;//Th.vertices[ii].z;
-  }
-
-  if( binary ) {
-    fprintf(fp," format=\"binary\">\n	");
-    {
-      unsigned nbytes= 3*Th.nv*sizeof(float);
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      for (long i=0; i<Th.nv; i++){
-	l=runEncodeB64(3*sizeof(float),(unsigned char *)(coord+3*i),ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-    }
-  } 
-  else {
-    fprintf(fp," format=\"ascii\">\n");
-    for (long i=0; i<Th.nv; i++){
-      fprintf(fp,"%f %f %f ",coord[i*3+0],coord[i*3+1],coord[i*3+2]); 
-    }  
-  }  
-  fprintf(fp,"\n</DataArray>\n"); 
-  fprintf(fp,"</Points>\n");
-  fprintf(fp,"<Cells>\n"); 
-
-  delete [] coord;
-  long *ien= new long[nconnex];
-
-  for (long it=0; it<Th.nt; it++){ 
-    const Mesh::Triangle &K(Th.t(it) );
-    for(int ii=0; ii<3; ii++){
-      ien[3*it+ii] = Th.operator()(K[ii]);
-    } 			    
-  }
-  if(surface){     
-    for(long ibe=0; ibe<Th.neb; ibe++){
-      const Mesh::BorderElement &K( Th.be(ibe) );
-      for(int ii=0; ii<2; ii++){
-	ien[3*Th.nt+2*ibe+ii] = Th.operator()(K[ii]);
-      } 	
-    }
-  }
-  fprintf(fp,"<DataArray type=\"Int32\" Name=\"connectivity\" ");
-
-  // need ien vector
-  if( binary ){
-    fprintf(fp,"format=\"binary\">\n	");
-    unsigned nbytes= nconnex*sizeof(int);
-    int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-    ElementChars[l]=0;
-    fwrite(&ElementChars,l,1,fp);
-    for (long i=0; i<Th.nt; i++){       
-      l=runEncodeB64(sizeof(int),(unsigned char *)(ien+i*3),ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      
-      l=runEncodeB64(sizeof(int),(unsigned char *)(ien+i*3+1),ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      
-      l=runEncodeB64(sizeof(int),(unsigned char *)(ien+i*3+2),ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-    }
-    if(surface){
-      for (long i=0; i<Th.neb; i++){ 
-	l=runEncodeB64(sizeof(int),(unsigned char *)(ien+3*Th.nt+i*2),ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      
-	l=runEncodeB64(sizeof(int),(unsigned char *)(ien+3*Th.nt+i*2+1),ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      }
-    }
-    // flush buffer
-    l=runEncodeB64(0,NULL,ElementChars);
-    ElementChars[l]=0;
-    fwrite(&ElementChars,l,1,fp);
-  }
-  else{
-    fprintf(fp," format=\"ascii\">\n");   
-    for (long i=0; i<Th.nt; i++){
-      fprintf(fp,"%ld %ld %ld ",ien[i*3+0],ien[i*3+1],ien[i*3+2]); 
-    }  
-    if(surface){
-      for (long i=0; i<Th.neb; i++){
-	fprintf(fp,"%ld %ld ",ien[i*2+3*Th.nt],ien[i*2+3*Th.nt+1]); 
-      }  
-    }
-  }
-  fprintf(fp,"\n</DataArray>\n");
-  delete [] ien;
-
-  fprintf(fp,"<DataArray type=\"Int32\" Name=\"offsets\" ");  
-  if(binary){
-    fprintf(fp,"format=\"binary\">\n	");    
-    {
-      unsigned nbytes= nc*sizeof(int);
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      long nelem=3;
-      for (long i=nelem; i <= nelem*Th.nt; i+=nelem){   
-	l=runEncodeB64(sizeof(int),(unsigned char *)&i,ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      }
-      if(surface){
-	nelem=2;
-	for (long i=nelem+3*Th.nt; i <= nelem*Th.neb+3*Th.nt; i+=nelem){   
-	  l=runEncodeB64(sizeof(int),(unsigned char *)&i,ElementChars);
-	  ElementChars[l]=0;
-	  fwrite(&ElementChars,l,1,fp);
-	}
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);      
-    }
-  }
-  else{
-    fprintf(fp,"format=\"ascii\" >\n");
-    long nelem=3;
-    for (long i=nelem; i <= nelem*Th.nt; i+=nelem){   
-      fprintf(fp,"%ld ",i);
-    }
-    if(surface){
-      nelem=2;
-      for (long i=nelem; i <= nelem*Th.neb; i+=nelem){
-	fprintf(fp,"%ld ",i+3*Th.nt);
-      }
-    }
-  }
-  fprintf(fp,"\n</DataArray>\n");
-  
-  fprintf(fp,"<DataArray type=\"UInt8\" Name=\"types\" "); 
-  if(binary){
-    fprintf(fp,"format=\"binary\" >\n	");
-    {
-      unsigned nbytes= nc;
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      for (long i=0; i<Th.nt; i++){   
-	unsigned char types= 5;
-	l=runEncodeB64(1,&types,ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      }
-      if(surface){
-	for (long i=0; i<Th.neb; i++){   
-	  unsigned char types= 3;
-	  l=runEncodeB64(1,&types,ElementChars);
-	  ElementChars[l]=0;
-	  fwrite(&ElementChars,l,1,fp);
-	}
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-    }
-  }
-  else{
-    fprintf(fp,"format=\"ascii\" >\n");
-    for (long i=0; i<Th.nt; i++){   
-      unsigned int types= 5;
-      fprintf(fp,"%d ",types);
-    }
-    if(surface){
-      for (long i=0; i<Th.neb; i++){   
-	unsigned int types= 3;
-	fprintf(fp,"%d ",types);
-      }
-    }
-  }
-  fprintf(fp,"\n</DataArray>\n");
-  fprintf(fp,"</Cells>\n");
-  //fprintf(fp,"</Piece>\n"); 
-  //fprintf(fp,"</UnstructuredGrid>\n");
-  //fprintf(fp,"</VTKFile>\n");
-}
-
-
-void VTU_WRITE_MESH( FILE *fp, const Mesh3 &Th, bool binary, int datasize, bool surface, bool bigEndian){
-  int nc,nv,nconnex;
-  if(surface) nc=Th.nt+Th.nbe;
-  else nc=Th.nt;
-
-  if(surface) nconnex=4*Th.nt+3*Th.nbe;
-  else nconnex=4*Th.nt;
-
-  unsigned char ElementChars[256];
-  fprintf(fp,"<?xml version=\"1.0\"?>\n");
-  fprintf(fp,"<VTKFile type=\"UnstructuredGrid\" ");
-  if (isBigEndian())
-    fprintf(fp,"byte_order=\"BigEndian\">\n"); 
-  else
-    fprintf(fp," byte_order=\"LittleEndian\">\n");  
-  
-  fprintf(fp,"<UnstructuredGrid>\n");
-  fprintf(fp,"<Piece NumberOfPoints=\"%d\" NumberOfCells=\" %d\">\n",Th.nv,nc);
-  
-  fprintf(fp,"<Points>\n");
-  fprintf(fp,"<DataArray type=\"Float32\" NumberOfComponents=\"3\"");
-  
-  // A definir coord 
-
-  float *coord= new float[3*Th.nv];
-  for(int ii=0; ii<Th.nv; ii++){
-    coord[3*ii] = Th.vertices[ii].x; 
-    coord[3*ii+1] = Th.vertices[ii].y;
-    coord[3*ii+2] = Th.vertices[ii].z;
-  }
-
-  if( binary ) {
-    fprintf(fp," format=\"binary\">\n	");
-    {
-      unsigned nbytes= 3*Th.nv*sizeof(float);
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      for (long i=0; i<Th.nv; i++){
-	l=runEncodeB64(3*sizeof(float),(unsigned char *)(coord+3*i),ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-    }
-  } 
-  else {
-    fprintf(fp," format=\"ascii\">\n");
-    for (long i=0; i<Th.nv; i++){
-      fprintf(fp,"%f %f %f ",coord[i*3+0],coord[i*3+1],coord[i*3+2]); 
-    }  
-  }  
-  fprintf(fp,"\n</DataArray>\n"); 
-  fprintf(fp,"</Points>\n");
-  fprintf(fp,"<Cells>\n"); 
-
-  delete [] coord;
-  long *ien= new long[nconnex];
-
-  for (long it=0; it<Th.nt; it++){ 
-    const Tet &K(Th.elements[it]);
-    for(int ii=0; ii<4; ii++){
-      ien[4*it+ii] = Th.operator()(K[ii]);
-    } 			    
-  }
-  if(surface){     
-    for(long ibe=0; ibe<Th.nbe; ibe++){
-      const Triangle3 &K( Th.be(ibe) );
-      for(int ii=0; ii<3; ii++){
-	ien[4*Th.nt+3*ibe+ii] = Th.operator()(K[ii]);
-      } 	
-    }
-  }
-  fprintf(fp,"<DataArray type=\"Int32\" Name=\"connectivity\" ");
-
-  // need ien vector
-  if( binary ){
-    fprintf(fp,"format=\"binary\">\n	");
-    unsigned nbytes= nconnex*sizeof(int);
-    int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-    ElementChars[l]=0;
-    fwrite(&ElementChars,l,1,fp);
-    for (long i=0; i<Th.nt; i++){ 
-      long nelem=4;
-      l=runEncodeB64(sizeof(int),(unsigned char *)(ien+i*nelem),ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      
-      l=runEncodeB64(sizeof(int),(unsigned char *)(ien+i*nelem+1),ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      
-      l=runEncodeB64(sizeof(int),(unsigned char *)(ien+i*nelem+2),ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      
-      l=runEncodeB64(sizeof(int),(unsigned char *)(ien+i*nelem+3),ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-    }
-    if(surface){
-      for (long i=0; i<Th.nbe; i++){ 
-	long nelem=3;
-	l=runEncodeB64(sizeof(int),(unsigned char *)(ien+4*Th.nt+i*nelem),ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      
-	l=runEncodeB64(sizeof(int),(unsigned char *)(ien+4*Th.nt+i*nelem+1),ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-	
-	l=runEncodeB64(sizeof(int),(unsigned char *)(ien+4*Th.nt+i*nelem+2),ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      }
-    }
-    // flush buffer
-    l=runEncodeB64(0,NULL,ElementChars);
-    ElementChars[l]=0;
-    fwrite(&ElementChars,l,1,fp);
-  }
-  else{
-    fprintf(fp," format=\"ascii\">\n");   
-    for (long i=0; i<Th.nt; i++){
-      fprintf(fp,"%ld %ld %ld %ld ",ien[i*4+0],ien[i*4+1],ien[i*4+2],ien[i*4+3]);  // J.Morice 01/11 
-    }  
-    if(surface){
-      for (long i=0; i<Th.nbe; i++){
-	fprintf(fp,"%ld %ld %ld ",ien[i*3+4*Th.nt],ien[i*3+4*Th.nt+1],ien[i*3+4*Th.nt+2]); 
-      }  
-    }
-  }
-  fprintf(fp,"\n</DataArray>\n");
-  delete [] ien;
-
-  fprintf(fp,"<DataArray type=\"Int32\" Name=\"offsets\" ");  
-  if(binary){
-    fprintf(fp,"format=\"binary\">\n	");    
-    {
-      unsigned nbytes= nc*sizeof(int);
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      long nelem=4;
-      for (long i=nelem; i <= nelem*Th.nt; i+=nelem){   
-	l=runEncodeB64(sizeof(int),(unsigned char *)&i,ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      }
-      if(surface){
-	nelem=3;
-	for (long i=nelem+4*Th.nt; i <= nelem*Th.nbe+4*Th.nt; i+=nelem){   
-	  l=runEncodeB64(sizeof(int),(unsigned char *)&i,ElementChars);
-	  ElementChars[l]=0;
-	  fwrite(&ElementChars,l,1,fp);
-	}
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);      
-    }
-  }
-  else{
-    fprintf(fp,"format=\"ascii\" >\n");
-    long nelem=4;
-    for (long i=nelem; i <= nelem*Th.nt; i+=nelem){   
-      fprintf(fp,"%ld ",i);
-    }
-    if(surface){
-      nelem=3;
-      for (long i=nelem+4*Th.nt; i <= nelem*Th.nbe+4*Th.nt; i+=nelem){
-	fprintf(fp,"%ld ",i);
-      }
-    }
-  }
-  fprintf(fp,"\n</DataArray>\n");
-  
-  fprintf(fp,"<DataArray type=\"UInt8\" Name=\"types\" "); 
-  if(binary){
-    fprintf(fp,"format=\"binary\" >\n	");
-    {
-      unsigned nbytes= nc;
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      for (long i=0; i<Th.nt; i++){   
-	unsigned char types= 10;
-	l=runEncodeB64(1,&types,ElementChars);
-	ElementChars[l]=0;
-	fwrite(&ElementChars,l,1,fp);
-      }
-      if(surface){
-	for (long i=0; i<Th.nbe; i++){   
-	  unsigned char types= 5;
-	  l=runEncodeB64(1,&types,ElementChars);
-	  ElementChars[l]=0;
-	  fwrite(&ElementChars,l,1,fp);
-	}
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-    }
-  }
-  else{
-    fprintf(fp,"format=\"ascii\" >\n");
-    for (long i=0; i<Th.nt; i++){   
-      unsigned int types= 10;
-      fprintf(fp,"%d ",types);
-    }
-    if(surface){
-      for (long i=0; i<Th.nbe; i++){   
-	unsigned int types= 5;
-	fprintf(fp,"%d ",types);
-      }
-    }
-  }
-  fprintf(fp,"\n</DataArray>\n");
-  fprintf(fp,"</Cells>\n");
-  //fprintf(fp,"</Piece>\n"); 
-  //fprintf(fp,"</UnstructuredGrid>\n");
-  //fprintf(fp,"</VTKFile>\n");
-}
-
- 
-/* 
-void VTU_WRITE_MESH( FILE *fp, const Mesh3 &Th, bool binary, int datasize, bool surface, bool bigEndian){
-  int nc,nv;
-  if(surface) nc=Th.nt+Th.nbe;
-  else nc=Th.nt;
-  // Mesh
-  // Vertex coordinates
-  BEGINTYPE_VTU( fp, "Points");
-
-  if(datasize == sizeof(float)){    
-    VTU_DATA_ARRAY( fp, "Float32", "Points", 3 ,binary);
-  }
-  else if(datasize == sizeof(double)) {
-    VTU_DATA_ARRAY( fp, "Float64", "Points", 3 ,binary);
-  }
-
-  // write coordinate of vertices :: the same as extension .vtk
-  if(datasize == sizeof(float)){ 
-    for(unsigned int i = 0; i < Th.nv; i++){
-      const Vertex3 & P = Th.vertices[i];
-      float f[3];
-      f[0]=P.x;
-      f[1]=P.y;
-      f[2]=P.z;  
-      if(binary){
-	if(!bigEndian) SwapBytes((char*)&f, sizeof(float), 3);
-	fwrite(&f, sizeof(float), 3, fp);
-      }
-      else{
-	fprintf(fp,"%f %f %f\n",f[0],f[1],f[2]);
-      }
-    }  
-  }
-  else if(datasize == sizeof(double)){
-    for(unsigned int i = 0; i < Th.nv; i++){
-      const Vertex3 & P = Th.vertices[i];
-      double f[3];
-      f[0]=P.x;
-      f[1]=P.y;
-      f[2]=P.z;  
-      if(binary){
-	if(!bigEndian) SwapBytes((char*)&f, sizeof(double), 3);
-	fwrite(&f, sizeof(double), 3, fp);
-      }
-      else{
-	fprintf(fp,"%lf %lf %lf\n",f[0],f[1],f[2]);
-      }
-    }  
-  }
-  if(binary) fprintf(fp,"\n");
-  ENDTYPE_VTU( fp, "DataArray");
-  ENDTYPE_VTU( fp, "Points");
-
-  // Elemenents
-  BEGINTYPE_VTU( fp, "Cells");
-  VTU_DATA_ARRAY( fp, "Int32", "connectivity" , binary); // rgmin=0 ; rgmax=nc-1;
-  // begin :: connectivit� des elements
-  if(binary){
-    int IntType=4;
-    if(verbosity > 1) printf("writting tetrahedre elements \n");
-    for(int it=0; it< Th.nt; it++){    
-      const Tet & K( Th.elements[it] );
-      int iv[IntType];
-      
-      for(int ii=0; ii<IntType; ii++){
-	iv[ii] = Th.operator()(K[ii]);
-      }
-      
-      if(!bigEndian) SwapBytes((char*)&iv, sizeof(unsigned int), IntType);
-      fwrite(&iv, sizeof(unsigned int), IntType, fp);
-    }
-    if(surface){
-      if(verbosity > 1) printf("writting border elements \n");
-      IntType=3;
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	const Triangle3 &K( Th.be(ibe) );
-      
-	int iv[IntType];    
-	for(int ii=0; ii<IntType; ii++){
-	  iv[ii] = Th.operator()(K[ii]);
-	}
-	 
-	if(!bigEndian) SwapBytes((char*)&iv, sizeof(unsigned int), IntType);
-	fwrite(&iv, sizeof(unsigned int), IntType, fp);
-      }
-    }
-  }
-  else{
-    int IntType=4;
-    if(verbosity > 1) printf("writting tetrahedrons elements \n");
-    for(int it=0; it< Th.nt; it++){
-      const Tet &K( Th.elements[it] );
-
-      int iv[IntType];         
-      for(int ii=0; ii<IntType; ii++){
-	iv[ii] = Th.operator()(K[ii]);
-      }
-      fprintf(fp,"%d %d %d %d\n", iv[0],iv[1],iv[2],iv[3]);
-    }
-    if(surface){
-      if(verbosity > 1) printf("writting border elements \n");
-      IntType=3;
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	const Triangle3 &K( Th.be(ibe) );
-	
-	int iv[IntType];    
-	for(int ii=0; ii<IntType; ii++){
-	  iv[ii] = Th.operator()(K[ii]);
-	}
-	
-	fprintf(fp,"%d %d %d\n",iv[0],iv[1],iv[2]);
-      }
-    }
-  }
-  if(binary) fprintf(fp, "\n");
-  // end :: connectivit� des elements
-  ENDTYPE_VTU( fp, "DataArray");
-  
-  VTU_DATA_ARRAY( fp, "Int32", "offsets" , binary); // rgmin=; rgmax=;
-  if(binary){
-    int offsets=0;    
-    int offcell=4;
-    for(int it=0; it< Th.nt; it++){
-      offsets+=offcell;
-      if(!bigEndian) SwapBytes((char*)&offsets, sizeof(unsigned int), 1);
-      fwrite(&offsets, sizeof(unsigned int), 1, fp);
-    }
-    if(surface){   
-      offcell=3;
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	offsets+=offcell;
-	if(!bigEndian) SwapBytes((char*)&offsets, sizeof(unsigned int), 1);
-	fwrite(&offsets, sizeof(unsigned int), 1, fp);	
-      }
-    }
-  }
-  else{
-    int offsets=0;
-    int offcell=4;
-    for(int it=0; it< Th.nt; it++){   
-      offsets+=offcell;
-      fprintf(fp,"%d ",offsets);
-    }
-    if(surface){ 
-      offcell=3;
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	offsets+=offcell;
-	fprintf(fp,"%d ",offsets);
-      }
-    }
-  } 
-  fprintf(fp,"\n");
-  ENDTYPE_VTU( fp, "DataArray");
-
-  VTU_DATA_ARRAY( fp, "UInt8", "types", binary); // rgmin=3; rgmax=5;
-  // type cas 2D
-  if(binary){
-    unsigned int type;    
-    type = VTK_TET;  
-    for(int it=0; it< Th.nt; it++){
-     
-      if(!bigEndian) SwapBytes((char*)&type, sizeof(unsigned int), 1);
-      fwrite(&type, sizeof(unsigned int), 1, fp);
-    }
-    if(surface){
-      type=VTK_TRI;
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	 
-	if(!bigEndian) SwapBytes((char*)&type, sizeof(unsigned int), 1);
-	fwrite(&type, sizeof(unsigned int), 1, fp);
-      }
-    }
-  }
-  else{
-    unsigned int type;
-    type= VTK_TET;
-    for(int it=0; it< Th.nt; it++){      
-      fprintf(fp,"%d ",type);
-    }
-    if(surface){
-      type=VTK_TRI;
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	fprintf(fp,"%d ",type);
-      }
-    }
-  }
-  fprintf(fp,"\n");
-  // end type cas 3D
-  ENDTYPE_VTU( fp, "DataArray");
-
-  ENDTYPE_VTU( fp, "Cells");
-
-  ENDTYPE_VTU( fp, "Piece");
-  ENDTYPE_VTU( fp, "UnstructuredGrid");
-  ENDTYPE_VTU( fp, "VTKFile");
-}
-*/
-
-// two dimensional case
-
-// LOAD fichier.vtk
-class VTK_LoadMesh_Op : public E_F0mps 
-{
-public:
-  Expression filename;
-  static const int n_name_param = 4; // 
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-public:
-  VTK_LoadMesh_Op(const basicAC_F0 &  args,Expression ffname) 
-    : filename(ffname)
-  {
-    if(verbosity) cout << "Load mesh given by VTK " << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-basicAC_F0::name_and_type VTK_LoadMesh_Op::name_param[]= {
-  {  "reft", &typeid(long)},
-  {  "swap", &typeid(bool)},
-  {  "refe", &typeid(long)},
-  {  "namelabel",&typeid(string)}
-};
-
-
-class  VTK_LoadMesh : public OneOperator { public:  
-    VTK_LoadMesh() : OneOperator(atype<pmesh>(),atype<string *>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new VTK_LoadMesh_Op( args,t[0]->CastTo(args[0]) ); 
-  }
-};
-
-Mesh * VTK_Load(const string & filename, bool bigEndian)
-// swap = bigEndian or not bigEndian
-{
-  // variable freefem++
-  int nv, nt=0, nbe=0;
-  int nerr=0;
-
-  Mesh::Vertex   *vff;
-  map<int,int> mapnumv;
-
-  // Reading Mesh in vtk formats 
-
-  FILE *fp = fopen(filename.c_str(), "rb");
-  if(!fp){
-    cerr << "Unable to open file " << filename.c_str() << endl;
-    exit(1);
-  }
-
-  char buffer[256], buffer2[256];
-    
-  fgets(buffer, sizeof(buffer), fp); // version line
-  fgets(buffer, sizeof(buffer), fp); // title
-  
-  fscanf(fp, "%s", buffer); // ASCII or BINARY
-  bool binary = false;
-  if(!strncmp(buffer, "BINARY",6)) binary = true;
-    
-  if(fscanf(fp, "%s %s", buffer, buffer2) != 2) { 
-    cerr << "error in reading vtk files" << filename << endl;
-    ExecError("load vtk files");
-  }
-  if(strcmp(buffer, "DATASET") || strcmp(buffer2, "UNSTRUCTURED_GRID")){
-    cout << "VTK reader can only read unstructured datasets" << endl;
-    ExecError("load  vtk files");
-    exit(1);
-  }
-    
-  // read mesh vertices
-  if(fscanf(fp, "%s %d %s\n", buffer, &nv, buffer2) != 3)
-    { cout << "error in reading vtk files" << endl;
-      ExecError("load  vtk files reah vertices");
-      exit(1); }
-  if(strcmp(buffer, "POINTS") || !nv){
-    cerr << "No points in dataset" << endl;
-      ExecError("load  vtk files: No points in dataset");
-    exit(1);
-  }
-  int datasize;
-  if(!strncmp(buffer2, "double",6))
-    datasize = sizeof(double);
-  else if(!strncmp(buffer2, "float",5))
-    datasize = sizeof(float);
-  else {
-    cout <<"VTK reader only accepts float or double datasets" << endl;
-    ExecError("load  vtk files VTK reader only accepts float or double datasets");
-    exit(1);
-  }
-  if(verbosity>1)  
-    cout << "   vtkio: Reading %d points" << nv << endl;
-  vff = new Mesh::Vertex[nv];
-    
-  for(int i = 0 ; i < nv; i++){
-    double xyz[3];
-    if(binary){
-      if(datasize == sizeof(float)){
-	float f[3];
-	if(fread(f, sizeof(float), 3, fp) != 3){ 
-	  ExecError("load  vtk files VTK reader only accepts float or double datasets");
-	  ExecError("error in reading vtk file"); 
-	} 
-	if(!bigEndian) SwapBytes((char*)f, sizeof(float), 3);
-	for(int j = 0; j < 3; j++) xyz[j] = f[j];
-      }
-      else{
-	if(fread(xyz, sizeof(double), 3, fp) != 3) { cout << "error in reading vtk files" << endl; ExecError("error in reading vtk file"); }
-	if(!bigEndian) SwapBytes((char*)xyz, sizeof(double), 3);
-      }
-    }
-    else{
-      if(fscanf(fp, "%lf %lf %lf", &xyz[0], &xyz[1], &xyz[2]) != 3){ cout << "error in reading vtk files" << endl; ExecError("error in reading vtk file"); }
-    }    
-    vff[i].x = xyz[0];
-    vff[i].y = xyz[1];
-    if( abs(xyz[2]) > 1.e-7){
-      cout << "we are plotted a two dimensional mesh: z coordinate must be 0" << endl;
-      ExecError("error in reading vtk file,we are plotted a two dimensional mesh: z coordinate must be 0");
-    }    
-    vff[i].lab = 1;
-  }    
-
-  // read mesh elements
-  int numElements, numElements2, totalNumInt;
-  if(fscanf(fp, "%s %d %d\n", buffer, &numElements, &totalNumInt) != 3){ cout << "error in reading vtk files" << endl; ExecError("error in reading vtk file"); }
-  if(strcmp(buffer, "CELLS") || !numElements){
-    cout << "No cells in dataset" << endl;
-    ExecError("error in reading vtk file");
-  }
-  cout << "Reading cells" << numElements << endl;
-  
-  int *IntCells   = new int[totalNumInt-numElements];
-  int *firstCell  = new int[numElements+1];
-  int *TypeCells   = new int[numElements];
-  int numIntCells = 0;
-  
-  for(unsigned int i = 0; i < numElements; i++){
-    int numVerts, n[100];
-    for(int ii = 0; ii < 100; ii++) n[ii]=-1;
-    if(binary){
-      if( fread(&numVerts, sizeof(int), 1, fp) != 1 ) {
-	cout << "error in reading VTK files " << endl;
-	ExecError("error in reading vtk file");
-	}
-      if( !bigEndian) SwapBytes((char*)&numVerts, sizeof(int), 1);
-      if((int)fread(n, sizeof(int), numVerts, fp) != numVerts){
-	cout << "error in reading VTK files " << endl;
-	ExecError("error in reading vtk file");
-      }
-      if(!bigEndian) SwapBytes((char*)n, sizeof(int), numVerts);
-    }
-    else{
-      if(fscanf(fp, "%d", &numVerts) != 1){
-	cout << "error in reading VTK files " << endl;
-	  ExecError("error in reading vtk file");
-      }
-      for(int j = 0; j < numVerts; j++){
-	if(fscanf(fp, "%d", &n[j]) != 1){
-	  cout << "error in reading VTK files " << endl;
-	  ExecError("error in reading vtk file");
-	}
-      }
-    }
-    firstCell[i] = numIntCells;
-    for(int j = 0; j < numVerts; j++){
-      if(n[j] >= 0 && n[j] < nv){
-	IntCells[numIntCells] = n[j];
-	numIntCells++;
-      }	  
-      else{
-	cout << "Bad vertex index" << endl;
-	ExecError("error in reading vtk file");
-	}
-    }
-  }
-  firstCell[numElements] = totalNumInt-numElements;  
-  
-  if(fscanf(fp, "%s %d\n", buffer, &numElements2) != 2){
-    cout << " Error in reading CELL_TYPES ARGUMENT " << endl;
-    ExecError("error in reading vtk file");
-  }
-  if(strcmp(buffer, "CELL_TYPES") || numElements2 != (int)numElements){
-    cout <<"No or invalid number of cells types" << endl;
-    ExecError("error in reading vtk file");
-  }
-  
-  
-  // 2D
-  
-  for(unsigned int i = 0; i < numElements; i++){
-    int type;
-    if(binary){
-	if(fread(&type, sizeof(int), 1, fp) != 1){
-	  cout <<"bug in readings cell types" << endl;
-	  ExecError("error in reading vtk file");
-	}
-	if(!bigEndian) SwapBytes((char*)&type, sizeof(int), 1);
-    }
-    else{
-      if(fscanf(fp, "%d", &type) != 1){
-	cout <<"bug in readings cell types" << endl;
-	ExecError("error in reading vtk file");
-      }
-    }
-    TypeCells[i] = type;
-    switch(type){
-    case 1:  // Vertex
-      if(nerr++<10 && verbosity )
-           cout << "this type of cell (vertex) is not taking account in Freefem++ " << type <<  endl;
-      break;
-    case 3:  // Edge/line
-      nbe++; // 2D	
-      break;
-    case 5:  // Triangle
-      nt++; // 2D
-      break;   
-    case 10: // Tetrah�dre
-      cout << "We are loading a three dimensional mesh. Three is no tetrahedron." << endl;
-      ExecError("error in reading vtk file");
-      break;  
-    default: 
-      cout << "Error :: This type of cell is not considered in Freefem++ "<< type << endl;
-      ExecError("error in reading vtk file");
-      break;
-      }
-  }  
-  
-  fclose(fp);
-
-    // 2D Versions
-    Mesh::Triangle *tff; 
-    if(nt>0) tff = new Mesh::Triangle[nt];
-    Mesh::Triangle *ttff = tff;
-    
-    Mesh::BorderElement *bff;
-    if(nbe>0) bff= new Mesh::BorderElement[nbe];
-    Mesh::BorderElement *bbff = bff;
-    for(unsigned int i = 0; i < numElements; i++){
-      int type=TypeCells[i];
-      int iv[3];
-      int label=1;
-      switch(type){
-      case 1:  // Vertex
-              
-	if(nerr++<10 && verbosity ) cout << "this type of cell (vertex) is not taking account in Freefem++ " <<  type << " " << endl;
-	break;
-      case 3:  // Edge/line
-	assert( (firstCell[i+1]-firstCell[i]) == 2 );
-	for(int j=firstCell[i]; j<firstCell[i+1]; j++){
-    	  iv[j-firstCell[i]] = IntCells[j];
-	}
-	(bbff++)->set(vff, iv[0], iv[1], label);
-	break;
-      case 5:  // Triangle
-	assert( (firstCell[i+1]-firstCell[i]) == 3 );
-	for(int j=firstCell[i]; j<firstCell[i+1]; j++){
-    	  iv[j-firstCell[i]] = IntCells[j];
-	}
-	(ttff++)->set(vff, iv[0], iv[1], iv[2], label);
-	break;   
-      default: 
-	break;	
-      } 
-    }
-   
-    delete [] IntCells;   
-    delete [] firstCell; 
-    delete [] TypeCells;
-    
-    Mesh *pTh = new Mesh(nv,nt,nbe,vff,tff,bff);
-    return pTh;
-}
-
-AnyType VTK_LoadMesh_Op::operator()(Stack stack)  const 
-{
- 
-  string * pffname= GetAny<string *>((*filename)(stack));
-  bool swap = false;
-  int reftri = 1;
-  int refedges = 1;
-  if( nargs[0] )  reftri = GetAny<long>((*nargs[0])(stack));
-  if( nargs[1] )  swap = GetAny< bool >((*nargs[1])(stack));
-  if( nargs[2] )  refedges = GetAny<long>((*nargs[2])(stack));
-
-  string *DataLabel;
-  if( nargs[3] ) DataLabel = GetAny<string *>((*nargs[3])(stack));
-
-  Mesh * Th = VTK_Load( *pffname , swap); 
- 
-  // A faire fonction pour changer le label
-
-  Add2StackOfPtr2FreeRC(stack,Th);
-		
-  return Th;
-}
-
-//==============================================
-// ECRITURE DE FICHIER .vtk
-//==============================================
-
-class VTK_WriteMesh_Op : public E_F0mps 
-{
-public:
-  typedef long  Result;
-  Expression eTh;
-  Expression filename;
-  
-  struct Expression2 {
-    string name;
-    long what; // 1 scalar, 2 vector, 3 symtensor
-    long nbfloat; // 1 scalar, 2 vector (3D), 3 symtensor(3D)
-    Expression e[3];
-    Expression2() {e[0]=0; e[1]=0; e[2]=0;  what=0; nbfloat=0; };
-    Expression &operator[](int i){return e[i];}
-    double eval(int i,Stack stack) const  { 
-      if (e[i]) {
-	return GetAny< double >( (*e[i])(stack) );
-      }
-      else 
-	return 0;
-    }
-
-    void writesolutionP0_float_binary( FILE *fp, const Mesh &Th, Stack stack, bool surface, bool bigEndian) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R2 Cdg_hat = R2(1./3.,1./3.);  
-      
-      for (int it=0;it<Th.nt;it++){
-	const Mesh::Triangle  & K(Th.t(it));
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< nbfloat;j++){
-	  float value = eval(j,stack);
-	  
-	  if(!bigEndian) SwapBytes((char*)&value, sizeof(float), 1);
-	  fwrite(&value, sizeof(float), 1, fp);
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.neb;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Mesh::Triangle  & K(Th.t(it));
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< nbfloat;j++){
-	    float value = eval(j,stack);
-
-	    if(!bigEndian) SwapBytes((char*)&value, sizeof(float), 1);
-	    fwrite(&value, sizeof(float), 1, fp);	    
-	  } 
-	}
-      }
-      fprintf(fp,"\n");
-    }
-
-    void writesolutionP0_float( FILE *fp, const Mesh &Th, Stack stack, bool surface) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R2 Cdg_hat = R2(1./3.,1./3.);  
-      
-      for (int it=0;it<Th.nt;it++){
-	const Mesh::Triangle  & K(Th.t(it));
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< nbfloat;j++){
-	  float value = eval(j,stack);
-	 
-	  fprintf(fp,"%.8e ",value); 
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.neb;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Mesh::Triangle  & K(Th.t(it));
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< nbfloat;j++){
-	    float value = eval(j,stack);
-
-	    fprintf(fp,"%.8e ",value); 	 
-	  } 
-	}
-      }
-      fprintf(fp,"\n");
-    }
-
-    void writesolutionP0_float_XML( FILE *fp, const Mesh &Th, Stack stack, bool surface) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R2 Cdg_hat = R2(1./3.,1./3.);  
-
-      unsigned char ElementChars[256];
-      long nc=Th.nt;
-      if(surface) nc=nc+Th.neb;
-
-      unsigned nbytes= nc*sizeof(float)*(*this).nbfloat;
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-
-      for (int it=0;it<Th.nt;it++){
-	const Mesh::Triangle  & K(Th.t(it));
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< nbfloat;j++){
-	  float value = eval(j,stack);
-	
-	  l=runEncodeB64(sizeof(float),(unsigned char *)&value,ElementChars);
-	  ElementChars[l]=0;
-	  fwrite(&ElementChars,l,1,fp);
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.neb;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Mesh::Triangle  & K(Th.t(it));
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< nbfloat;j++){
-	    float value = eval(j,stack);
-	    
-	    l=runEncodeB64(sizeof(float),(unsigned char *)&value,ElementChars);
-	    ElementChars[l]=0;
-	    fwrite(&ElementChars,l,1,fp);
-	  } 
-	}
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      fprintf(fp,"\n");
-    }
-    
-    void writesolutionP0_float( FILE *fp, const Mesh &Th, Stack stack, bool surface, bool binary, bool bigEndian, bool XML=false) const {
-      if(binary){
-	if(!XML){
-	  (*this).writesolutionP0_float_binary( fp, Th, stack, surface, bigEndian); 
-	}
-	else
-	  (*this).writesolutionP0_float_XML( fp, Th, stack, surface );
-      }
-      else 
-	(*this).writesolutionP0_float( fp, Th, stack, surface );
-    }
-
-    void writesolutionP0_double_binary( FILE *fp, const Mesh &Th, Stack stack, bool surface, bool bigEndian) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R2 Cdg_hat = R2(1./3.,1./3.);  
-      
-      for (int it=0;it<Th.nt;it++){
-	const Mesh::Triangle  & K(Th.t(it));
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< (*this).nbfloat;j++){
-	  double value = (*this).eval(j,stack);
-	  
-	  if(!bigEndian) SwapBytes((char*)&value, sizeof(double), 1);
-	  fwrite(&value, sizeof(double), 1, fp);
-	    
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.neb;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Mesh::Triangle  & K(Th.t(it));
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    double value = (*this).eval(j,stack);
-	    
-	    if(!bigEndian) SwapBytes((char*)&value, sizeof(double), 1);
-	    fwrite(&value, sizeof(double), 1, fp);
-	    
-	  } 
-	}
-      }           
-      fprintf(fp,"\n");
-    }
-
-   
-    void writesolutionP0_double( FILE *fp, const Mesh &Th, Stack stack, bool surface) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R2 Cdg_hat = R2(1./3.,1./3.);  
-      unsigned char ElementChars[256];
-
-      for (int it=0;it<Th.nt;it++){
-	const Mesh::Triangle  & K(Th.t(it));
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< (*this).nbfloat;j++){
-	  double value = (*this).eval(j,stack);
-	  
-	  fprintf(fp,"%.16e ",value); 	    	    
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.neb;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Mesh::Triangle  & K(Th.t(it));
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    double value = (*this).eval(j,stack);
-	    fprintf(fp,"%.16e ",value); 	      
-	  } 
-	}
-      }     
-      fprintf(fp,"\n");
-    }
-
-    void writesolutionP0_double_XML( FILE *fp, const Mesh &Th, Stack stack, bool surface) const {      
-      unsigned char ElementChars[256]; 
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R2 Cdg_hat = R2(1./3.,1./3.);  
-      long nc=Th.nt;
-      if(surface) nc=nc+Th.neb;
-
-      unsigned nbytes= nc*sizeof(double)*(*this).nbfloat;
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-
-      for (int it=0;it<Th.nt;it++){
-	const Mesh::Triangle  & K(Th.t(it));
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< (*this).nbfloat;j++){
-	  double value = (*this).eval(j,stack);
-
-	  l=runEncodeB64(sizeof(double),(unsigned char *)&value,ElementChars);
-	  ElementChars[l]=0;
-	  fwrite(&ElementChars,l,1,fp);
-	}
-      }	
-      
-      if( surface ){
-	for (int ibe=0;ibe<Th.neb;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Mesh::Triangle  & K(Th.t(it));
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    double value = (*this).eval(j,stack);
-	    
-	     l=runEncodeB64(sizeof(double),(unsigned char *)&value,ElementChars);
-	     ElementChars[l]=0;
-	     fwrite(&ElementChars,l,1,fp);	     
-	  } 
-	}
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-          
-      fprintf(fp,"\n");
-    }
-
-    void writesolutionP0_double( FILE *fp, const Mesh &Th, Stack stack, bool surface, bool binary, bool bigEndian, bool XML=false) const {
-      if(binary){
-	if(!XML){
-	  (*this).writesolutionP0_double_binary( fp, Th, stack, surface, bigEndian); 
-	}
-	else
-	  (*this).writesolutionP0_double_XML( fp, Th, stack, surface );
-      }
-      else 
-	(*this).writesolutionP0_double( fp, Th, stack, surface );
-    }
-
-    void writesolutionP1_float( FILE *fp, const Mesh &Th, Stack stack,bool binary,bool bigEndian,bool XML=false) const {
-      unsigned char ElementChars[256]; 
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      KN<double> valsol(Th.nv*(*this).nbfloat);
-      KN<int> takemesh(Th.nv);
-      takemesh =0;
-      valsol   =0.;
-      for(int it=0;  it<Th.nt; it++){
-	for(int iv=0; iv<3; iv++){
-	   int i=Th(it,iv);
-	   mp3->setP(&Th,it,iv);
-	   
-	   for(int j=0;j<(*this).nbfloat;j++){
-	     valsol[ i*(*this).nbfloat+j ] = valsol[ i*(*this).nbfloat+j ] + (*this).eval(j,stack);	     
-	   }
-	   takemesh[i] = takemesh[i]+1;    
-	 }
-       }
-       
-       if(binary){
-	 if( !XML ){ 
-	   if( !bigEndian){
-	     for (int iv=0;iv<Th.nv;iv++){
-	       for(int j=0;j< (*this).nbfloat;j++){
-		 valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-		 float value = valsol[iv*(*this).nbfloat+j];
-	       
-		 SwapBytes((char*)&value, sizeof(float), 1);
-		 fwrite(&value, sizeof(float), 1, fp);	   
-	       }		       
-	     }    
-	   }
-	   else{
-	     for (int iv=0;iv<Th.nv;iv++){
-	       for(int j=0;j< (*this).nbfloat;j++){
-		 valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-		 float value = valsol[iv*(*this).nbfloat+j];
-	       
-		 fwrite(&value, sizeof(float), 1, fp);	   
-	       }		       
-	     }    
-	   }
-	 }
-	 else{
-	   long nc=Th.nv;
-	   
-	   unsigned nbytes= nc*sizeof(float)*(*this).nbfloat;
-	   int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-	   ElementChars[l]=0;
-	   fwrite(&ElementChars,l,1,fp);
-
-	   for (int iv=0;iv<Th.nv;iv++){
-	     for(int j=0;j< (*this).nbfloat;j++){
-	       valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-	       float value = valsol[iv*(*this).nbfloat+j];
-	   
-	       l=runEncodeB64(sizeof(float),(unsigned char *)&value,ElementChars);
-	       ElementChars[l]=0;
-	       fwrite(&ElementChars,l,1,fp);
-	     }
-	   }
-	   // flush buffer
-	   l=runEncodeB64(0,NULL,ElementChars);
-	   ElementChars[l]=0;
-	   fwrite(&ElementChars,l,1,fp);
-	  
-	 }
-       }
-       else{
-	 for (int iv=0;iv<Th.nv;iv++){
-	   for(int j=0;j< (*this).nbfloat;j++){
-	     valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-	     float value = valsol[iv*(*this).nbfloat+j];
-	     
-	     fprintf(fp,"%.8e ",value); 
-	   }
-	 }	   
-       }
-       fprintf(fp,"\n");
-       
-    }
-
-  
-
-    void writesolutionP1_double( FILE *fp, const Mesh &Th, Stack stack,bool binary,bool bigEndian, bool XML=false) const {
-      unsigned char ElementChars[256];
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      KN<double> valsol(Th.nv*(*this).nbfloat);
-      KN<int> takemesh(Th.nv);
-      takemesh =0;
-      valsol   =0.;
-      for(int it=0;  it<Th.nt; it++){
-	for(int iv=0; iv<3; iv++){
-	  int i=Th(it,iv);
-	  mp3->setP(&Th,it,iv);
-	  
-	  for(int j=0;j<(*this).nbfloat;j++){
-	    valsol[ i*(*this).nbfloat+j ] = valsol[ i*(*this).nbfloat+j ] + (*this).eval(j,stack);	     
-	  }
-	  takemesh[i] = takemesh[i]+1;    
-	}
-      }
-      
-      if(binary){	
-	if( !XML ){
-	  if( !bigEndian ){
-	    for (int iv=0;iv<Th.nv;iv++){
-	      for(int j=0;j< (*this).nbfloat;j++){
-		valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-		double value = valsol[iv*(*this).nbfloat+j];
-		
-		SwapBytes((char*)&value, sizeof(double), 1);
-		fwrite(&value, sizeof(double), 1, fp);
-		
-	      }	   
-	    }
-	  }
-	  else{
-	    for (int iv=0;iv<Th.nv;iv++){
-	      for(int j=0;j< (*this).nbfloat;j++){
-		valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-		double value = valsol[iv*(*this).nbfloat+j];
-		
-		fwrite(&value, sizeof(double), 1, fp);
-		
-	      }	   
-	    }
-	  }
-	}
-	else{
-	   long nc=Th.nv;
-	   
-	   unsigned nbytes= nc*sizeof(double)*(*this).nbfloat;
-	   int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-	   ElementChars[l]=0;
-	   fwrite(&ElementChars,l,1,fp);
-
-	   for (int iv=0;iv<Th.nv;iv++){
-	     for(int j=0;j< (*this).nbfloat;j++){
-	       valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-	       double value = valsol[iv*(*this).nbfloat+j];
-	   
-	       l=runEncodeB64(sizeof(double),(unsigned char *)&value,ElementChars);
-	       ElementChars[l]=0;
-	       fwrite(&ElementChars,l,1,fp);
-	     }
-	   }
-	   // flush buffer
-	   l=runEncodeB64(0,NULL,ElementChars);
-	   ElementChars[l]=0;
-	   fwrite(&ElementChars,l,1,fp);
-	   
-	}
-
-      }
-      else{
-	for (int iv=0;iv<Th.nv;iv++){
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-	    double value = valsol[iv*(*this).nbfloat+j];
-	
-	      fprintf(fp,"%.16e ",value); 
-	  
-	  }	   
-	}
-      }
-      fprintf(fp,"\n");
-    }    
-  };
-  vector<Expression2> l;
-  static const int n_name_param = 7;  
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-  long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  
-public:
-  VTK_WriteMesh_Op(const basicAC_F0 &  args) : l( args.size()-2 )
-  {
-    int nbofsol;
-    int ddim=2;
-    int stsize=3;
-
-    int sca=0,vec=0,ten=0;
-    
-    string scas("scalaire"); 
-    string vecs("vector"); 
-    string tens("tensor"); 
-
-    if(verbosity) cout << "Write Mesh and Solutions in VTK Formats" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-
-    if (BCastTo<string *>(args[0])) filename = CastTo<string *>(args[0]);
-    if (BCastTo<pmesh>(args[1])) eTh= CastTo<pmesh>(args[1]);
-  
-    nbofsol = l.size();
-    for (size_t i=2;i<args.size();i++){
-      size_t jj=i-2;
-      
-      if ( BCastTo<double>( args[i] ))
-	{
-	  l[jj].what=1;
-	  l[jj].nbfloat=1;
-	  l[jj][0]=to<double>( args[i] );
-	  
-	  char number[16];
-	  sprintf(number,"%li",jj+1);
-	  l[jj].name=scas;
-	  l[jj].name+=number;
-	  sca++;	  
-	}
-      else if ( args[i].left()==atype<E_Array>() )
-	{
-	  const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-	  //cout << "taille" << a0->size() << endl;
-	  if (a0->size() != ddim && a0->size() != stsize) 
-	    CompileError("savesol in 2D: vector solution is 2 composant, tensor solution is 3 composant");
-	  
-	  if( a0->size() == ddim){
-	    // vector solution
-	    l[jj].what=2;
-	    l[jj].nbfloat=ddim;
-	   
-	    for(int j=0; j<ddim; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-
-	    char number[16];
-	    sprintf(number,"%li",jj+1);
-	    l[jj].name=vecs;
-	    l[jj].name+=number;
-	    vec++;	  
-	  }
-	  else if( a0->size() == stsize){
-	    // symmetric tensor solution
-	    l[jj].what=3;
-	    l[jj].nbfloat=stsize;
-	    for(int j=0; j<stsize; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	    char number[16];
-	    sprintf(number,"%li",jj+1);
-	    l[jj].name=tens;
-	    l[jj].name+=number;
-	    ten++;	
-	  }
-	  
-	}
-      else {
-	cout << " arg " << i << " " << args[i].left() << endl;
-	CompileError("save solution in 2D in format VTK: Sorry no way to save this kind of data");
-      }
-    }
-    
-  }
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype<string *>(), atype<pmesh>(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new VTK_WriteMesh_Op(args);}   
-  AnyType operator()(Stack stack)  const ;
-};
-basicAC_F0::name_and_type VTK_WriteMesh_Op::name_param[]= {
-  {  "dataname", &typeid(string*)},
-  {  "withsurfacemesh", &typeid(bool)},
-  {  "order", &typeid(KN_<long>)},
-  // A rajouter dans le 3D
-  {  "floatmesh", &typeid(bool)},
-  {  "floatsol", &typeid(bool)},
-  {  "bin", &typeid(bool)},
-  {  "swap", &typeid(bool)}
-};
-
-
-
-void VTK_WRITE_MESH( const string &filename, FILE *fp, const Mesh &Th, bool binary, int datasize, bool surface, bool bigEndian){
-     
-  fprintf(fp, "# vtk DataFile Version 2.0\n");
-  fprintf(fp, "%s, Created by Freefem++ \n", filename.c_str());
-  if(binary)
-    fprintf(fp, "BINARY\n");
-  else
-    fprintf(fp, "ASCII\n");
-  fprintf(fp, "DATASET UNSTRUCTURED_GRID\n");
-  // get all the entities in the model
-
-  // write mesh vertices
-  
-  if(datasize == sizeof(float)) 
-    {      
-      fprintf(fp, "POINTS %d float\n", Th.nv);
-      for(unsigned int i = 0; i < Th.nv; i++){
-	const  Mesh::Vertex & P = Th.vertices[i];
-	float f[3];
-	f[0]=P.x;
-	f[1]=P.y;
-	f[2]=0;  // P.z; 3D case
-	if(binary){
-	  if(!bigEndian) SwapBytes((char*)&f, sizeof(float), 3);
-	  fwrite( &f, sizeof(float), 3, fp);
-	}
-      else{
-	fprintf(fp,"%.8g %.8g %.8g\n",P.x,P.y,0.);
-      }
-    }  
-  }
-  else if(datasize == sizeof(double)){
-    fprintf(fp, "POINTS %d double\n", Th.nv);
-    for(unsigned int i = 0; i < Th.nv; i++){
-      const  Mesh::Vertex & P = Th.vertices[i];
-      double f[3];
-      f[0]=P.x;
-      f[1]=P.y;
-      f[2]=0;  // P.z; 3D case
-      if(binary){
-	if(!bigEndian) SwapBytes((char*)&f, sizeof(double), 3);
-	fwrite( (unsigned char*)&f, sizeof(double), 3, fp);
-      }
-      else{
-	fprintf(fp,"%.15lg %.15lg %.15lg\n",f[0],f[1],f[2]);
-      }
-    }  
-  }
-  fprintf(fp,"\n");
-  if(verbosity > 1) printf("writting vertices is finish\n");
-  if(verbosity > 1) printf("writting elements now\n");
-  
-  //================
-  //    CELL 
-  //================
-  // loop over all elements we need to save and count vertices
-  int numElements, totalNumInt;
-  if(surface){
-    numElements = Th.nt+Th.neb; 
-    totalNumInt = Th.nt*3+Th.neb*2+numElements;
-  }
-  else{
-    numElements = Th.nt; 
-    totalNumInt = Th.nt*3+numElements;
-  }
-  if(verbosity > 1) printf("writting cells \n");
-  // print vertex indices in ascii or binary
-  fprintf(fp, "CELLS %d %d\n", numElements, totalNumInt);
-
-  if(binary){
-    int IntType=3;
-    if(verbosity > 1) printf("writting triangle elements \n");
-    for(int it=0; it< Th.nt; it++){
-     
-      const Mesh::Triangle & K( Th.t(it) );
-      int iv[IntType+1];
-      
-      iv[0] = IntType;
-      for(int ii=0; ii<IntType; ii++){
-	iv[ii+1] = Th.operator()(K[ii]);
-      }
-      
-      if(!bigEndian) SwapBytes((char*)&iv, sizeof(int), IntType+1);
-      fwrite(&iv, sizeof(int), IntType+1, fp);
-      
-    }
-    if(surface){
-      if(verbosity > 1) printf("writting edge elements \n");
-      IntType=2;
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	 const Mesh::BorderElement &K( Th.be(ibe) );
-      
-	 int iv[IntType+1];    
-	 iv[0] = IntType;
-	 for(int ii=0; ii<IntType; ii++){
-	   iv[ii+1] = Th.operator()(K[ii]);
-	 }
-	 
-	 if(!bigEndian) SwapBytes((char*)&iv, sizeof(int), IntType+1);
-	 fwrite(&iv, sizeof(int), IntType+1, fp);
-      }
-    }
-  }
-  else{
-    int IntType=3;
-    if(verbosity > 1) printf("writting triangle elements \n");
-    for(int it=0; it< Th.nt; it++){
-      const Mesh::Triangle &K( Th.t(it) );
-
-      int iv[IntType+1];      
-      iv[0] = IntType;
-      for(int ii=0; ii<IntType; ii++){
-	iv[ii+1] = Th.operator()(K[ii]);
-      }
-      fprintf(fp,"%d %d %d %d\n", iv[0],iv[1],iv[2],iv[3]);
-    }
-    if(surface){
-      if(verbosity > 1) printf("writting edge elements \n");
-      IntType=2;
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	const Mesh::BorderElement &K( Th.be(ibe) );
-	
-	int iv[IntType+1];    
-	iv[0] = IntType;
-	for(int ii=0; ii<IntType; ii++){
-	  iv[ii+1] = Th.operator()(K[ii]);
-	}
-	
-	fprintf(fp,"%d %d %d\n", iv[0],iv[1],iv[2]);
-      }
-    }
-  }
-  fprintf(fp, "\n");
-
-
-  // CELL_TYPE
-  // print element types in ascii or binary  
-  
-  fprintf(fp, "CELL_TYPES %d\n", numElements); 
-  if(binary){
-    int type;    
-    for(int it=0; it< Th.nt; it++){    
-      type = VTK_TRI;
-      if(!bigEndian) SwapBytes((char*)&type, sizeof(int), 1);
-      fwrite(&type, sizeof(int), 1, fp);
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	type=VTK_EDGE;
-	if(!bigEndian) SwapBytes((char*)&type, sizeof(int), 1);	 
-	fwrite(&type, sizeof(int), 1, fp);
-      }
-    }
-  }
-  else{
-    int type;
-    type= VTK_TRI;
-    for(int it=0; it< Th.nt; it++){      
-      fprintf(fp,"%d ",type);
-    }
-    if(surface){
-      type=VTK_EDGE;
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	//fprintf(fp,"%d%c",type,(ibe%10==9)? '\n' : ' ');
-	fprintf(fp,"%d ",type);
-      }
-    }
-  } 
-
-  fprintf(fp, "\n");
-
-  //=================================
-  //  WRITE SOLUTION IN FORMAT VTK
-  //     LABEL OF ELEMENTS
-  //=================================
-
-  list<int> list_label_Elem;
-  //list<int> list_label_Border_Elem;
-  {
-    
-    for(int it=0; it< Th.nt; it++){
-      const Mesh::Triangle &K( Th.t(it) );
-      list<int>::const_iterator ilist;
-      int labOk=0;
-      for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++){
-	  if( *ilist == K.lab ){ labOk = 1;   break; } 
-	}
-	if( labOk == 0){
-	  list_label_Elem.push_back(K.lab);
-	}
-    }
-    
-    if(surface){
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	const Mesh::BorderElement &K( Th.be(ibe) );
-	list<int>::const_iterator ilist;
-	int labOk=0;
-	for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++){
-	  if( *ilist == K.lab ){ labOk = 1;   break; } 
-	}
-	if( labOk == 0){
-	  list_label_Elem.push_back(K.lab);
-	}
-      
-      }
-    }
-  
-  }
-  list_label_Elem.sort();
-
-  //=================================
-  //=================================
-  
-  fprintf(fp, "CELL_DATA %d\n", numElements);
-  int cell_fd=1;
-  int cell_lab=1;
-  /*
-  fprintf(fp, "COLOR_SCALARS Label 4\n");
-  if(binary){
-    int label;    
-    for(int it=0; it< Th.nt; it++){
-      const Mesh::Triangle &K( Th.t(it) );
-      label =K.lab;
-      if(!bigEndian) SwapBytes((char*)&label, sizeof(int), 1);
-      fwrite(&label, sizeof(int), 1, fp);
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	const Mesh::BorderElement &K( Th.be(ibe) );
-	label =K.lab;
-	if(!bigEndian) SwapBytes((char*)&label, sizeof(int), 1);
-	fwrite(&label, sizeof(int), 1, fp);
-      }
-    }
-  }
-  else{
-    int label;
-    for(int it=0; it< Th.nt; it++){ 
-      const Mesh::Triangle &K( Th.t(it) );
-      list<int>::const_iterator ilist;
-      
-      for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++){
-	  if( *ilist == K.lab ){ 
-	    
-	    fprintf(fp,"%f %f %f 1.0\n",ColorTable[abs(*ilist)%NbColorTable][0],
-		    ColorTable[abs(*ilist)%NbColorTable][1],
-		    ColorTable[abs(*ilist)%NbColorTable][2]);
-	    break; 
-	  } 
-      }
-      
-      
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	const Mesh::BorderElement &K( Th.be(ibe) );
-	list<int>::const_iterator ilist;
-	for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++){
-	  if( *ilist == K.lab ){ 
-	    fprintf(fp,"%f %f %f 1.0\n",ColorTable[abs(*ilist)%NbColorTable][0],
-		    ColorTable[abs(*ilist)%NbColorTable][1],
-		    ColorTable[abs(*ilist)%NbColorTable][2]);
-	    break; 
-	  } 
-	}
-      }
-    }
-  } 
-  fprintf(fp,"\n");
-  */
-  fprintf(fp, "Scalars  Label int %d\n", cell_fd);
-  fprintf(fp, "LOOKUP_TABLE FreeFempp_table\n"); 
-  // Determination des labels
-  if(binary){
-    int label;    
-    for(int it=0; it< Th.nt; it++){
-      const Mesh::Triangle &K( Th.t(it) );
-      label =K.lab;
-      if(!bigEndian) SwapBytes((char*)&label, sizeof(int), 1);
-      fwrite(&label, sizeof(int), 1, fp);
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	const Mesh::BorderElement &K( Th.be(ibe) );
-	label =K.lab;
-	if(!bigEndian) SwapBytes((char*)&label, sizeof(int), 1);
-	fwrite(&label, sizeof(int), 1, fp);
-      }
-    }
-  }
-  else{
-    int label;
-    for(int it=0; it< Th.nt; it++){ 
-      const Mesh::Triangle &K( Th.t(it) );
-      label =K.lab;
-      fprintf(fp,"%d\n",label);
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.neb; ibe++){
-	const Mesh::BorderElement &K( Th.be(ibe) );
-	label =K.lab;
-	fprintf(fp,"%d\n",label);
-      }
-    }
-  } 
-  fprintf(fp,"\n");
-  
-  int size_list=0;
-  list<int>::const_iterator ilist;
-  for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++) size_list++;
-
-  fprintf(fp, "LOOKUP_TABLE FreeFempp_table %d\n",size_list);
-  { list<int>::const_iterator ilist;
-    for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++){
-      
-     
-      if(binary){
-	int tab[4];
-	tab[0] = (int) ColorTable[abs(*ilist)%NbColorTable][0]*255;
-	tab[1] = (int) ColorTable[abs(*ilist)%NbColorTable][1]*255;
-	tab[2] = (int) ColorTable[abs(*ilist)%NbColorTable][2]*255;
-	tab[3] = 255;
-	
-	for(int itab=0; itab<4; itab++){
-	  char newvalue[sizeof(int)];
-	  int bid0= sprintf(newvalue,"%s", (char*)&tab[itab]);
-	  fwrite( &newvalue, sizeof(unsigned char), 1, fp);
-	}
-
-      }
-      else{
-	float tab[4];
-	tab[0] = ColorTable[abs(*ilist)%NbColorTable][0];
-	tab[1] = ColorTable[abs(*ilist)%NbColorTable][1];
-	tab[2] = ColorTable[abs(*ilist)%NbColorTable][2];
-	tab[3] = 1.;
-	fprintf(fp,"%.8f %.8f %.8f %.8f\n",tab[0],tab[1],tab[2],tab[3]);
-      }
-    }
-  }
-  fprintf(fp,"\n");
-  
-}
-
-
-
-AnyType VTK_WriteMesh_Op::operator()(Stack stack)  const 
-{
- 
-  string * pffname= GetAny<string *>((*filename)(stack));
-  Mesh * pTh= GetAny<Mesh *>((*eTh)(stack));
-  ffassert(pTh);
-  Mesh &Th=*pTh;
-  bool swap = false;
-  bool bigEndian=true;
-  bool binary = false;
-  bool surface = true;
-  bool floatmesh = true;
-  bool floatsol = true;
-  int datasize = sizeof(float);
-  int datasizeSol = sizeof(float);
-  string *dataname;
-  int nbofsol = l.size();
-  KN<int> order(nbofsol);
-  
-  char *nameofuser[nbofsol];
-
-  for(int ii=0; ii<nbofsol; ii++) order[ii] = 0;
-
-  if( nargs[0] ) dataname  = GetAny< string* >( (*nargs[0])(stack) );  
-  if( nargs[1] ) surface   = GetAny< bool >( (*nargs[1])(stack) );
-  if( nargs[2] ) order     = GetAny< KN_<long> >( (*nargs[2])(stack) );
-  if( nargs[3] ) floatmesh = GetAny< bool >( (*nargs[3])(stack) );
-  if( nargs[4] ) floatsol  = GetAny< bool  >( (*nargs[4])(stack) );
-  if( nargs[5] ) binary    = GetAny< bool  >( (*nargs[5])(stack) );
-  if( nargs[6] ) bigEndian = GetAny< bool  >( (*nargs[6])(stack) );
-
-  swap = bigEndian;
-
-  if( !floatmesh ) datasize = sizeof(double);
-  if( !floatsol ) datasizeSol= sizeof(double);
-
-  int iii=0;
-  if( nargs[0])
-    {
-      //char *data = newcopy(dataname->c_str()); 
-      char *data = newcopy(dataname); 
-      char * name = strtok(data," \t\n");
-      
-      nameofuser[iii] = newcopy(name);
-      if(verbosity>5)
-	cout << "   iovtk : value of iii  =" << iii << "  \""<<  nameofuser[iii] <<  "\"\n";
-      iii++;
-      {
-	
-	while( (name = strtok(NULL," \t\n\0")) ){
-	  
-	  if( iii >= nbofsol ){
-	    if(verbosity>5)
-	      cout << "   iovtk : The number of data name is too large " << endl;
-	    break;
-	  }
-	  nameofuser[iii] = newcopy(name);
-	  if(verbosity>5)
-	    cout << "   iovtk : value of iii  =" << iii << "  \""<<  nameofuser[iii] <<  "\"\n";
-	  iii++;
-	}
-	if( iii < nbofsol){	
-	  if(verbosity>6)
-	    cout << "   iovtk:  The number of data name is too small, we give default name " << endl;
-	}
-	delete [] data;
-      }
-    }
-  if( iii < nbofsol ){
-    for( int iiii=iii; iiii<nbofsol; iiii++){
-      //      char *dataff = new char[l[iii].name.size()+1];
-      //strcpy(dataff, l[iii].name.c_str());
-      nameofuser[iiii] = newcopy(l[iiii].name.c_str());//dataff;      
-    }
-  }
-
-  
-  FILE *fp = fopen( (*pffname).c_str(), "wb");
-  //FILE *fp = fopen( newcopy(pffname), "wb");
-  if(!fp){
-    cerr << "Unable to open file " << (*pffname).c_str() << endl;
-    ExecError("error in reading vtk file");
-  }
-  
-  // determination of number of order 0 et 1.
-  int Norder0=0;
-  for(int ii=0; ii< nbofsol; ii++)
-    if(order[ii] == 0) Norder0++;
-
-
-  char * pch = newcopy(pffname);
-  int VTK_FILE = 0;
-  int ls = 0;
-  int lll = strlen(pch);
-  if      (!strcmp(pch+ lll - (ls=4),".vtk"))  VTK_FILE = 1;
-  else if (!strcmp(pch + lll - (ls=4),".vtu")) VTK_FILE = 2;
-  if(verbosity) cout << " " << pffname << " VTK_FILE "<< VTK_FILE << endl;
-  if( VTK_FILE == 1 ){  
-    // CAS VTK
-    VTK_WRITE_MESH( *pffname, fp, Th, binary, datasize, surface, swap);    		
-    
-    // WRITE SOLUTIONS
-    if( datasizeSol == sizeof(float) ){
-      
-      if( Norder0 >0){
-	fprintf(fp, "FIELD FieldData %d\n", Norder0);
-	for(int ii=0; ii< nbofsol; ii++){
-	  if(order[ii] == 0){
-	    int nsol;
-	    if(surface){
-	      nsol = Th.nt+Th.neb;
-	    }
-	    else{
-	      nsol = Th.nt;
-	    }
-	    
-	    fprintf(fp,"%s %ld %d float\n",nameofuser[ii],l[ii].nbfloat,nsol); 
-	    
-	    // changement ecriture solution
-	    l[ii].writesolutionP0_float( fp, Th, stack, surface, binary, swap);
-	  }
-	}
-      }
-      
-      if( Norder0 < nbofsol ){
-	fprintf(fp, "POINT_DATA %d\n", Th.nv);
-	fprintf(fp, "FIELD FieldData %d\n", nbofsol-Norder0);
-	for(int ii=0; ii< nbofsol; ii++){
-	  if(order[ii] == 1){
-	    
-	    //fprintf(fp,"%s %d %d float\n",l[ii].name.c_str(),l[ii].nbfloat,Th.nv); 
-	    fprintf(fp,"%s %ld %d float\n",nameofuser[ii],l[ii].nbfloat,Th.nv); 
-	    if(verbosity>5)
-	      cout << "name of data("<< ii <<")=" << nameofuser[ii] << " " << l[ii].name << endl;
-	    
-	    // changement ecriture solution
-	    l[ii].writesolutionP1_float( fp, Th, stack, binary, swap);
-	  }
-	}
-      }    
-    }
-
-    if( datasizeSol == sizeof(double) ){
-      
-      if( Norder0 >0){
-	fprintf(fp, "FIELD FieldData %d\n", Norder0);
-	for(int ii=0; ii< nbofsol; ii++){
-	  if(order[ii] == 0){
-	    int nsol;
-	    if(surface){
-	      nsol = Th.nt+Th.neb;
-	    }
-	    else{
-	      nsol = Th.nt;
-	    }
-	    fprintf(fp,"%s %ld %d float\n",nameofuser[ii],l[ii].nbfloat,nsol); 
-	    // changement ecriture solution
-	    l[ii].writesolutionP0_double( fp, Th, stack, surface, binary, swap);
-	    
-	  }
-	}
-	if( Norder0 < nbofsol ){
-	  fprintf(fp, "POINT_DATA %d\n", Th.nv);
-	  fprintf(fp, "FIELD FieldData %d\n", nbofsol-Norder0);
-	  for(int ii=0; ii< nbofsol; ii++){
-	    if(order[ii] == 1){
-	      
-	      
-	      fprintf(fp,"%s %ld %d float\n",nameofuser[ii],l[ii].nbfloat,Th.nv); 
-	      if(verbosity>5)
-		cout << "name of data("<< ii <<")=" << nameofuser[ii]  << endl;
-	      // changement ecriture solution
-	      l[ii].writesolutionP1_double( fp, Th, stack, binary, swap);
-	    }
-	  }
-	}
-      }
-    }
-  }
-  else if( VTK_FILE == 2 ){    
-    /*
-      // Solution Order
-      // order 1
-      if( Norder0 != nbofsol){
-	 BEGINTYPE_VTU( fp, "PointData");
-	 for(int ii=0; ii< nbofsol; ii++){
-	   if(order[ii] == 1){
-	     
-	     if(datasize == sizeof(float)){    
-	       VTU_DATA_ARRAY( fp, "Float32", nameofuser[ii] , l[ii].nbfloat, binary);
-	       l[ii].writesolutionP1_float( fp, Th, stack, binary, swap);
-	     }
-	     else if(datasize == sizeof(double)) {
-	       VTU_DATA_ARRAY( fp, "Float64", nameofuser[ii] , l[ii].nbfloat, binary);
-	       l[ii].writesolutionP1_double( fp, Th, stack, binary, swap);
-	     }
-	     
-	     ENDTYPE_VTU( fp, "DataArray");	   
-	   }
-	 }
-	 ENDTYPE_VTU( fp, "PointData");
-      }
-      // order 0
-      if( Norder0 > 0 ){
-	BEGINTYPE_VTU( fp, "CellData");
-	for(int ii=0; ii< nbofsol; ii++){
-	  if(order[ii] == 0){
-	   
-	    if(datasize == sizeof(float)){    
-	       VTU_DATA_ARRAY( fp, "Float32", nameofuser[ii] , l[ii].nbfloat, binary);
-	       l[ii].writesolutionP0_float( fp, Th, stack, surface, binary, swap);
-	     }
-	     else if(datasize == sizeof(double)) {
-	       VTU_DATA_ARRAY( fp, "Float64", nameofuser[ii] , l[ii].nbfloat, binary);
-	       l[ii].writesolutionP0_double( fp, Th, stack, surface, binary, swap);
-	     }
-	    ENDTYPE_VTU( fp, "DataArray");
-	  }
-	}
-	ENDTYPE_VTU( fp, "CellData");
-      }
-      long offsetsol=0;
-      bool encode64=0;
-    */
-    VTU_WRITE_MESH( fp, Th, binary, datasize, surface, swap);
-
-    // Solution Order
-    // order 1
-    if( Norder0 != nbofsol){
-      BEGINTYPE_VTU( fp, "PointData");
-      for(int ii=0; ii< nbofsol; ii++){
-	if(order[ii] == 1){
-	  
-	  if(datasize == sizeof(float)){    
-	    VTU_DATA_ARRAY( fp, "Float32", nameofuser[ii] , l[ii].nbfloat, binary);
-	    l[ii].writesolutionP1_float( fp, Th, stack, binary, swap, 1);
-	  }
-	  else if(datasize == sizeof(double)) {
-	    VTU_DATA_ARRAY( fp, "Float64", nameofuser[ii] , l[ii].nbfloat, binary);
-	    l[ii].writesolutionP1_double( fp, Th, stack, binary, swap, 1);
-	  }
-	  
-	  ENDTYPE_VTU( fp, "DataArray");	   
-	}
-      }
-      ENDTYPE_VTU( fp, "PointData");
-    }
-    // order 0
-    if( Norder0 > 0 ){
-      BEGINTYPE_VTU( fp, "CellData");
-      for(int ii=0; ii< nbofsol; ii++){
-	if(order[ii] == 0){
-	  
-	  if(datasize == sizeof(float)){    
-	    VTU_DATA_ARRAY( fp, "Float32", nameofuser[ii] , l[ii].nbfloat, binary);
-	    l[ii].writesolutionP0_float( fp, Th, stack, surface, binary, swap, 1);
-	  }
-	  else if(datasize == sizeof(double)) {
-	    VTU_DATA_ARRAY( fp, "Float64", nameofuser[ii] , l[ii].nbfloat, binary);
-	    l[ii].writesolutionP0_double( fp, Th, stack, surface, binary, swap, 1);
-	  }
-	  ENDTYPE_VTU( fp, "DataArray");
-	}
-      }
-      ENDTYPE_VTU( fp,"CellData");
-      
-    }
-    fprintf(fp,"</Piece>\n"); 
-    fprintf(fp,"</UnstructuredGrid>\n");
-    fprintf(fp,"</VTKFile>\n");
-  }
-  else
-  {
-    cout << " iovtk extension file is not correct (" << VTK_FILE << " != 1 or 2 ) " <<  endl;
-    ExecError(" iovtk : extension file");
-  }
-  
-  // close file fp
-  fclose(fp);
-
-
-  for( int iiii=0; iiii<nbofsol; iiii++){
-    delete [] nameofuser[iiii];
-  }
-
-  delete [] pch;
-  return (Mesh *) NULL;
-}
-
-
-
-//==============================================
-// FIN ECRITURE DE FICHIER .vtk (2D)
-//==============================================
-
-//=======================
-// FIN 2D Fichier .vtk
-//=======================
-
-// three dimensional case
-// LOAD fichier.vtk
-class VTK_LoadMesh3_Op : public E_F0mps 
-{
-public:
-  Expression filename;
-  static const int n_name_param = 4; // 
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-public:
-  VTK_LoadMesh3_Op(const basicAC_F0 &  args,Expression ffname) 
-    : filename(ffname)
-  {
-    if(verbosity) cout << "Load mesh given by VTK " << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);   
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-basicAC_F0::name_and_type VTK_LoadMesh3_Op::name_param[]= {
-  {  "reftet", &typeid(long)},
-  {  "swap", &typeid(bool)},
-  {  "refface", &typeid(long)},
-  {  "namelabel",&typeid(string)}
-};
-
-
-class  VTK_LoadMesh3 : public OneOperator { public:  
-    VTK_LoadMesh3() : OneOperator(atype<pmesh3>(),atype<string *>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new VTK_LoadMesh3_Op( args,t[0]->CastTo(args[0]) ); 
-  }
-};
-
-Mesh3 * VTK_Load3(const string & filename, bool bigEndian)
-// swap = bigEndian or not bigEndian
-{
-  // variable freefem++
-  int nv, nt=0, nbe=0;
-    int nerr=0;
-  // Reading Mesh in vtk formats 
-  FILE *fp = fopen(filename.c_str(), "rb");
-  if(!fp){
-    cerr << "Unable to open file " << filename.c_str() << endl;
-    ExecError("error in reading vtk file");
-  }
-
-  char buffer[256], buffer2[256];
-    
-  fgets(buffer, sizeof(buffer), fp); // version line
-  fgets(buffer, sizeof(buffer), fp); // title
-  
-  fscanf(fp, "%s", buffer); // ASCII or BINARY
-  bool binary = false;
-  if( !strcmp(buffer, "BINARY") ) binary = true;
-    
-  if(fscanf(fp, "%s %s", buffer, buffer2) != 2){
-      cout << "error in reading vtk files" << endl;
-      ExecError("error in reading vtk file"); }
-  if(strcmp(buffer, "DATASET") || strcmp(buffer2, "UNSTRUCTURED_GRID")){
-    cout << "VTK reader can only read unstructured datasets" << endl;
-    ExecError("error in reading vtk file");
-  }
-    
-  // read mesh vertices
-  if(fscanf(fp, "%s %d %s\n", buffer, &nv, buffer2) != 3){
-      cout << "error in reading vtk files" << endl;
-      ExecError("error in reading vtk file"); }
-  if(strcmp(buffer, "POINTS") || !nv){
-    cerr << "No points in dataset" << endl;
-    ExecError("error in reading vtk file");
-  }
-  int datasize;
-  if( !strncmp(buffer2, "double",6))
-    datasize = sizeof(double);
-  else if( !strncmp(buffer2, "float",5))
-    datasize = sizeof(float);
-  else{
-    cout << "VTK reader only accepts float or double datasets" << endl;
-    ExecError("error in reading vtk file");
-  }
-  if(verbosity>3)
-   cout << "Reading %d points" << nv << " buffer2" <<  buffer2 << "binary"
-        << binary << " " << datasize << " "<< sizeof(float) << endl;
-  Vertex3   *vff = new Vertex3[nv];
-    
-  for(int i = 0 ; i < nv; i++){
-     if(verbosity>9)
-      cout << " i=" << i << endl;
-    double xyz[3];
-    if(binary){
-      if(datasize == sizeof(float)){
-	float f[3];
-	if(fread(f, sizeof(float), 3, fp) != 3){
-                cout << "error in reading vtk files" << endl;
-                ExecError("error in reading vtk file"); }
-	if(!bigEndian) SwapBytes((char*)f, sizeof(float), 3);
-	for(int j = 0; j < 3; j++) xyz[j] = f[j];
-      }
-      else{
-	if(fread(xyz, sizeof(double), 3, fp) != 3){
-               cout << "error in reading vtk files" << endl;
-               ExecError("error in reading vtk file"); }
-	if(!bigEndian) SwapBytes((char*)xyz, sizeof(double), 3);
-      }
-    }
-    else{
-      cout << datasize << " "<< sizeof(float) << endl;
-      if(datasize == sizeof(float)){ 
-	if(fscanf(fp, "%lf %lf %lf", &xyz[0], &xyz[1], &xyz[2]) != 3){
-               cout << "error in reading vtk files (float)" << endl;
-              ExecError("error in reading vtk file"); }
-      }
-      else{
-	if(fscanf(fp, "%lf %lf %lf", &xyz[0], &xyz[1], &xyz[2]) != 3){
-               cout << "error in reading vtk files (double)" << endl;
-               ExecError("error in reading vtk file"); }
-      }
-    }
-    vff[i].x = xyz[0];
-    vff[i].y = xyz[1];
-    vff[i].z = xyz[2];
-    vff[i].lab = 1;
-    if(verbosity>9)
-      printf( "xyz = %f %f %f\n", xyz[0],xyz[1], xyz[2]);
-  }    
-
-  // read mesh elements
-  int numElements, numElements2, totalNumInt;
-  if(fscanf(fp, "%s %d %d\n", buffer, &numElements, &totalNumInt) != 3){
-      cout << "error in reading vtk files" << endl;
-      ExecError("error in reading vtk file"); }
-   if(verbosity>3)
-    printf("reading parameter %s %d %d\n", buffer, numElements, totalNumInt);
-   if(strncmp(buffer, "CELLS",5) || !numElements){
-     cout << "No cells in dataset" << endl;
-     ExecError("error in reading vtk file");
-  }
-   if(verbosity>3)
-    cout << "Reading cells" << numElements << endl;
-  
-  int *IntCells   = new int[totalNumInt-numElements];
-  int *firstCell  = new int[numElements+1];
-  int *TypeCells   = new int[numElements];
-  int numIntCells = 0;
-  
-  for(unsigned int i = 0; i < numElements; i++){
-    int numVerts, n[100];
-     if(verbosity>9)
-    cout << "i=" << i << " " << numElements << endl;
-    for(int ii = 0; ii < 100; ii++) n[ii]=-1;
-    if(binary){
-      if( fread(&numVerts, sizeof(int), 1, fp) != 1 ) {
-	cout << "error in reading VTK files " << endl;
-	ExecError("error in reading vtk file");
-      }
-      if( !bigEndian) SwapBytes((char*)&numVerts, sizeof(int), 1);
-      if((int)fread(n, sizeof(int), numVerts, fp) != numVerts){
-	cout << "error in reading VTK files " << endl;
-	ExecError("error in reading vtk file");
-      }
-      if(!bigEndian) SwapBytes((char*)n, sizeof(int), numVerts);
-    }
-    else{
-      if(fscanf(fp, "%d", &numVerts) != 1){
-	cout << "error in reading VTK files " << endl;
-	ExecError("error in reading vtk file");
-      }
-      cout << "numVerts" << numVerts << endl;
-      for(int j = 0; j < numVerts; j++){
-	if(fscanf(fp, "%d", &n[j]) != 1){
-	  cout << "error in reading VTK files " << endl;
-	  ExecError("error in reading vtk file");
-	}
-        if(verbosity>9)
-	cout << "  n[j]" << n[j] << endl;
-      }
-    }
-    firstCell[i] = numIntCells;
-    for(int j = 0; j < numVerts; j++){
-      if(n[j] >= 0 && n[j] < nv){
-	IntCells[numIntCells] = n[j];
-	numIntCells++;
-      }	  
-      else{
-	cout << "Bad vertex index" << endl;
-	ExecError("error in reading vtk file");
-      }
-    }
-  }
-  firstCell[numElements] = totalNumInt-numElements;  
-  
-  if(fscanf(fp, "%s %d\n", buffer, &numElements2) != 2){
-    cout << " Error in reading CELL_TYPES ARGUMENT " << endl;
-    ExecError("error in reading vtk file");
-  }
-  if(strcmp(buffer, "CELL_TYPES") || numElements2 != (int)numElements){
-    cout <<"No or invalid number of cells types" << endl;
-    ExecError("error in reading vtk file");
-  }
-   if(verbosity>3)
-  printf( "reading parameter %s %d\n", buffer, numElements2);
-  
-  // 3D 
-  
-  for(unsigned int i = 0; i < numElements; i++){
-    int type;
-    if(binary){
-      if(fread(&type, sizeof(int), 1, fp) != 1){
-	cout <<"bug in readings cell types" << endl;
-	ExecError("error in reading vtk file");
-      }
-      if(!bigEndian) SwapBytes((char*)&type, sizeof(int), 1);
-    }
-    else{
-      if(fscanf(fp, "%d", &type) != 1){
-	cout <<"bug in readings cell types" << endl;
-	ExecError("error in reading vtk file");
-      }
-    }
-    TypeCells[i] = type;
-      switch(type){
-      case 1:  // Vertex
-	 if(nerr++< 3 && verbosity)  cout << "this type of cell (vertex) is not taking account in Freefem++ " << endl;
-	break;
-      case 3:  // Edge/line
-	cout << "this type of cell is not taking account in Freefem++ for a two dimensional mesh" << endl; // 3D
-	break;
-      case 5:  // Triangle
-	nbe++; // 3D
-	break;   
-      case 10: // Tetrah�dre
-	nt++;
-	break;  
-      default: 
-	cout << "Error :: This type of cell is not considered in Freefem++"<< endl;
-	ExecError("error in reading vtk file");
-	break;
-	
-      }
-    }  
-
-    fclose(fp);
-
-    
-    // 3D versions
-    
-    Tet *tff;
-    if( nt >0) tff = new Tet[nt];
-    Tet *ttff = tff;
-
-    Triangle3 *bff  = new Triangle3[nbe];
-    Triangle3 *bbff = bff;
-
-    for(unsigned int i = 0; i < numElements; i++){
-      int type=TypeCells[i];
-      int ivb[3],ivt[4];
-      int label=1;
-      switch(type){
-      case 1:  // Vertex
-	 if(nerr++<3 && verbosity) cout << "this type of cell is not taking account in Freefem++ " << endl;
-	break;
-      case 3:  // Edge/line
-	break;
-      case 5:  // Triangle
-	cout << i << " " << firstCell[i+1] << " " << firstCell[i] << endl;
-	assert( (firstCell[i+1]-firstCell[i]) == 3 );
-	for(int j=firstCell[i]; j<firstCell[i+1]; j++){
-    	  ivb[j-firstCell[i]] = IntCells[j];
-	}
-	(bbff++)->set(vff, ivb, label);
-	break;   
-      case 10: // Tetrah�dre
-	assert( (firstCell[i+1]-firstCell[i]) == 4 );
-	for(int j=firstCell[i]; j<firstCell[i+1]; j++){
-    	  ivt[j-firstCell[i]] = IntCells[j];
-	}
-	(ttff++)->set(vff, ivt, label);
-	break;  
-      default: 
-	break;	
-      } 
-    }
-    
-    delete [] IntCells;   
-    delete [] firstCell; 
-    delete [] TypeCells;
-
-    if(nt>0){
-      Mesh3 *pTh = new Mesh3(nv,nt,nbe,vff,tff,bff);
-      return pTh;
-    }
-    else{
-      Mesh3 *pTh = new Mesh3(nv,nbe,vff,bff);
-      return pTh;
-    }
-    
-}
-
-AnyType VTK_LoadMesh3_Op::operator()(Stack stack)  const 
-{
- 
-  string * pffname= GetAny<string *>((*filename)(stack));
-  bool swap = false;
-  int reftetra=1; 
-  int reftri = 1;
-  
-  if( nargs[0] )  reftetra = GetAny<long>((*nargs[0])(stack));
-  if( nargs[1] )  swap = GetAny< bool >((*nargs[1])(stack));
-  if( nargs[2] )  reftri = GetAny<long>((*nargs[2])(stack));
-
-  string *DataLabel;
-  if( nargs[3] ) DataLabel = GetAny<string *>((*nargs[3])(stack));
-
-  Mesh3 * Th = VTK_Load3( *pffname, swap); 
-
-  // A faire fonction pour changer le label
-
-  Add2StackOfPtr2FreeRC(stack,Th);
-		
-  return Th;
-}
-
-//==============================================
-// ECRITURE DE FICHIER .vtk (3D)
-//==============================================
-
-class VTK_WriteMesh3_Op : public E_F0mps 
-{
-public:
-  typedef long  Result;
-  Expression eTh;
-  Expression filename;
-  
-  struct Expression2 {
-    string name;
-    long what; // 1 scalar, 2 vector, 3 symtensor
-    long nbfloat; // 1 scalar, 2 vector (3D), 3 symtensor(3D)
-    Expression e[6];
-    Expression2() {e[0]=0; e[1]=0; e[2]=0; e[3]=0; e[4]=0; e[5]=0; what=0; nbfloat=0;};
-    Expression &operator[](int i){return e[i];}
-    double eval(int i,Stack stack) const  { 
-    if (e[i]) {
-      return GetAny< double >( (*e[i])(stack) );
-    }
-    else 
-      return 0;
-    }
-    
-    void writesolutionP0_float_XML( FILE *fp, const Mesh3 &Th, Stack stack, bool surface) const {      
-      unsigned char ElementChars[256];
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R3 Cdg_hat = R3(1./4.,1./4.,1/4.);  
-      
-      long nc=Th.nt;
-      if(surface) nc=nc+Th.nbe;
-     
-      unsigned nbytes= nc*sizeof(float)*(*this).nbfloat;
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
- 
-      for (int it=0;it<Th.nt;it++){
-	const Tet  & K(Th.elements[it]);
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< nbfloat;j++){
-	  float value = eval(j,stack);
-	 	   
-	  l=runEncodeB64(sizeof(float),(unsigned char *)&value,ElementChars);
-	  ElementChars[l]=0;
-	  fwrite(&ElementChars,l,1,fp);
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.nbe;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Tet & K(Th.elements[it]);
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< nbfloat;j++){
-	    float value = eval(j,stack);
-
-	    l=runEncodeB64(sizeof(float),(unsigned char *)&value,ElementChars);
-	    ElementChars[l]=0;
-	    fwrite(&ElementChars,l,1,fp);
-	    
-	  } 
-	}
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      fprintf(fp,"\n");
-       
-    }
-    void writesolutionP0_float_binary( FILE *fp, const Mesh3 &Th, Stack stack, bool surface, bool bigEndian) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R3 Cdg_hat = R3(1./4.,1./4.,1/4.);  
-      
-      if(!bigEndian){
-      
-	for (int it=0;it<Th.nt;it++){
-	  const Tet  & K(Th.elements[it]);
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< nbfloat;j++){
-	    float value = eval(j,stack);
-
-	    SwapBytes((char*)&value, sizeof(float), 1);
-	    fwrite(&value, sizeof(float), 1, fp);
-	  } 
-	}
-
-	if( surface ){
-	  for (int ibe=0;ibe<Th.nbe;ibe++){
-	    // determination du triangle contenant cette edge
-	    int ie;
-	    int it = Th.BoundaryElement( ibe, ie); 
-	    const Tet & K(Th.elements[it]);
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    
-	    for(int j=0;j< nbfloat;j++){
-	      float value = eval(j,stack);
-       
-	      SwapBytes((char*)&value, sizeof(float), 1);
-	      fwrite(&value, sizeof(float), 1, fp);
-	    } 
-	  }
-	}
-      }
-      else{   
-	for (int it=0;it<Th.nt;it++){
-	  const Tet  & K(Th.elements[it]);
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< nbfloat;j++){
-	    float value = eval(j,stack);
-	   
-	    fwrite(&value, sizeof(float), 1, fp);	 
-	  } 
-	}
-
-	if( surface ){
-	  for (int ibe=0;ibe<Th.nbe;ibe++){
-	    // determination du triangle contenant cette edge
-	    int ie;
-	    int it = Th.BoundaryElement( ibe, ie); 
-	    const Tet & K(Th.elements[it]);
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    
-	    for(int j=0;j< nbfloat;j++){
-	      float value = eval(j,stack);
-
-	      fwrite(&value, sizeof(float), 1, fp);  
-	    } 
-	  }
-	}
-      }
-      fprintf(fp,"\n"); 
-    }
-    void writesolutionP0_float( FILE *fp, const Mesh3 &Th, Stack stack, bool surface) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R3 Cdg_hat = R3(1./4.,1./4.,1/4.);  
-      
-      for (int it=0;it<Th.nt;it++){
-	const Tet  & K(Th.elements[it]);
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< nbfloat;j++){
-	  float value = eval(j,stack);
-	  
-	  fprintf(fp,"%.8e ",value); 
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.nbe;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Tet & K(Th.elements[it]);
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< nbfloat;j++){
-	    float value = eval(j,stack);
-	    
-	    fprintf(fp,"%.8e ",value); 
-	  } 
-	}
-      }
-      fprintf(fp,"\n"); 
-      
-    }
-
-    void writesolutionP0_float( FILE *fp, const Mesh3 &Th, Stack stack, bool surface, bool binary, bool bigEndian, bool XML=false) const {
-      if(binary){
-	if(!XML){
-	  (*this).writesolutionP0_float_binary( fp, Th, stack, surface, bigEndian); 
-	}
-	else
-	  (*this).writesolutionP0_float_XML( fp, Th, stack, surface );
-      }
-      else 
-	(*this).writesolutionP0_float( fp, Th, stack, surface );
-    }
-
-    void writesolutionP0_double_binary( FILE *fp, const Mesh3 &Th, Stack stack, bool surface, bool bigEndian) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R3 Cdg_hat = R3(1./4.,1./4.,1./4.);  
-      
-      if(!bigEndian){
-      
-	for (int it=0;it<Th.nt;it++){
-	  const Tet  & K(Th.elements[it]);
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    double value = (*this).eval(j,stack);
-	    
-	    SwapBytes((char*)&value, sizeof(double), 1);
-	    fwrite(&value, sizeof(double), 1, fp);
-	  } 	  
-	}
-	if( surface ){
-	  for (int ibe=0;ibe<Th.nbe;ibe++){
-	    // determination du triangle contenant cette edge
-	    int ie;
-	    int it = Th.BoundaryElement( ibe, ie); 
-	    const Tet & K(Th.elements[it]);
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    
-	    for(int j=0;j< (*this).nbfloat;j++){
-	      double value = (*this).eval(j,stack);
-	     
-	      SwapBytes((char*)&value, sizeof(double), 1);
-	      fwrite(&value, sizeof(double), 1, fp);
-	    } 
-	  }	  
-	}
-      }
-      else{
-	for (int it=0;it<Th.nt;it++){
-	  const Tet  & K(Th.elements[it]);
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    double value = (*this).eval(j,stack);
-
-	    fwrite(&value, sizeof(double), 1, fp);
-	  } 	  
-	}
-	if( surface ){
-	  for (int ibe=0;ibe<Th.nbe;ibe++){
-	    // determination du triangle contenant cette edge
-	    int ie;
-	    int it = Th.BoundaryElement( ibe, ie); 
-	    const Tet & K(Th.elements[it]);
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    
-	    for(int j=0;j< (*this).nbfloat;j++){
-	      double value = (*this).eval(j,stack);
-	    
-	      fwrite(&value, sizeof(double), 1, fp);
-	    } 
-	  }	  
-	}
-      }
-
-      fprintf(fp,"\n");
-    }
-    void writesolutionP0_double_XML( FILE *fp, const Mesh3 &Th, Stack stack, bool surface) const {   
-      unsigned char ElementChars[256];
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R3 Cdg_hat = R3(1./4.,1./4.,1./4.);  
-      long nc=Th.nt;
-      if(surface) nc=nc+Th.nbe;
-
-      unsigned nbytes= nc*sizeof(double)*(*this).nbfloat;
-      int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-
-      for (int it=0;it<Th.nt;it++){
-	const Tet  & K(Th.elements[it]);
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< (*this).nbfloat;j++){
-	  double value = (*this).eval(j,stack);
-	  
-	  l=runEncodeB64(sizeof(double),(unsigned char *)&value,ElementChars);
-	  ElementChars[l]=0;
-	  fwrite(&ElementChars,l,1,fp);
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.nbe;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Tet & K(Th.elements[it]);
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    double value = (*this).eval(j,stack);
-
-	    l=runEncodeB64(sizeof(double),(unsigned char *)&value,ElementChars);
-	    ElementChars[l]=0;
-	    fwrite(&ElementChars,l,1,fp);
-	    
-	  } 
-	  
-	}
-      }
-      // flush buffer
-      l=runEncodeB64(0,NULL,ElementChars);
-      ElementChars[l]=0;
-      fwrite(&ElementChars,l,1,fp);
-      fprintf(fp,"\n");
-    }
-    void writesolutionP0_double( FILE *fp, const Mesh3 &Th, Stack stack, bool surface) const {      
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      R3 Cdg_hat = R3(1./4.,1./4.,1./4.);  
-      
-      for (int it=0;it<Th.nt;it++){
-	const Tet  & K(Th.elements[it]);
-	mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	
-	for(int j=0;j< (*this).nbfloat;j++){
-	  double value = (*this).eval(j,stack);
-	  fprintf(fp,"%.16e ",value); 	  	  
-	} 
-      }
-      if( surface ){
-	for (int ibe=0;ibe<Th.nbe;ibe++){
-	  // determination du triangle contenant cette edge
-	  int ie;
-	  int it = Th.BoundaryElement( ibe, ie); 
-	  const Tet & K(Th.elements[it]);
-	  mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    double value = (*this).eval(j,stack);
- 
-	    fprintf(fp,"%.16e ",value); 	   
-	  } 
-	  
-	}
-      }
-      //fprintf(fp,"\n");
-    }
-
-    void writesolutionP0_double( FILE *fp, const Mesh3 &Th, Stack stack, bool surface, bool binary, bool bigEndian, bool XML=false) const {
-      if(binary){
-	if(!XML){
-	  (*this).writesolutionP0_double_binary( fp, Th, stack, surface, bigEndian); 
-	}
-	else
-	  (*this).writesolutionP0_double_XML( fp, Th, stack, surface );
-      }
-      else 
-	(*this).writesolutionP0_double( fp, Th, stack, surface );
-    }
-
-    void writesolutionP1_float( FILE *fp, const Mesh3 &Th, Stack stack, bool binary, bool bigEndian,bool XML=false) const {
-      unsigned char ElementChars[256];
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      KN<double> valsol(Th.nv*(*this).nbfloat);
-      KN<int> takemesh(Th.nv);
-      takemesh =0;
-      valsol   =0.;
-       for(int it=0;  it<Th.nt; it++){
-	 for(int iv=0; iv<4; iv++){
-	   int i=Th(it,iv);
-	   mp3->setP(&Th,it,iv);
-	   
-	   for(int j=0;j<(*this).nbfloat;j++){
-	     valsol[ i*(*this).nbfloat+j ] = valsol[ i*(*this).nbfloat+j ] + (*this).eval(j,stack);	     
-	   }
-	   takemesh[i] = takemesh[i]+1;    
-	 }
-       }
-       
-       if(binary){
-	 if(!XML){
-	   if(!bigEndian){ 
-	     for (int iv=0;iv<Th.nv;iv++){
-	       for(int j=0;j< (*this).nbfloat;j++){
-		 valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-		 float value = valsol[iv*(*this).nbfloat+j];
-		
-		 if(!bigEndian) SwapBytes((char*)&value, sizeof(float), 1);
-		 fwrite(&value, sizeof(float), 1, fp);
-		 
-	       }
-	     }
-	   }
-	   else{
-	     for (int iv=0;iv<Th.nv;iv++){
-	       for(int j=0;j< (*this).nbfloat;j++){
-		 valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-		 float value = valsol[iv*(*this).nbfloat+j];
-		 
-		 fwrite(&value, sizeof(float), 1, fp);
-	       }
-	     }
-	   }
-	 }
-	 else{
-	   long nc=Th.nv;
-	   
-	   unsigned nbytes= nc*sizeof(float)*(*this).nbfloat;
-	   int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-	   ElementChars[l]=0;
-	   fwrite(&ElementChars,l,1,fp);
-
-	   for (int iv=0;iv<Th.nv;iv++){
-	     for(int j=0;j< (*this).nbfloat;j++){
-	       valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-	       float value = valsol[iv*(*this).nbfloat+j];
-	   
-	       l=runEncodeB64(sizeof(float),(unsigned char *)&value,ElementChars);
-	       ElementChars[l]=0;
-	       fwrite(&ElementChars,l,1,fp);
-	     }
-	   }
-	   // flush buffer
-	   l=runEncodeB64(0,NULL,ElementChars);
-	   ElementChars[l]=0;
-	   fwrite(&ElementChars,l,1,fp);
-	  
-	 }	 
-       }
-       else{
-      
-	 for (int iv=0;iv<Th.nv;iv++){
-	   for(int j=0;j< (*this).nbfloat;j++){
-	     valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-	     float value = valsol[iv*(*this).nbfloat+j];
-	     
-	     fprintf(fp," %.8e\n",value);
-	   }
-	 }
-       }
-       fprintf(fp,"\n");
-    }
-
-    void writesolutionP1_double( FILE *fp, const Mesh3 &Th, Stack stack, bool binary, bool bigEndian, bool XML=false) const {
-      unsigned char ElementChars[256];
-      MeshPoint *mp3(MeshPointStack(stack)); 
-      KN<double> valsol(Th.nv*(*this).nbfloat);
-      KN<int> takemesh(Th.nv);
-      takemesh =0;
-      valsol   =0.;
-      for(int it=0;  it<Th.nt; it++){
-	for(int iv=0; iv<4; iv++){
-	  int i=Th(it,iv);
-	  mp3->setP(&Th,it,iv);
-	  
-	  for(int j=0;j<(*this).nbfloat;j++){
-	    valsol[ i*(*this).nbfloat+j ] = valsol[ i*(*this).nbfloat+j ] + (*this).eval(j,stack);	     
-	  }
-	  takemesh[i] = takemesh[i]+1;    
-	}
-      }
-      
-      if(binary){	
-	if( !XML ){
-	  if( !bigEndian ){
-	    for (int iv=0;iv<Th.nv;iv++){
-	      for(int j=0;j< (*this).nbfloat;j++){
-		valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-		double value = valsol[iv*(*this).nbfloat+j];
-		
-		SwapBytes((char*)&value, sizeof(double), 1);
-		fwrite(&value, sizeof(double), 1, fp);
-		
-	      }	   
-	    }
-	  }
-	  else{
-	    for (int iv=0;iv<Th.nv;iv++){
-	      for(int j=0;j< (*this).nbfloat;j++){
-		valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-		double value = valsol[iv*(*this).nbfloat+j];
-		
-		fwrite(&value, sizeof(double), 1, fp);
-		
-	      }	   
-	    }
-	  }
-	}
-	else{
-	   long nc=Th.nv;
-	   
-	   unsigned nbytes= nc*sizeof(double)*(*this).nbfloat;
-	   int l=runEncodeB64(sizeof(int),(unsigned char *)&nbytes,ElementChars);
-	   ElementChars[l]=0;
-	   fwrite(&ElementChars,l,1,fp);
-
-	   for (int iv=0;iv<Th.nv;iv++){
-	     for(int j=0;j< (*this).nbfloat;j++){
-	       valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-	       double value = valsol[iv*(*this).nbfloat+j];
-	   
-	       l=runEncodeB64(sizeof(double),(unsigned char *)&value,ElementChars);
-	       ElementChars[l]=0;
-	       fwrite(&ElementChars,l,1,fp);
-	     }
-	   }
-	   // flush buffer
-	   l=runEncodeB64(0,NULL,ElementChars);
-	   ElementChars[l]=0;
-	   fwrite(&ElementChars,l,1,fp);
-	   
-	}
-
-      }
-      else{
-	for (int iv=0;iv<Th.nv;iv++){
-	  for(int j=0;j< (*this).nbfloat;j++){
-	    valsol[iv*(*this).nbfloat+j] = valsol[ iv*(*this).nbfloat+j ]/takemesh[iv];
-	    double value = valsol[iv*(*this).nbfloat+j];
-	
-	      fprintf(fp,"%.16e ",value); 
-	  
-	  }	   
-	}
-      }
-      fprintf(fp,"\n");     
-    }    
-  };
-  vector<Expression2> l;
-  static const int n_name_param = 7;  
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-  long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  
-public:
-  VTK_WriteMesh3_Op(const basicAC_F0 &  args) : l( args.size()-2 )
-  {
-    int nbofsol;
-    int ddim=3;
-    int stsize=6;
-
-     int sca=0,vec=0,ten=0;
-    
-    string scas("scalaire"); 
-    string vecs("vector"); 
-    string tens("tensor"); 
-
-    if(verbosity) cout << "Write Mesh and Solutions in VTK Formats" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-
-    if (BCastTo<string *>(args[0])) filename = CastTo<string *>(args[0]);
-    if (BCastTo<pmesh3>(args[1])) eTh= CastTo<pmesh3>(args[1]);
-    
-    nbofsol = l.size();
-    for (size_t i=2;i<args.size();i++){
-      size_t jj=i-2;
-      
-      if ( BCastTo<double>( args[i] ))
-	{
-	  l[jj].what=1;
-	  l[jj].nbfloat=1;
-	  l[jj][0]=to<double>( args[i] );
-	  
-	  char number[16];
-	  sprintf(number,"%li",jj+1);
-	  l[jj].name=scas;
-	  l[jj].name+=number;
-	  sca++;
-
-	}
-      else if ( args[i].left()==atype<E_Array>() )
-	{
-	  const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-	  //cout << "taille" << a0->size() << endl;
-	  if (a0->size() != ddim && a0->size() != stsize) 
-	    CompileError("savesol in 3D: vector solution is 3 composant, tensor solution is 6 composant");
-	  
-	  if( a0->size() == ddim){
-	    // vector solution
-	    l[jj].what=2;
-	    l[jj].nbfloat=ddim;
-	    for(int j=0; j<ddim; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	     char number[16];
-	    sprintf(number,"%li",jj+1);
-	    l[jj].name=vecs;
-	    l[jj].name+=number;
-	    vec++;	  
-	    
-	  }
-	  else if( a0->size() == stsize){
-	    // symmetric tensor solution
-	    l[jj].what=3;
-	    l[jj].nbfloat=stsize;
-	    for(int j=0; j<stsize; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	    char number[16];
-	    sprintf(number,"%li",jj+1);
-	    l[jj].name=tens;
-	    l[jj].name+=number;
-	    ten++;
-	  }
-	  
-	}
-      else {
-	cout << " arg " << i << " " << args[i].left() << endl;
-	CompileError("savesol in 2D: Sorry no way to save this kind of data");
-      }
-    }
-  }
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype<string *>(), atype<pmesh3>(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new VTK_WriteMesh3_Op(args);}   
-  AnyType operator()(Stack stack)  const ;
-};
-basicAC_F0::name_and_type VTK_WriteMesh3_Op::name_param[]= {
-  {  "dataname", &typeid(string*)},
-  {  "withsurfacemesh", &typeid(bool)},
-  {  "order", &typeid(KN_<long>)},
-  // A rajouter dans le 3D
-  {  "floatmesh", &typeid(bool)},
-  {  "floatsol", &typeid(bool)},
-  {  "bin", &typeid(bool)},
-  {  "swap", &typeid(bool)}
-};
-  
-void VTK_WRITE_MESH3( const string &filename, FILE *fp, const Mesh3 &Th, bool binary, int datasize, bool surface, bool bigEndian){
-     
-  fprintf(fp, "# vtk DataFile Version 2.0\n");
-  fprintf(fp, "%s, Created by Freefem++ \n", filename.c_str());
-  if(binary)
-    fprintf(fp, "BINARY\n");
-  else
-    fprintf(fp, "ASCII\n");
-  fprintf(fp, "DATASET UNSTRUCTURED_GRID\n");
-  // get all the entities in the model
-
-  // write mesh vertices
-  if(datasize == sizeof(float)) fprintf(fp, "POINTS %d float\n", Th.nv);
-  if(datasize == sizeof(double)) fprintf(fp, "POINTS %d double\n", Th.nv);
-  
-  if(datasize == sizeof(float)) {      
-    for(unsigned int i = 0; i < Th.nv; i++){
-      const  Vertex3 & P = Th.vertices[i];
-      float f[3];
-      f[0]=P.x;
-      f[1]=P.y;
-      f[2]=P.z; 
-      if(binary){
-	if(!bigEndian) SwapBytes((char*)&f, sizeof(float), 3);
-	fwrite(&f, sizeof(float), 3, fp);
-      }
-      else{
-	fprintf(fp,"%.8f %.8f %.8f\n",f[0],f[1],f[2]);
-      }
-    }  
-  }
-  else if(datasize == sizeof(double)){
-    for(unsigned int i = 0; i < Th.nv; i++){
-      const  Vertex3 & P = Th.vertices[i];
-      double f[3];
-      f[0]=P.x;
-      f[1]=P.y;
-      f[2]=P.z;    // 3D case
-      if(binary){
-	if(!bigEndian) SwapBytes((char*)&f, sizeof(float), 3);
-	fwrite(&f, sizeof(float), 3, fp);
-      }
-      else{
-	fprintf(fp,"%lf %lf %lf\n",f[0],f[1],f[2]);
-      }
-    }  
-  }
-  fprintf(fp,"\n");
-  if(verbosity > 1) printf("writting vertices is finish\n");
-  if(verbosity > 1) printf("writting elements now\n");
-  
-  //================
-  //    CELL 
-  //================
-  // loop over all elements we need to save and count vertices
-  int numElements, totalNumInt;
-  if(surface){
-    numElements = Th.nt+Th.nbe; 
-    totalNumInt = Th.nt*4+Th.nbe*3+numElements;
-  }
-  else{
-    numElements = Th.nt; 
-    totalNumInt = Th.nt*4+numElements;
-  }
-  if(verbosity > 1) printf("writting cells \n");
-  // print vertex indices in ascii or binary
-  fprintf(fp, "CELLS %d %d\n", numElements, totalNumInt);
-
-  if(binary){
-    int IntType=4;
-    if(verbosity > 1) printf("writting tetrahedron elements \n");
-    for(int it=0; it< Th.nt; it++){    
-      const Tet & K( Th.elements[it] );
-      int iv[IntType+1];
-      
-      iv[0] = IntType;
-      for(int ii=0; ii<IntType; ii++){
-	iv[ii+1] = Th.operator()(K[ii]);
-      }
-      
-      if(!bigEndian) SwapBytes((char*)&iv, sizeof(int), IntType+1);
-      fwrite(&iv, sizeof(int), IntType+1, fp);
-      
-    }
-    if(surface){
-      if(verbosity > 1) printf("writting triangle elements \n");
-      IntType=3;
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	 const Triangle3 &K( Th.be(ibe) );
-      
-	 int iv[IntType+1];    
-	 iv[0] = IntType;
-	 for(int ii=0; ii<IntType; ii++){
-	   iv[ii+1] = Th.operator()(K[ii]);
-	 }
-	 
-	 if(!bigEndian) SwapBytes((char*)&iv, sizeof(int), IntType+1);
-	 fwrite(&iv, sizeof(int), IntType+1, fp);
-      }
-    }
-  }
-  else{
-    int IntType=4;
-    if(verbosity > 1) printf("writting tetrahedron elements \n");
-    for(int it=0; it< Th.nt; it++){   
-      const Tet &K( Th.elements[it] );
-
-      int iv[IntType+1];      
-      iv[0] = IntType;
-      for(int ii=0; ii<IntType; ii++){
-	iv[ii+1] = Th.operator()(K[ii]);
-      }
-      fprintf(fp,"%d %d %d %d %d\n", iv[0],iv[1],iv[2],iv[3],iv[4]);
-    }
-    if(surface){
-      if(verbosity > 1) printf("writting triangle elements \n");
-      IntType=3;
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	const Triangle3 &K( Th.be(ibe) );
-	
-	int iv[IntType+1];    
-	iv[0] = IntType;
-	for(int ii=0; ii<IntType; ii++){
-	  iv[ii+1] = Th.operator()(K[ii]);
-	}
-	
-	fprintf(fp,"%d %d %d %d\n", iv[0],iv[1],iv[2],iv[3]);
-      }
-    }
-  }
-  fprintf(fp, "\n");
-
-
-  // CELL_TYPE
-  // print element types in ascii or binary  
-  
-  fprintf(fp, "CELL_TYPES %d\n", numElements); 
-  if(binary){
-    unsigned int type;      
-    for(int it=0; it< Th.nt; it++){
-      type = VTK_TET; 
-      if(!bigEndian) SwapBytes((char*)&type, sizeof(int), 1);
-      fwrite(&type, sizeof(int), 1, fp);
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	type=VTK_TRI;
-	if(!bigEndian) SwapBytes((char*)&type, sizeof(int), 1);
-	fwrite(&type, sizeof(int), 1, fp);
-      }
-    }
-  }
-  else{
-    unsigned int type;
-    for(int it=0; it< Th.nt; it++){  
-      type= VTK_TET;
-      fprintf(fp,"%d ",type);
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	type=VTK_TRI;
-	fprintf(fp,"%d ",type);
-      }
-    }
-  } 
-
-  fprintf(fp, "\n");
-
-  //=================================
-  //  WRITE SOLUTION IN FORMAT VTK
-  //     LABEL OF ELEMENTS
-  //=================================
-
-  list<int> list_label_Elem;
-  //list<int> list_label_Border_Elem;
-  {
-    
-    for(int it=0; it< Th.nt; it++){
-      const Tet &K( Th.elements[it] );
-      list<int>::const_iterator ilist;
-      int labOk=0;
-      for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++){
-	  if( *ilist == K.lab ){ labOk = 1;   break; } 
-	}
-	if( labOk == 0){
-	  list_label_Elem.push_back(K.lab);
-	}
-    }
-    
-    if(surface){
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	const Triangle3 &K( Th.be(ibe) );
-	list<int>::const_iterator ilist;
-	int labOk=0;
-	for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++){
-	  if( *ilist == K.lab ){ labOk = 1;   break; } 
-	}
-	if( labOk == 0){
-	  list_label_Elem.push_back(K.lab);
-	}
-      
-      }
-    }
-  
-  }
-  list_label_Elem.sort();
-
-  //=================================
-  //=================================
-  
-  fprintf(fp, "CELL_DATA %d\n", numElements);
-  int cell_fd=1;
-  int cell_lab=1;
-  fprintf(fp, "Scalars  Label int%d\n", cell_fd);
-  fprintf(fp, "LOOKUP_TABLE FreeFempp_table\n"); 
-  // Determination des labels
-  if(binary){
-    int label;    
-    for(int it=0; it< Th.nt; it++){
-      const Tet &K( Th.elements[it] );
-      label =K.lab;
-      if(!bigEndian) SwapBytes((char*)&label, sizeof(int), 1);
-      fwrite(&label, sizeof(int), 1, fp);
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	const Triangle3 &K( Th.be(ibe) );
-	label =K.lab;
-	if(!bigEndian) SwapBytes((char*)&label, sizeof(int), 1);
-	fwrite(&label, sizeof(int), 1, fp);
-      }
-    }
-  }
-  else{
-    int label;
-    for(int it=0; it< Th.nt; it++){ 
-      const Tet &K( Th.elements[it] );
-      label =K.lab;
-      fprintf(fp,"%d\n",label);
-    }
-    if(surface){
-      for(int ibe=0; ibe<Th.nbe; ibe++){
-	const Triangle3 &K( Th.be(ibe) );
-	label =K.lab;
-	fprintf(fp,"%d\n",label);
-      }
-    }
-  } 
-
-  fprintf(fp,"\n");
-
-  int size_list=0;
-  list<int>::const_iterator ilist;
-  for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++) size_list++;
-
-  fprintf(fp, "LOOKUP_TABLE FreeFempp_table %d\n",size_list);
-  { list<int>::const_iterator ilist;
-    for( ilist=list_label_Elem.begin(); ilist!=list_label_Elem.end(); ilist++){
- 
-      if(binary){
-	 int tab[4];
-	 tab[0] = (int) ColorTable[abs(*ilist)%NbColorTable][0]*255;
-	 tab[1] = (int) ColorTable[abs(*ilist)%NbColorTable][1]*255;
-	 tab[2] = (int) ColorTable[abs(*ilist)%NbColorTable][2]*255;
-	 tab[3] = 255;
-	 
-	 for(int itab=0; itab<4; itab++){
-	   char newvalue[sizeof(int)];
-	   int bid0= sprintf(newvalue,"%s", (char*)&tab[itab]);
-	   fwrite( &newvalue, sizeof(unsigned char), 1, fp);
-	 }
-
-      }
-      else{
-	float tab[4];
-	tab[0] = ColorTable[abs(*ilist)%NbColorTable][0];
-	tab[1] = ColorTable[abs(*ilist)%NbColorTable][1];
-	tab[2] = ColorTable[abs(*ilist)%NbColorTable][2];
-	tab[3] = 1.0;
-
-	fprintf(fp,"%.8f %.8f %.8f %.8f\n",tab[0],tab[1],tab[2],tab[3]);
-      }
-    }
-  }
-  fprintf(fp,"\n");
-  
-}
-
-AnyType VTK_WriteMesh3_Op::operator()(Stack stack)  const 
-{
- 
-  string * pffname= GetAny<string *>((*filename)(stack));
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  ffassert(pTh);
-  Mesh3 &Th=*pTh;
-  bool swap = false;
-  bool bigEndian = false;
-  bool binary = false;
-  bool surface = true;
-  bool floatmesh = true;
-  bool floatsol = true;
-  int datasize = sizeof(float);
-  int datasizeSol = sizeof(float);
-  string *dataname;
-  int nbofsol = l.size();
-  KN<int> order(nbofsol);
-  
-  char *nameofuser[nbofsol];
-
-  for(int ii=0; ii<nbofsol; ii++) order[ii] = 0;
-
-  if( nargs[0] ) dataname  = GetAny< string* >( (*nargs[0])(stack) );  
-  if( nargs[1] ) surface   = GetAny< bool >( (*nargs[1])(stack) );
-  if( nargs[2] ) order     = GetAny< KN_<long> >( (*nargs[2])(stack) );
-  if( nargs[3] ) floatmesh = GetAny< bool >( (*nargs[3])(stack) );
-  if( nargs[4] ) floatsol  = GetAny< bool  >( (*nargs[4])(stack) );
-  if( nargs[5] ) binary    = GetAny< bool  >( (*nargs[5])(stack) );
-  if( nargs[6] ) bigEndian = GetAny< bool  >( (*nargs[6])(stack) );
-
-  swap = bigEndian;
-
-  if( !floatmesh ) datasize = sizeof(double);
-  if( !floatsol ) datasizeSol= sizeof(double);
-
-
-  int iii=0;
-  if( nargs[0]){
-    char *data = newcopy(dataname);
-    if(verbosity>5)
-      cout << "   iovtk writeMesh3: names  \""<< data <<"\"" <<  endl;
-    char * name =strtok(data," \n\0\t");
-    nameofuser[iii] = newcopy(name);
-    if(verbosity>5)
-      cout << "   iovtk writeMesh3:value of iii=" << iii << " " << nameofuser[iii] <<endl;
-    iii++;
-    {
-      
-      while(( name= strtok(NULL," \n\0\t")) ){
-	if( iii >= nbofsol )
-	  {
-	    if(verbosity)
-	      cout << "   iovtk writeMesh3: The number of data name is too large " << endl;
-	    break;
-	  }
-	nameofuser[iii] = newcopy(name);
-	if(verbosity>5)
-	  cout << "   iovtk writeMesh3:value of iii=" << iii << " " << nameofuser[iii] <<endl;
-	iii++;
-      }
-      if( iii < nbofsol){	
-	if(verbosity)
-	cout << "   iovtk writeMesh3: The number of data name is too small, we give default name " << endl;
-      }
-      
-    }
-  }
-  if( iii < nbofsol ){
-    for( int iiii=iii; iiii<nbofsol; iiii++)
-      nameofuser[iiii] = newcopy(l[iiii].name.c_str());    
-  }
-
-  // determination of number of order 0 et 1.
-  int Norder0=0;
-  for(int ii=0; ii< nbofsol; ii++)
-    if(order[ii] == 0) Norder0++;
-
-  // lecture du nom des variables
-
-  FILE *fp = fopen( (*pffname).c_str(), "wb");
-  if(!fp){
-    cerr << "Unable to open file " << (*pffname).c_str() << endl;
-    ExecError("error in reading vtk file")  ;
-  }
-  
-  // type of VTK FILE
-  char * pch = newcopy(pffname);
-  int VTK_FILE = 0;
-  int ls = 0;
-  int lll = strlen(pch);
-  if      (!strcmp(pch+ lll - (ls=4),".vtk"))  VTK_FILE = 1;
-  else if (!strcmp(pch + lll - (ls=4),".vtu")) VTK_FILE = 2;
-  
-  if(VTK_FILE == 1){
-    VTK_WRITE_MESH3( *pffname, fp, Th, binary, datasize, surface, swap); 
-    
-    if( datasizeSol == sizeof(float) ){
-      
-      if( Norder0 >0){
-	fprintf(fp, "FIELD FieldData %d\n", Norder0);
-	for(int ii=0; ii< nbofsol; ii++){
-	  if(order[ii] == 0){
-	    int nsol;
-	    if(surface){
-	      nsol = Th.nt+Th.nbe;
-	    }
-	    else{
-	      nsol = Th.nt;
-	    }
-	    
-	    fprintf(fp,"%s %ld %d float\n",nameofuser[ii],l[ii].nbfloat,nsol); 
-	    if(verbosity>5)	    
-	      cout << "   iovtk writeMesh3: name of data("<< ii <<")=" << nameofuser[ii]  << endl;
-	    
-	    // changement ecriture solution
-	    l[ii].writesolutionP0_float( fp, Th, stack, surface, binary, swap);
-	    //fprintf(fp,"\n");
-	  }
-	}
-      }
-      if( Norder0 < nbofsol )
-	{
-	  fprintf(fp, "POINT_DATA %d\n", Th.nv);
-	  fprintf(fp, "FIELD FieldData %d\n", nbofsol-Norder0);
-	  for(int ii=0; ii< nbofsol; ii++){
-	    if(order[ii] == 1)
-	      {
-		
-		fprintf(fp,"%s %ld %d float\n",nameofuser[ii],l[ii].nbfloat,Th.nv); 
-		if(verbosity>5)
-		  cout << "   iovtk writeMesh3:name of data("<< ii <<")=" << nameofuser[ii]  << endl;
-		
-		// changement ecriture solution
-		l[ii].writesolutionP1_float( fp, Th, stack, binary, swap);
-	      	
-	      }
-	  }
-	}    
-    }
-    
-    if( datasizeSol == sizeof(double) ){
-    
-      if( Norder0 >0){
-	fprintf(fp, "FIELD FieldData %d\n", Norder0);
-	for(int ii=0; ii< nbofsol; ii++){
-	  if(order[ii] == 0){
-	    int nsol;
-	    if(surface){
-	      nsol = Th.nt+Th.nbe;
-	    }
-	    else{
-	      nsol = Th.nt;
-	    }
-	    
-	    fprintf(fp,"%s %ld %d float\n",nameofuser[ii],l[ii].nbfloat,nsol); 
-	    if(verbosity>5)
-	      cout << "   iovtk writeMesh3:name of data("<< ii <<")=" << nameofuser[ii]  << endl;
-	    
-	    // changement ecriture solution
-	    l[ii].writesolutionP0_double( fp, Th, stack, surface, binary, swap);	   
-	  }
-	}
-      }
-      if( Norder0 < nbofsol ){
-	fprintf(fp, "POINT_DATA %d\n", Th.nv);
-	fprintf(fp, "FIELD FieldData %d\n", nbofsol-Norder0);
-	for(int ii=0; ii< nbofsol; ii++){
-	  if(order[ii] == 1){
-	    
-	    fprintf(fp,"%s %ld %d float\n",nameofuser[ii],l[ii].nbfloat,Th.nv); 
-	    if(verbosity>5)
-	      cout << "   iovtk writeMesh3:name of data("<< ii <<")=" << nameofuser[ii]  << endl;
-	    
-	    // changement ecriture solution
-	    l[ii].writesolutionP1_double( fp, Th, stack, binary, swap);	 
-
-	  }
-	}
-      }
-    }
-  }
-  else if(VTK_FILE == 2){
-    int nc,nv;
-      
-  
-   
-    VTU_WRITE_MESH( fp, Th, binary, datasize, surface, swap);
-    // Solution Order
-    // order 1
-    if( Norder0 != nbofsol){
-      BEGINTYPE_VTU( fp, "PointData");
-      for(int ii=0; ii< nbofsol; ii++){
-	if(order[ii] == 1){
-	  
-	  if(datasize == sizeof(float)){    
-	    VTU_DATA_ARRAY( fp, "Float32", nameofuser[ii] , l[ii].nbfloat, binary);
-	    l[ii].writesolutionP1_float( fp, Th, stack, binary, swap,1);
-	  }
-	  else if(datasize == sizeof(double)) {
-	    VTU_DATA_ARRAY( fp, "Float64", nameofuser[ii] , l[ii].nbfloat, binary);
-	    l[ii].writesolutionP1_double( fp, Th, stack, binary, swap,1);
-	  }
-	  
-	  ENDTYPE_VTU( fp, "DataArray");	   
-	}
-      }
-      ENDTYPE_VTU( fp, "PointData");
-      }
-    // order 0
-    if( Norder0 > 0 ){
-      BEGINTYPE_VTU( fp, "CellData");
-      for(int ii=0; ii< nbofsol; ii++){
-	if(order[ii] == 0){
-	  
-	  if(datasize == sizeof(float)){    
-	    VTU_DATA_ARRAY( fp, "Float32", nameofuser[ii] , l[ii].nbfloat, binary);
-	    l[ii].writesolutionP0_float( fp, Th, stack, surface, binary, swap,1);
-	  }
-	  else if(datasize == sizeof(double)) {
-	    VTU_DATA_ARRAY( fp, "Float64", nameofuser[ii] , l[ii].nbfloat, binary);
-	    l[ii].writesolutionP0_double( fp, Th, stack, surface, binary, swap,1);
-	  }
-	  ENDTYPE_VTU( fp, "DataArray");
-	}
-      }
-      ENDTYPE_VTU( fp, "CellData");
-    }
-    ENDTYPE_VTU( fp, "Piece");
-    ENDTYPE_VTU( fp, "UnstructuredGrid");
-    ENDTYPE_VTU( fp, "VTKFile");
-  }
-  else{
-    cout << "extension file of VTK is not correct" << endl;
-    exit(1);
-  }
-  fclose(fp);
-  
-  for( int iiii=0; iiii<nbofsol; iiii++){
-    delete [] nameofuser[iiii];
-  }
-  delete [] pch;
-  return (Mesh3 *) NULL;
-}
-//==============================================
-// FIN ECRITURE DE FICHIER .vtk (3D)
-//==============================================
-
-//=======================
-// FIN 3D Fichier .vtk
-//=======================
-void saveMatlab(const string &file, const Mesh &Th)
-{
-  //   ErrorInsaveMesh e;
-   {
-     ofstream pf(file.c_str());
-     ffassert(pf);
-     typedef  Mesh::Element Element;
-     for(int k=0; k<Th.nt;++k)
-       {
-	 Element &K = Th[k];
-	 pf << "x = [ ";
-	 for (size_t n=0; n<3; n++)
-	   pf << std::setprecision(5) << setw(18) << K[n].x << " ";
-	 pf << std::setprecision(5) << setw(18) << K[0].x << " ]; ";
-	 pf << "y = [ ";
-	 for (size_t n=0; n<3; n++)
-	   pf << std::setprecision(5) << setw(18) << K[n].y << " ";
-	 pf << std::setprecision(5) << setw(18) << K[0].y  << " ]; ";
-	   pf << "line(x,y);" << endl;
-       }
-     pf.close();
-   }
-}
-
-void saveTecplot(const string &file, const Mesh &Th)
-{
-  string shape;
-  ofstream pf(file.c_str());
-  size_t n, m;
-  
-  pf << "TITLE = \" \"\n";
-  pf << "VARIABLES = \"X\", \"Y\"";
-  if (Th.dim==3)
-    pf << ", \"Z\"";
-  pf << endl;
-  if (Th.dim==2) {
-    m = 3;
-    shape = "TRIANGLE";
-  }
-  /*      else if (el->getShape()==LINE) {
-	  m = 2;
-	  shape = "LINESEG";
-	  }
-  */
-  
-  else if (Th.dim==3)
-	 {
-	   m = 4;
-	   shape = "TETRAHEDRON";
-	 }
-  
-  pf << "ZONE N=" << Th.nv  << ", E=" << Th.nt << ", F=FEPOINT, ET=" << shape << endl;
-  for (int i=0;i<Th.nv;i++)
-    pf << std::setprecision(5) << setw(18) << (R2) Th(i)  << " \n" ;
-  
-  
-  for (int k=0;k<Th.nt;++k)
-    {
-      for (n=0; n<m; n++)
-	pf << Th(k,n)+1  << "  ";
-      pf << endl;
-    }
-  
-  pf.close();
-}
-
-
-
-<<<<<<< HEAD
-/*  class Init1 { public:
-  Init1();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init1 { public:
-  Init1();
-};
-
-LOADINIT(Init1)  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init1::Init1(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  
-  typedef Mesh *pmesh;
-  //typedef Mesh2 *pmesh2;
-  typedef Mesh3 *pmesh3;
-  //if (verbosity)
-  if(verbosity) cout << " load: iovtk " << endl;
-  Global.Add("savevtk","(",new OneOperatorCode<VTK_WriteMesh_Op>);
-  Global.Add("savevtk","(",new OneOperatorCode<VTK_WriteMesh3_Op>);
-  Global.Add("vtkload3","(",new VTK_LoadMesh3);
-  Global.Add("vtkload","(",new VTK_LoadMesh);
-  
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/isolineP1.cpp b/examples++-load/isolineP1.cpp
index 561a398..282ae81 100644
--- a/examples++-load/isolineP1.cpp
+++ b/examples++-load/isolineP1.cpp
@@ -207,7 +207,7 @@ AnyType ISOLINE_P1_Op::operator()(Stack stack)  const
 
     else if( ivertex == 2){
       //*  search positive triangle *//
-      // deux possibilit�s
+      // deux possibilit�s
       for(int iii=0;iii<3;iii++){
 	if( nkeq[iii] != 1 ){
 	  int j0,j1;
@@ -570,10 +570,10 @@ AnyType ISOLINE_P1_Op::operator()(Stack stack)  const
       */
     }
     
-    // rappel: le lien a �t� effectuer entre les bords
+    // rappel: le lien a �t� effectuer entre les bords
     //   -1 : pas de suivant
     //   positive et nulle : le suivant border element
-    //   -2 : pas d'�lement � prendre en compte. 
+    //   -2 : pas d'�lement � prendre en compte. 
   }
 
   if(verbosity>10)
@@ -719,7 +719,7 @@ AnyType ISOLINE_P1_Op::operator()(Stack stack)  const
 	  
 	}
 	else{
-	  // old  version j0bid � la place de j1bid
+	  // old  version j0bid � la place de j1bid
 	  VertexIsoP[inv].x   = Th.vertices[ j1bid ].x;
 	  VertexIsoP[inv].y   = Th.vertices[ j1bid ].y;
 	  VertexIsoP[inv].lab = label;
diff --git a/examples++-load/isolineP1.cpp.orig b/examples++-load/isolineP1.cpp.orig
deleted file mode 100644
index cf831fa..0000000
--- a/examples++-load/isolineP1.cpp.orig
+++ /dev/null
@@ -1,908 +0,0 @@
-// ORIG-DATE: Novembre 2008
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-/*
-calcul demander par F. Hecht
-*/
-
-#ifndef WITH_NO_INIT
-#include "ff++.hpp"
-#endif
-
-//  TransfoMesh_v2.cpp
-using namespace std;
-// LayerMesh.cpp
-// buildlayer.cpp
-// rajout global
-
-#include <set>
-#include <vector>
-//#include "msh3.hpp"
-
-using namespace  Fem2D;
-
-
-// fonction determinant les points d'intersection
-class ISOLINE_P1_Op : public E_F0mps 
-{
-public:
-  Expression eTh,filename,ff;
-  static const int n_name_param = 1; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-
-  double  arg(int i,Stack stack,double a) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
- 
-public:
-  ISOLINE_P1_Op(const basicAC_F0 &  args,Expression tth, Expression fff) 
-    : eTh(tth), filename(fff)
-  {
-    args.SetNameParam(n_name_param,name_param,nargs);
- 
-    if (  BCastTo<double>(args[2])  )
-      {	 
-	ff=to<double>( args[2] );  
-      }
-    else {ffassert(0);
-      // ErrorCompile("no function to isolines \n");
-    }    
-    if( !nargs[0]) ffassert(0); 
-      //   ErrorCompile("no isolines selected \n");
-  } 
-    
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type ISOLINE_P1_Op::name_param[]= {
-  {  "iso", &typeid(double)}
-};
-
-AnyType ISOLINE_P1_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh * pTh= GetAny<Mesh *>((*eTh)(stack));
-  string * ffname= GetAny<string *>( (*filename)(stack) );
-  ffassert(pTh);
-  Mesh &Th=*pTh;
-  Mesh *m= pTh;   // question a quoi sert *m ??
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int nbe=Th.neb; // nombre d'aretes fontiere
-  long valsortie;
-  // value of isoline
-  double isovalue;
-  isovalue = GetAny< double >( (*nargs[0])(stack) ); 
-
-  // evaluation de la fonction aux sommets
-  KN<int> takevertex(Th.nv);
-  KN<double> tff(Th.nv);
-
-  MeshPoint *mp3(MeshPointStack(stack)); 
-  
-  takevertex=0;
-  // loop over triangle 
-  for (int it=0;it<Th.nt;++it){
-    for( int iv=0; iv<3; ++iv){
-      int i=Th(it,iv);  
-      
-      if(takevertex[i]==0){
-	mp3->setP(&Th,it,iv);
-	tff[i]=GetAny<double>((*ff)(stack));
-	takevertex[i] = takevertex[i]+1;
-      }
-      
-    }
-  }
-
-  
-  // calcul des isolines dans les triangles
-  KN<double> EdgeIter(3*Th.nt);
-  KN<int> taketriangle(2*Th.nt);
-  
-  for(int ii=0; ii< 3*Th.nt; ii++){
-    EdgeIter[ii] = -1;
-  }
-  for(int ii=0; ii< 2*Th.nt; ii++){
-    taketriangle[ii] = -1;
-  }
-  
-  int VertexIso[Th.nv];
-  int VertexIsoTri[2*Th.nv];
-
-  for(int ii=0; ii< Th.nv; ii++)
-    VertexIso[ii] = 0;
-  
-  for(int ii=0; ii< 2*Th.nv; ii++)
-    VertexIsoTri[ii] = 0;
-
-  int NbIsoVertex    = 0;
-  int NbIsoNonVertex = 0;
-
-  for(int it=0; it< Th.nt; it++){
-    const  Mesh::Triangle & K(Th.t(it));
-
-    int nkeq[3];
-    int ivertex = 0;
-    int mark[3];
-
-    int im=0;
-    for(int ii=0; ii<3; ii++){ 
-      int j0,j1;
-      nkeq[ii] = 0;
-      mark[ii] = 0;
-      Th.VerticesNumberOfEdge( K, ii, j0, j1); 
-      //cout << "it=" << it << " ii= " << ii << " j0= " << j0 << "j1= " << j1 << endl;
-
-      double fi = tff[j0];
-      double fj = tff[j1];
-      double xf = isovalue;
-
-      if( Abs( tff[j0]- isovalue) < 1.e-11*(Abs(isovalue)+Abs(tff[j0])) ) {
-	nkeq[ii] = 1;
-	mark[ii] = 1;
-	EdgeIter[3*it+ii] =0.;
-	ivertex++; 
-      }
-      else{
-	if( Abs( tff[j1]- isovalue) < 1.e-11*(Abs(isovalue)+Abs(tff[j1])) ) {
-	  mark[(ii+1)%3] = 1;
-	}
-	else
-	  if( ((fi <= xf)&&(fj>=xf)) || ((fi>=xf)&&(fj<=xf)) ){
-	    int eo;
-	    eo=ii;
-	    int ito=Th.ElementAdj(it,eo);
-	    
-	    mark[ii] = 1;
-	    im++;
-	    
-	    double xlam = (fi-xf)/(fi-fj);
-	   
-	    if(ito<0){
-	      EdgeIter[3*it+ii] = xlam;	     
-	      NbIsoNonVertex++;
-	    }
-	    else if( 3*it+ii <= 3*ito+eo || it == ito  ){
-	      EdgeIter[3*it+ii] = xlam;	     
-	      NbIsoNonVertex++;
-	    }       
-	    
-	    if(it <=10 && verbosity>10) cout << "vertex (it="<< it << ", i="<< ii << ") :: " << j0 << " " << j1 <<" xlam= "<< xlam << endl;
-	  }
-
-      }
-    }
-    if( ivertex == 3){
-      cerr << " A triangle is a isovalue " << endl;
-      exit(1);
-    }
-
-    else if( ivertex == 2){
-      //*  search positive triangle *//
-      // deux possibilit�s
-      for(int iii=0;iii<3;iii++){
-	if( nkeq[iii] != 1 ){
-	  int j0,j1;
-	  Th.VerticesNumberOfEdge( K, iii, j0, j1); 
-	  R fi = tff[ j0 ];
-
-	  if(  fi > isovalue ){
-	     for(int i=0;i<3;i++) // for the  3 edges 
-	       {		 
-		 if( mark[i] == 1 && mark[(i+1)%3] == 1 ){
-		   int jj0,jj1;
-		   Th.VerticesNumberOfEdge( K, i, jj0, jj1); 
-
-		   taketriangle[2*it+1] = i;
-		   taketriangle[2*it] = (i+1)%3;
-		   
-		   VertexIso[ jj0 ]++;
-		   VertexIso[ jj1 ]++;
-		   
-		   if( VertexIso[ jj0 ] > 2 || VertexIso[ jj1 ] > 2 )
-		     cerr << " error:the iso value pass  is connected to more then 2 iso vertices " << endl;
-		   else{
-		     VertexIsoTri[ 2*jj0+VertexIso[ jj0 ] -1 ] = it;
-		     VertexIsoTri[ 2*jj1+VertexIso[ jj1 ] -1 ] = it;
-		   }
-		     
-		 }
-	       }
-	     
-	   }
-	}
-      }
-    }
-    else if( im == 1 && ivertex == 1){
-      for(int i=0;i<3;i++) // for the  3 edges 
-	{
-	  if( mark[i] == 1 && mark[(i+1)%3] == 1 ){
-	    int jj0,jj1;
-	    Th.VerticesNumberOfEdge( K, i, jj0, jj1);
-	    
-	    // determination
-	    if(1==nkeq[i]){
-	      EdgeIter[3*it+i] = 0.;
-	      VertexIso[ jj0 ]++;
-	      if( VertexIso[ jj0 ] > 2 )
-		cerr << " error:the iso value pass  is connected to more then 2 iso vertices " << endl;
-	      else{
-		VertexIsoTri[ 2*jj0+VertexIso[ jj0 ] -1 ] = it;
-	      }
-	    }
-	    else{
-	      EdgeIter[3*it+(i+1)%3] = 0.;
-	      VertexIso[ jj1 ]++;	
-	      if( VertexIso[ jj1 ] > 2 )
-		cerr << " error:the iso value pass  is connected to more then 2 iso vertices " << endl;
-		else{
-		  VertexIsoTri[ 2*jj1+VertexIso[ jj1 ] -1 ] = it;
-		}
-	    }
-	    int jj00,jj10;
-	    Th.VerticesNumberOfEdge( K, (i+2)%3, jj00, jj10);
-	    R fi2 = tff[ jj00 ];
-	    
-	    if( fi2 > isovalue ){
-	      taketriangle[2*it]   = (i+1)%3;
-	      taketriangle[2*it+1] = i;
-	    }
-	    else{
-	      taketriangle[2*it]   = i;
-	      taketriangle[2*it+1] = (i+1)%3;
-	    }
-	    
-	  
-
-	  }
-	}
-      
-    }
-    else if( im == 2){
-      
-      for(int i=0;i<3;i++) // for the  3 edges 
-	{
-	  
-	  if( mark[i] == 1 && mark[(i+1)%3] == 1 ){
-	    int jj0,jj1;
-	    Th.VerticesNumberOfEdge( K, i, jj0, jj1); 
-	    R fi1 = tff[ jj0 ];
-	   
-	    if( it < 10 )  cout << "vertex (it="<< it << ", i="<< i << ") :: " << jj0 << " " << jj1 << endl;
-	    if( fi1 > isovalue ){
-	      taketriangle[2*it]   = (i+1)%3;
-	      taketriangle[2*it+1] = i;
-	    }
-	    else{
-	      taketriangle[2*it]   = i;
-	      taketriangle[2*it+1] = (i+1)%3;
-	    }
-	    
-	    
-	    Th.VerticesNumberOfEdge( K, (i+1)%3, jj0, jj1); 	    
-	    if( it < 10 ) cout << "vertex (it="<< it << ", i="<< (i+1)%3 << ") :: " << jj0 << " " << jj1 << endl;
-
-	  }
-	}
-    }
-    
-    
-    
-  }
- 
-  
-  //#################################  
-  int NbInterBord=0;
-  KN<int> ElementLink(Th.nt+Th.neb);
-  for(int it=0; it< Th.nt+Th.neb; it++)
-    ElementLink[it]=-1;
-
-  
-  for(int it=0; it< Th.nt; it++){
-    if( taketriangle[2*it] < 0 ) continue;
-
-    const  Mesh::Triangle & K(Th.t(it));
-    
-
-    int ii  = 2*it;
-    int eT1 = taketriangle[2*it];
-    int eT2 = taketriangle[2*it+1];
-    int eo1 = eT1;
-    int eo2 = eT2;
-    int adjeT1 = Th.ElementAdj(it,eo1);
-    int adjeT2 = Th.ElementAdj(it,eo2);
-    
-    /*
-      if( VertexIso[ numv ] == 2 ){     
-      if( VertexIsoTri[ 2*numv ] == it  ){
-      newit = VertexIsoTri[ 2*numv+1 ];
-      }
-      else 
-      newit = VertexIsoTri[ 2*numv ];
-      }
-    */
-    
-    // link with previous element 
-    {
-      int jj00,jj10;
-      Th.VerticesNumberOfEdge( K, eT1, jj00, jj10);
-      
-      int numv=jj00;
-      //cout << "eT1, jj00, jj10 " << eT1 << " " << jj00 << " " << jj10 << " VertexIso[ numv ] "<< VertexIso[ numv ] << endl;
-
-      if( VertexIso[ numv ] == 2 ){     
-	if( VertexIsoTri[ 2*numv ] == it  ){
-	  ElementLink[ VertexIsoTri[ 2*numv+1 ] ] = it;
-	  //newit = VertexIsoTri[ 2*numv+1 ];
-	}
-	else 
-	  ElementLink[ VertexIsoTri[ 2*numv] ] = it;
-	//newit = VertexIsoTri[ 2*numv ];
-      }
-      else if( VertexIso[ numv ] == 1 ){	
-	if(adjeT1 >= 0 && it!=adjeT1 ){
-	  
-	  // search the edge of it in the border
-	  int eT3 = 3-eT1-eT2;
-	  int eo3 = eT3;
-	  int adjeT3 = Th.ElementAdj(it,eo3);
-	  
-	  if(adjeT3 < 0 || it==adjeT3 ){
-	    int jj000,jj100;
-	    Th.VerticesNumberOfEdge( K, eT3, jj000, jj100);  
-	    cout << " bug une iso vertex definis une fois doit etre sur le bord ::  vertex " << numv << endl;
-	    int ibeV = Th.NumberOfTheBoundaryEdge(jj000,jj100); // old
-	 
-	    ElementLink[ ibeV+Th.nt ] = it;
-	    //NbInterBord++;
-	  }
-	  //exit(1);
-	}
-	else{
-	  // border 
-	  // int ibeV = Th.BorderElementAdj( jj00, jj10); //old
-	  int ibeV = Th.NumberOfTheBoundaryEdge( jj00, jj10);
-	  ElementLink[ibeV+Th.nt] = it;
-	  //NbInterBord++;
-	}
-      
-      }
-      else
-	if(adjeT1 >= 0 && it!=adjeT1 ){
-	  ElementLink[adjeT1] = it;
-	}
-	else{
-	  // border 
-	  int ibeV = Th.NumberOfTheBoundaryEdge(jj00,jj10);
-	  //ElementLink[Th.NumberOfTheBoundaryEdge(jj00,jj10)+Th.nt] = it; // old
-	  ElementLink[ibeV+Th.nt] = it;
-	  //NbInterBord++;
-	}
-    }
-    // link with the next element
-    {
-      int jj00,jj10;
-      Th.VerticesNumberOfEdge( K, eT2, jj00, jj10);     
-      int numv=jj00;
-
-      if( VertexIso[ numv ] == 2 ){     
-	if( VertexIsoTri[ 2*numv ] == it  ){
-	  ElementLink[ it ] = VertexIsoTri[ 2*numv+1 ];
-	  //newit = VertexIsoTri[ 2*numv+1 ];
-	}
-	else 
-	  ElementLink[ it ] = VertexIsoTri[ 2*numv];
-	//newit = VertexIsoTri[ 2*numv ];
-      }
-      else if( VertexIso[ numv ] == 1 ){
-	
-	if(adjeT2 >= 0 && it!=adjeT2 ){
-
-	  // search the edge of it in the border
-	  int eT3 = 3-eT1-eT2;
-	  int eo3 = eT3;
-	  int adjeT3 = Th.ElementAdj(it,eo3);
-	  
-	  if(adjeT3 < 0 || it==adjeT3 ){
-	    int jj000,jj100;
-	    Th.VerticesNumberOfEdge( K, eT3, jj000, jj100);  
-	    cout << " bug une iso vertex definis une fois doit etre sur le bord ::  vertex " << numv << endl;
-	    int ibeV = Th.NumberOfTheBoundaryEdge(jj000,jj100); // old
-	 
-	    ElementLink[ it ] = ibeV+Th.nt;
-	    NbInterBord++;
-	  }
-	  //exit(1);
-	}
-	else{
-	  // border 
-	  int ibeV = Th.NumberOfTheBoundaryEdge(jj00,jj10); // old
-	  //int ibeV =  Th.BorderElementAdj( jj00, jj10);
-	  ElementLink[ it ] = ibeV+Th.nt;
-	  NbInterBord++;
-	}
-      
-      }
-      else{
-	if(adjeT2 >= 0 && it!=adjeT2) 
-	  ElementLink[it] = adjeT2;
-	else{
-	  // border
-	  int ibeV = Th.NumberOfTheBoundaryEdge(jj00,jj10);
-	  ElementLink[it] = ibeV+Th.nt;
-	  // ElementLink[it] = Th.BorderElementAdj( jj00, jj10)+Th.nt; // old
-	  NbInterBord++;
-	}
-
-      //for(int iijj=0; iijj<10; iijj++){
-      //cout << "ElementLink["<< iijj <<"]=" << ElementLink[iijj] <<endl;
-      //}
-      }
-    }
-    /*
-      if(adjeT2 >= 0 && it!=adjeT2) 
-      ElementLink[it] = adjeT2;
-      else{
-      // border
-      const  Mesh::Triangle & K(Th.t(it));
-      int jj00,jj10;
-      Th.VerticesNumberOfEdge( K, taketriangle[ii], jj00, jj10);
-      ElementLink[it] = Th.TheBoundaryEdge(jj00,jj10)+Th.nt;
-      //NbInterBord++;
-      }
-    */
-  }
- 
-
-  int NbBordVertex=0;
-  if(verbosity>10)cout << " NbInterBord = " << NbInterBord << endl;
-  if(NbInterBord>0){
-    //#################################
-    // boucle sur le bord    
-    // determination des points sur le bord  
-     
-    for(int ii=0; ii < Th.neb; ii++){
-      // determination du sens du bord
-      int edgebid;
-      int ffbid   = Th.BoundaryElement( ii, edgebid );     // ii : number of edge => sortie :: ffbid = numero triangles, edgebid = numero edges
-      int j0bid,j1bid;
-      Th.VerticesNumberOfEdge( Th.t(ffbid), edgebid, j0bid, j1bid);
-      // j0bid --> j1bid sens de parcours sur le triangle
-      double fi = tff[j0bid];
-      double fj = tff[j1bid];
-      double xf = isovalue;
-
-      // sens fi -> fj (same as local triangle) 
- 
-      //  fi++ et fj++  ==> lien ibe ++ next border
-      //  fi==0 et fjj++ ==> lien triangle contenant cette vertex ++ vers next border
-      //  fj==0 et fi++  ==> lien ibe vers triangle contenant cette vertex
-      //  fi==0 et fj==0 ==> lien triangle contenant cette vertex vers - next bord  ( fjj >= 0 )
-      //                                                               - triangle contenant cette vertex (fjj < 0)
-
-      if( VertexIso[ j0bid ] > 0 ){	
-	// cas fi == isovalue
-	if( VertexIso[ j1bid ] > 0 ){     
-	  if(verbosity>10)cout << "the edge is a isovalue :: link is previously computed "<< endl;
-	  //assert( VertexIso[ j0bid ] == 2);
-	  //assert( VertexIso[ j1bid ] == 2);
-	}
-	else if( fj >=  isovalue){
-	  // cas fi iso  fj++
-	  //assert( VertexIso[ j0bid ] == 2);
-	  if( VertexIso[ j0bid ] == 2 ){
-	    if( VertexIsoTri[2*j0bid] == ffbid ){
-	      //ElementLink[ VertexIsoTri[2*j0bid+1] ] = Th.nt + Th.BorderElementAdj(j1bid,j0bid); // old orientation 
-	      ElementLink[  Th.nt + Th.NumberOfTheBoundaryEdge(j0bid,j1bid) ] = VertexIsoTri[2*j0bid+1];
-	    }
-	    else{
-	      //ElementLink[ VertexIsoTri[2*j0bid] ] = Th.nt + Th.BorderElementAdj(j1bid,j0bid);  // old orientation 
-	      ElementLink[  Th.nt + Th.NumberOfTheBoundaryEdge(j0bid,j1bid) ] = VertexIsoTri[2*j0bid];
-	    }
-	    NbBordVertex++;
-	  }
-	  if( VertexIso[ j0bid ] == 1 ){
-	    if(verbosity>10) cout << "j0bid, j1bid, ffbid " << j0bid << " "<< j1bid << " " << ffbid << endl; 
-	    //assert( VertexIsoTri[2*j0bid] == ffbid );
-	    //if( VertexIsoTri[2*j0bid] == ffbid ){
-	    ElementLink[  Th.nt + Th.NumberOfTheBoundaryEdge(j0bid,j1bid) ] = VertexIsoTri[2*j0bid];
-	    //}
-	    NbBordVertex++;
-	  }
-	}
-      }
-      else if( fi >=  isovalue){
-	// cas fi == isovalue++
-	if( VertexIso[ j1bid ] > 0 ){
-	  assert( VertexIso[ j1bid ] == 1);
-	  // ElementLink[ ii+Th.nt ] = VertexIsoTri[2*j1bid]; // old version
-	  ElementLink[ VertexIsoTri[2*j1bid] ] = ii+Th.nt;
-	  ElementLink[ ii+Th.nt ] = Th.BorderElementAdj(j0bid,j1bid)+Th.nt;
-	}
-	else if( fj >=  isovalue){
-	  //ElementLink[ii+Th.nt] = Th.nt + Th.BorderElementAdj(j1bid,j0bid); // old orientation
-	  ElementLink[ii+Th.nt] = Th.nt + Th.BorderElementAdj(j0bid,j1bid);
-	  NbBordVertex++;
-	}
-	//old version ::
-	else{
-	  ElementLink[ii+Th.nt] = Th.nt + Th.BorderElementAdj(j0bid,j1bid);
-	  NbBordVertex++;
-	}
-      }
-
-      /*
-	if( fi >=  isovalue && Abs( fi - isovalue) > 1.e-11*(Abs(isovalue)+Abs(fi)) ){
-	if( fj >= isovalue && Abs( fj - isovalue) > 1.e-11*(Abs(isovalue)+Abs(fj)) ){
-	ElementLink[ii+Th.nt] = Th.nt + Th.BorderElementAdj(ii,j0bid,j1bid);
-	}
-	
-	NbBordVertex++;
-	}
-      */
-    }
-    
-    // rappel: le lien a �t� effectuer entre les bords
-    //   -1 : pas de suivant
-    //   positive et nulle : le suivant border element
-    //   -2 : pas d'�lement � prendre en compte. 
-  }
-
-  if(verbosity>10)
-    {
-      cout << " NbInterBord = " << NbInterBord << endl;
-      for(int iijj=0; iijj<10; iijj++){
-	cout << "ElementLink["<< iijj <<"]=" << ElementLink[iijj] <<endl;
-      }
-      
-      cout << " NbInterBord = " << NbInterBord << endl;
-      for(int iijj=Th.nt; iijj<Th.nt+Th.neb; iijj++){
-	cout << "ElementLink["<< iijj <<"]=" << ElementLink[iijj] <<endl;
-      }
-    }
-
-  //#################################
-
-  int NbVertex=NbIsoNonVertex+NbBordVertex;
-  for(int i=0; i< Th.nv; i++){
-    if( VertexIso[i] > 0) 
-      NbVertex++;
-  }
-  
-  Vertex *VertexIsoP = new Vertex[NbVertex];
-  
-  KN<int> TriangleVu(Th.nt);
-  for(int iii=0; iii< Th.nt; iii++)
-    TriangleVu[iii]= -1;
-
-  int inv = 0;
-  int label = 0;
-  for(int it1=0; it1< Th.nt; it1++){
-    if( TriangleVu[it1] == 1 || taketriangle[2*it1]== -1) continue;
-    if(verbosity>10) cout << "it1 = " << it1 << " Th.nt "<< Th.nt << endl;
-    // First point is taken
-    TriangleVu[it1] = 1;
-    {
-      const  Mesh::Triangle & K(Th.t(it1));
-      int ii = 2*it1;
-      int eT1 = taketriangle[ii];
-      int eT2 = taketriangle[ii+1];   
-      assert(eT1>=0);
-      assert(eT2>=0);
-      int jj00,jj10;
-      Th.VerticesNumberOfEdge( K, eT1, jj00, jj10);
-      
-      if( EdgeIter[3*it1+eT1] > -0.1){ 
-	double xlam = EdgeIter[3*it1+eT1] ;
-	
-	VertexIsoP[inv].x   = (1-xlam)*Th.vertices[ jj00 ].x + xlam*Th.vertices[ jj10 ].x; 
-	VertexIsoP[inv].y   = (1-xlam)*Th.vertices[ jj00 ].y + xlam*Th.vertices[ jj10 ].y;
-	VertexIsoP[inv].lab = label;
-	
-	inv++;
-      }
-      else{
-	int eo1;
-	eo1=eT1;
-	int ito1=Th.ElementAdj(it1,eo1);
-	
-	double xlam = EdgeIter[3*ito1+eo1];
-	VertexIsoP[inv].x   = xlam*Th.vertices[ jj00 ].x + (1-xlam)*Th.vertices[ jj10 ].x; 
-	VertexIsoP[inv].y   = xlam*Th.vertices[ jj00 ].y + (1-xlam)*Th.vertices[ jj10 ].y;
-	VertexIsoP[inv].lab = label;
-	inv++;
-      }
-    }
-    
-    int it2=ElementLink[it1];
-      
-    for( int it=it2; it != it1; it=ElementLink[it]){   
-      assert(it >=0);
-     
-      if( it< Th.nt){
-	// sur un triangle
-	if(verbosity>10) cout << "it = " << it << " <--->  it2=" << it2 << " Th.nt "<< Th.nt << endl;
-	assert( TriangleVu[it] == -1);  
-	TriangleVu[it] = 1;
-
-	int ii = 2*it;
-	int eT1 = taketriangle[ii];
-	assert( eT1 >=0);
-	//int eT2 = taketriangle[ii+1];
-	const  Mesh::Triangle & K(Th.t(it));
-	int jj00,jj10;
-	Th.VerticesNumberOfEdge( K, eT1, jj00, jj10);
-	
-	if( EdgeIter[3*it+eT1] > -0.1){ 
-	  double xlam = EdgeIter[3*it+eT1] ;
-	  
-	  VertexIsoP[inv].x   = (1-xlam)*Th.vertices[ jj00 ].x + xlam*Th.vertices[ jj10 ].x; 
-	  VertexIsoP[inv].y   = (1-xlam)*Th.vertices[ jj00 ].y + xlam*Th.vertices[ jj10 ].y;
-	  VertexIsoP[inv].lab = label;
-	  
-	  inv++;
-	}
-	else{
-	  int eo1;
-	  eo1=eT1;
-	  assert( eo1 >=0);
-	  int ito1=Th.ElementAdj(it,eo1);
-	  
-	  double xlam = EdgeIter[3*ito1+eo1];
-	  VertexIsoP[inv].x   = xlam*Th.vertices[ jj00 ].x + (1-xlam)*Th.vertices[ jj10 ].x; 
-	  VertexIsoP[inv].y   = xlam*Th.vertices[ jj00 ].y + (1-xlam)*Th.vertices[ jj10 ].y;
-	  VertexIsoP[inv].lab = label;
-	  inv++;
-	}
-	 
-      }
-      else{
-	int ibe=it-Th.nt;
-	if(verbosity>10) cout << "ibe = " << ibe << " <--->  it2=" << it2 << " Th.nt "<< Th.nt << endl;
-	// sur le bord
-	int edgebid;
-	//int newit;
-	int ffbid   = Th.BoundaryElement( ibe, edgebid );     // ii : number of edge => sortie :: ffbid = numero triangles, edgebid = numero edges
-	int j0bid,j1bid;
-	Th.VerticesNumberOfEdge( Th.t(ffbid), edgebid, j0bid, j1bid);
-	if(verbosity>10) cout << "Edge Vertex Number "<< j0bid+1 << " " << j1bid+1 << " number of triangle " << ffbid << endl;
-	if( taketriangle[2*ffbid+1] == edgebid && VertexIso[j1bid] == 0){
-	  //if( taketriangle[2*ffbid+1] == edgebid && VertexIso[j0bid] == 0){ // old version
-	  if( EdgeIter[3*ffbid+edgebid] > -0.1){ 
-	    double xlam = EdgeIter[3*ffbid+edgebid] ;
-	    
-	    VertexIsoP[inv].x   = (1-xlam)*Th.vertices[ j0bid ].x + xlam*Th.vertices[ j1bid ].x; 
-	    VertexIsoP[inv].y   = (1-xlam)*Th.vertices[ j0bid ].y + xlam*Th.vertices[ j1bid ].y;
-	    VertexIsoP[inv].lab = label;
-	    
-	    inv++;
-	  }
-	  else{
-	    int eo1;
-	    eo1=edgebid;
-	    int ito1=Th.ElementAdj(ffbid,eo1);
-	    
-	    double xlam = EdgeIter[3*ito1+eo1];
-	    VertexIsoP[inv].x   = xlam*Th.vertices[ j0bid ].x + (1-xlam)*Th.vertices[ j1bid ].x; 
-	    VertexIsoP[inv].y   = xlam*Th.vertices[ j0bid ].y + (1-xlam)*Th.vertices[ j1bid ].y;
-	    VertexIsoP[inv].lab = label;
-	    inv++;
-	  }
-	  
-	}
-	else{
-	  // old  version j0bid � la place de j1bid
-	  VertexIsoP[inv].x   = Th.vertices[ j1bid ].x;
-	  VertexIsoP[inv].y   = Th.vertices[ j1bid ].y;
-	  VertexIsoP[inv].lab = label;
-	  inv++;
-	}
-	
-      }
-    }
-    label++;
-  }
-  
-
-//   int TriangleVu[Th.nt];
-//   for(int iii=0; iii< Th.nt; iii++)
-//     TriangleVu[iii]= -1;
-//   int label = 0;
-//   int inv  = 0;
-
-//   Vertex *VertexIsoP = new Vertex[NbVertex];
-  
-//   for(int it1=0; it1< Th.nt; it1++){
-//     if( taketriangle[2*it1] < 0  || TriangleVu[it1] == 1 ) continue;
-
-//     int it =it1;
-//     do {
-      
-//       const  Mesh::Triangle & K(Th.t(it));
-
-//       TriangleVu[it] = 1;
-     
-//       int ii = 2*it;
-//       int eT1 = taketriangle[ii];
-//       int eT2 = taketriangle[ii+1];
-      
-//       int jj00,jj10;
-//       Th.VerticesNumberOfEdge( K, eT1, jj00, jj10);
-      
-//       if( EdgeIter[3*it+eT1] > -0.1){ 
-// 	double xlam = EdgeIter[3*it+eT1] ;
-	
-// 	VertexIsoP[inv].x   = (1-xlam)*Th.vertices[ jj00 ].x + xlam*Th.vertices[ jj10 ].x; 
-// 	VertexIsoP[inv].y   = (1-xlam)*Th.vertices[ jj00 ].y + xlam*Th.vertices[ jj10 ].y;
-// 	VertexIsoP[inv].lab = label;
-
-// 	inv++;
-//       }
-//       else{
-// 	cerr << "bug in definition of vertex" << endl; 
-// 	int eo1;
-// 	eo1=eT1;
-// 	int ito1=Th.ElementAdj(it,eo1);
-	
-// 	double xlam = EdgeIter[3*ito1+eo1];
-// 	VertexIsoP[inv].x   = xlam*Th.vertices[ jj00 ].x + (1-xlam)*Th.vertices[ jj10 ].x; 
-// 	VertexIsoP[inv].y   = xlam*Th.vertices[ jj00 ].y + (1-xlam)*Th.vertices[ jj10 ].y;
-// 	VertexIsoP[inv].lab = label;
-// 	inv++;
-//       }
-      
-//       // on passe a eT2
-//       int newit;
-//       Th.VerticesNumberOfEdge( K, eT2, jj00, jj10);
-//       int numv  =  jj00;
-      
-//       if( VertexIso[ numv ] == 2 ){     
-// 	if( VertexIsoTri[ 2*numv ] == it  ){
-// 	  newit = VertexIsoTri[ 2*numv+1 ];
-// 	}
-// 	else 
-// 	  newit = VertexIsoTri[ 2*numv ];
-//       }
-//       else if( VertexIso[ numv ] == 1 ){     
-// 	newit = -1;
-//       }
-//       else{
-// 	int eo;
-// 	eo=eT2;
-// 	int ito=Th.ElementAdj(it,eo);
-	 	
-// 	if( (ito != it && taketriangle[2*ito] >= 0 ) && it >= 0){ 
-// 	  newit = ito; 
-// 	  if( taketriangle[2*ito] != eo){	    
-// 	    exit(1);
-// 	  }
-// 	}
-// 	else
-// 	  newit = -1;
-//       }         
-//       if( newit < 0 ){
-// 	 Th.VerticesNumberOfEdge( K, eT2, jj00, jj10);
-      
-// 	 if( EdgeIter[3*it+eT2] > -0.1){ 
-// 	   double xlam = EdgeIter[3*it+eT2] ;
-// 	   //cout << "vertex (it="<< it << ", eT1="<< eT1 << ") :: " << jj00 << " " << jj10 << endl; 
-// 	   VertexIsoP[inv].x   = (1-xlam)*Th.vertices[ jj00 ].x + xlam*Th.vertices[ jj10 ].x; 
-// 	   VertexIsoP[inv].y   = (1-xlam)*Th.vertices[ jj00 ].y + xlam*Th.vertices[ jj10 ].y;
-// 	   VertexIsoP[inv].lab = label;
-	  
-// 	   inv++;
-// 	 }
-// 	 else{
-// 	   //cerr << "bug in definition of vertex" << endl; 
-// 	   // determination du triangle adjacents contenant e1
-	   
-// 	   //int ito1 = Th.TheAdjacencesLink[3*it+eT1]/3;
-// 	   //int eo1  = Th.TheAdjacencesLink[3*it+eT1]%3;
-// 	   int eo1;
-// 	   eo1=eT2;
-// 	   int ito1=Th.ElementAdj(it,eo1);
-	   
-// 	   double xlam = EdgeIter[3*ito1+eo1];
-// 	   VertexIsoP[inv].x   = xlam*Th.vertices[ jj00 ].x + (1-xlam)*Th.vertices[ jj10 ].x; 
-// 	   VertexIsoP[inv].y   = xlam*Th.vertices[ jj00 ].y + (1-xlam)*Th.vertices[ jj10 ].y;
-// 	   VertexIsoP[inv].lab = label;
-	
-// 	   inv++;
-// 	 }
-//       }
-//       //if(newit>=0)TriangleVu[it] = newit;
-//       it = newit;
-      
-//     } while( it >= 0 && it!=it1 && taketriangle[2*it] >= 0  && TriangleVu[it] == -1 && inv <= NbVertex);
-
-//     label=label+1;
-//   } 
-  if(verbosity) cout << " IsolineP1 :inv= " << inv << endl;
-  if(verbosity) cout << "            NbVertex= " << NbVertex << endl;
-  if(verbosity) cout << "            label =" << label << endl;
-  assert(inv == NbVertex);
-  if(verbosity>2) cout << "     file point \"" << ffname->c_str() <<"\""<< endl;
-  FILE *fpoints = fopen(ffname->c_str(),"w");
-  int lab=VertexIsoP[0].lab;
-  for (int k=0; k<NbVertex; k++) {   
-    //fprintf(fpoints,"%f %f %d\n",VertexIsoP[k].x,VertexIsoP[k].y,VertexIsoP[k].lab);
-    if(VertexIsoP[k].lab != lab) fprintf(fpoints,"\n\n");
-    fprintf(fpoints,"%f %f \n",VertexIsoP[k].x,VertexIsoP[k].y);
-    lab=VertexIsoP[k].lab;
-  }
-  fclose(fpoints);
-
-  delete [] VertexIsoP;
-
-  return valsortie;
-}
-
-class  ISOLINE_P1: public OneOperator { public:  
-typedef Mesh *pmesh;
-  ISOLINE_P1() : OneOperator(atype<long>(),atype<pmesh>(),atype<string *>(),atype<double>() ) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new ISOLINE_P1_Op( args, t[0]->CastTo(args[0]), t[1]->CastTo(args[1]) ); 
-  }
-};
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
- 
-  typedef Mesh *pmesh;
-  cerr << " Warning obsolete load file version now use isolineP1 -> isoline " << endl;  
-  cerr << " see example for the syntaxe " << endl; 
-  cerr << " F . Hecht " << endl;   
-  CompileError("obsolet load filee (sorry) use: load \"isoline\" "); 
-  //Global.Add("isolineP1","(",new ISOLINE_P1);
-
-}
-   
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/lapack.cpp.orig b/examples++-load/lapack.cpp.orig
deleted file mode 100644
index 7d8980d..0000000
--- a/examples++-load/lapack.cpp.orig
+++ /dev/null
@@ -1,995 +0,0 @@
-//ff-c++-LIBRARY-dep:   lapack
-//ff-c++-LIBRARY-dep:   blas
-#include "ff++.hpp"
-#include "RNM.hpp"
-#include "AFunction_ext.hpp" // Extension of "AFunction.hpp" to deal with more than 3 parameters function
-
-using namespace std;
-
-#ifdef __LP64__
-  typedef int intblas;
-  typedef int integer;
-#else
-  typedef long intblas;
-  typedef long integer;
-#endif
-
-typedef integer  logical;
-typedef float   LAPACK_real;
-typedef double   doublereal;
-typedef logical  (* L_fp)();
-typedef integer      ftnlen;
-
-typedef complex<float> LAPACK_complex;
-typedef complex<double> doublecomplex;
-typedef void VOID; 
-#define complex LAPACK_complex 
-#define real LAPACK_real 
-
-#include "clapack.h"
-#undef real
-#undef complex 
-<<<<<<< HEAD
-=======
-class Init { public:
-  Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-long lapack_inv(KNM<double>* A)
-{
-  intblas n=A->N();
-  intblas m=A->M();
-  double *a=&(*A)(0,0);
-  intblas info;
-  intblas lda=n;
-  KN<intblas> ipiv(n);
-  intblas  lw=10*n;
-  KN<double> w(lw);
-  ffassert(n==m);
-  dgetrf_(&n,&n,a,&lda,ipiv,&info);
-  if(info) return info;
-  dgetri_(&n,a,&lda,ipiv,w,&lw,&info);
-  return info;
-}
-
-long lapack_inv(KNM<Complex>* A)
-{
-    intblas n=A->N();
-    intblas m=A->M();
-    Complex *a=&(*A)(0,0);
-    intblas info;
-    intblas lda=n;
-    KN<intblas> ipiv(n);
-    intblas  lw=10*n;
-    KN<Complex> w(lw);
-    ffassert(n==m);
-    zgetrf_(&n,&n,a,&lda,ipiv,&info);
-    if(info) return info;
-    zgetri_(&n,a,&lda,ipiv,w,&lw,&info);
-    return info;
-}
-
-// (computation of the eigenvalues and right eigenvectors of a real nonsymmetric matrix)
-long lapack_dgeev(KNM<double> *const &A,KN<Complex> *const &vp,KNM<Complex> *const &vectp)
-{
-  /*
-    SUBROUTINE DGEEV( JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR, LDVR, WORK, LWORK, INFO )
-   *  JOBVL   (input) CHARACTER*1
-   *          = 'N': left eigenvectors of A are not computed;
-   *          = 'V': left eigenvectors of A are computed.
-   *
-   *  JOBVR   (input) CHARACTER*1
-   *          = 'N': right eigenvectors of A are not computed;
-   *          = 'V': right eigenvectors of A are computed.
-   *
-   *  N       (input) INTEGER
-   *          The order of the matrix A. N >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
-   *          On entry, the N-by-N matrix A.
-   *          On exit, A has been overwritten.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  WR      (output) DOUBLE PRECISION array, dimension (N)
-   *  WI      (output) DOUBLE PRECISION array, dimension (N)
-   *          WR and WI contain the real and imaginary parts,
-   *          respectively, of the computed eigenvalues.  Complex
-   *          conjugate pairs of eigenvalues appear consecutively
-   *          with the eigenvalue having the positive imaginary part
-   *          first.
-   *
-   *  VL      (output) DOUBLE PRECISION array, dimension (LDVL,N)
-   *          If JOBVL = 'V', the left eigenvectors u(j) are stored one
-   *          after another in the columns of VL, in the same order
-   *          as their eigenvalues.
-   *          If JOBVL = 'N', VL is not referenced.
-   *          If the j-th eigenvalue is real, then u(j) = VL(:,j),
-   *          the j-th column of VL.
-   *          If the j-th and (j+1)-st eigenvalues form a complex
-   *          conjugate pair, then u(j) = VL(:,j) + i*VL(:,j+1) and
-   *          u(j+1) = VL(:,j) - i*VL(:,j+1).
-   *
-   *  LDVL    (input) INTEGER
-   *          The leading dimension of the array VL.  LDVL >= 1; if
-   *          JOBVL = 'V', LDVL >= N.
-   *
-   *  VR      (output) DOUBLE PRECISION array, dimension (LDVR,N)
-   *          If JOBVR = 'V', the right eigenvectors v(j) are stored one
-   *          after another in the columns of VR, in the same order
-   *          as their eigenvalues.
-   *          If JOBVR = 'N', VR is not referenced.
-   *          If the j-th eigenvalue is real, then v(j) = VR(:,j),
-   *          the j-th column of VR.
-   *          If the j-th and (j+1)-st eigenvalues form a complex
-   *          conjugate pair, then v(j) = VR(:,j) + i*VR(:,j+1) and
-   *          v(j+1) = VR(:,j) - i*VR(:,j+1).
-   *
-   *  LDVR    (input) INTEGER
-   *          The leading dimension of the array VR.  LDVR >= 1; if
-   *          JOBVR = 'V', LDVR >= N.
-   *
-   *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
-   *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
-   *
-   *  LWORK   (input) INTEGER
-   *          The dimension of the array WORK.  LWORK >= max(1,3*N), and
-   *          if JOBVL = 'V' or JOBVR = 'V', LWORK >= 4*N.  For good
-   *          performance, LWORK must generally be larger.
-   *
-   *          If LWORK = -1, then a workspace query is assumed; the routine
-   *          only calculates the optimal size of the WORK array, returns
-   *          this value as the first entry of the WORK array, and no error
-   *          message related to LWORK is issued by XERBLA.
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value.
-   *          > 0:  if INFO = i, the QR algorithm failed to compute all the
-   *                eigenvalues, and no eigenvectors have been computed;
-   *                elements i+1:N of WR and WI contain eigenvalues which
-   *                have converged.
-   */
-  intblas n=A->N();
-  ffassert(A->M()==n);
-  ffassert(vectp->M()>=n);
-  ffassert(vectp->N()>=n);
-  ffassert(vp->N()>=n);
-  KN<double> wr(n),wi(n),w(1);
-  KNM<double> mat(*A),vr(n,n),vl(n,n);
-  intblas info,lw=-1;
-  char JOBVL='N',JOBVR='V';
-  dgeev_(&JOBVL,&JOBVR,&n,mat,&n,wr,wi,vl,&n,vr,&n,w,&lw,&info);
-  lw=w[0];
-  w.resize(lw);
-  //cout << mat << endl;
-  dgeev_(&JOBVL,&JOBVR,&n,mat,&n,wr,wi,vl,&n,vr,&n,w,&lw,&info);
-  //cout << wr << endl;
-  //cout << wi << endl;
-  if (info<0)
-     {
-     cout << "   dgeev: the " << info << "-th argument had an illegal value." << endl;
-     (*vp)=Complex();
-     (*vectp)=Complex();
-     }
-  else if (info>0)
-     {
-     cout << "   dgeev: the QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed." << endl;
-     (*vp)=Complex();
-     (*vectp)=Complex();
-     }
-  else if (info==0)
-     {
-     for (int i=0;i<n;++i)
-        {
-        (*vp)[i]=Complex(wr[i],wi[i]);
-        if (verbosity>2)
-           cout << "   dgeev: vp "<< i << " : "  << (*vp)[i] << endl;
-        if (wi[i]==0)
-           for (int j=0;j<n;++j)
-              (*vectp)(j,i)=vr(j,i);
-        else if (wi[i]>0)
-	   {
-	   for (int j=0;j<n;++j)
-              (*vectp)(j,i)=Complex(vr(j,i),vr(j,i+1));
-           }
-	else if (wi[i]<0)
-	   {
-           for (int j=0;j<n;++j)
-              (*vectp)(j,i)=Complex(vr(j,i-1),-vr(j,i));	      
-           }
-        if (verbosity>5)
-           cout << "   dgeev:   " << (*vectp)(':',i) <<endl;
-        }
-     }
-  return info;
-}
-
-// (computation of the eigenvalues and right eigenvectors of a complex nonsymmetric matrix)
-long lapack_zgeev(KNM<Complex> *const &A,KN<Complex> *const &vp,KNM<Complex> *const &vectp)
-{
-  intblas nvp =0,zero=0;
-  intblas n= A->N();
-  ffassert(A->M()==n);
-  ffassert(vectp->M()>=n);
-  ffassert(vectp->N()>=n);
-  ffassert(vp->N()>=n);
-  KN<Complex> w(n),vr(n*n),vl(n*n);
-  KNM<Complex> mat(*A);
-  intblas info,lw=n*(n+1)*10;
-  KN<Complex> wk(lw);
-  KN<double> rwk(2*n);
-
-  char N='N',V='V';
-  // lw=1;// to get opt size value 
-  zgeev_(&N,&V,&n, mat,&n, w, vl,&n, vr,&n,wk,&lw,rwk,&info);
-  //  cout << lw << " " << wk[0] << " " << info <<   endl;
-  /* lw=wk[0].real();
-  w.resize(lw);
-  zgeev_(&N,&V,&n, mat,&n, w, vl,&n, vr,&n,wk,&lw,rwk,&info);
-  */
-  if(info)
-    cout << " info =  " << info << endl;
-  if(!info)
-    {
-      int k=0;
-      for(int i=0;i<n;++i)
-        {
-          (*vp)[i]=w[i];
-          if(verbosity>2)
-            cout << "   zgeev: vp "<< i << " : "  << (*vp)[i] << endl;
-	  for(int j=0;j<n;++j)
-              (*vectp)(j,i)=vr[k++];
-          if(verbosity>5)
-            cout << "   zgeev :   " << (*vectp)(':',i) <<endl;
-        }
-    }
-  else
-    {
-      nvp=0;
-      (*vp)=Complex();
-      (*vectp)=Complex();
-    }
-  return nvp;
-}
-
-// VL, 10/02/2010
-long lapack_dggev(KNM<double> *const &A,KNM<double> *const &B,KN<Complex> *const &vpa,KN<double> *const &vpb,KNM<Complex> *const &vectp)
-{
-    intblas nvp =0,zero=0;
-    intblas n=A->N();
-    ffassert(A->M()==n);
-    ffassert(B->M()==n);
-    ffassert(B->N()==n);
-    ffassert(vectp->M()>=n);
-    ffassert(vectp->N()>=n);
-    ffassert(vpa->N()>=n);
-    ffassert(vpb->N()>=n);
-    
-    KN<double> war(n),wai(n),wb(n),vr(n*n),vl(n*n);
-    KNM<double> matA(*A);
-    KNM<double> matB(*B);
-    intblas info,lw=-1;  
-    KN<double> w(1);
-    //char N='N',V='V'; VL: do not compute eigenvectors (if yes, switch with following line)
-    char VL='N',VR='N';
-    
-    dggev_(&VL,&VR,&n,matA,&n,matB,&n,war,wai,wb,vl,&n,vr,&n,w,&lw,&info);
-    lw=w[0];
-    // cout << lw << endl;
-    w.resize(lw);
-    dggev_(&VL,&VR,&n,matA,&n,matB,&n,war,wai,wb,vl,&n,vr,&n,w,&lw,&info);
-    if(info)
-	cout << " info =  " << info << endl;
-    if(!info)
-      {
-	int k=0;
-	for(int i=0;i<n;++i)
-	  {
-	    (*vpa)[i]=Complex(war[i],wai[i]);
-	    (*vpb)[i]=wb[i];
-	    if(verbosity>2)
-		cout << "   dggev: vp "<< i << " : "  << (*vpa)[i] << " ; " << (*vpb)[i] << endl;
-	    if( wai[i] == 0)
-		for(int j=0;j<n;++j)
-		    (*vectp)(j,i)=vr[k++];
-	    else if (  wai[i] >  0)
-	      {
-		int ki= k+n;
-		for(int j=0;j<n;++j)
-		    (*vectp)(j,i)=Complex(vr[k++],vr[ki++]);	      
-	      }
-	    else 
-	      {
-		int kr= k-n;
-		for(int j=0;j<n;++j)
-		    (*vectp)(j,i)=Complex(vr[kr++],-vr[k++]);	      
-	      }
-	    if(verbosity>5)
-		cout << "   dggev :   " << (*vectp)(':',i) <<endl;
-	  }
-      }
-    else
-      {
-	nvp=0;
-	(*vpa)=Complex();
-	(*vectp)=Complex();
-      }
-    return nvp;
-}
-
-// GL, 05/10/2011 (computation of all the eigenvalues and the eigenvectors of a real generalized symmetric-definite eigenproblem, of the form A*x=(lambda)*B*x)
-long lapack_dsygvd(KNM<double> *const &A,KNM<double> *const &B,KN<double> *const &vp,KNM<double> *const &vectp)
-{
-  /*
-    SUBROUTINE DSYGVD( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, IWORK, LIWORK, INFO )
-   *  ITYPE   (input) INTEGER
-   *          Specifies the problem type to be solved:
-   *          = 1:  A*x = (lambda)*B*x
-   *          = 2:  A*B*x = (lambda)*x
-   *          = 3:  B*A*x = (lambda)*x
-   *
-   *  JOBZ    (input) CHARACTER*1
-   *          = 'N':  Compute eigenvalues only;
-   *          = 'V':  Compute eigenvalues and eigenvectors.
-   *
-   *  UPLO    (input) CHARACTER*1
-   *          = 'U':  Upper triangles of A and B are stored;
-   *          = 'L':  Lower triangles of A and B are stored.
-   *
-   *  N       (input) INTEGER
-   *          The order of the matrices A and B.  N >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA, N)
-   *          On entry, the symmetric matrix A.  If UPLO = 'U', the
-   *          leading N-by-N upper triangular part of A contains the
-   *          upper triangular part of the matrix A.  If UPLO = 'L',
-   *          the leading N-by-N lower triangular part of A contains
-   *          the lower triangular part of the matrix A.
-   *
-   *          On exit, if JOBZ = 'V', then if INFO = 0, A contains the
-   *          matrix Z of eigenvectors.  The eigenvectors are normalized
-   *          as follows:
-   *          if ITYPE = 1 or 2, Z**T*B*Z = I;
-   *          if ITYPE = 3, Z**T*inv(B)*Z = I.
-   *          If JOBZ = 'N', then on exit the upper triangle (if UPLO='U')
-   *          or the lower triangle (if UPLO='L') of A, including the
-   *          diagonal, is destroyed.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  B       (input/output) DOUBLE PRECISION array, dimension (LDB, N)
-   *          On entry, the symmetric matrix B.  If UPLO = 'U', the
-   *          leading N-by-N upper triangular part of B contains the
-   *          upper triangular part of the matrix B.  If UPLO = 'L',
-   *          the leading N-by-N lower triangular part of B contains
-   *          the lower triangular part of the matrix B.
-   *
-   *          On exit, if INFO <= N, the part of B containing the matrix is
-   *          overwritten by the triangular factor U or L from the Cholesky
-   *          factorization B = U**T*U or B = L*L**T.
-   *
-   *  LDB     (input) INTEGER
-   *          The leading dimension of the array B.  LDB >= max(1,N).
-   *
-   *  W       (output) DOUBLE PRECISION array, dimension (N)
-   *          If INFO = 0, the eigenvalues in ascending order.
-   *
-   *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
-   *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
-   *
-   *  LWORK   (input) INTEGER
-   *          The dimension of the array WORK.
-   *          If N <= 1,               LWORK >= 1.
-   *          If JOBZ = 'N' and N > 1, LWORK >= 2*N+1.
-   *          If JOBZ = 'V' and N > 1, LWORK >= 1 + 6*N + 2*N**2.
-   *
-   *          If LWORK = -1, then a workspace query is assumed; the routine
-   *          only calculates the optimal sizes of the WORK and IWORK
-   *          arrays, returns these values as the first entries of the WORK
-   *          and IWORK arrays, and no error message related to LWORK or
-   *          LIWORK is issued by XERBLA.
-   *
-   *  IWORK   (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
-   *          On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
-   *
-   *  LIWORK  (input) INTEGER
-   *          The dimension of the array IWORK.
-   *          If N <= 1,                LIWORK >= 1.
-   *          If JOBZ  = 'N' and N > 1, LIWORK >= 1.
-   *          If JOBZ  = 'V' and N > 1, LIWORK >= 3 + 5*N.
-   *
-   *          If LIWORK = -1, then a workspace query is assumed; the
-   *          routine only calculates the optimal sizes of the WORK and
-   *          IWORK arrays, returns these values as the first entries of
-   *          the WORK and IWORK arrays, and no error message related to
-   *          LWORK or LIWORK is issued by XERBLA.
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value
-   *          > 0:  DPOTRF or DSYEVD returned an error code:
-   *             <= N:  if INFO = i and JOBZ = 'N', then the algorithm
-   *                    failed to converge; i off-diagonal elements of an
-   *                    intermediate tridiagonal form did not converge to
-   *                    zero;
-   *                    if INFO = i and JOBZ = 'V', then the algorithm
-   *                    failed to compute an eigenvalue while working on
-   *                    the submatrix lying in rows and columns INFO/(N+1)
-   *                    through mod(INFO,N+1);
-   *             > N:   if INFO = N + i, for 1 <= i <= N, then the leading
-   *                    minor of order i of B is not positive definite.
-   *                    The factorization of B could not be completed and
-   *                    no eigenvalues or eigenvectors were computed.
-   */
-  intblas n=A->N();
-  ffassert(A->M()==n);
-  ffassert(B->M()==n);
-  ffassert(B->N()==n);
-  ffassert(vp->N()>=n);
-  ffassert(vectp->M()>=n);
-  ffassert(vectp->N()>=n);
-  KN<double> war(n),wai(n),wb(n),vr(n*n),vl(n*n);
-  KNM<double> matA(*A),matB(*B);
-  intblas itype=1,info,lw=-1;
-  KN<double> w(1);
-  KN<intblas> iw(1);
-  char JOBZ='V',UPLO='U';
-  
-  dsygvd_(&itype,&JOBZ,&UPLO,&n,matA,&n,matB,&n,*vp,w,&lw,iw,&lw,&info);
-  lw=w[0];
-  w.resize(lw);
-  iw.resize(lw);
-  dsygvd_(&itype,&JOBZ,&UPLO,&n,matA,&n,matB,&n,*vp,w,&lw,iw,&lw,&info);
-  if (info<0)
-     {
-     cout << "   dsygvd: the " << info << "-th argument had an illegal value." << endl;
-     }
-  else if (info>0)
-     {
-     cout << "   dsygvd: DPOTRF or DSYEVD returned an error code." << endl;
-     }
-  else if (info==0)
-     {
-     for (int i=0;i<n;++i)
-        {
-        for (int i=0;i<n;++i)
-           {
-           for (int j=0;j<n;++j)
-              (*vectp)(j,i)=matA(j,i);	      
-           }
-        }  
-     }
-  return info;
-}
-
-// GL,27/09/2011 (singular value decomposition of a rectangular real matrix)
-long lapack_dgesdd(KNM<double> *const &A,KNM<double> *const &U,KN<double> *const &S,KNM<double> *const &V)
-{
-  /*
-    SUBROUTINE DGESDD( JOBZ, M, N, A, LDA, S, U, LDU, VT, LDVT, WORK, LWORK, IWORK, INFO )
-   *  JOBZ    (input) CHARACTER*1
-   *          Specifies options for computing all or part of the matrix U:
-   *          = 'A':  all M columns of U and all N rows of V**T are
-   *                  returned in the arrays U and VT;
-   *          = 'S':  the first min(M,N) columns of U and the first
-   *                  min(M,N) rows of V**T are returned in the arrays U
-   *                  and VT;
-   *          = 'O':  If M >= N, the first N columns of U are overwritten
-   *                  on the array A and all rows of V**T are returned in
-   *                  the array VT;
-   *                  otherwise, all columns of U are returned in the
-   *                  array U and the first M rows of V**T are overwritten
-   *                  in the array A;
-   *          = 'N':  no columns of U or rows of V**T are computed.
-   *
-   *  M       (input) INTEGER
-   *          The number of rows of the input matrix A.  M >= 0.
-   *
-   *  N       (input) INTEGER
-   *          The number of columns of the input matrix A.  N >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
-   *          On entry, the M-by-N matrix A.
-   *          On exit,
-   *          if JOBZ = 'O',  A is overwritten with the first N columns
-   *                          of U (the left singular vectors, stored
-   *                          columnwise) if M >= N;
-   *                          A is overwritten with the first M rows
-   *                          of V**T (the right singular vectors, stored
-   *                          rowwise) otherwise.
-   *          if JOBZ .ne. 'O', the contents of A are destroyed.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,M).
-   *
-   *  S       (output) DOUBLE PRECISION array, dimension (min(M,N))
-   *          The singular values of A, sorted so that S(i) >= S(i+1).
-   *
-   *  U       (output) DOUBLE PRECISION array, dimension (LDU,UCOL)
-   *          UCOL = M if JOBZ = 'A' or JOBZ = 'O' and M < N;
-   *          UCOL = min(M,N) if JOBZ = 'S'.
-   *          If JOBZ = 'A' or JOBZ = 'O' and M < N, U contains the M-by-M
-   *          orthogonal matrix U;
-   *          if JOBZ = 'S', U contains the first min(M,N) columns of U
-   *          (the left singular vectors, stored columnwise);
-   *          if JOBZ = 'O' and M >= N, or JOBZ = 'N', U is not referenced.
-   *
-   *  LDU     (input) INTEGER
-   *          The leading dimension of the array U.  LDU >= 1; if
-   *          JOBZ = 'S' or 'A' or JOBZ = 'O' and M < N, LDU >= M.
-   *
-   *  VT      (output) DOUBLE PRECISION array, dimension (LDVT,N)
-   *          If JOBZ = 'A' or JOBZ = 'O' and M >= N, VT contains the
-   *          N-by-N orthogonal matrix V**T;
-   *          if JOBZ = 'S', VT contains the first min(M,N) rows of
-   *          V**T (the right singular vectors, stored rowwise);
-   *          if JOBZ = 'O' and M < N, or JOBZ = 'N', VT is not referenced.
-   *
-   *  LDVT    (input) INTEGER
-   *          The leading dimension of the array VT.  LDVT >= 1; if
-   *          JOBZ = 'A' or JOBZ = 'O' and M >= N, LDVT >= N;
-   *          if JOBZ = 'S', LDVT >= min(M,N).
-   *
-   *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
-   *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK;
-   *
-   *  LWORK   (input) INTEGER
-   *          The dimension of the array WORK. LWORK >= 1.
-   *          If JOBZ = 'N',
-   *            LWORK >= 3*min(M,N) + max(max(M,N),7*min(M,N)).
-   *          If JOBZ = 'O',
-   *            LWORK >= 3*min(M,N) + 
-   *                     max(max(M,N),5*min(M,N)*min(M,N)+4*min(M,N)).
-   *          If JOBZ = 'S' or 'A'
-   *            LWORK >= 3*min(M,N) +
-   *                     max(max(M,N),4*min(M,N)*min(M,N)+4*min(M,N)).
-   *          For good performance, LWORK should generally be larger.
-   *          If LWORK = -1 but other input arguments are legal, WORK(1)
-   *          returns the optimal LWORK.
-   *
-   *  IWORK   (workspace) INTEGER array, dimension (8*min(M,N))
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit.
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value.
-   *          > 0:  DBDSDC did not converge, updating process failed.
-   */
-  intblas n=A->N();
-  intblas m=A->M();
-  U->resize(n,n);
-  S->resize(min(n,m));
-  V->resize(m,m);
-  KNM<double> VT(m,m);
-  KN<intblas> iw(8*min(n,m));
-  intblas info,lw=-1;
-  KN<double> w(1);
-  char JOBZ='A';
-  dgesdd_(&JOBZ,&n,&m,*A,&n,*S,*U,&n,VT,&m,w,&lw,iw,&info);
-  lw=w[0];
-  w.resize(lw);
-  dgesdd_(&JOBZ,&n,&m,*A,&n,*S,*U,&n,VT,&m,w,&lw,iw,&info);
-  if (info<0)
-     {
-     cout << "   dgesdd: the " << info << "-th argument had an illegal value." << endl;
-     }
-  else if (info>0)
-     {
-     cout << "   dgesdd: DBDSDC did not converge, updating process failed." << endl;
-     }
-  else if (info==0)
-     {
-     for (int i=0;i<m;++i)
-	for (int j=0;j<m;++j)
-	   (*V)(i,j)=VT(j,i);
-     }
-  return info;
-}
-
-// GL,28/09/2011 (computation of the eigenvalues and eigenvectors of a real symmetric matrix)
-long lapack_dsyev(KNM<double> *const &A,KN<double> *const &vp,KNM<double> *const &vectp)
-{
-  /*
-    SUBROUTINE DSYEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO )
-   *  JOBZ    (input) CHARACTER*1
-   *          = 'N':  Compute eigenvalues only;
-   *          = 'V':  Compute eigenvalues and eigenvectors.
-   *
-   *  UPLO    (input) CHARACTER*1
-   *          = 'U':  Upper triangle of A is stored;
-   *          = 'L':  Lower triangle of A is stored.
-   *
-   *  N       (input) INTEGER
-   *          The order of the matrix A.  N >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA, N)
-   *          On entry, the symmetric matrix A.  If UPLO = 'U', the
-   *          leading N-by-N upper triangular part of A contains the
-   *          upper triangular part of the matrix A.  If UPLO = 'L',
-   *          the leading N-by-N lower triangular part of A contains
-   *          the lower triangular part of the matrix A.
-   *          On exit, if JOBZ = 'V', then if INFO = 0, A contains the
-   *          orthonormal eigenvectors of the matrix A.
-   *          If JOBZ = 'N', then on exit the lower triangle (if UPLO='L')
-   *          or the upper triangle (if UPLO='U') of A, including the
-   *          diagonal, is destroyed.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  W       (output) DOUBLE PRECISION array, dimension (N)
-   *          If INFO = 0, the eigenvalues in ascending order.
-   *
-   *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
-   *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
-   *
-   *  LWORK   (input) INTEGER
-   *          The length of the array WORK.  LWORK >= max(1,3*N-1).
-   *          For optimal efficiency, LWORK >= (NB+2)*N,
-   *          where NB is the blocksize for DSYTRD returned by ILAENV.
-   *
-   *          If LWORK = -1, then a workspace query is assumed; the routine
-   *          only calculates the optimal size of the WORK array, returns
-   *          this value as the first entry of the WORK array, and no error
-   *          message related to LWORK is issued by XERBLA.
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value
-   *          > 0:  if INFO = i, the algorithm failed to converge; i
-   *                off-diagonal elements of an intermediate tridiagonal
-   *                form did not converge to zero.
-   */
-  intblas n=A->N();
-  ffassert(A->M()==n);
-  ffassert(vectp->N()==n);
-  ffassert(vectp->M()==n);
-  ffassert(vp->N()==n);
-  KNM<double> mat(*A);
-  intblas info,lw=-1;  
-  KN<double> w(1);
-  char JOBZ='V',UPLO='U';
-  dsyev_(&JOBZ,&UPLO,&n,mat,&n,*vp,w,&lw,&info);
-  lw=w[0];
-  w.resize(lw);
-  dsyev_(&JOBZ,&UPLO,&n,mat,&n,*vp,w,&lw,&info);
-  if (info<0)
-     {
-     cout << "   dsyev: the " << info << "-th argument had an illegal value." << endl;
-     }
-  else if (info>0)
-     {
-     cout << "   dsyev: the algorithm failed to converge." << endl;
-     }
-  else if (info==0)
-     {
-     *vectp=mat;
-     }
-  return info;
-}
-
-template<class T>
-class Inverse{ public:
-  T  t;
-  Inverse( T  v)
-   : t(v) {}
-  template<class TT> Inverse( TT  v) : t(v) {}  
-  template<class TT> Inverse( TT * v) : t(*v) {}  
-  operator const T & () const {return t;}
-};
-
-template<class T>
-class Mult{ public:
-    T  a;bool ta;
-  T  b;bool tb;
-  Mult( T  aa,T bb)
-    : a(aa),b(bb),ta(0),tb(0) {}
-    // Transpose<
-  Mult( Transpose<T>  aa,T bb)   
-    : a(aa),b(bb),ta(1),tb(0) {}
-  Mult( Transpose<T>  aa,Transpose<T> bb)   
-    : a(aa),b(bb),ta(1),tb(1) {}
-    Mult( T  aa,Transpose<T> bb)   
-    : a(aa),b(bb),ta(1),tb(1) {}
-    
-};
-
-template<class K>
-class OneBinaryOperatorRNM_inv : public OneOperator { public:  
-    OneBinaryOperatorRNM_inv() 
-      : OneOperator( atype< Inverse< KNM<K>* > >(),atype<KNM<K> *>(),atype<long>()) {}
-  E_F0 * code(const basicAC_F0 & args) const 
-  { Expression p=args[1];
-    if ( ! p->EvaluableWithOutStack() ) 
-      { 
-	bool bb=p->EvaluableWithOutStack();
-	cout << "  Error exposant ??? " <<  bb << " " <<  * p <<  endl;
-	CompileError(" A^p, The p must be a constant == -1, sorry");}
-    long pv = GetAny<long>((*p)(0));
-    if (pv !=-1)   
-      { char buf[100];
-	sprintf(buf," A^%ld, The pow must be  == -1, sorry",pv);
-	CompileError(buf);}     
-    return  new E_F_F0<Inverse< KNM<K>* > ,KNM<K> *>(Build<Inverse< KNM<K>* > ,KNM<K> *>,t[0]->CastTo(args[0])); 
-  }
-};
-
-
-<<<<<<< HEAD
-=======
-/* 
-class Init { public:
-  Init();
-};
-*/
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-template <int INIT>
-KNM<R>* Solve(KNM<R>* a,Inverse<KNM<R >*> b) 
-{
-  /*
-    SUBROUTINE DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )
-   *  N       (input) INTEGER
-   *          The number of linear equations, i.e., the order of the
-   *          matrix A.  N >= 0.
-   *
-   *  NRHS    (input) INTEGER
-   *          The number of right hand sides, i.e., the number of columns
-   *          of the matrix B.  NRHS >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
-   *          On entry, the N-by-N coefficient matrix A.
-   *          On exit, the factors L and U from the factorization
-   *          A = P*L*U; the unit diagonal elements of L are not stored.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  IPIV    (output) INTEGER array, dimension (N)
-   *          The pivot indices that define the permutation matrix P;
-   *          row i of the matrix was interchanged with row IPIV(i).
-   *
-   *  B       (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
-   *          On entry, the N-by-NRHS matrix of right hand side matrix B.
-   *          On exit, if INFO = 0, the N-by-NRHS solution matrix X.
-   *
-   *  LDB     (input) INTEGER
-   *          The leading dimension of the array B.  LDB >= max(1,N).
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value
-   *          > 0:  if INFO = i, U(i,i) is exactly zero.  The factorization
-   *                has been completed, but the factor U is exactly
-   *                singular, so the solution could not be computed.
-   *
-   */
-  typedef double R;
-  integer info;
-  KNM<R> B(*b);
-  integer  n= B.N();
-  KN<integer> p(n);
-  ffassert(B.M()==n);
-  if(INIT)
-      a->init(n,n);
-   else
-    a->resize(n,n);
-  *a=0.;
-  for(int i=0;i<n;++i)
-    (*a)(i,i)=(R) 1;;
-
-  dgesv_(&n,&n,B,&n,p,*a,&n,&info);
-  if(info) cerr << " error:  dgesv_ "<< info << endl;
-  return a;
-}
-
-
-// Template interface 
-inline int gemm(char *transa, char *transb, integer *m, integer *
-	   n, integer *k, double *alpha, double *a, integer *lda, 
-	   double *b, integer *ldb, double *beta, double *c, integer 
-	   *ldc) {
-   return  dgemm_(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc);
-}
-inline int gemm(char *transa, char *transb, integer *m, integer *
-		 n, integer *k, Complex *alpha, Complex *a, integer *lda, 
-		 Complex *b, integer *ldb, Complex *beta, Complex *c, integer 
-		 *ldc) {
-    return  zgemm_(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc);
-}
-
-
-template<class R,bool init, int ibeta> 
-KNM<R>* mult(KNM<R >* a,const KNM_<R> & A,const KNM_<R> & B) 
-{ // C=A*B 
-   
-    R alpha=1.,beta=R(ibeta);
-    char tA, tB;
-    if(init) a->init();
-    intblas N= A.N();
-    intblas M=B.M();
-    intblas K=A.M();
-    KNM<R> & C= *a;
-    C.resize(N,M); 
-    ffassert(K==B.N());
-    R *A00=&A(0,0), *A10= &A(1,0), *A01= &A(0,1); 
-    R *B00=&B(0,0), *B10= &B(1,0), *B01= &B(0,1); 
-    R *C00=&C(0,0), *C10= &C(1,0), *C01= &C(0,1); 
-    intblas lsa=A10-A00 ,lsb=B10-B00,lsc=C10-C00;
-    intblas lda=A01-A00 ,ldb=B01-B00,ldc=C01-C00;
-    if(verbosity>10) {
-	cout << lsa << " " << lsb << " "<< lsc << " init " << init <<  endl;
-	cout << lda << " " << ldb << " "<< ldc << endl;	
-    }
-    tA=lda==1?'T':'N';
-    tB=ldb==1?'T':'N';
-    
-    if(lda==1) lda=lsa;
-    if(ldb==1) ldb=lsb;
-    if(beta==0.)
-     C=R(); 
-#ifdef XXXXXXXXXXXXXX
-    
-    for(int i=0;i<N;++i)
-	 for(int j=0;j<M;++j)
-	      for(int k=0;k<K;++k)
-		  C(i,j) += A(i,k)*B(k,j)  ;
-#else    
-    gemm(&tB,&tA,&N,&M,&K,&alpha,A00,&lda,B00,&ldb,&beta,C00,&ldc);
-#endif
-    return a;
-    /*
-     The Fortran interface for these procedures are:
-     SUBROUTINE xGEMM ( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC )
-     where TRANSA and TRANSB determines if the matrices A and B are to be transposed.
-     M is the number of rows in matrix A and C. N is the number of columns in matrix B and C. 
-     K is the number of columns in matrix A and rows in matrix B. 
-     LDA, LDB and LDC specifies the size of the first dimension of the matrices, as laid out in memory;
-     meaning the memory distance between the start of each row/column, depending on the memory structure (Dongarra et al. 1990).
-     */
-}
-template<class R,bool init, int ibeta> 
-KNM<R>* mult(KNM<R >* a,Mult<KNM<R >*> bc) 
-{
-    if( (bc.ta == 0) && (bc.tb == 0))
-     return  mult<R,init,ibeta>(a,*bc.a,*bc.b) ;
-    else if((bc.ta == 1 )&& (bc.tb == 0))
-     return  mult<R,init,ibeta>(a,bc.a->t(),*bc.b) ;
-    else if((bc.ta == 0) && (bc.tb == 1))
-	return  mult<R,init,ibeta>(a,*bc.a,bc.b->t()) ;
-    else if((bc.ta == 1) && (bc.tb == 1))
-	return  mult<R,init,ibeta>(a,bc.a->t(),bc.b->t()) ;
-    else
-        // should never happen
-        return NULL;
-}
-
-template <int INIT>
-KNM<Complex>* SolveC(KNM<Complex>* a,Inverse<KNM<Complex >*> b) 
-{
-  /*
-    SUBROUTINE DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )
-   *  N       (input) INTEGER
-   *          The number of linear equations, i.e., the order of the
-   *          matrix A.  N >= 0.
-   *
-   *  NRHS    (input) INTEGER
-   *          The number of right hand sides, i.e., the number of columns
-   *          of the matrix B.  NRHS >= 0.
-   *
-   *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
-   *          On entry, the N-by-N coefficient matrix A.
-   *          On exit, the factors L and U from the factorization
-   *          A = P*L*U; the unit diagonal elements of L are not stored.
-   *
-   *  LDA     (input) INTEGER
-   *          The leading dimension of the array A.  LDA >= max(1,N).
-   *
-   *  IPIV    (output) INTEGER array, dimension (N)
-   *          The pivot indices that define the permutation matrix P;
-   *          row i of the matrix was interchanged with row IPIV(i).
-   *
-   *  B       (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
-   *          On entry, the N-by-NRHS matrix of right hand side matrix B.
-   *          On exit, if INFO = 0, the N-by-NRHS solution matrix X.
-   *
-   *  LDB     (input) INTEGER
-   *          The leading dimension of the array B.  LDB >= max(1,N).
-   *
-   *  INFO    (output) INTEGER
-   *          = 0:  successful exit
-   *          < 0:  if INFO = -i, the i-th argument had an illegal value
-   *          > 0:  if INFO = i, U(i,i) is exactly zero.  The factorization
-   *                has been completed, but the factor U is exactly
-   *                singular, so the solution could not be computed.
-   *
-   */
-  typedef Complex R;
-  integer info;
-  KNM<R> B(*b);
-  integer   n= B.N();
-  KN<integer> p(n);
-  ffassert(B.M()==n);
-  if(INIT)
-     a->init(n,n);
-  else
-     a->resize(n,n);
-  *a=0.;
-  for(int i=0;i<n;++i)
-    (*a)(i,i)=(R) 1;;
-
-  zgesv_(&n,&n,(R*) B,&n,p, (R*) *a,&n,&info);
-  if(info) cerr << " error:  zgesv_ "<< info << endl;
-  return a;
-}
-
-<<<<<<< HEAD
-=======
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-template<class R,class A,class B> R Build2(A a,B b) {
-    return R(a,b);
-}
-<<<<<<< HEAD
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-  if( map_type.find(typeid(Inverse<KNM<double >* >).name() ) == map_type.end() )
-    {
-      if(verbosity) 
-	cout << " Add lapack interface ..." ;
-      Dcl_Type< Inverse<KNM<double >* > > ();
-      Dcl_Type< Inverse<KNM<Complex >* > > ();
-      Dcl_Type< Mult<KNM<Complex >* > > ();
-      Dcl_Type< Mult<KNM<double >* > > ();
-      
-      TheOperators->Add("^", new OneBinaryOperatorRNM_inv<double>());
-      TheOperators->Add("*", new OneOperator2< Mult< KNM<double>* >,KNM<double>*,KNM<double>*>(Build2));
-      TheOperators->Add("*", new OneOperator2< Mult< KNM<Complex>* >,KNM<Complex>*,KNM<Complex>*>(Build2));
-      
-      TheOperators->Add("^", new OneBinaryOperatorRNM_inv<Complex>());
-      TheOperators->Add("=", new OneOperator2<KNM<double>*,KNM<double>*,Inverse<KNM<double >*> >( Solve<0>) );
-      TheOperators->Add("=", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Inverse<KNM<Complex >*> >( SolveC<0>) );
-      TheOperators->Add("<-", new OneOperator2<KNM<double>*,KNM<double>*,Inverse<KNM<double >*> >( Solve<1>) );
-      TheOperators->Add("<-", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Inverse<KNM<Complex >*> >( SolveC<1>) );
-        
-      TheOperators->Add("=", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,false,0> ) );
-      TheOperators->Add("=", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,false,0> ) );
-      
-      TheOperators->Add("+=", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,false,1> ) );
-      TheOperators->Add("+=", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,false,1> ) );
-      
-      TheOperators->Add("-=", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,false,-1> ) );
-      TheOperators->Add("-=", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,false,-1> ) );
-      
-      TheOperators->Add("<-", new OneOperator2<KNM<double>*,KNM<double>*,Mult<KNM<double >*> >( mult<double,true,0> ) );
-      TheOperators->Add("<-", new OneOperator2<KNM<Complex>*,KNM<Complex>*,Mult<KNM<Complex >*> >( mult<Complex,true,0> ) );
-      
-      Global.Add("inv","(",new  OneOperator1<long,KNM<double>*>(lapack_inv));  
-      Global.Add("inv","(",new  OneOperator1<long,KNM<Complex>*>(lapack_inv));
-        
-      Global.Add("dgeev","(",new  OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
-      Global.Add("zgeev","(",new  OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
-        // add FH
-       Global.Add("geev","(",new  OneOperator3_<long,KNM<double>*,KN<Complex>*,KNM<Complex>*>(lapack_dgeev));
-       Global.Add("geev","(",new  OneOperator3_<long,KNM<Complex>*,KN<Complex>*,KNM<Complex>*>(lapack_zgeev));
-        
-      Global.Add("dggev","(",new  OneOperator5_<long,KNM<double>*,KNM<double>*,KN<Complex>*,KN<double>*,KNM<Complex>*>(lapack_dggev));
-      Global.Add("dsygvd","(",new  OneOperator4_<long,KNM<double>*,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dsygvd));
-      Global.Add("dgesdd","(",new  OneOperator4_<long,KNM<double>*,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dgesdd));
-      Global.Add("dsyev","(",new  OneOperator3_<long,KNM<double>*,KN<double>*,KNM<double>*>(lapack_dsyev));
-    }
-  else
-    if(verbosity)
-      cout << "( load: lapack <=> fflapack , skeep ) ";
-}
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/lgbmo.cpp.orig b/examples++-load/lgbmo.cpp.orig
deleted file mode 100644
index 2e25ea2..0000000
--- a/examples++-load/lgbmo.cpp.orig
+++ /dev/null
@@ -1,340 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-//ff-c++-cpp-dep:  bmo.cpp
-
-#include  <iostream>
-#include  <cfloat>
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-#include "rgraph.hpp"
-#include "RNM.hpp"
-#include "MatriceCreuse_tpl.hpp"
-#include "Mesh3dn.hpp"
-#include "MeshPoint.hpp"
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-#include "bmo.hpp"
-
-//template<class R>
-extern Block *currentblock;
-
-typedef double R;
-
-class OptimBMO : public OneOperator 
-{
-public:
-  typedef KN<R> Kn;
-  typedef KN_<R> Kn_;
-  typedef R REAL;
-  typedef KN<REAL> VECT;
-  typedef KNM<REAL> MAT;
-  typedef VirtualMatrice<REAL> VMAT;
-  
-   const int cas;
-  
-  
-  
-
-  class E_BMO: public E_F0mps { public:
-    const int cas;
-    static basicAC_F0::name_and_type name_param[] ;
-    static const int n_name_param =16;
-    Expression nargs[n_name_param];
-    Expression X;
-    C_F0 inittheparam,theparam,closetheparam; 
-    Expression JJ,dJJ;
-    long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-    R arg(int i,Stack stack,R a) const{ return nargs[i] ? GetAny<R>( (*nargs[i])(stack) ): a;}
-     string *arg(int i,Stack stack,string * a) const{ return nargs[i] ? GetAny<string *>( (*nargs[i])(stack) ): a;}
-    void Set_arg(int i,Stack stack,Kn_ v) const  { if(nargs[i]) v= GetAny<Kn_>( (*nargs[i])(stack) );}
-      
-    class lgBMO: public BijanMO  {
-    private:
-      Stack stack;
-      Expression JJ,dJJ,theparame;
-    protected:
-      void setparam( const KN_<R>& x )
-      {
-	KN_<double> *p=GetAny<KN_<double> *>( (*theparame)(stack) );
-	ffassert( p->N() == x.N());
-	*p =x;
-      }
-      
-    public:
-      
-      lgBMO(Stack s,int n,Expression t,Expression J,Expression dJ,
-	    int wnbrestart=1,
-	    int wnbext1=1,
-	    int wnbbvp=5,
-	    int wnbgrad=5,
-	    double wepsfd=1e-5,
-	    double wrho000=100,
-	    double wepsloc=1e-4,
-	    double wepsij=1e-6,
-	    int nn100=100)
-	
-	: BijanMO(n,wnbrestart,wnbext1,wnbbvp,wnbgrad,wepsfd,wrho000,wepsloc,wepsij,nn100),
-	  stack(s),
-	  JJ(J),dJJ(dJ),theparame(t)
-      { 
-      }
-      
-      ~lgBMO() {
-      }
-      
-            
-      
-      /* ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc */
-      /* functional definition */
-      /* ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc */
-      
-      double J(Vect & x)
-      {
-	setparam(x);
-	
-	double  ret= GetAny<R>( (*JJ)(stack));
-	WhereStackOfPtr2Free(stack)->clean();
-	return  ret; }
-      
-      
-      /* cccccccccccccccccccccccccccccccccccccccccccccccccccccccc */
-      /* gradient exact,   no defini => DF */  
-      /* cccccccccccccccccccccccccccccccccccccccccccccccccccccccc */
-      
-      double * DJ(Vect & x, Vect & fpx)
-      {
-	if(!dJJ) return 0;
-	setparam(x);
-	fpx=GetAny<Kn_>( (*dJJ)(stack));
-	WhereStackOfPtr2Free(stack)->clean(); 
-	return fpx;
-      }
-      void result(Vect & xoptg,Vect &vinit){} 
-      
-    };
-      
-    E_BMO(const basicAC_F0 & args,int cc) :
-      cas(cc)
-    {
-      int nbj= args.size()-1;
-      Block::open(currentblock); // make a new block to 
-      X = to<Kn*>(args[nbj]);
-      C_F0 X_n(args[nbj],"n");
-      //  the expression to init the theparam of all 
-      inittheparam = currentblock->NewVar<LocalVariable>("the parameter",atype<KN<R> *>(),X_n);
-      theparam = currentblock->Find("the parameter"); //  the expression for the parameter
-      args.SetNameParam(n_name_param,name_param,nargs);
-      const  Polymorphic * opJ=0;
-      const  Polymorphic * opdJ=0;
-      if (nbj>0)
-	{  opJ=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-	  assert(opJ); }
-      if (nbj>1)
-	{   opdJ=  dynamic_cast<const  Polymorphic *>(args[1].LeftValue());
-	assert(opdJ); }
-      JJ=dJJ=0;
-      
-      JJ= to<R>(C_F0(opJ,"(",theparam));
-      if(opdJ)
-        dJJ= to<Kn_>(C_F0(opdJ,"(",theparam));// Modif FH 17102005 (a verifier) to<Kn*> ->to<Kn>
-      closetheparam=currentblock->close(currentblock);   // the cleanning block expression 
-    }
-     
-     virtual AnyType operator()(Stack stack)  const
-    {
-      
-      WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005   
-
-      /*
-	basicAC_F0::name_and_type  OptimBMO::E_BMO::name_param[]= {
-	{  "eps", &typeid(double)  },
-	{ "nbrestart",&typeid(long) },
-	{ "nbbvp",&typeid(long)},
-	{ "nbgrad",&typeid(long)},
-	{ "epsfd",&typeid(double)},
-	{ "epsloc",&typeid(double)},
-	{ "epsij",&typeid(double)},
-	{ "n100",&typeid(long)} // 7
-	};
-	
-      */
-
-      R tol=arg(0,stack,1E-6); // not used ....
-      int nbrestart=arg(1,stack,5L);
-      int nbext1=5; // bof bof 
-      int nbbvp=arg(2,stack,5L);
-      int nbgrad=arg(3,stack,5L);
-      double epsfd=arg(4,stack,1e-5);
-      double rho000=arg(5,stack,1e-5);
-      double epsloc=arg(6,stack,1e-4);
-      double epsij=arg(7,stack,1e-6);
-      int n100=arg(8,stack,100L);
-      int  diagrand=arg(9,stack,0L);
-      R cmin = arg(9,stack,-1000.);
-      R cmax = arg(10,stack,1000.);
-      //KN_<double>  vmin = arg< KN_<double> >(11,stack, ccmin );
-     // KN_<double>  vmax = arg< KN_<double> >(12,stack, ccmax );
-      string * datahist =arg(13,stack, (string *) 0 );
-      string * datachist =arg(14,stack,  (string *) 0 );
-      int typealgo =arg(15,stack, 1L );
-	
-      try {     
-	Kn &x = *GetAny<Kn *>((*X)(stack));	
-	const int n=x.N();
-	  Kn xmin(n),xmax(n);
-	  xmin=cmin;
-	  xmax=cmax;
-	  Set_arg(11,stack,xmin);
-	  Set_arg(12,stack,xmax);
-	  
-	//Kn * para =
-	GetAny<KN<double>*>( inittheparam.eval(stack) ) ; // do allocation 
-	
-	KN_<R> param(x);
-	//cout << nbrestart << " ---- \n";
-	lgBMO nrj1(stack,n,theparam,JJ,dJJ,nbrestart,nbext1,nbbvp,nbgrad,epsfd,rho000,epsloc,epsij,n100);
-	nrj1.diagrand=diagrand;
-	nrj1.debug=verbosity;
-	  nrj1.typealgo=typealgo;
-	  nrj1.histpath=datahist;
-	  nrj1.histcpath=datachist;
-	double fopt=nrj1.main(x,xmin,xmax);
-	
-	if(verbosity)
-	  {
-	  cout <<endl<<"*** RESULTS SUMMARY ***"<<endl;
-	
-	  if(verbosity>1) {
-	    cout <<"  The number of call to  J : "<< nrj1.nbeval << endl;
-	  cout <<"  The number of call to dJ : "<< nrj1.nbevalp << endl; }
-	  if(verbosity) {
-	    cout <<"  Initial J value : " << nrj1.finit << endl;
-	    cout <<"  Final   J  value : " << fopt<< endl;}
-	  }
-	}
-	catch (...)
-	  {
-	    closetheparam.eval(stack); // clean memory 
-	    WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-	    throw ;        
-	  }
-	closetheparam.eval(stack); // clean memory 
-	WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-      
-	
-	return 0L; //SetAny<long>(0);  Modif FH  july 2005 
-       
-    }    
-
-      
-      operator aType () const { return atype<long>();}         
-      
-    };
-
-    
-    
-    E_F0 * code(const basicAC_F0 & args) const {
-      return new E_BMO(args,cas);}
-    
-    OptimBMO(int c) :   OneOperator(atype<long>(),
-				    atype<Polymorphic*>(),
-				    atype<KN<R> *>()),cas(c){}
-    
-    OptimBMO(int c,int cc) :   OneOperator(atype<long>(),
-					   atype<Polymorphic*>(),
-					   atype<Polymorphic*>(),
-					   atype<KN<R> *>()),cas(c){}
-  
-   
-};
-
-
-//template<class R>
-      /* 
-       BijanMO(
-       ndim, 
-       nbrestart=1,
-       nbext1=1,
-       nbbvp=5,
-       nbgrad=5,
-       epsfd=1e-5,
-       rho000=100,
-       epsloc=1e-4,
-       epsij=1e-6,
-       n100=100)
-       
-       */
-
-basicAC_F0::name_and_type  OptimBMO::E_BMO::name_param[]= {
- {  "eps", &typeid(double)  },
- { "nbrestart",&typeid(long) },
- { "nbbvp",&typeid(long)},
- { "nbgrad",&typeid(long)},
- { "epsfd",&typeid(double)},
- { "rho000",&typeid(double)},
- { "epsloc",&typeid(double)},
- { "epsij",&typeid(double)},
- { "n100",&typeid(long)}, // 8
-{ "max",&typeid(double)}, // 9
-{ "min",&typeid(double)}, // 10
-{ "vmax",&typeid(double)}, // 11
-{ "vmin",&typeid(double)}, // 12
-{ "histfile", & typeid(string*)}, // 13
-{ "histcfile", & typeid(string*)}, // 14
-{ "algo", & typeid(long)} // 15
-};
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-
-static void Load_Init()  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init()  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  Global.Add("bmo","(",new OptimBMO(1));  //  j + dJ
-  Global.Add("bmo","(",new OptimBMO(1,1));  //  j + dJ
-
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/load.link.in.orig b/examples++-load/load.link.in.orig
deleted file mode 100755
index 1abe61a..0000000
--- a/examples++-load/load.link.in.orig
+++ /dev/null
@@ -1,296 +0,0 @@
-#!/bin/sh
-# Create a loadable object from a C++ function defined in a .cpp file
-# $Id$
-thecommand="$0"
-dircommand=`dirname "$0"`
-
-FFVERSION='@VERSION@'
-FFCXXFLAGS='@CXXFLAGS@ @CPPFLAGS@'
-FFFFLAGS='@FFLAGS@'
-FFFLIBS='@FLIBS@'
-INCFF=
-if [ "@ENABLE_FFCS@" != "yes" ] ;then ffcs=0; else ffcs=1;fi 
-if [ -z "$CXX" ] ; then CXX='@CXX@' ; fi
-if [ -z "$MPICXX" ] ; then MPICXX="@MPICXX@" ; fi
-if [ -z "$MPI_LIB" ] ; then MPI_LIB="@MPI_LIB@" ; fi
-if [ -z "$F77" ] ; then F77="@F77@" ; fi
-if [ "$CXX" = '@'CXX'@' ] ; then CXX=""; fi
-if [ "$MPICXX" = '@'MPICXX'@' ] ; then MPICXX=""; fi
-if [ "$F77" = '@'F77'@' ] ; then F77=""; fi
-if [ "$FFCXXFLAGS" = '@'CXXFLAGS'@' ] ; then FFCXXFLAGS=""; fi
-if [ "$FFFFLAGS" = '@'FFLAGS'@' ] ; then FFFFLAGS=""; fi
-if [ "$FFFLIBS" = '@'FLIBS'@' ] ; then FFFLIBS=""; fi
-if [ "$FFVERSION" = '@'VERSION'@' ] ; then FFVERSION=""; fi
-if [ -z "$INCFF" ] ; then
-    if [ -f "@INCFF@/ff++.hpp" ] ; then
-	INCFF="-I at INCFF@"
-    elif [ -f "${dircommand}/include/ff++.hpp" ]; then
-	INCFF="-I${dircommand}/include"
-    elif [ -f ../examples++-load/include/ff++.hpp ]; then
-<<<<<<< HEAD
-	INCFF="-I../examples++-load/include"
-=======
-	INCFF="-Iinclude"
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    elif [ -f "FFAPPLI_INC/ff++.hpp" ] ; then 
-	INCFF="-IFFAPPLI_INC" 
-    elif [ -f '@ff_prefix_dir@/include/ff++.hpp' ] ; then 
-	INCFF='-I at ff_prefix_dir@/include' 
-    else
-	ff=`which freefem++.exe`;
-	ffinc=`dirname "$ff"`/examples++-load/include
-	if [ -f "$ffinc/ff++.hpp" ]; then
-	  INCFF=-I"'$ffinc'";
-        else	
-	  echo " erreur PB include freefem++ directory " ;
-	  exit 1;
-	fi
-    fi
-fi
-do="yes"
-DEBUG=""
-CONLY="false"
-uu=`uname -s` 
-INC=""
-LIBS=""
-DLL=""
-bin="."
-out=""
-files=""
-fileso=""
-OTHER="";
-WIN32="";
-
-case "$uu" in
-  CYGWIN*|MINGW*)
-  if [ -z "@WIN32DLLTARGET@" ] ; then 
-      onwin32=1; uu="cygwin-version";
-  else
-      onwin32=1; uu="win32"; # pure windows 
-  fi
-  WIN32="win32-"
-  wff=`which FreeFem++.exe`
-  dff=`dirname "$wff"`
-  if [ "$bin" = "." -a  -f ../src/bin-win32/libff.dll  ]; then
-    bin=../src/bin-win32 
-  elif [  -f "$dff/libff.dll"  ]; then
-#  modif for install on cygwin
-    bin="$dff"
-  elif [ "$bin" = "." -a  -f ../libff.dll  ]; then
-    bin=..
-  elif [ "$bin" = "." -a  -f ../../libff.dll  ]; then
-    bin=../..
-  fi;; 
-esac
-autodep=""
-withmpi=""
-args=""
-
-while [ $# -ne 0 ]  ; do
-    argsp=$args
-    args="$args '$1'"
-    case "$1" in
-	-[h?]*) echo usage $0 "[-n] [-g] [-win32] [-l libfile] [-I includedir]  files"
-	    echo "    -auto :  build automaticaly the dependance (in test FH) "
-	    echo "    -n  :  do nothing just print"
-	    echo "    -g  :  compile with -g option"
-	    echo "    -c  : compile only"
-	    echo "    -mpi:  with  mpi"
-	    echo "    -nompi:  without   $MPI_LIB links "
-	    echo "    -O*  :  compile with -O* option"
-	    echo "    -cygwin: compile for cygwin/win32 OS (Window XP, ...)"
-	    echo "    -win32:  compile for win32 OS (Window XP, ...) default under cygwin"
-	    echo "    -l files  add files to the ld process (link)"
-	    echo "    -I dir  add dir in include seach dir for compilation"
-	    echo "    -b dir  to change the default install  dir " 
-	    echo "    -dll file  add  dll and this file copie in the install dir"
-	    echo "    -o outputfile without suffix"
-	    echo "    file.{cpp,cp,cxx,c,f,F}"
-	    exit 0;
-	    ;;
-	F77=*) F77=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
-	CXX=*) CXX=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
-	MPICXX=*) MPICXX=`echo $1|sed 's/[A-Z0-9]*=//'`;withmpi=yes ;;
-	F77=*) F77=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
-	CXXFLAGS=*) CXXFLAGS=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
-	FFLAGS=*) FFLAGS=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
-	MPI_LIB=*) MPI_LIB=`echo $1|sed 's/[A-Z0-9]*=//'` ;;
-	-auto) autodep=yes;args=$argsp;;
-	-mpi) withmpi=yes;;
-	-nompi) MPI_LIB='';withmpi='';;
-	-n)  do="no";;
-	-g)  DEBUG="$DEBUG $1";;
-	-c)  CONLY=yes;;
-	-O*) DEBUG="$DEBUG $1";;
-	-cygwin)  onwin32=1; uu="cygwin-version";; 
-	-win32)   onwin32=1; uu="win32";; 
-	-b)     bin=$2  ; shift;;
-	-I*)    INC="$INC '$1'";;
-	-D*)    INC="$INC '$1'";;
-	-dll)   DLL="$DLL '$2'";shift;;
-	-[Ll]*)    LIBS="$LIBS '$1'" ;; # FFCS - 27/10/11 - need quotes for MPICH libraries in 'Program Files' under Windows
-	*.a)     LIBS="$LIBS $1" ;;
-	*.so)    LIBS="$LIBS $1" ;;
-	*.dll)   if [ -f "$1" ] ; then  LIBS="$LIBS '$1'"  
-	    elif [ -f "$bin/$1" ] ; then  LIBS="$LIBS '$bin/$1'"
-	    else
-	      echo " erreur file not found $1" ;
-	      exit 1;
-	    fi;;
-	-Wl*)    LIBS="$LIBS $1" ;;
-	*.cpp) files="$files '$1'";  o=`basename "$1" .cpp` ; fileso="$fileso '$o.o'"; args=$argsp;; 
-	*.cp)  files="$files '$1'";  o=`basename "$1" .cp`   ; fileso="$fileso '$o.o'"; args=$argsp;; 
-	*.cxx) files="$files '$1'";  o=`basename "$1" .cxx` ; fileso="$fileso '$o.o'"; args=$argsp;;
-	*.c)   files="$files '$1'";  o=`basename "$1" .c` ; fileso="$fileso '$o.o'"; args=$argsp;;  
-	*.f)   ffiles="$ffiles '$1'";  o=`basename "$1" .f` ; fileso="$fileso '$o.o'";; 
-	*.F)   ffiles="$ffiles '$1'";  o=`basename "$1" .F` ; fileso="$fileso '$o.o'";; 
-	*.o)   fileso="$fileso '$1'"; o=`basename "$1" .o` ;; 
-	-o)    out="$2"; shift;;
-	*) OTHER="$OTHER $1";;
-    esac
-    shift
-done
-
-#  remove old file... FH sep 2013..
-SUF=@DYLIB_SUFFIX@
-
-if [ -n "$autodep"  ] ; then
-#    echo "$thecommand" $args  `eval "'$dircommand/ff-get-dep'" -ff $files`
-    argsdep=`eval "'$dircommand/ff-get-dep'" -ff $files`
-    
-     error=`echo "$argsdep"| grep ERROR`
-     if [ -n "$error" ] ; then
-	 echo " WARNING in  auto dependance seach ( missing plugin $2) .  sorry : $error "
-
-	 # FFCS - 28/11/11 - we need to stop compiling as soon as there is an error because we want a fixed set of features in
-	 # FFCS
-	 # return a error when FFCS enable .. FH. 
-	 echo " -- $error " >>Missing-plugins- at DYLIB_SUFFIX@.log
-	 exit $ffcs;
-     fi
-    echo eval "$thecommand" $args  $argsdep
-    eval "$thecommand" $args  $argsdep
-
-    # FFCS needs an error exit code to make sure that all libraries are correctly compiled
-    exit $?;
-fi
-
-if [  -n "$onwin32" -a ! -f "$bin/libff.dll"  ] ; then 
-    echo " Error the file libff.dll  must be exist in '$bin' the install directory," 
-    echo " to link on windows OS "
-    echo " Use the parameter -b to set the correct install directory " 
-    exit 1;
-fi
-
-if [ -z "$out" ] ; then  out=$o  ; fi;
-if [ -f  "$out.$SUF" ] ; then rm $out.$SUF ; fi 
-
-
-# Default compiler
-if [ -z "$CXX"  ];then  CXX=g++ ; fi
-if [ -n "$withmpi" ]; then  CXX=$MPICXX;fi
-
-test "$withmpi" = "yes" && WMPI_LIB="$MPI_LIB"
-
-# build a mpi version of the plugin if the plugin do exist un mpi dir
-# and if the mpi version exist and if 
-OWMPI=""
-test  -d ../examples++-mpi -a -n "$MPI_LIB" -a "$withmpi" != "yes" -a ! -f  "../examples++-mpi/$out.cpp"  &&  OWMPI="../examples++-mpi/$out.$SUF"
-test -f "$OWMPI" -a -n "$OWMPI" && rm "$OWMPI"
-
-
-
-INC="$INCFF $INC"  
-SHARED="-shared"
-case "$WIN32$uu" in
-    Darwin*) 
-#        echo "export MACOSX_DEPLOYMENT_TARGET=10.3"
-#	export MACOSX_DEPLOYMENT_TARGET=10.4
-#	SUF=dylib
-	SHARED="-bundle -undefined dynamic_lookup"  ;;
-    win32-CYGWIN*|win32-win32)
-        echo " Window without cygwin "
-	WMPI_LIB=''
-        b="$bin"
-        LIBS=" '$b/libff.dll' '$b/FreeFem++-api.dll' $LIBS $DLL"
-
-	# FFCS - 17/10/12 - --unresolved-symbols=ignore-all is not understood by the current mingw64 compilers
-        SHARED="-shared -Wl,--enable-auto-import"
-
-	# FFCS - 17/10/12 - -mno-cygwin is not understood by the current mingw64 compilers
-        ###FLAGS='  -mno-cygwin '
-#        SUF=dll
-	;;
-    win32-cygwin-version)
-        echo " cygwin-version "
-	WMPI_LIB=''
-        b=$bin
-        FLAGS=' '
-        LIBS="'$b/libff.dll' $LIBS $DLL"
-#        SUF=dll
-	;;
-    FreeBSD|NetBSD)
-	SHARED="-shared" 
-	FLAGS='-fPIC';;
-	# 64 bit Linux needs -fPIC (ALH)
-    SunOS)
-        SHARED="-shared"
-        FLAGS='-fPIC';;
-        # 64 bit Linux needs -fPIC (ALH)
-    Linux)
-	FLAGS='-fPIC'
-	SHARED="-shared " ;;
-    *)
-	echo "sorry unknown achitecture "`uname`
-	exit 1;;
-esac
-
-
-#FLAGS="$FLAGS $DEBUG $FFCXXFLAGS"
-#  change F. H Version 3.17 
-FLAGS="$FLAGS $DEBUG"
-
-if [ -n "$ffiles$files$fileso" ] ; then
-    if [  -n "$WIN32"  -a  ! -f "$bin/libff.dll"  ]; then
-	echo " Sorry, no freefem .dll file (libff.dll)  in $bin dir "
-	echo " try with -b dir-path where the file libff.dll exist"
-	exit 1;
-    fi
-    if [ "$files" ] ;then 
-	echo $CXX -c $FLAGS $CXXFLAGS $FFCXXFLAGS $INC $PIC $files
-	if [  $do = yes ] ; then 
-	    eval $CXX -c $INC $FLAGS $CXXFLAGS $FFCXXFLAGS  $PIC  $files
-	    ret=$?; if [ $ret -ne 0 ] ; then exit $ret ;fi
-	fi
-    fi
-    if [ "$ffiles" ] ;then 
-	echo $F77 -c $FLAGS $FFLAGS $FFFFLAGS $INC $PIC $ffiles
-	LIBS="$FFFLIBS $LIBS"
-	if [  $do = yes ] ; then 
-	    eval $F77 -c $INC $FFLAGS $FLAGS $FFFFLAGS $PIC  $ffiles
-	    ret=$?; if [ $ret -ne 0 ] ; then exit $ret ;fi
-	fi
-    fi
-    if [ "$CONLY" != yes ]; then
-	echo $CXX $SHARED $FLAGS $CXXFLAGS $FFCXXFLAGS $fileso -o $out.$SUF $LIBS $DLL $OTHER $WMPI_LIB
-	if [  $do = yes ] ; then 
-	   eval $CXX $SHARED $FLAGS $CXXFLAGS $FFCXXFLAGS $fileso -o $out.$SUF $LIBS $DLL $OTHER $WMPI_LIB
-	    ret=$?; if [ $ret -ne 0 ] ; then exit $ret ;fi
-	fi
-	if [  "$bin" != "." ]; then
-	    echo cp $out.$SUF  $bin
-	    test $do = yes &&   cp $out.$SUF  "$bin"
-	fi
-	if [ -n "$DLL" ] ; then
-	    echo cp $DLL $bin
-	    test $do = yes &&   cp $DLL "$bin"
-	fi 
-	if [ -n "$OWMPI" ] ; then
-	    echo $CXX $SHARED $FLAGS $CXXFLAGS $FFCXXFLAGS $fileso -o $OWMPI $LIBS $DLL $OTHER $MPI_LIB
-	    if [  $do = yes ] ; then 
-		eval $CXX $SHARED $FLAGS $CXXFLAGS $FFCXXFLAGS $fileso -o $OWMPI $LIBS $DLL $OTHER $MPI_LIB
-		ret=$?; if [ $ret -ne 0 ] ; then exit $ret ;fi
-	    fi
-	fi
-    fi
-fi
diff --git a/examples++-load/mat_dervieux.cpp.orig b/examples++-load/mat_dervieux.cpp.orig
deleted file mode 100644
index ce3eb37..0000000
--- a/examples++-load/mat_dervieux.cpp.orig
+++ /dev/null
@@ -1,170 +0,0 @@
-//  Implementation of P1-P0 FVM-FEM
-// ---------------------------------------------------------------------
-// $Id$
-// compile and link with ./load.link  mat\_dervieux.cpp 
-#include  <iostream>
-using namespace std;
-#include "cfloat"
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-#include "Mesh3dn.hpp"
-#include "MeshPoint.hpp"
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-/*
-#include  <iostream>
-#include  <cfloat>
-#include  <cmath>
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-#include "rgraph.hpp"
-#include "RNM.hpp"
-// remove problem of include 
-#undef  HAVE_LIBUMFPACK
-#undef HAVE_CADNA
-#include "MatriceCreuse_tpl.hpp"
-#include "MeshPoint.hpp"
-#include "lgfem.hpp"
-#include "lgmesh.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-*/
-class MatrixUpWind0 :  public E_F0mps { public:
-  typedef Matrice_Creuse<R> * Result;
-  Expression emat,expTh,expc,expu1,expu2;
-  MatrixUpWind0(const basicAC_F0 & args)
-  {
-
-    args.SetNameParam();
-    emat =args[0]; // the matrix expression
-    expTh= to<pmesh>(args[1]);  // a the expression to get the mesh
-    expc = CastTo<double>(args[2]); // the expression to get c  (must be a double)
-    //  a array expression [ a, b]
-    const E_Array * a= dynamic_cast<const E_Array*>((Expression) args[3]);
-    if (a->size() != 2) CompileError("syntax:  MatrixUpWind0(Th,rhi,[u1,u2])");
-    int err =0;
-    expu1= CastTo<double>((*a)[0]); // fist exp of the array (must be a  double)
-    expu2= CastTo<double>((*a)[1]); // second exp of the array (must be a  double)
-
-  }
-
-  ~MatrixUpWind0()
-  {
-  }
-
-  static ArrayOfaType  typeargs()
-  { return  ArrayOfaType(atype<Matrice_Creuse<R>*>(),
-			 atype<pmesh>(),atype<double>(),atype<E_Array>());}
-  static  E_F0 * f(const basicAC_F0 & args){ return new MatrixUpWind0(args);}
-  AnyType operator()(Stack s) const ;
-
-};
-
-int   fvmP1P0(double q[3][2], double u[2],double c[3], double a[3][3], double where[3] )
-{                               // computes matrix a on a triangle for the Dervieux FVM
-  for(int i=0;i<3;i++) for(int j=0;j<3;j++) a[i][j]=0;
-
-  for(int i=0;i<3;i++){
-    int ip = (i+1)%3, ipp =(ip+1)%3;
-    double unL =-((q[ip][1]+q[i][1]-2*q[ipp][1])*u[0]
-		  -(q[ip][0]+q[i][0]-2*q[ipp][0])*u[1])/6;
-    if(unL>0) { a[i][i] += unL; a[ip][i]-=unL;}
-    else{ a[i][ip] += unL; a[ip][ip]-=unL;}
-    if(where[i]&&where[ip]){        // this is a boundary edge
-      unL=((q[ip][1]-q[i][1])*u[0] -(q[ip][0]-q[i][0])*u[1])/2;
-      if(unL>0) { a[i][i]+=unL; a[ip][ip]+=unL;}
-    }
-  }
-  return 1;
-}
-
-// the evaluation routine
-AnyType MatrixUpWind0::operator()(Stack stack) const
-{
-  Matrice_Creuse<R> * sparce_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-  MatriceMorse<R> * amorse =0;
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh * pTh = GetAny<pmesh>((*expTh)(stack));
-  ffassert(pTh);
-  Mesh & Th (*pTh);
-  {
-    map< pair<int,int>, R> Aij;
-    KN<double> cc(Th.nv);
-    double infini=DBL_MAX;
-    cc=infini;
-    for (int it=0;it<Th.nt;it++)
-      for (int iv=0;iv<3;iv++)
-	{
-	  int i=Th(it,iv);
-	  if ( cc[i]==infini) { // if nuset the set
-	    mp->setP(&Th,it,iv);
-	    cc[i]=GetAny<double>((*expc)(stack));
-	  }
-	}
-
-    for (int k=0;k<Th.nt;k++)
-      {
-	const Triangle & K(Th[k]);
-	const Vertex & A(K[0]), &B(K[1]),&C(K[2]);
-	R2 Pt(1./3.,1./3.);
-	R u[2];
-	MeshPointStack(stack)->set(Th,K(Pt),Pt,K,K.lab);
-	u[0] = GetAny< R>( (*expu1)(stack) ) ;
-	u[1] = GetAny< R>( (*expu2)(stack) ) ;
-
-	int ii[3] ={  Th(A), Th(B),Th(C)};
-	double q[3][2]= { { A.x,A.y} ,{B.x,B.y},{C.x,C.y} } ;  // coordinates of 3 vertices (input)
-	double c[3]={cc[ii[0]],cc[ii[1]],cc[ii[2]]};
-	double a[3][3], where[3]={(double) A.lab, (double) B.lab, (double)C.lab};
-	if (fvmP1P0(q,u,c,a,where) )
-	  {
-	    for (int i=0;i<3;i++)
-	      for (int j=0;j<3;j++)
-		if (fabs(a[i][j]) >= 1e-30)
-		  { Aij[make_pair(ii[i],ii[j])]+=a[i][j];
-		  }
-	  }
-      }
-    amorse=  new MatriceMorse<R>(Th.nv,Th.nv,Aij,false);
-  }
-  sparce_mat->Uh=UniqueffId();
-  sparce_mat->Vh=UniqueffId();
-  sparce_mat->A.master(amorse);
-  sparce_mat->typemat=(amorse->n == amorse->m) ? TypeSolveMat(TypeSolveMat::GMRES) : TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-  *mp=mps;
-
-  if(verbosity>3) { cout << "  End Build MatrixUpWind : " << endl;}
-
-  return sparce_mat;
-}
-
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-$1 */
-static void Load_Init()
-=======
-class Init { public:
-  Init();
-};
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  cout << " lood: init Mat Chacon " << endl;
-  Global.Add("MatUpWind1","(", new OneOperatorCode<MatrixUpWind0 >( ));
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/mat_psi.cpp.orig b/examples++-load/mat_psi.cpp.orig
deleted file mode 100644
index d974ce8..0000000
--- a/examples++-load/mat_psi.cpp.orig
+++ /dev/null
@@ -1,283 +0,0 @@
-// Example C++ function "myfunction", dynamically loaded into "load.edp"
-// ---------------------------------------------------------------------
-// $Id$
-
-
-#include "ff++.hpp"
-
-class MatrixUpWind0 :  public E_F0 { public: 
-  typedef Matrice_Creuse<R> * Result;
-  Expression emat,expTh,expc,expu1,expu2; 
-  MatrixUpWind0(const basicAC_F0 & args) 
-  {   
-    
-    args.SetNameParam();
-    emat =args[0];
-    expTh= to<pmesh>(args[1]);
-    expc = CastTo<double>(args[2]);
-    const E_Array * a= dynamic_cast<const E_Array*>((Expression) args[3]);
-    if (a->size() != 2) CompileError("syntax:  MatrixUpWind0(Th,rhi,[u1,u2])");
-    int err =0;
-    expu1= CastTo<double>((*a)[0]);
-    expu2= CastTo<double>((*a)[1]);
-    
-  }
-  
-  ~MatrixUpWind0() 
-  {  
-  }     
-  
-  static ArrayOfaType  typeargs() { return  ArrayOfaType(atype<Matrice_Creuse<R>*>(),atype<pmesh>(),atype<double>(),atype<E_Array>());}
-  static  E_F0 * f(const basicAC_F0 & args){ return new MatrixUpWind0(args);} 
-  AnyType operator()(Stack s) const ;
-  
-};
-
-class MatrixUpWind3 :  public E_F0 { public: 
-    typedef Matrice_Creuse<R> * Result;
-    Expression emat,expTh,expc,expu1,expu2,expu3; 
-    MatrixUpWind3(const basicAC_F0 & args) 
-    {   
-	
-	args.SetNameParam();
-	emat =args[0];
-	expTh= to<pmesh3>(args[1]);
-	expc = CastTo<double>(args[2]);
-	const E_Array * a= dynamic_cast<const E_Array*>((Expression) args[3]);
-	if (a->size() != 3) CompileError("syntax:  MatrixUpWind0(Th,rhi,[u1,u2])");
-	int err =0;
-	expu1= CastTo<double>((*a)[0]);
-	expu2= CastTo<double>((*a)[1]);
-	expu3= CastTo<double>((*a)[2]);
-	
-    }
-    
-    ~MatrixUpWind3() 
-    {  
-    }     
-    
-    static ArrayOfaType  typeargs() { return  ArrayOfaType(atype<Matrice_Creuse<R>*>(),atype<pmesh3>(),atype<double>(),atype<E_Array>());}
-    static  E_F0 * f(const basicAC_F0 & args){ return new MatrixUpWind3(args);} 
-    AnyType operator()(Stack s) const ;
-    
-};
-
-int   gladys(double q[3][2], double u[2],double c[3], double a[3][3] )  //PSI Deconninck
-{				// computes matrix a on a triangle for the Chacon-Reina Petrof-Galerkin upwind
-  
-  // working arrays
-  double dw[3][2]; // basis function gradients times  area
-  double ua[2], kk[3], beta[3]; // to define a[][]
-  double udc=0;  // u.grad(w)*area
-  bool oneaval=false;
-  int i1=-1;
-  
-  for(int i=0;i<3;i++)
-    {
-      int ip=(i+1)%3, ipp=(ip+1)%3;
-      for(int j=0;j<2;j++)
-	dw[i][1-j]= (2*j-1)*(q[ipp][j]-q[ip][j])/2;
-    }
-  
-  for(int i=0;i<3;i++){
-    kk[i] = u[0]*dw[i][0]+u[1]*dw[i][1] ;
-    udc += kk[i]*c[i];
-  }
-  
-  for(int i=0;i<3;i++)
-    {
-      ua[0]=u[0]; ua[1]=u[1];
-      int ip=(i+1)%3, ipp=(ip+1)%3;
-      if(kk[i]>0 && kk[ip]<=0 && kk[ipp]<=0)
-	{
-	  beta[i]=1; beta[ip]=0; beta[ipp]=0; oneaval=true;
-	}
-      else if(kk[i]<=0 && kk[ip]>0 && kk[ipp]>0) i1=i;
-    }
-  
-  if(!oneaval)
-    {
-      if(i1<0)cout<<"bug\n";
-      int i=i1, ip=(i+1)%3, ipp=(i+2)%3;
-      double lambda = (c[ip]-c[i])*(c[ipp]-c[i]);
-      if (fabs(lambda) < -1e-20)
-        {
-	  return 0;
-	}
-      if(lambda < 0)
-	{
-	  if (udc>0)
-	    {
-	      beta[i]=0; beta[ip]=0; beta[ipp]=1;
-	      ua[0] = udc*(q[ipp][0]-q[i][0])/(c[ipp]-c[i]); 
-	      ua[1] = udc*(q[ipp][1]-q[i][1])/(c[ipp]-c[i]);
-	    }
-	  else
-	    {
-	      beta[i]=0; beta[ipp]=0; beta[ip]=1;
-	      ua[0] = udc*(q[ip][0]-q[i][0])/(c[ip]-c[i]); 
-	      ua[1] = udc*(q[ip][1]-q[i][1])/(c[ip]-c[i]);
-	    }
-	}
-      else 
-	{
-	  beta[i]=0; 
-	  beta[ip]=kk[ip]*(c[ip]-c[i])/udc; 
-	  beta[ipp]=kk[ipp]*(c[ipp]-c[i])/udc;
-	}
-    }
-  for(int i=0;i<3;i++)
-    for(int j=0;j<3;j++)
-      a[i][j]= beta[i]*(ua[0]*dw[j][0]+ua[1]*dw[j][1]);
-  return 1;
-}		
-
-
-AnyType MatrixUpWind0::operator()(Stack stack) const 
-{
-  Matrice_Creuse<R> * sparce_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack)); 
-  MatriceMorse<R> * amorse =0; 
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh * pTh = GetAny<pmesh>((*expTh)(stack));
-  ffassert(pTh);
-  Mesh & Th (*pTh);
-  {
-    map< pair<int,int>, R> Aij;
-    KN<double> cc(Th.nv);
-    double infini=DBL_MAX;   
-    cc=infini;
-    for (int it=0;it<Th.nt;it++)
-      for (int iv=0;iv<3;iv++)
-	{
-	  int i=Th(it,iv);
-	  if ( cc[i]==infini) { // if nuset the set 
-	    mp->setP(&Th,it,iv);
-	    cc[i]=GetAny<double>((*expc)(stack));
-	  }
-	}
-    
-    for (int k=0;k<Th.nt;k++)
-      {   
-	const Triangle & K(Th[k]); 
-	const Vertex & A(K[0]), &B(K[1]),&C(K[2]);
-	R2 Pt(1./3.,1./3.);
-	R u[2];
-	MeshPointStack(stack)->set(Th,K(Pt),Pt,K,K.lab);
-	u[0] = GetAny< R>( (*expu1)(stack) ) ;
-	u[1] = GetAny< R>( (*expu2)(stack) ) ;
-	
-	int ii[3] ={  Th(A), Th(B),Th(C)};
-	double q[3][2]= { { A.x,A.y} ,{B.x,B.y},{C.x,C.y} } ;  // coordinates of 3 vertices (input)
-	double c[3]={cc[ii[0]],cc[ii[1]],cc[ii[2]]};
-	double a[3][3];
-	if (gladys(q,u,c,a) )
-	  {
-	    for (int i=0;i<3;i++)
-	      for (int j=0;j<3;j++)
-		if (fabs(a[i][j]) >= 1e-30)
-		  Aij[make_pair(ii[i],ii[j])]+=a[i][j];	   
-	  }
-      }
-    amorse=  new MatriceMorse<R>(Th.nv,Th.nv,Aij,false); 
-  }
-  sparce_mat->Uh=UniqueffId();
-  sparce_mat->Vh=UniqueffId();
-  sparce_mat->A.master(amorse);
-  sparce_mat->typemat=(amorse->n == amorse->m) ? TypeSolveMat(TypeSolveMat::GMRES) : TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-  *mp=mps;
-  
-  if(verbosity>3) { cout << "  End Build MatrixUpWind : " << endl;}
-  
-  return sparce_mat;  
-}
-int   Marco(const Mesh3::Element & K, R3 U,R c[4], double a[4][4] )  //PSI Deconninck
-{
-    ExecError("Not Implemented Sorry Marco!");
-    return 0;
-}
-AnyType MatrixUpWind3::operator()(Stack stack) const 
-{
-    Matrice_Creuse<R> * sparce_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack)); 
-    MatriceMorse<R> * amorse =0; 
-    MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-    Mesh3 * pTh = GetAny<pmesh3>((*expTh)(stack));
-    ffassert(pTh);
-    Mesh3 & Th (*pTh);
-  {
-      map< pair<int,int>, R> Aij;
-      KN<double> cc(Th.nv);
-      double infini=DBL_MAX;   
-      cc=infini;
-      for (int it=0;it<Th.nt;it++)
-	  for (int iv=0;iv<4;iv++)
-	    {
-		int i=Th(it,iv);
-		if ( cc[i]==infini) { // if nuset the set 
-		    mp->setP(&Th,it,iv);
-		    cc[i]=GetAny<double>((*expc)(stack));
-		}
-	    }
-      
-      for (int k=0;k<Th.nt;k++)
-	{   
-	    const Mesh3::Element & K(Th[k]); 
-	    const Mesh3::Vertex & A(K[0]), &B(K[1]),&C(K[2]),&D(K[3]);
-	    R3 Pt(1./4.,1./4.,1./4.);
-	    R3 U;
-	    MeshPointStack(stack)->set(Th,K(Pt),Pt,K,K.lab);
-	    U.x = GetAny< R>( (*expu1)(stack) ) ;
-	    U.y = GetAny< R>( (*expu2)(stack) ) ;
-	    U.z = GetAny< R>( (*expu3)(stack) ) ;
-	    
-	    int ii[4] ={  Th(A), Th(B),Th(C),Th(D)};//  number of 4 vertex
-	   
-	    double c[4]={cc[ii[0]],cc[ii[1]],cc[ii[2]],cc[ii[3]]};
-	    double a[4][4];
-	    if (Marco(K,U,c,a) )
-	      {
-		  for (int i=0;i<4;i++)
-		      for (int j=0;j<4;j++)
-			  if (fabs(a[i][j]) >= 1e-30)
-			      Aij[make_pair(ii[i],ii[j])]+=a[i][j];	   
-	      }
-	}
-      amorse=  new MatriceMorse<R>(Th.nv,Th.nv,Aij,false); 
-  }
-    sparce_mat->Uh=UniqueffId();
-    sparce_mat->Vh=UniqueffId();
-    sparce_mat->A.master(amorse);
-    sparce_mat->typemat=(amorse->n == amorse->m) ? TypeSolveMat(TypeSolveMat::GMRES) : TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-    *mp=mps;
-    
-    if(verbosity>3) { cout << "  End Build MatrixUpWind : " << endl;}
-    
-    return sparce_mat;  
-    
-}
-
-
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
- Init init;
-*/
- static void Load_Init()
-=======
-class Init { public:
-  Init();
-};
- Init init;
- Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-   {
-     cout << " lood: init Mat Chacon " << endl;
-     Global.Add("MatUpWind0","(", new OneOperatorCode<MatrixUpWind0 >( ));
-     Global.Add("MatUpWind0","(", new OneOperatorCode<MatrixUpWind3 >( ));
-<<<<<<< HEAD
- }
-LOADFUNC(Load_Init)
-=======
-   }
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/medit.cpp b/examples++-load/medit.cpp
index 9fab2ad..6d49175 100644
--- a/examples++-load/medit.cpp
+++ b/examples++-load/medit.cpp
@@ -239,7 +239,7 @@ AnyType readsol_Op::operator()(Stack stack)  const
       }
     }
   }
-  /* // A prendre en compte dans la d�finition de la metriques dans MMG
+  /* // A prendre en compte dans la d�finition de la metriques dans MMG
      // MMG_swap data 
      if ( sol->offset == 6 ) {
      tmp                = sol->met[isol + 2];
diff --git a/examples++-load/medit.cpp.orig b/examples++-load/medit.cpp.orig
deleted file mode 100644
index c2e1c07..0000000
--- a/examples++-load/medit.cpp.orig
+++ /dev/null
@@ -1,2444 +0,0 @@
-// ORIG-DATE:     Aout 2008
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : liaison medit freefem++ : popen  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-#include "../src/Graphics/mode_open.hpp" // ALH - there should be a '-I'?
-#include "ff++.hpp"
-#define WrdSiz 4
-
-#ifdef WIN32
-string stringffmedit= "ffmedit.exe";
-//string stringemptymedit= "ffmedit.exe";
-#else
-string stringffmedit= "ffmedit";
-#endif
-
-
-const char *medit_popen="-popen";// 1";  // depend de l endroit ou se trouve medit
-const char *medit_bin="-filebin";
-const char *medit_addsol="-addsol";
-
-const char *medit_debug="-d";
-
-static bool TheWait=false;
-bool  NoWait=false;
-extern bool  NoGraphicWindow;
-using namespace std;
-using namespace Fem2D;
-
-//*******************************
-//
-// read solution of .sol or .solb
-//
-//*******************************
-
-class readsol_Op : public E_F0mps 
-{
-public:
-  typedef KN_<double> Result;
-  Expression eTh;
-  Expression filename;
-
-  static const int n_name_param = 1;  
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-  long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
- 
-public:
-  /*
-  readsol_Op(const basicAC_F0 &  args, Expression ffname) : filename(ffname)
-  {
-    if(verbosity>2)  cout << "readsol"<< endl;
-    args.SetNameParam(n_name_param,name_param,nargs);    
-  }
-  */
-  readsol_Op(const basicAC_F0 &  args) 
-  {
-    if(verbosity>2)  cout << "readsol"<< endl;
-    args.SetNameParam(n_name_param,name_param,nargs);    
-    if ( BCastTo<string *>(args[0]) ) 
-      filename = CastTo<string *>(args[0]);
-    else 
-      CompileError("no filename given");
-
-  }
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype<string *>(),true ); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new readsol_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-  operator aType () const { return atype< KN_<double> >();} 
-};
-
-basicAC_F0::name_and_type readsol_Op::name_param[]= {
-  {  "number",&typeid(long) }
-};
-
-AnyType readsol_Op::operator()(Stack stack)  const 
-{ 
-  string * ffname= GetAny<string *>( (*filename)(stack) );
-  int         k,i,isol,type,inm,ver,dim,typtab[GmfMaxTyp],offset;
-  char        *ptr,data[128];
-  //          rajout freefem++
-  int         nv=0,ntet=0,ntri=0;
-  int         nsol;
-  int         key;
-
-  int numsol(arg(0,stack,-1L)); 
-  assert(abs(numsol)>=1);
-
-  char * charfile= new char[ffname->size()+1];
-  strncpy(charfile,ffname->c_str(),ffname->size()+1);
-
-  strcpy(data,charfile);
-  ptr = strstr(data,".sol");
-  if ( ptr )  *ptr = '\0';
-  strcat(data,".solb");
-  if( !(inm = GmfOpenMesh(data, GmfRead, &ver,&dim)) ) {
-    ptr  = strstr(data,".solb");
-    *ptr = '\0';
-    strcat(data,".sol");
-    if( !(inm = GmfOpenMesh(data, GmfRead, &ver,&dim)) ) {
-      cerr << "  ** "<< (char *) data << " NOT FOUND.\n" << endl;
-      exit(1);
-    }
-  }
-  if(verbosity>2)
-  cout <<"  %%%%" << (char *) data <<  " OPENED\n" << endl;
-
-  nv = GmfStatKwd(inm,GmfSolAtVertices,&type,&offset,&typtab);
-  if( nv ){
-    key  = GmfSolAtVertices;
-    nsol = nv;
-  }
-  else{
-    ntri = GmfStatKwd(inm,GmfSolAtTriangles,&type,&offset,&typtab);
-    if( ntri ){
-      key = GmfSolAtTriangles;
-      nsol = ntri;
-    }
-    else
-      ntet = GmfStatKwd(inm,GmfSolAtTetrahedra,&type,&offset,&typtab);
-    if( ntet ){
-      key = GmfSolAtTetrahedra;
-      nsol = ntet;
-    }
-  }
-
-  if ( (nv == 0) && (ntri == 0)  && (ntet == 0) ){
-    cerr << "  ** MISSING DATA" << endl;
-    exit(1);
-  }
-
-  int nbsol = nsol*offset;
-  int offsettab = 0;
-  int firstelem = 0;
-  if(numsol != -1){
-    if( typtab[numsol-1] == 1){
-      nbsol=nsol;
-      offsettab = 1;
-    }
-    else  if( typtab[numsol-1] == 2){
-      nbsol=nsol*dim;
-      offsettab = dim;
-    }
-    else  if( typtab[numsol-1] == 3){
-      nbsol=nsol*dim*(dim+1)/2;
-      offsettab = dim*(dim+1)/2;
-    }
-    else{
-      cerr << "bug in the definition of type of solution: 1 scalar, 2 vector, 3 symetric tensor" << endl;
-      exit(1);
-    }
-    
-    for(int ii=0; ii< (numsol-1); ii++)
-      if( typtab[ii] == 1)
-	firstelem=firstelem+1;
-      else  if( typtab[ii] == 2){
-	firstelem=firstelem+dim;
-      }
-      else  if( typtab[ii] == 3){
-	firstelem=firstelem+dim*(dim+1)/2;;
-      }
-      else{
-	cerr << "bug in the definition of type of solution: 1 scalar, 2 vector, 3 symetric tensor" << endl;
-	exit(1);
-      }
-  }
-  
-  if(verbosity >5) 
-    cout << "nbsol " << nbsol << " offset " << offset << "  " << nsol << " "<< endl;
-  
-  float       *buf =new float[offset];
-  double      tmp;
-  double      *bufd=new double[offset];
-  
-  KN<double> *ptabsol = new KN<double>(nbsol);
-  KN<double>  &tabsol =*ptabsol;
-  
-  if(numsol == -1){
-    GmfGotoKwd(inm,key);
-    if( ver == GmfFloat ){
-      for (k=1; k<=nsol; k++) {
-	isol = (k-1) * offset ;	
-	GmfGetLin(inm,key,buf);
-	for (i=0; i<offset; i++)
-	  tabsol[isol + i] = (double) buf[i];
-      }
-    }
-    else{
-      for (k=1; k<=nsol; k++) {
-	isol = (k-1) * offset ;	
-	GmfGetLin(inm,key,bufd);
-	for (i=0; i<offset; i++)
-	  tabsol[isol + i] = bufd[i];		
-      }
-    }
-  }
-  else{   
-    GmfGotoKwd(inm,key);
-    if( ver == GmfFloat ){
-      for (k=1; k<=nsol; k++) {
-	isol = (k-1)*offsettab;	
-	GmfGetLin(inm,key,buf);
-	for (i=0; i<offsettab; i++)
-	  tabsol[isol + i] = buf[i+firstelem];		
-	
-      }
-    }
-    else{
-      for (k=1; k<=nsol; k++) {
-	isol = (k-1)*offsettab;
-	GmfGetLin(inm,key,bufd);
-	for (i=0; i<offset; i++)
-	  tabsol[isol + i] = bufd[i+firstelem];		
-      }
-    }
-  }
-  /* // A prendre en compte dans la d�finition de la metriques dans MMG
-     // MMG_swap data 
-     if ( sol->offset == 6 ) {
-     tmp                = sol->met[isol + 2];
-     sol->met[isol + 2] = sol->met[isol + 3];
-     sol->met[isol + 3] = tmp;
-  */
-  
-  GmfCloseMesh(inm);
-  delete [] buf;
-  delete [] bufd;
- 
-  Add2StackOfPtr2Free(stack,ptabsol);
-  return SetAny< KN<double> >(tabsol);  
-}
-  
-
-
-//*************************
-//
-//   creation point sol
-//
-//*************************
-// datasolMesh2
-
-class datasolMesh2_Op : public E_F0mps 
-{
-public:
-  typedef long  Result;
-  Expression eTh;
-  Expression filename;
-  
-  struct Expression2 {
-    long what; // 1 scalar, 2 vector, 3 symtensor
-    long nbfloat; // 1 scalar, 2 vector (3D), 3 symtensor(3D)
-    string *dataname; 
-    Expression e[3];
-    Expression2() {e[0]=0; e[1]=0; e[2]=0;  what=0; nbfloat=0;};
-    Expression &operator[](int i){return e[i];}
-    double eval(int i,Stack stack) const  { 
-    if (e[i]) {
-      return GetAny< double >( (*e[i])(stack) );
-    }
-    else 
-      return 0;
-    }
-  };
-  vector<Expression2> l;
-  static const int n_name_param = 1;  
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-  long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
- 
-public:
-  datasolMesh2_Op(const basicAC_F0 &  args) : l( args.size()-2 )
-  {
-    int nbofsol;
-    int ddim=2;
-    int stsize=3;
-    //cout << "construction data medit solution avec datasolMesh2_Op" << args << endl;
-    //cout << "taille de args" << args.size() << endl;
-    args.SetNameParam(n_name_param,name_param,nargs); 
-
-    if (BCastTo<string *>(args[0])) filename = CastTo<string *>(args[0]);
-    if (BCastTo<pmesh>(args[1])) eTh= CastTo<pmesh>(args[1]);
-   
-  
-    nbofsol = l.size();
-    for (size_t i=2;i<args.size();i++){
-      size_t jj=i-2;
-
-      if ( BCastTo<double>( args[i] ))
-	{
-	  l[jj].what=1;
-	  l[jj].nbfloat=1;
-	  l[jj][0]=to<double>( args[i] );	  
-	}
-      else if ( args[i].left()==atype<E_Array>() )
-	{
-	  const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-	  //cout << "taille" << a0->size() << endl;
-	  if (a0->size() != ddim && a0->size() != stsize) 
-	    CompileError("savesol in 2D: vector solution is 2 composant, tensor solution is 3 composant");
-	  
-	  if( a0->size() == ddim){
-	    // vector solution
-	    l[jj].what=2;
-	    l[jj].nbfloat=ddim;
-	    for(int j=0; j<ddim; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	  }
-	  else if( a0->size() == stsize){
-	    // symmetric tensor solution
-	    l[jj].what=3;
-	    l[jj].nbfloat=stsize;
-	    for(int j=0; j<stsize; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	  }
-	  
-	}
-      else {
-	cout << " arg " << i << " " << args[i].left() << endl;
-	CompileError("savesol in 2D: Sorry no way to save this kind of data");
-      }
-      
-    }
-  }
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype<string *>(), atype<pmesh>(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new datasolMesh2_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type datasolMesh2_Op::name_param[]= {
-  {  "order",&typeid(long)}
-};
-
-AnyType datasolMesh2_Op::operator()(Stack stack)  const 
-{ 
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh * pTh= GetAny<Mesh *>((*eTh)(stack));
-  string * ffname= GetAny<string *>( (*filename)(stack) );
-  ffassert(pTh);
-  Mesh &Th=*pTh;
-
-  int nt = Th.nt;
-  int nv = Th.nv;
-
-  int nbtype=l.size();
-  int nbsol;
-  int solnbfloat;
-  int TypTab[l.size()];
- 
-  int resultorder= arg(0, stack, 1L);
-  long longdefault;
-
-  int ver = GmfFloat, outm;
-  // determination de TypTab
-  solnbfloat=0;
-  for (size_t i=0;i<l.size();i++){
-    TypTab[i]=l[i].what;
-    solnbfloat=solnbfloat+l[i].nbfloat;
-  }
-  float *OutSolTab = new float[solnbfloat];
-
-  // determination de OutSolTab
-
-  char * ret= new char[ffname->size()+1];
-  strcpy(ret, ffname->c_str());
-
-  if ( !(outm = GmfOpenMesh( ret, GmfWrite, ver, 2)) ) {
-    cerr <<"  -- Mesh3::Save  UNABLE TO OPEN  :"<< ret << endl;
-    exit(1);
-  }
- 
-  if(resultorder==0){
-    // ordre 0
-    nbsol = nt;  
-    
-    KN<double> valsol(solnbfloat*nbsol);
- 
-    MeshPoint *mp3(MeshPointStack(stack)); 
-    R2 Cdg_hat = R2(1./3.,1./3.);  
-
-    for (int it=0;it<nt;it++){
-      int h=0;
-      const Mesh::Triangle  & K(Th.t(it));
-      mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-      for(size_t i=0;i<l.size();i++){
-	for(size_t j=0;j<l[i].nbfloat;j++){
-	  valsol[it*solnbfloat+h] = l[i].eval(j,stack);
-	  h=h+1;
-	}
-      } 
-      assert(solnbfloat==h);
-    }
-
-
-    GmfSetKwd(outm,GmfSolAtTriangles, nbsol, nbtype, TypTab);
-    for (int k=0; k<nbsol; k++){
-      for (int i=0; i<solnbfloat ;i++){
-	OutSolTab[i] = valsol(k*solnbfloat+i);
-      }
-      GmfSetLin(outm, GmfSolAtTriangles, OutSolTab); 
-    }
-  }
-  if(resultorder==1){
-    // ordre 1
-    nbsol = nv;  
-
-    KN<double> valsol(solnbfloat*nbsol);
-    valsol=0.;
-    KN<int> takemesh(nbsol);
-    MeshPoint *mp3(MeshPointStack(stack)); 
-    //R2 Cdg_hat = R2(1./3.,1./3.);
-    takemesh=0;
-    for (int it=0;it<nt;it++){
-      for(int iv=0;iv<3;iv++){
-	int i=Th(it,iv);
-
-	//if(takemesh[i]==0){
-	mp3->setP(&Th,it,iv);
-	int h=0;
-	
-	for(size_t ii=0;ii<l.size();ii++){
-	  for(size_t j=0;j<l[ii].nbfloat;j++){
-	    //cout << "ii=" << ii << " j=" << j<< endl;
-	    valsol[i*solnbfloat+h] = valsol[i*solnbfloat+h] + l[ii].eval(j,stack);
-	    h=h+1;
-	  }
-	} 
-	assert(solnbfloat==h);
-	takemesh[i] = takemesh[i]+1;
-	//}
-      }
-    }
-    for(int i=0; i<nv; i++){
-      for(int h=0; h<solnbfloat; h++){
-	valsol[i*solnbfloat+h] = valsol[i*solnbfloat+h]/takemesh[i]; 
-      }
-    }
-
-    GmfSetKwd(outm,GmfSolAtVertices, nbsol, nbtype, TypTab);
-    for (int k=0; k<nbsol; k++){
-      for (int i=0; i<solnbfloat ;i++){
-	OutSolTab[i] =  valsol(k*solnbfloat+i);
-      }
-      GmfSetLin(outm, GmfSolAtVertices, OutSolTab);
-    }
-  }
-  GmfCloseMesh(outm);
-  delete [] ret;
-  delete [] OutSolTab;
-  return longdefault;
-}
-  
-// datasolMesh3
-template<class v_fes>
-class datasolMesh3_Op : public E_F0mps 
-{
-public:
-  typedef long  Result;
-  Expression eTh;
-  Expression filename;
-  
-  struct Expression2 {
-    long what; // 1 scalar, 2 vector, 3 symtensor
-    long nbfloat; // 1 scalar, 3 vector (3D), 6 symtensor(3D)
-    Expression e[6];
-    Expression2() {e[0]=0; e[1]=0; e[2]=0; e[3]=0; e[4]=0; e[5]=0; what=0; nbfloat=0;};
-    Expression &operator[](int i){return e[i];}
-    double eval(int i,Stack stack) const  { 
-    if (e[i]) {
-      return GetAny< double >( (*e[i])(stack) );
-    }
-    else 
-      return 0;
-    }
-    
-  };
-  vector<Expression2> l; 
-  static const int n_name_param =1;  
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-  long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
- 
-public:
-  datasolMesh3_Op(const basicAC_F0 &  args) : l( args.size()-2 )
-  {
-    int nbofsol;
-    int ddim=3;
-    int stsize=6;
-    //cout << "construction data medit solution avec datasolMesh3_Op" << args << endl;
-    args.SetNameParam(n_name_param,name_param,nargs); 
-
-    //if (BCastTo<string *>(args[0])){
-      filename = CastTo<string *>(args[0]);
-      // }
-      //if (BCastTo<pmesh3>(args[1])){
-      eTh= CastTo<pmesh3>(args[1]);
-      // }
-    nbofsol = l.size();
-    for (size_t i=2;i<args.size();i++){
-      size_t jj=i-2;
-
-      if ( BCastTo<double>(args[i]))
-	{
-	  l[jj].what=1;
-	  l[jj].nbfloat=1;
-	  l[jj][0]=to<double>( args[i] );
-	  
-	}
-      else if ( args[i].left()==atype<E_Array>() )
-	{
-	  const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-	  //cout << "taille" << a0->size() << endl;
-	  if (a0->size() != ddim && a0->size() != stsize) 
-	    CompileError("savesol in 3D: vector solution is 3 composant, vector solution is 6 composant");
-
-	  if( a0->size() == ddim){
-	    // vector solution
-	    l[jj].what=2;
-	    l[jj].nbfloat=ddim;
-	    for(int j=0; j<ddim; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	  }
-	  else if( a0->size() == stsize){
-	    // symmetric tensor solution
-	    l[jj].what=3;
-	    l[jj].nbfloat=stsize;
-	    for(int j=0; j<stsize; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	  }
-	  
-	}
-      else {
-	CompileError("savesol in 3D: Sorry no way to save this kind of data");
-      }
-
-    }
-  }
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype<string *>(), atype<pmesh3>(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new datasolMesh3_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-};
-template<class v_fes>
-basicAC_F0::name_and_type datasolMesh3_Op<v_fes>::name_param[]= {
-  { "order",&typeid(long)}
-};
-template<class v_fes>
-AnyType datasolMesh3_Op<v_fes>::operator()(Stack stack)  const 
-{ 
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  string * ffname= GetAny<string *>( (*filename)(stack) );
-  ffassert(pTh);
-  Mesh3 &Th=*pTh;
-
-  int nt = Th.nt;
-  int nv = Th.nv;
-  int nbe = Th.nbe;
-  int nbtype=l.size();
-  int nbsol;
-  int solnbfloat;
-  int TypTab[l.size()];
- 
-  int resultorder= arg(0, stack, 1);
-  long longdefault;
-
-  int ver = GmfFloat, outm;
-  // determination de TypTab
-  solnbfloat=0;
-  for (size_t i=0;i<l.size();i++){
-    TypTab[i]=l[i].what;
-    solnbfloat=solnbfloat+l[i].nbfloat;
-  }
-  float *OutSolTab = new float[solnbfloat];
-
-  // determination de OutSolTab
-
-  char * ret= new char[ffname->size()+1];
-  strcpy(ret, ffname->c_str());
-  if(verbosity>2)
-    cout << ret << endl;
-  if ( !(outm = GmfOpenMesh( ret, GmfWrite, ver, 3)) ) {
-    cerr <<"  -- Mesh3::Save  UNABLE TO OPEN  :"<< filename << endl;
-    exit(1);
-  }
- 
-  if(resultorder==0){
-    // Tetrahedra
-    // ordre 0
-    nbsol = nt;      
-    KN<double> valsol(solnbfloat*nbsol);
- 
-    MeshPoint *mp3(MeshPointStack(stack)); 
-    R3 Cdg_hat = R3(1./4.,1./4.,1./4.);  
-
-    for (int it=0;it<nt;it++){
-      int h=0;
-      const Tet & K(Th.elements[it]);
-      mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	  
-      for(size_t i=0;i<l.size();i++){
-	for(size_t j=0;j<l[i].nbfloat;j++){
-	  valsol[it*solnbfloat+h] = l[i].eval(j,stack);
-	  h=h+1;
-	}
-      } 
-      assert(solnbfloat==h);
-    }
-    
-    GmfSetKwd(outm,GmfSolAtTetrahedra, nbsol, nbtype, TypTab);
-    for (int k=0; k<nbsol; k++){
-      for (int i=0; i<solnbfloat ;i++){
-	OutSolTab[i] =  valsol(k*solnbfloat+i);
-      }
-      GmfSetLin(outm, GmfSolAtTetrahedra, OutSolTab); 
-    }
-    
-    /*
-    // Rajout des Triangles
-    nbsol = nbe;      
-    
-    KN<double> valsol2(solnbfloat*nbsol);
-    //cout << "value of triangles in the border nbe="<< nbe << endl;
-    MeshPoint *mp32(MeshPointStack(stack)); 
-     
-    for (int it=0;it<nbe;it++){
-      int h=0;
-      const Triangle3 & K(Th.be(it));
-      R xg,yg,zg;
-      int iv[3];
-      for(int jj=0; jj <3; jj++){
-	iv[jj] = Th.operator()(K[jj]); 
-      }
-
-      xg = Th.vertices[iv[0]].x + Th.vertices[iv[1]].x + Th.vertices[iv[2]].x;
-      yg = Th.vertices[iv[0]].y + Th.vertices[iv[1]].y + Th.vertices[iv[2]].y;
-      zg = Th.vertices[iv[0]].z + Th.vertices[iv[1]].z + Th.vertices[iv[2]].z;
-
-      xg=xg/3.;
-      yg=yg/3.;
-      zg=zg/3.;
-
-      mp32->set(xg,yg,zg);
-	  
-      for(size_t i=0;i<l.size();i++){
-	for(size_t j=0;j<l[i].nbfloat;j++){
-	  valsol2[it*solnbfloat+h] = l[i].eval(j,stack);
-	  h=h+1;
-	}
-      } 
-      assert(solnbfloat==h);
-    }
-
-    GmfSetKwd(outm,GmfSolAtTriangles, nbsol, nbtype, TypTab);
-    for (int k=0; k<nbsol; k++){
-      for (int i=0; i<solnbfloat ;i++){
-	OutSolTab[i] =  valsol2(k*solnbfloat+i);
-      }
-      //cout <<"GmfSetLin(outm, GmfSolAtTriangles, OutSolTab);"<< endl;
-      GmfSetLin(outm, GmfSolAtTriangles, OutSolTab); 
-    }
-
-    */
-  }
-  if(resultorder==1){
-    // ordre 1
-    nbsol = nv;  
-
-    KN<double> valsol(solnbfloat*nbsol);
-    KN<int> takemesh(nbsol);
-    MeshPoint *mp3(MeshPointStack(stack)); 
-    R3 Cdg_hat = R3(1./4.,1./4.,1./4.);
-    takemesh=0;
-    for (int it=0;it<nt;it++){
-      for(int iv=0;iv<4;iv++){
-	int i=Th(it,iv);
-
-	if(takemesh[i]==0){
-	    mp3->setP(&Th,it,iv);
-	    int h=0;
-
-	    for(size_t ii=0;ii<l.size();ii++){
-	      for(size_t j=0;j<l[ii].nbfloat;j++){
-		//cout << "ii=" << ii << " j=" << j<< endl;
-		valsol[i*solnbfloat+h] = l[ii].eval(j,stack);
-		h=h+1;
-	      }
-	    } 
-	    assert(solnbfloat==h);
-	    takemesh[i] = takemesh[i]+1;
-	}
-      }
-    }
-
-
-    GmfSetKwd(outm,GmfSolAtVertices, nbsol, nbtype, TypTab);
-    for (int k=0; k<nbsol; k++){
-      for (int i=0; i<solnbfloat ;i++){
-	OutSolTab[i] =  valsol(k*solnbfloat+i);
-      }
-      GmfSetLin(outm, GmfSolAtVertices, OutSolTab);
-    }
-  }
-  GmfCloseMesh(outm);
-  delete [] ret;
-  delete [] OutSolTab;
-  return longdefault;
-}
-
-//*************************
-//
-//  medit
-//
-//*************************
-
-static char * meditcmd(long filebin, int nbsol, int smedit, const string &meditff, const string & ffnn)
-{
-  string meditcmm=meditff;
-  int ddebug=0;
-  if(ddebug)
-    {
-      meditcmm += ' ';
-      meditcmm += medit_debug;
-    }
-  meditcmm += ' ';
-  meditcmm += medit_popen;
-  if(filebin)
-    {
-      meditcmm += ' ';
-      meditcmm += medit_bin;
-    }
-  if(nbsol) 
-    {
-      meditcmm += ' ';
-      meditcmm += medit_addsol;
-    }
-  
-  char meditsol[5];
-  sprintf(meditsol," %i",smedit);
-  meditcmm += meditsol; 
-   
-  meditcmm += ' ';
-
-  KN<char>  ret1(ffnn.size()+1);
-  strcpy( ret1, ffnn.c_str()); 
-  
-  int nbstrings=1;
-  char *tictac;
-  tictac= strtok(ret1," \n");
-  
-  meditcmm += ' ';
-  meditcmm += tictac;
-  while( tictac != NULL && nbstrings < nbsol){
-    tictac = strtok(NULL," \n");
-     meditcmm += ' ';
-     meditcmm += tictac;
-    nbstrings++;
-  }
-  if(nbstrings != smedit ){
-    cout << "The number of string defined in string parameter is different of the number of solution" << endl;
-    if( nbstrings < smedit ){
-      // Add strings
-      while( nbstrings < smedit ){
-	nbstrings++;
-	char newsol[10];
-	sprintf(newsol," ffsol%i",nbstrings);
-	meditcmm += newsol;
-      }
-    }
-  }
-  
-
-  char * ret= new char[meditcmm.size()+1];
-  //char ret[meditcmm.size()+1];
-  strcpy( ret, meditcmm.c_str()); 
-  return ret;
-}
-
-void writetabsol(const int &tsize, const int &nbofsol,const KN<double> &v1, KNM<double> &vv){
-  
-  for(int i=0; i<tsize; i++){
-    vv(nbofsol,i)   = v1(i);
-  }
-}
-
-void writetabsol(const int &tsize, const int &nbofsol,const KN<double> &v1, const KN<double> &v2, KNM<double> &vv){
-
-  for(int i=0; i<tsize; i++){
-    vv(nbofsol,i)   = v1(i);
-    vv(nbofsol+1,i) = v2(i);
-  }
-}
-
-void writetabsol(const int &tsize, const int &nbofsol,const KN<double> &v1, const KN<double> &v2, const KN<double> &v3, KNM<double> &vv){
-  
-  for(int i=0; i<tsize; i++){
-    vv(nbofsol,i)   = v1(i);
-    vv(nbofsol+1,i) = v2(i);
-    vv(nbofsol+2,i) = v3(i);
-  }
-
-}
-
-void writetabsol(const int &tsize, const int &nbofsol,const KN<double> &v1, const KN<double> &v2, const KN<double> &v3, 
-	     const KN<double> &v4, const KN<double> &v5, const KN<double> &v6,KNM<double> &vv){
-  
-  for(int i=0; i<tsize; i++){
-    vv(nbofsol,i)   = v1(i);
-    vv(nbofsol+1,i) = v2(i);
-    vv(nbofsol+2,i) = v3(i);
-    vv(nbofsol+3,i) = v4(i);
-    vv(nbofsol+4,i) = v5(i);
-    vv(nbofsol+5,i) = v6(i);
-  }
-
-}
-
-class PopenMeditMesh_Op : public E_F0mps 
-{
-public:
-  typedef long  Result;
-  Expression eTh;
-  Expression filename;
-  long offset;
-  long nbTh;
-  struct Expression2 {
-    long what; // 0 mesh, 1 scalar, 2 vector, 3 symtensor
-    long nbfloat; // 1 scalar, 2 vector (2D), 3 symtensor(2D) 
-    Expression e[3];
-    Expression2() {e[0]=0; e[1]=0; e[2]=0;  what=0; nbfloat=0;};
-    Expression &operator[](int i){return e[i];}
-    double eval(int i,Stack stack) const  { 
-    if (e[i]) {
-      return GetAny< double >( (*e[i])(stack) );
-    }
-    else 
-      return 0;
-    }
-    const Mesh & evalm(int i,Stack stack) const  { throwassert(e[i]);return  * GetAny< pmesh >((*e[i])(stack)) ;}
-  };
-  vector<Expression2> l;
-
-  static const int n_name_param =5;  
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  string*  arg(int i,Stack stack, string* a ) const{ return nargs[i] ? GetAny< string* >( (*nargs[i])(stack) ): a;}
-  
-public:
-  PopenMeditMesh_Op(const basicAC_F0 &  args) : l( args.size()-1 )
-  {
-    int nbofsol;
-    int ddim=2;
-    int stsize=3;
-    char   *tictac;
-
-    args.SetNameParam(n_name_param,name_param,nargs);   
-  
-    if(BCastTo<string *>(args[0])) filename = CastTo<string *>(args[0]);
-    /*
-      string * ffname  = GetAny<string *>( args[0] );
-      
-      char * ret= new char[ffname->size()+1];
-      strcpy( ret, ffname->c_str()); 
-      
-      int nbstrings=1;
-      tictac = strtok(ret," \n");
-      cout << "tictac" << tictac << endl;
-      while( tictac != NULL ){
-      tictac = strtok(NULL," \n");
-      nbstrings++;
-      }
-    */
-
-    for (size_t i=1;i<args.size();i++){
-      size_t jj=i-1;
-      
-      if (  BCastTo<double>(args[i])  )
-	{
-	  l[jj].what=1;
-	  l[jj].nbfloat=1;
-	  l[jj][0]=to<double>( args[i] );	  
-	}
-      else if ( args[i].left()==atype<E_Array>() )
-	{
-	  const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-	 
-	  if (a0->size() != ddim && a0->size() != stsize) 
-	    CompileError("medit in 2D: vector solution is 2 composant, tensor solution is 3 composant");
-
-	  if( a0->size() == ddim){
-	    // vector solution
-	    l[jj].what=2;
-	    l[jj].nbfloat=ddim;
-	    for(int j=0; j<ddim; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	  }
-	  else if( a0->size() == stsize){
-	    // symmetric tensor solution
-	    l[jj].what=3;
-	    l[jj].nbfloat=stsize;
-	    for(int j=0; j<stsize; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	  }	  
-	}
-      else if( BCastTo<pmesh>(args[i]) ){
-	l[jj].what    = 0;
-	l[jj].nbfloat = 0;
-	l[jj][0] = CastTo<pmesh>(args[i]);
-      }
-      else {
-	CompileError("medit in 2D: Sorry no way to save this kind of data");
-      }
-    }
-    
-    offset=0;
-    nbTh=1;
-    // determination of the number of solutions
-    //  =============================
-    //  0 2 3 2 ! 0 2 3 2 ! 0 2  3  2
-    //  0 1 2 3 ! 4 5 6 7 ! 8 9 10 11
-    //  =============================
-    for(size_t jj=1; jj<l.size(); jj++){
-      if(l[jj].what==0 && offset==0) offset=jj;
-      if(l[jj].what==0){
-	nbTh++;
-	if( jj != (nbTh-1)*offset ){ 
-	   CompileError("the number of solution by mesh is different");
-	}
-      }
-    }    
-
-    /*
-      if( offset-1 != nbstrings ){
-      CompileError("The number of string defined in string parameter is different of the number of solution");
-      }
-    */
-
-    if( nbTh==1){
-      // case of one mesh
-      offset=l.size();
-    }
-    else{
-      // analyse of the different solution
-      for(size_t jj=offset; jj<l.size(); jj++){
-	if( l[jj].what != l[ jj%offset ].what ){
-	  char StringError[256]; 
-	  snprintf(StringError,256,"compile error ::  The solution %ld of mesh 1 and mesh %ld is not the same type",jj%offset,jj/offset+1);
-	  CompileError(StringError);
-	}
-      }
-    }
-    /*
-    // determination of the number of solutions.
-    size_t lastTh=0;
-    long offset1;
-    offset=0;
-    nbTh=0;
-    for(size_t jj=0; jj<l.size(); jj++){
-      if(l[jj].what==0){
-	nbTh++;
-	offset1=jj-lastTh;
-	if(offset==0){
-	  offset=offset1;
-	}
-	else if(offset != offset1){
-	  CompileError("the number of solution by mesh is different");
-	}
-      }
-    }
-    if(offset==0) offset=l.size();
-    */
-    // The number of solution is exactly:  offset-1
-
-    // verification que la nature des solutions sont identiques pour les differents maillages.
-
-    //cout << "number of solution = " << offset-1 << endl;
-    //cout << "number of mesh     = " << nbTh << endl;
-  } 
-  
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype<string *>(), atype<pmesh>(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new PopenMeditMesh_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type PopenMeditMesh_Op::name_param[]= {
-  {  "order", &typeid(long)},
-  {  "meditff", &typeid(string*)},
-  {  "save",&typeid(string*)},
-  {  "wait",&typeid(bool)},
-  {  "bin",&typeid(long)}
-};
-
-
-AnyType PopenMeditMesh_Op::operator()(Stack stack)  const 
-{
-  if(NoGraphicWindow) return Nothing;
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  long order (arg(0,stack,1));
-  //
-  int ver = GmfFloat;
-  int dimp =2;
-  float fx,fy;
-  //
-  long valsortie=0;
-  int typsol,nbsol;
-  nbsol= offset-1;
-  
-  int TypTab[l.size()-1];
-  for (size_t i=0;i<l.size()-1;i++){
-    TypTab[i]=l[i+1].what;
-  }
-
-  //  string stringffmedit= string("medit.exe"); 
-  string * ffname  = GetAny<string *>( (*filename)(stack) );
-  string * meditff(arg(1,stack,&stringffmedit));
-
-  long filebin (arg(4,stack,1));
-  int smedit=max(1,nbsol);
-  
-  char * commandline = meditcmd( filebin, nbsol, smedit, *meditff, *ffname);
-  printf("version de medit %s\n",commandline);
-
- 
-  // lecture des differents maillages
-  int nv=0,nt=0,nbe=0; // sommet, triangles, arretes du maillage unifies
-
-  //cout << "commencement du maillage " << endl;
-  for(size_t i=0; i<l.size();i=i+offset){
-    if(l[i].what!=0)
-      cerr << "this element is not a mesh" << i << endl;
-    const Mesh &Thtmp =l[i].evalm(0,stack);
-    nv  += Thtmp.nv;
-    nt  += Thtmp.nt;
-    nbe += Thtmp.neb;  
-    //cout << "valeur de i=" << i << "l.size()=" << l.size() << endl;
-    //cout << "vertex "<< nv << " triangle "<< nt << " edge " << nbe << endl;  
-  }
-  
-  Mesh::Vertex        *v= new Mesh::Vertex[nv];
-  Mesh::Triangle      *t= new Mesh::Triangle[nt];
-  Mesh::BorderElement *b= new Mesh::BorderElement[nbe]; 
-  Mesh::Triangle      *tt=t;
-  Mesh::BorderElement *bb=b;
- 
-  int iv,it,ibe;
-  iv=0;
-  it=0;
-  ibe=0;
-
-  int numTht[nt]; // numero of Th assoctiated with a triangles 
-  //int numTht[nbe]; // numero of Th assoctiated with a BoundaryEdge
-
-  int jt=0;
-
-
-  for(size_t i=0; i<l.size();i=i+offset){
-    int nvtmp  = iv;
-    int nttmp  = it;
-    int nbetmp = ibe;
-      
-    const Mesh &Thtmp =l[i].evalm(0,stack);
-    for (int ii=0;ii<Thtmp.nv;ii++){
-      const Mesh::Vertex &vi(Thtmp(ii));
-      v[iv] = vi;
-      iv++;
-    }
-
-    for (int ii=0;ii<Thtmp.nt;ii++){
-      const Mesh::Triangle &vi(Thtmp.t(ii));
-      int i0 = nvtmp + Thtmp(ii,0);
-      int i1 = nvtmp + Thtmp(ii,1);
-      int i2 = nvtmp + Thtmp(ii,2);
-      (*tt++).set(v,i0,i1,i2,vi.lab);
-      numTht[it] = jt;
-      it++;      
-    }
-
-    for (int ii=0;ii<Thtmp.neb;ii++){
-      const Mesh::BorderElement &vi(Thtmp.be(ii));  //const BoundaryEdge &vi(Thtmp(ii));  
-      int i0 = nvtmp +  Thtmp.operator()(vi[0]);
-      int i1 = nvtmp +  Thtmp.operator()(vi[1]);
-      (*bb++).set(v,i0,i1,vi.lab);
-      ibe++;
-    }
-    jt++;
-  }
-  assert( it==nt ); assert(iv==nv); assert(ibe=nbe);
-  if(verbosity>2) cout << "Popen medit : vertex "<< nv << " triangle "<< nt << " edge " << nbe << endl;  
-
-  Mesh *pTh = new Mesh(nv,nt,nbe,v,t,b);
-  Mesh &Th = *pTh;
-
-  // determination of the number of elements to represent the solution
-  int datasize;
-  if(order == 0) datasize= nt;
-  if(order == 1) datasize= nv;
-
-  // cas de sauvegarde
-  bool boolsave = false;
-  int solnbfloat=0;
-  KNM<double> solsave(1,1);
-  string * saveff;
-  KN<double> vxx,vyx,vyy;
- 
-  if(nbsol > 0){
-    
-    vxx.init(datasize);
-    vyx.init(datasize);
-    vyy.init(datasize);
-    
-    if( nargs[2] ){
-      boolsave= true;
-      saveff = GetAny<string *>( (*nargs[2])(stack) );
-      int ddim = 2;
-    
-      for (size_t i=0;i<offset;i++){
-	solnbfloat = solnbfloat + l[i].nbfloat;
-	//else if( TypTab[i] == 2) solnbfloat = solnbfloat+ddim;
-	//else if( TypTab[i] == 3) solnbfloat = solnbfloat+ddim*(ddim+1)/2;
-      }
-      
-      solsave.init(solnbfloat,datasize);
-      //cout << "solsave.size()= " << solsave.size()  << endl;
-      solsave=0.;
-      //cout << solsave  << endl;
-    }
-
-  }
-
-  int nboftmp = 0;
-
-  FILE *popenstream= popen(commandline,MODE_WRITE_BINARY);
-  if( !popenstream){
-    cerr << " Error popen : " << commandline<<endl;
-    exit(1);
-  }
-
-  // mesh
-  int jojo1;
-  
-  for(int jojo=0; jojo<smedit; jojo++){
-
-    if( filebin ){
-      int cod = 1;
-      int KwdCod;
-      int NulPos = 0;
-      
-      // determination of number solutions associated with a mesh
-      fwrite( (unsigned char *) &cod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &ver, WrdSiz,1,popenstream );
-      KwdCod = GmfDimension;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &dimp, WrdSiz,1,popenstream );
-     
-
-      // vertex 
-      KwdCod = GmfVertices;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &nv, WrdSiz,1,popenstream );
-      for (int k=0; k<nv; k++) {
-	const  Mesh::Vertex & P = Th.vertices[k];
-	fx=P.x; fy=P.y;
-	fwrite( (unsigned char *) &fx, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &fy, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &(P.lab), WrdSiz,1,popenstream );
-	//fprintf(popenstream,"%f %f %i\n",fx,fy,P.lab);
-      }
-    
-      // triangles
-      KwdCod = GmfTriangles;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &nt, WrdSiz,1,popenstream );
-      for (int k=0; k<nt; k++) {
-	const Mesh::Triangle & K(Th.t(k));
-	int i0=Th.operator()(K[0])+1;
-	int i1=Th.operator()(K[1])+1;
-	int i2=Th.operator()(K[2])+1;
-	int lab=K.lab;
-	fwrite( (unsigned char *) &i0, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &i1, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &i2, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &lab, WrdSiz,1,popenstream );
-	//fprintf(popenstream,"%i %i %i %i\n",i0,i1,i2,lab);
-      }
-      
-
-      // Edges
-      KwdCod = GmfEdges;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &nbe, WrdSiz,1,popenstream );
-      //fprintf(popenstream,"Edges\n");
-      //fprintf(popenstream,"%i\n",nbe);
-      for (int k=0; k<nbe; k++) {
-	const Mesh::BorderElement & K(Th.be(k));
-	int i0=Th.operator()(K[0])+1;
-	int i1=Th.operator()(K[1])+1;
-	int lab=K.lab;
-	fwrite( (unsigned char *) &i0, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &i1, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &lab, WrdSiz,1,popenstream );
-	//fprintf(popenstream,"%i %i %i\n",i0,i1,lab);
-      }
-
-      // End
-      KwdCod = GmfEnd;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      //fprintf(popenstream,"End\n");
-    }
-    else{
-      // determination of number solutions associated with a mesh
-      fprintf(popenstream,"MeshVersionFormatted\n");
-      fprintf(popenstream,"%i\n",ver);
-      fprintf(popenstream,"Dimension\n");
-      fprintf(popenstream,"%i\n",dimp);
-      
-      fprintf(popenstream,"Vertices\n");
-      fprintf(popenstream,"%i\n",nv);        	
-      for (int k=0; k<nv; k++) {
-	const  Mesh::Vertex & P = Th.vertices[k];
-	fx=P.x; fy=P.y;
-	fprintf(popenstream,"%f %f %i\n",fx,fy,P.lab);
-      }
-    
-      fprintf(popenstream,"Triangles\n");
-      fprintf(popenstream,"%i\n",nt);
-      for (int k=0; k<nt; k++) {
-	const Mesh::Triangle & K(Th.t(k));
-	int i0=Th.operator()(K[0])+1;
-	int i1=Th.operator()(K[1])+1;
-	int i2=Th.operator()(K[2])+1;
-	int lab=K.lab;
-	fprintf(popenstream,"%i %i %i %i\n",i0,i1,i2,lab);
-      }
-      
-      fprintf(popenstream,"Edges\n");
-      fprintf(popenstream,"%i\n",nbe);
-      for (int k=0; k<nbe; k++) {
-	const Mesh::BorderElement & K(Th.be(k));
-	int i0=Th.operator()(K[0])+1;
-	int i1=Th.operator()(K[1])+1;
-	int lab=K.lab;
-	fprintf(popenstream,"%i %i %i\n",i0,i1,lab);
-      }
-      fprintf(popenstream,"End\n");
-    }
-
-
-    // solution with a mesh
-    if( nbsol > 0){
-      
-      if(filebin){
-	int cod = 1;
-	int NulPos = 0;
-	int KwdCod;
-	int codtypjm = 1;
-	// determination of number solutions associated with a mesh
-	fwrite( (unsigned char *) &cod, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &ver, WrdSiz,1,popenstream );
-	KwdCod = GmfDimension;
-	fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &dimp, WrdSiz,1,popenstream );
-	
-	if(order==0){
-	  KwdCod = GmfSolAtTriangles;
-	  fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &nt, WrdSiz,1,popenstream );
-
-	  printf("SolAtTriangles nt=%i\n",nt);
-	}
-	if(order==1){
-	  KwdCod = GmfSolAtVertices;
-	  fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &nv, WrdSiz,1,popenstream );
-	  
-	  printf("SolAtVertices nv=%i\n",nv);
-
-	}
-	typsol = TypTab[jojo];
-
-	fwrite( (unsigned char *) &codtypjm, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &typsol, WrdSiz,1,popenstream );
-	//printf(popenstream,"%i %i\n",codtypjm,typsol);
-      }
-      else{
-	fprintf(popenstream,"MeshVersionFormatted %i\n",ver);
-	fprintf(popenstream,"Dimension %i\n",dimp);
-	if(order==0){
-	  fprintf(popenstream,"SolAtTriangles\n");
-	  fprintf(popenstream,"%i\n",nt);
-	}
-	if(order==1){
-	  fprintf(popenstream,"SolAtVertices\n");
-	  fprintf(popenstream,"%i\n",nv);
-	}
-	typsol = TypTab[jojo];
-	
-	fprintf(popenstream,"%i %i\n",1,typsol);
-      }
-
-      
-      if(typsol==1){
-	if(order==0){
-	  
-	  vxx=0.;
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  R2 Cdg_hat = R2(1./3.,1./3.);  
-	  
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    const Mesh::Triangle & K(Th.t(it));
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    vxx[it] =  l[jojo1].eval(0,stack);                     //GetAny< double >( (*nargs[1])(stack) );
-	  }
-	  
-	  if(filebin){
-	    for(int k=0; k<nt; k++){
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz,2,popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nt; k++){
-	      fprintf(popenstream,"%f\n",vxx[k]);
-	    }
-	  }
-	}
-	
-	else if(order==1){
-	  //KN<double> solsca(nv);    
-	  vxx=0.;
-	  KN<int> takemesh(nv);
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  
-	  takemesh=0;
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    for( int iv=0; iv<3; ++iv){
-	      int i=Th(it,iv);  
-		  
-	      mp3->setP(&Th,it,iv);
-	      vxx[i] = vxx[i]+l[jojo1].eval(0,stack); //GetAny< double >( (*nargs[1])(stack) );		  
-	      takemesh[i] = takemesh[i]+1;
-	    }
-	  }
-	  if(filebin){
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];	      
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz,2,popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      fprintf(popenstream,"%f\n",vxx[k]);
-	    }
-	  }
-	}
-      }
-      else if(typsol==2){
-	if(order==0){	
-	  //KN<double>  vxx(nt),vyy(nt);
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  R2 Cdg_hat = R2(1./3.,1./3.);  
-	  
-	  vxx=0.; vyy=0.;
-	  
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    const Mesh::Triangle & K(Th.t(it));
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    vxx[it] =  l[jojo1].eval(0,stack); //GetAny< double >( (*xx)(stack) );
-	    vyy[it] =  l[jojo1].eval(1,stack); //GetAny< double >( (*yy)(stack) );
-	  }
-	  
-	  if(filebin){
-	    for(int k=0; k<nt; k++){
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz,2,popenstream );
-	      fwrite( (unsigned char *) &(vyy[k]), WrdSiz,2,popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nt; k++){
-	      fprintf(popenstream,"%f %f\n",vxx[k],vyy[k]);
-	    }
-	  }
-	}
-	
-	else if(order==1){
-	  //KN<double> vxx(nv),vyy(nv);
-	  KN<int> takemesh(nv);
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  
-	  takemesh=0;
-	  vxx=0.; vyy=0.;
-	  
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    for( int iv=0; iv<3; ++iv){
-	      int i=Th(it,iv);  
-	      
-	      //if(takemesh[i]==0){
-	      mp3->setP(&Th,it,iv);
-	      vxx[i] = vxx[i]+l[jojo1].eval(0,stack); //GetAny< double >( (*xx)(stack) );
-	      vyy[i] = vyy[i]+l[jojo1].eval(1,stack); //GetAny< double >( (*yy)(stack) );
-	      
-	      takemesh[i] = takemesh[i]+1;
-	      //}
-	    }
-	  }
-
-	  if(filebin){
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      vyy[k]=vyy[k]/takemesh[k];
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vyy[k]), WrdSiz, 2, popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      vyy[k]=vyy[k]/takemesh[k];
-	      fprintf(popenstream,"%f %f\n", vxx[k], vyy[k]);
-	    }
-	  }
-	  
-	}
-      }
-      else if(typsol==3){
-	if(order==0){
-	  //KN<double>  vxx(nt),vyx(nt),vyy(nt);
-	  vxx=0.; vyx=0.; vyy=0.;
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  R2 Cdg_hat = R2(1./3.,1./3.);  
-	  
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    const Mesh::Triangle & K(Th.t(it));
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    vxx[it] = l[jojo1].eval(0,stack); //GetAny< double >( (*tsxx)(stack) );
-	    vyx[it] = l[jojo1].eval(1,stack); //GetAny< double >( (*tsyx)(stack) );
-	    vyy[it] = l[jojo1].eval(2,stack); //GetAny< double >( (*tsyy)(stack) );
-	  }
-	  
-	  if(filebin){
-	    for(int k=0; k<nt; k++){
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vyx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vyy[k]), WrdSiz, 2, popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nt; k++){
-	      fprintf(popenstream,"%f %f %f\n", vxx[k], vyx[k], vyy[k]);
-	    }
-	  }
-	}
-	else if(order==1){
-	  //KN<double> vxx(nv),vyx(nv),vyy(nv);
-	  KN<int> takemesh(nv);
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  
-	  takemesh=0;
-	  vxx=0.; vyx=0.; vyy=0.;
-	  
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    for( int iv=0; iv<3; ++iv){
-	      int i=Th(it,iv);  
-	      
-	      //if(takemesh[i]==0){
-	      mp3->setP(&Th,it,iv);
-	      vxx[i] = vxx[i]+l[jojo1].eval(0,stack); //GetAny< double >( (*tsxx)(stack) );
-	      vyx[i] = vyx[i]+l[jojo1].eval(0,stack); //GetAny< double >( (*tsyx)(stack) );
-	      vyy[i] = vyy[i]+l[jojo1].eval(0,stack);  //GetAny< double >( (*tsyy)(stack) );
-	      
-	      takemesh[i] = takemesh[i]+1;
-	      //}
-	    }
-	  }
-	  
-	  if(filebin){
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      vyx[k]=vyx[k]/takemesh[k];
-	      vyy[k]=vyy[k]/takemesh[k];
-	      
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vyx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vyy[k]), WrdSiz, 2, popenstream );
-	      
-	      //fprintf(popenstream,"%f %f %f\n",vxx[k],vyx[k],vyy[k]);
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      vyx[k]=vyx[k]/takemesh[k];
-	      vyy[k]=vyy[k]/takemesh[k];
-	      fprintf(popenstream,"%f %f %f\n",vxx[k],vyx[k],vyy[k]);
-	    }
-	  }
-	}
-      }
-
-      if(filebin){
-	int NulPos = 0;
-	int KwdCod = GmfEnd;
-	fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      }
-      else{
-	fprintf(popenstream,"End\n");
-      }
-
-      if(boolsave){
-	if(verbosity>2) cout << "writing solution in file"  << endl;
-	if(typsol==1){
-	  writetabsol( datasize, nboftmp, vxx, solsave);
-	  nboftmp=nboftmp+1;
-	}
-	else if(typsol==2){
-	  writetabsol( datasize, nboftmp, vxx, vyy, solsave);
-	  nboftmp=nboftmp+2;
-	}
-	else if(typsol==3){
-	  writetabsol( datasize, nboftmp, vxx, vyx, vyy, solsave);
-	  nboftmp=nboftmp+3;
-	}
-	/*cout << "fin writing solution in file nboftmp=" << nboftmp << endl;
-	  if(verbosity>2)
-	  {
-	  cout << "datasize=" << datasize << " " << "solnbfloat=" << solnbfloat << " boolsave=" << boolsave << endl;
-	  for(int iy=0; iy<datasize; iy++){
-	  if(iy==0 || iy==datasize-1) cout << iy <<" " <<solsave(0,iy) << endl;	      
-	  }
-	}
-	*/
-      }
-    }
-  }
-
-  // rajout pour wait
-  bool wait=TheWait;
-  if (nargs[3]) wait= GetAny<bool>((*nargs[3])(stack));
-  
-  bool plotting = true;   
-  //  drawing part  ------------------------------
-  
-  //  suppression du no wait car plante sur mac
-  //  il faut faire thread qui lance ca de maniere asyncrone ... 
-  //   a faire .. FH ...
-  //  if (wait && !NoWait) 
-    {
-      pclose(popenstream);
-    }
-    //else
-    // {
-    //  fclose(popenstream);
-    //}
-  
-  // rajout pout la sauvegarde de la solution
-  if(boolsave){
-    //cout <<"save solution in file avec printf\n"<< endl;;
-    int outm;
-    int nbtype=nbsol;
-    float *OutSolTab = new float[solnbfloat];
-    
-    if ( !(outm = GmfOpenMesh(saveff->c_str(),GmfWrite,ver,2)) ) {
-      cerr <<"  -- Mesh3::Save  UNABLE TO OPEN  :"<< saveff << endl;
-      exit(1);
-    }
-    
-    if(order == 0){	  
-      GmfSetKwd(outm,GmfSolAtTriangles, datasize, nbtype, TypTab);
-      for (int k=0; k<datasize; k++){
-	for (int i=0; i<solnbfloat ;i++){
-	  OutSolTab[i] =  solsave(i,k);
-	}
-	GmfSetLin(outm, GmfSolAtTriangles, OutSolTab); 
-      }
-    }
-    else if(order == 1){
-      GmfSetKwd(outm,GmfSolAtVertices, datasize, nbtype, TypTab);
-      for (int k=0; k<datasize; k++){
-	for (int i=0; i<solnbfloat ;i++){
-	  OutSolTab[i] =  solsave(i,k);
-	}
-	GmfSetLin(outm, GmfSolAtVertices, OutSolTab);
-      }
-    }
-   
-    GmfCloseMesh(outm);
-
-    delete [] OutSolTab;
-    
-  }
-  delete [] commandline;  
-  delete pTh;
-    
-  return valsortie;
-}
-
-template<class v_fes>
-class PopenMeditMesh3_Op : public E_F0mps 
-{
-public:
-  typedef long  Result;
-  Expression eTh;
-  Expression filename;
-  long offset;
-  long nbTh;
-  struct Expression2 {
-    long what; // 0 mesh, 1 scalar, 2 vector, 3 symtensor
-    long nbfloat; // 0 mesh(3D), 1 scalar, 2 vector (3D), 3 symtensor(3D)
-    Expression e[6];
-    Expression2() {e[0]=0; e[1]=0; e[2]=0;  e[3]=0; e[4]=0; e[5]=0; what=0; nbfloat=0;};
-    Expression &operator[](int i){return e[i];}
-    double eval(int i,Stack stack) const  { 
-    if (e[i]) {
-      return GetAny< double >( (*e[i])(stack) );
-    }
-    else 
-      return 0;
-    }
-    const Mesh3 & evalm(int i,Stack stack) const  { throwassert(e[i]);return  * GetAny< pmesh3 >((*e[i])(stack)) ;}
-  };
-  vector<Expression2> l;
-
-  static const int n_name_param = 5;  
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  string*  arg(int i,Stack stack, string* a ) const{ return nargs[i] ? GetAny< string* >( (*nargs[i])(stack) ): a;}
-
-public:
-  PopenMeditMesh3_Op(const basicAC_F0 &  args) : l( args.size()-1 )
-  {
-    int nbofsol;
-    int ddim=3;
-    int stsize=6;
-    
-    args.SetNameParam(n_name_param,name_param,nargs);   
-   
-    if (BCastTo<string *>(args[0])) filename = CastTo<string *>(args[0]);
-    //if (BCastTo<pmesh3>(args[1])) eTh= CastTo<pmesh3>(args[1]);
-    
-    for (size_t i=1;i<args.size();i++){
-      size_t jj=i-1;
-      if ( BCastTo<double>(args[i]) )
-	{
-	  l[jj].what=1;
-	  l[jj].nbfloat=1;
-	  l[jj][0]=to<double>( args[i] );
-	}
-      else if ( args[i].left()==atype<E_Array>() )
-	{
-	  const E_Array * a0  = dynamic_cast<const E_Array *>( args[i].LeftValue() );
-	  //cout << "taille" << a0->size() << endl;
-	  if (a0->size() != ddim && a0->size() != stsize) 
-	    CompileError("medit in 3D: vector solution is 3 composant, tensor solution is 6 composant");
-
-	  if( a0->size() == ddim){
-	    // vector solution
-	    l[jj].what=2;
-	    l[jj].nbfloat=ddim;
-	    for(int j=0; j<ddim; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	  }
-	  else if( a0->size() == stsize){
-	    // symmetric tensor solution
-	    l[jj].what=3;
-	    l[jj].nbfloat=stsize;
-	    for(int j=0; j<stsize; j++){
-	      l[jj][j] = to<double>( (*a0)[j]);
-	    }
-	  }
-	  
-	}
-      else if( BCastTo<pmesh3>(args[i]) ){
-	l[jj].what    = 0;
-	l[jj].nbfloat = 0;
-	l[jj][0] = CastTo<pmesh3>(args[i]);
-      }
-      else {
-	CompileError("medit 3d: Sorry no way to save this kind of data");
-      }      
-    }
-    // determination of the number of solutions.
-    size_t lastTh=0;
-    long offset1;
-    offset=0;
-    nbTh=0;
-    for(size_t jj=0; jj<l.size(); jj++){
-      if(l[jj].what==0){
-	nbTh++;
-	offset1=jj-lastTh;
-	if(offset==0){
-	  offset=offset1;
-	}
-	else if(offset != offset1){
-	  CompileError("the number of solution by mesh is different");
-	}
-      }
-    }
-    if(offset==0) offset=l.size(); 
-    
-  }
-  
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype<string *>(), atype<pmesh3>(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new PopenMeditMesh3_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-};
-template<class v_fes>
-basicAC_F0::name_and_type PopenMeditMesh3_Op<v_fes>::name_param[]= {
-  {  "order", &typeid(long)},
-  {  "meditff", &typeid(string*)},
-  {  "save",&typeid(string*)},
-  {  "wait",&typeid(bool)},
-  {  "bin",&typeid(long)}
-};
-
-template<class v_fes>
-AnyType PopenMeditMesh3_Op<v_fes>::operator()(Stack stack)  const 
-{
-  if(NoGraphicWindow) return Nothing;
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  long order (arg(0,stack,1L));
-  //
-  int ver = GmfFloat;
-  int dimp =3;
-  float fx,fy,fz;
-  //
-  long valsortie=0;
-  int typsol,nbsol;
-  nbsol = offset-1;
-  
-  int TypTab[l.size()-1];
-  for (size_t i=0;i<l.size()-1;i++){
-    TypTab[i]=l[i+1].what;
-  }
-
-  //  string stringemptymedit= string("medit");
-  string * ffname  = GetAny<string *>( (*filename)(stack) );
-  string * meditff(arg(1,stack,&stringffmedit));
-
-  long filebin (arg(4,stack,1L));
-  int smedit=max(1,nbsol);     
-  char * commandline = meditcmd( filebin, nbsol, smedit, *meditff, *ffname);
-  
-  printf("version de medit %s\n",commandline);  
-  if(verbosity>2) cout << "number of solution = " << offset-1 << endl;
-  if(verbosity>2) cout << "number of mesh     = " << nbTh << endl;
-
-  // lecture des differents maillages
-  int nv=0,nt=0,nbe=0; // sommet, triangles, arretes du maillage unifies
-
-  //cout << "commencement du maillage " << endl;
-  for(size_t i=0; i<l.size();i=i+offset){
-    if(l[i].what!=0)
-      cerr << "this element is not a mesh" << i << endl;
-    const Mesh3 &Thtmp =l[i].evalm(0,stack);
-    nv  += Thtmp.nv;
-    nt  += Thtmp.nt;
-    nbe += Thtmp.nbe;  
-    //cout << "valeur de i=" << i << "l.size()=" << l.size() << endl;
-    //cout << "vertex "<< nv << " tetrahedra "<< nt << " triangle " << nbe << endl;  
-  }
-  
-  Vertex3    *v = new Vertex3[nv];
-  Tet        *t;
-  if(nt !=0 ) t = new Tet[nt];
-  Triangle3  *b = new Triangle3[nbe]; 
-  Tet       *tt = t;
-  Triangle3 *bb = b;
-
-  int iv=0,it=0,ibe=0;
-  int *numTht = new int[nt]; // numero of Th assoctiated with a tetrahedra 
-
-  int jt=0;
-  for(size_t i=0; i<l.size();i=i+offset){
-    int nvtmp  = iv;
-    int nttmp  = it;
-    int nbetmp = ibe;
-      
-    const Mesh3 &Thtmp =l[i].evalm(0,stack);
-    for (int ii=0;ii<Thtmp.nv;ii++){
-      const Vertex3 &vi(Thtmp.vertices[ii]);
-      v[iv].x = vi.x;
-      v[iv].y = vi.y;
-      v[iv].z = vi.z;
-      v[iv].lab = vi.lab;
-      iv++;
-    }
-
-    for (int ii=0;ii<Thtmp.nt;ii++){
-      const Tet &vi(Thtmp.elements[ii]);
-      int iv[4];
-      iv[0] = nvtmp + Thtmp.operator()(vi[0]);
-      iv[1] = nvtmp + Thtmp.operator()(vi[1]);
-      iv[2] = nvtmp + Thtmp.operator()(vi[2]);
-      iv[3] = nvtmp + Thtmp.operator()(vi[3]);
-      (*tt++).set(v,iv,vi.lab);
-      numTht[it] = jt;
-      it++;      
-    }
-
-    for (int ii=0;ii<Thtmp.nbe;ii++){
-      const  Triangle3 &vi(Thtmp.be(ii));
-      int iv[3];
-      iv[0] = nvtmp + Thtmp.operator()(vi[0]);
-      iv[1] = nvtmp + Thtmp.operator()(vi[1]);
-      iv[2] = nvtmp + Thtmp.operator()(vi[2]);
-      (*bb++).set(v,iv,vi.lab);
-      ibe++;
-    }
-    jt++;
-  }
-  assert( it==nt ); assert(iv==nv); assert(ibe=nbe);
-  if(verbosity>2) cout << "meditff :: Value of elements: vertex "<< nv << " Tet "<< nt << " triangle " << nbe << endl;  
-
-  Mesh3 *pTh = new Mesh3(nv,nt,nbe,v,t,b);
-  Mesh3 &Th = *pTh;
-
-  //cout << "Mesh is created" << endl;
-  // determination of the number of elements to represent the solution
-  int datasize;
-  if(order == 0) datasize= nt;
-  if(order == 1) datasize= nv;
-
-  // cas de sauvegarde
-  bool boolsave = false;
-  int solnbfloat=0;
-  KNM<double> solsave(1,1);
-  string * saveff;
-  KN<double> vxx,vyx,vyy,vzx,vzy,vzz;
- 
-  //cout << "nbsol=" << endl;
-
-  if(nbsol > 0){
-    
-    vxx.init(datasize);
-    vyx.init(datasize);
-    vyy.init(datasize);
-    vzx.init(datasize);
-    vzy.init(datasize);
-    vzz.init(datasize);
-    
-    if( nargs[2] ){
-      boolsave= true;
-      saveff = GetAny<string *>( (*nargs[2])(stack) );
-      int ddim = 3;
-    
-      for (size_t i=0;i<offset;i++){
-	solnbfloat = solnbfloat + l[i].nbfloat;
-      }
-      
-      solsave.init(solnbfloat,datasize);
-      //cout << "solsave.size()= " << solsave.size()  << endl;
-      solsave=0.;
-      //cout << solsave  << endl;
-    }
-
-  }
-
-  int nboftmp = 0;
-    
-  FILE *popenstream= popen(commandline,MODE_WRITE_BINARY);
-  if( !popenstream){
-    cerr << " Error popen : " << commandline<<endl;
-    exit(1);
-  }
- 
-  // mesh
-  int jojo1;
-  for(int jojo=0; jojo<smedit; jojo++){
-
-    if(filebin){
-      int cod = 1;
-      int KwdCod;
-      int NulPos = 0;
-      
-      // determination of number solutions associated with a mesh
-      fwrite( (unsigned char *) &cod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &ver, WrdSiz,1,popenstream );
-      KwdCod = GmfDimension;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &dimp, WrdSiz,1,popenstream );
-     
-
-      // vertex 
-      KwdCod = GmfVertices;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &nv, WrdSiz,1,popenstream );   
-      for (int k=0; k<nv; k++) {
-	const  Vertex3 & P = Th.vertices[k];
-	fx=P.x; fy=P.y; fz=P.z;
-	fwrite( (unsigned char *) &fx, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &fy, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &fz, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &(P.lab), WrdSiz,1,popenstream );
-	//fprintf(popenstream,"%f %f %i\n",fx,fy,P.lab);
-      }
-    
-      // tetrahedra
-      KwdCod= GmfTetrahedra;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &nt, WrdSiz,1,popenstream );  
-      for (int k=0; k<nt; k++) {
-	const Tet & K(Th.elements[k]);
-	int i0=Th.operator()(K[0])+1;
-	int i1=Th.operator()(K[1])+1;
-	int i2=Th.operator()(K[2])+1;
-	int i3=Th.operator()(K[3])+1;
-	int lab=K.lab;
-	fwrite( (unsigned char *) &i0, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &i1, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &i2, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &i3, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &lab, WrdSiz,1,popenstream );
-	//fprintf(popenstream,"%i %i %i %i %i\n",i0,i1,i2,i3,lab);
-      }
-
-      // triangles
-      KwdCod = GmfTriangles;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &nbe, WrdSiz,1,popenstream );
-      for (int k=0; k<nbe; k++) {
-	const Triangle3 & K(Th.be(k));
-	int i0=Th.operator()(K[0])+1;
-	int i1=Th.operator()(K[1])+1;
-	int i2=Th.operator()(K[2])+1;
-	int lab=K.lab;
-	fwrite( (unsigned char *) &i0, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &i1, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &i2, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &lab, WrdSiz,1,popenstream );
-	//fprintf(popenstream,"%i %i %i %i\n",i0,i1,i2,lab);
-      }
-            
-      // End
-      KwdCod = GmfEnd;
-      fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-      fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      //fprintf(popenstream,"End\n");
-    }
-    else{
-      fprintf(popenstream,"MeshVersionFormatted\n");
-      fprintf(popenstream,"%i\n",ver);
-      fprintf(popenstream,"Dimension\n");
-      fprintf(popenstream,"%i\n",dimp);
-      fprintf(popenstream,"Vertices\n");
-      fprintf(popenstream,"%i\n",nv);
-      
-      for (int k=0; k<nv; k++) {
-	const  Vertex3 & P = Th.vertices[k];
-	fx=P.x; fy=P.y; fz=P.z;
-	fprintf(popenstream,"%f %f %f %i\n",fx,fy,fz,P.lab);
-      }
-      fprintf(popenstream,"Tetrahedra\n");
-      fprintf(popenstream,"%i\n",nt);
-      for (int k=0; k<nt; k++) {
-	const Tet & K(Th.elements[k]);
-	int i0=Th.operator()(K[0])+1;
-	int i1=Th.operator()(K[1])+1;
-	int i2=Th.operator()(K[2])+1;
-	int i3=Th.operator()(K[3])+1;
-	int lab=K.lab;
-	fprintf(popenstream,"%i %i %i %i %i\n",i0,i1,i2,i3,lab);
-      }
-      fprintf(popenstream,"Triangles\n");
-      fprintf(popenstream,"%i\n",nbe);
-      for (int k=0; k<nbe; k++) {
-	const Triangle3 & K(Th.be(k));
-	int i0=Th.operator()(K[0])+1;
-	int i1=Th.operator()(K[1])+1;
-	int i2=Th.operator()(K[2])+1;
-	int lab=K.lab;
-	fprintf(popenstream,"%i %i %i %i\n",i0,i1,i2,lab);
-      }
-      fprintf(popenstream,"End");
-    }
-    
-    if(nbsol > 0){
-      if(filebin){
-	int cod = 1;
-	int NulPos = 0;
-	int KwdCod;
-	fwrite( (unsigned char *) &cod, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &ver, WrdSiz,1,popenstream );
-	KwdCod = GmfDimension;
-	fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &dimp, WrdSiz,1,popenstream );
-      }
-      else{
-	fprintf(popenstream,"MeshVersionFormatted %i\n",ver);
-	fprintf(popenstream,"Dimension %i\n",dimp);
-	
-	// detemination of solution
-	// default scalaire // faire tableau pour plusieurs
-      }
-      
-      typsol = TypTab[jojo];
-	
-      //fprintf(popenstream,"%i %i\n",1,typsol);
-      
-      
-      if(order == 0){
-	if(filebin){
-	  int NulPos = 0;
-	  int KwdCod = GmfSolAtTetrahedra;
-	  int codtypjm = 1;
-	  fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &datasize, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &codtypjm, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &typsol, WrdSiz,1,popenstream );
-	}
-	else{
-	  fprintf(popenstream,"SolAtTetrahedra\n");
-	  fprintf(popenstream,"%i\n",datasize);
-	  fprintf(popenstream,"%i %i\n",1,typsol);
-	}
-	if(typsol==1){
-	  //KN<double> solsca(nv);
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  R3 Cdg_hat = R3(1./4.,1./4.,1./4.);  
-
-	  vxx=0.;
-	  for (int it=0;it<nt;it++){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    const Tet & K(Th.elements[it]);
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    
-	    vxx[it] = l[jojo1].eval(0,stack); //GetAny< double >( (*nargs[1])(stack) );
-	    
-	  }
-	  
-	  if(filebin){
-	    for(int k=0; k<nt; k++){
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz,2,popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nt; k++){
-	      fprintf(popenstream,"%f\n",vxx[k]);
-	    }
-	  }
-	}
-	else if(typsol==2){
-	  //KN<double> vxx(nv),vyy(nv),vzz(nv);
-	  vxx=0.; vyy=0.; vzz=0.;    
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  R3 Cdg_hat = R3(1./4.,1./4.,1./4.); 
-	  
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    const Tet & K(Th.elements[it]);
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    
-	    vxx[it] = l[jojo1].eval(0,stack); //GetAny< double >( (*xx)(stack) );
-	    vyy[it] = l[jojo1].eval(1,stack); //GetAny< double >( (*yy)(stack) );
-	    vzz[it] = l[jojo1].eval(2,stack); //GetAny< double >( (*zz)(stack) );
-	    
-	  }
-	  if(filebin){
-	    for(int k=0; k<nt; k++){
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz,2,popenstream );
-	      fwrite( (unsigned char *) &(vyy[k]), WrdSiz,2,popenstream );
-	      fwrite( (unsigned char *) &(vzz[k]), WrdSiz,2,popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nt; k++){
-	      fprintf(popenstream,"%f %f %f\n", vxx[k], vyy[k], vzz[k]);
-	    }
-	  }
-	}
-	else if(typsol==3){
-	  //KN<double> vxx(nv),vyx(nv),vyy(nv),vzx(nv),vzy(nv),vzz(nv);
-	  vxx(nv)=0.;vyx(nv)=0.;vyy(nv)=0.;
-	  vzx(nv)=0.;vzy(nv)=0.;vzz(nv)=0.;
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  R3 Cdg_hat = R3(1./4.,1./4.,1./4.); 
-	  
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    const Tet & K(Th.elements[it]);
-	    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-	    
-	    vxx[it] = l[jojo1].eval(0,stack); //GetAny< double >( (*tsxx)(stack) );
-	    vyx[it] = l[jojo1].eval(1,stack); //GetAny< double >( (*tsyx)(stack) );
-	    vyy[it] = l[jojo1].eval(2,stack); //GetAny< double >( (*tsyy)(stack) );
-	    vzx[it] = l[jojo1].eval(3,stack); //GetAny< double >( (*tszx)(stack) );
-	    vzy[it] = l[jojo1].eval(4,stack); //GetAny< double >( (*tszy)(stack) );
-	    vzz[it] = l[jojo1].eval(5,stack); //GetAny< double >( (*tszz)(stack) );
-	    
-	  }
-	  if(filebin){
-	    for(int k=0; k<nt; k++){
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz,2,popenstream );
-	      fwrite( (unsigned char *) &(vyx[k]), WrdSiz,2,popenstream );
-	      fwrite( (unsigned char *) &(vyy[k]), WrdSiz,2,popenstream );
-	      fwrite( (unsigned char *) &(vzx[k]), WrdSiz,2,popenstream );
-	      fwrite( (unsigned char *) &(vzy[k]), WrdSiz,2,popenstream );
-	      fwrite( (unsigned char *) &(vzz[k]), WrdSiz,2,popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nt; k++){
-	      fprintf(popenstream,"%f %f %f %f %f %f\n",vxx[k],vyx[k],vyy[k],vzx[k],vzy[k],vzz[k]);
-	    } 
-	  }
-	}
-      }
-      else if(order == 1){
-	if(filebin){
-	  int NulPos = 0;
-	  int KwdCod = GmfSolAtVertices;
-	  int codtypjm = 1;
-	  fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &datasize, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &codtypjm, WrdSiz,1,popenstream );
-	  fwrite( (unsigned char *) &typsol, WrdSiz,1,popenstream );
-	}
-	else{
-	  fprintf(popenstream,"SolAtVertices\n");
-	  fprintf(popenstream,"%i\n",datasize);
-	  fprintf(popenstream,"%i %i\n",1,typsol);
-	}
-	if(typsol==1){
-	  //KN<double> solsca(nv);
-	  KN<int> takemesh(nv);
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  	  
-	  takemesh=0;
-	  vxx=0.;
-
-	  for (int it=0;it<Th.nt;it++){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    for( int iv=0; iv<4;iv++){
-	      int i=Th(it,iv);  
-	      
-	      mp3->setP(&Th,it,iv);
-	      vxx[i] = vxx[i]+l[jojo1].eval(0,stack); //GetAny< double >( (*nargs[1])(stack) );
-	      
-	      takemesh[i] = takemesh[i]+1;
-	    }
-	  }
-	  if(filebin){
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];	      
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz,2,popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      fprintf(popenstream,"%f\n",vxx[k]);
-	    }
-	  }
-	}
-	else if(typsol==2){
-	  //KN<double> vxx(nv),vyy(nv),vzz(nv);
-	  KN<int> takemesh(nv);
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-	  
-	  vxx=0.;
-	  vyy=0.;
-	  vzz=0.;
-	  takemesh=0;
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    for( int iv=0; iv<4; ++iv){
-	      int i=Th(it,iv);  
-	      
-	      //if(takemesh[i]==0){
-	      mp3->setP(&Th,it,iv);
-	      vxx[i] = vxx[i]+l[jojo1].eval(0,stack); //GetAny< double >( (*xx)(stack) );
-	      vyy[i] = vyy[i]+l[jojo1].eval(1,stack); //GetAny< double >( (*yy)(stack) );
-	      vzz[i] = vzz[i]+l[jojo1].eval(2,stack); //GetAny< double >( (*zz)(stack) );
-	      
-	      takemesh[i] = takemesh[i]+1;
-	      //}
-	    }
-	  }
-	  if(filebin){
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      vyy[k]=vyy[k]/takemesh[k];
-	      vzz[k]=vzz[k]/takemesh[k];
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vyy[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vzz[k]), WrdSiz, 2, popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      vyy[k]=vyy[k]/takemesh[k];
-	      vzz[k]=vzz[k]/takemesh[k];
-	      fprintf(popenstream,"%f %f %f\n", vxx[k], vyy[k], vzz[k]);
-	    }
-	  }
-	}
-	else if(typsol==3){
-	  //KN<double> vxx(nv),vyx(nv),vyy(nv),vzx(nv),vzy(nv),vzz(nv);
-	  KN<int> takemesh(nv);
-	  MeshPoint *mp3(MeshPointStack(stack)); 
-
-	  vxx=0.;
-	  vyx=0.;
-	  vyy=0.;
-	  vzx=0.;
-	  vzy=0.;
-	  vzz=0.;
-	  takemesh=0;
-	  for (int it=0;it<Th.nt;++it){
-	    jojo1 = jojo+1+offset*numTht[it];
-	    for( int iv=0; iv<4; ++iv){
-	      int i=Th(it,iv);  
-	      
-	      mp3->setP(&Th,it,iv);
-	      vxx[i] = vxx[i] + l[jojo1].eval(0,stack); //GetAny< double >( (*tsxx)(stack) );
-	      vyx[i] = vyx[i] + l[jojo1].eval(1,stack); //GetAny< double >( (*tsyx)(stack) );
-	      vyy[i] = vyy[i] + l[jojo1].eval(2,stack); //GetAny< double >( (*tsyy)(stack) );
-	      vzx[i] = vzx[i] + l[jojo1].eval(3,stack); //GetAny< double >( (*tszx)(stack) );
-	      vzy[i] = vzy[i] + l[jojo1].eval(4,stack); //GetAny< double >( (*tszy)(stack) );
-	      vzz[i] = vzz[i] + l[jojo1].eval(5,stack); //GetAny< double >( (*tszz)(stack) );
-	      
-	      takemesh[i] = takemesh[i]+1; 	
-	    }
-	  }
-	  if(filebin){
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      vyx[k]=vyx[k]/takemesh[k];
-	      vyy[k]=vyy[k]/takemesh[k];
-	      vzx[k]=vzx[k]/takemesh[k];
-	      vzy[k]=vzy[k]/takemesh[k];
-	      vzz[k]=vzz[k]/takemesh[k];
-
-	      fwrite( (unsigned char *) &(vxx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vyx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vyy[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vzx[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vzy[k]), WrdSiz, 2, popenstream );
-	      fwrite( (unsigned char *) &(vzz[k]), WrdSiz, 2, popenstream );
-	    }
-	  }
-	  else{
-	    for(int k=0; k<nv; k++){
-	      vxx[k]=vxx[k]/takemesh[k];
-	      vyx[k]=vyx[k]/takemesh[k];
-	      vyy[k]=vyy[k]/takemesh[k];
-	      vzx[k]=vzx[k]/takemesh[k];
-	      vzy[k]=vzy[k]/takemesh[k];
-	      vzz[k]=vzz[k]/takemesh[k];
-	      
-	      fprintf(popenstream,"%f %f %f %f %f %f\n",vxx[k], vyx[k], vyy[k], vzx[k], vzy[k], vzz[k]);
-	    }
-	  }
-
-	}
-      }
-
-      if(filebin){
-	int NulPos = 0;
-	int KwdCod = GmfEnd;
-	fwrite( (unsigned char *) &KwdCod, WrdSiz,1,popenstream );
-	fwrite( (unsigned char *) &NulPos, WrdSiz,1,popenstream );
-      }
-      else{
-	fprintf(popenstream,"End");
-      }
- 
-      if(boolsave){
-	if(verbosity>2) cout << "writing solution in file" << endl;
-	if(typsol==1){
-	  writetabsol( datasize, nboftmp, vxx, solsave);
-	  nboftmp=nboftmp+1;
-	}
-	else if(typsol==2){
-	  writetabsol( datasize, nboftmp, vxx, vyy, vzz, solsave);
-	  nboftmp=nboftmp+3;
-	}
-	else if(typsol==3){
-	  writetabsol( datasize, nboftmp, vxx, vyx, vyy, vzx, vzy, vzz, solsave);
-	  nboftmp=nboftmp+6;
-	}
-	//cout << "finish writing solution in file" << endl;
-	//cout << "datasize=" << datasize << " " << "solnbfloat=" << solnbfloat << endl;
-      }
-
-    }
-  }
-  delete [ ] numTht;
-  // fermeture du stream pour popen
-  bool wait=TheWait;
-  if (nargs[3]) wait= GetAny<bool>((*nargs[3])(stack));
-  
-  bool plotting = true;   
-  //  drawing part  ------------------------------
-  
-  //    if (wait && !NoWait) 
-    {
-      pclose(popenstream);
-    }
-    /*else
-    {
-      fclose(popenstream);
-      }*/
-  
-  if(boolsave){
-    int outm;
-    int nbtype=nbsol;
-    float *OutSolTab = new float[solnbfloat];
-    
-    if ( !(outm = GmfOpenMesh(saveff->c_str(),GmfWrite,ver,3)) ) {
-      cerr <<"  -- Mesh3::Save  UNABLE TO OPEN  :"<< saveff << endl;
-      exit(1);
-    }
-    
-    if(order == 0){	  
-      GmfSetKwd(outm,GmfSolAtTetrahedra, datasize, nbtype, TypTab);
-      for (int k=0; k<datasize; k++){
-	for (int i=0; i<solnbfloat ;i++){
-	  OutSolTab[i] =  solsave(i,k);
-	}
-	GmfSetLin(outm, GmfSolAtTetrahedra, OutSolTab); 
-      }
-    }
-    else if(order == 1){
-      GmfSetKwd(outm,GmfSolAtVertices, datasize, nbtype, TypTab);
-      for (int k=0; k<datasize; k++){
-	for (int i=0; i<solnbfloat ;i++){
-	  OutSolTab[i] =  solsave(i,k);
-	}
-	GmfSetLin(outm, GmfSolAtVertices, OutSolTab);
-      }
-    }
-    delete [] OutSolTab;
-    GmfCloseMesh(outm);
-  }
-
-  delete [] commandline;
-  delete pTh; 
-
-  return valsortie;
-}
-
-//  truc pour que la fonction 
-<<<<<<< HEAD
-// static void Load_Init() soit appele a moment du chargement dynamique
-=======
-// Init::Init() soit appele a moment du chargement dynamique
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-// du fichier 
-//
-  
-
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  typedef Mesh *pmesh;
-  typedef Mesh3 *pmesh3;
-  
-  if (verbosity>2)
-    cout << " load:popen.cpp  " << endl;
-  
-  // 2D
-  Global.Add("medit","(",new OneOperatorCode<PopenMeditMesh_Op>);
-  Global.Add("savesol","(",new OneOperatorCode<datasolMesh2_Op> );
-  
-  // 3D
-  Global.Add("medit","(",new OneOperatorCode< PopenMeditMesh3_Op<v_fes3> >);
-  Global.Add("savesol","(",new OneOperatorCode< datasolMesh3_Op<v_fes3> >);
-  
-
-  Global.Add("readsol","(",new OneOperatorCode< readsol_Op >);
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/metis.cpp.orig b/examples++-load/metis.cpp.orig
deleted file mode 100644
index 2c8150c..0000000
--- a/examples++-load/metis.cpp.orig
+++ /dev/null
@@ -1,151 +0,0 @@
-// SUMMARY  :   add interface with partionning library scotch 
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : F. Hecht
-// E-MAIL   : F. Hecht <hecht at ljll.math.upmc.fr>
-//  date : 2009 ????
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- */
-
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep:   metis
-//ff-c++-cpp-dep: 
-//  
-
-#include <ff++.hpp>
-#include <cmath>
-typedef KNM<double> * pRnm;
-typedef KN<double> * pRn;
-typedef string * pstring;
-extern "C" {
-#include <metis.h>
-}
-
-#ifdef  METIS_VER_MAJOR 
-//  METIS_PartMeshDual(&ne, &nn, elmnts, &etype, &numflag, &nparts, &edgecut, epart, npart);
-extern "C" {
-real_t libmetis__ComputeElementBalance(idx_t ne, idx_t nparts, idx_t *where); 
-}
-#else 
-typedef idxtype idx_t ;
-#endif
-<<<<<<< HEAD
-template<class Mesh,int NO,typename R>
-KN<R> * partmetis(Stack s,KN<R> * const & part,Mesh * const & pTh,long const & lparts)
-=======
-template<class Mesh,int NO>
-KN<long> * partmetis(Stack s,KN<long> * const & part,Mesh * const & pTh,long const & lparts)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-    ffassert(pTh);
-    const Mesh & Th(*pTh);
-    int nt=Th.nt,nv=Th.nv;
-    int nve = Mesh::Rd::d+1;
-    
-    KN<idx_t> eptr(nt+1),elmnts(nve*nt), epart(nt), npart(nv);
-    for(int k=0,i=0;k<nt;++k)
-      {
-	eptr[k]=i;
-	for(int j=0;j<nve;j++)
-	  elmnts[i++] = Th(k,j);
-	eptr[k+1]=i;
-      }
-    int numflag=0;
-    int nparts=lparts;
-    int edgecut;
-    int etype =nve-2; // triangle or tet .  change FH fevr 2010 
-    idx_t ncommon = 1; 
-#ifdef  METIS_VER_MAJOR 
-    if(NO==0)
-      METIS_PartMeshNodal(&nt, &nv, eptr, (idx_t *) elmnts,  0,0, &nparts, 0,0, &edgecut, (idx_t  *) epart, (idx_t  *) npart);
-    else
-      METIS_PartMeshDual(&nt, &nv, eptr, (idx_t *) elmnts , 0,0, &ncommon,  &nparts, 0,0, &edgecut, (idx_t  *) epart,(idx_t  *)  npart);
-    if(verbosity)
-      printf("  --metisOA: %d-way Edge-Cut: %7d, Balance: %5.2f Nodal=0/Dual %d\n", nparts, nve, libmetis__ComputeElementBalance(nt, nparts, epart),NO);
-#else
-    if(NO==0)
-     METIS_PartMeshNodal(&nt, &nv, elmnts, &etype , &numflag, &nparts, &edgecut, epart, npart);
-    else
-     METIS_PartMeshDual(&nt, &nv, elmnts, &etype , &numflag, &nparts, &edgecut, epart, npart);
-    if(verbosity)
-      printf("  --metis: %d-way Edge-Cut: %7d, Balance: %5.2f Nodal=0/Dual %d\n", nparts, nve, ComputeElementBalance(nt, nparts, epart),NO);
-#endif 
-    part->resize(nt);
-    *part=epart;
-    return part;
-}
-KN<long> * partmetisd(Stack s,KN<long> * const & part,Mesh * const & pTh,long const & lparts)
-{
-    ffassert(pTh);
-    const Mesh & Th(*pTh);
-    int nt=Th.nt,nv=Th.nv;
-    int nve = Mesh::Element::NbV;
-    
-    KN<idx_t> elmnts(nve*nt), epart(nt), npart(nv);
-    for(int k=0,i=0;k<nt;++k)
-	for(int j=0;j<nve;j++)
-	    elmnts[i++] = Th(k,j);
-    int numflag=0;
-    int nparts=lparts;
-    int edgecut;
-    int etype =nve-2; // triangle
-#ifdef  METIS_VER_MAJOR    
-    printf("  %d-way Edge-Cut: %7d, Balance: %5.2f\n", nparts, nve, libmetis__ComputeElementBalance(nt, nparts, epart));
-#else
-    printf("  %d-way Edge-Cut: %7d, Balance: %5.2f\n", nparts, nve, ComputeElementBalance(nt, nparts, epart));
-#endif
-    part->resize(nt);
-    *part=epart;
-    return part;
-}
-<<<<<<< HEAD
-/*  class Init { public:
-=======
-class Init { public:
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    Init();
-};
-// E_F_StackF0F0
-
-<<<<<<< HEAD
-$1 */
-static void Load_Init(){
-=======
-LOADINIT(Init);
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  if(verbosity && mpirank == 0) 
-  cout << " lood: init metis  " << endl;
-  Global.Add("metisnodal","(",new OneOperator3_<KN<long> *,KN<long> *,Mesh *,long , E_F_stackF0F0F0_<KN<long> *,KN<long> *,Mesh *,long> >(&partmetis<Mesh,0>));
-  Global.Add("metisdual","(",new OneOperator3_<KN<long> *,KN<long> *,Mesh *,long , E_F_stackF0F0F0_<KN<long> *,KN<long> *,Mesh *,long> >(&partmetis<Mesh,1>));
-    Global.Add("metisnodal","(",new OneOperator3_<KN<long> *,KN<long> *,Mesh3 *,long , E_F_stackF0F0F0_<KN<long> *,KN<long> *,Mesh3 *,long> >(&partmetis<Mesh3,0>));
-    Global.Add("metisdual","(",new OneOperator3_<KN<long> *,KN<long> *,Mesh3 *,long , E_F_stackF0F0F0_<KN<long> *,KN<long> *,Mesh3 *,long> >(&partmetis<Mesh3,1>));
-    
-<<<<<<< HEAD
-    Global.Add("metisnodal","(",new OneOperator3_<KN<double> *,KN<double> *,Mesh *,long , E_F_stackF0F0F0_<KN<double> *,KN<double> *,Mesh *,long> >(&partmetis<Mesh,0>));
-    Global.Add("metisdual","(",new OneOperator3_<KN<double> *,KN<double> *,Mesh *,long , E_F_stackF0F0F0_<KN<double> *,KN<double> *,Mesh *,long> >(&partmetis<Mesh,1>));
-    Global.Add("metisnodal","(",new OneOperator3_<KN<double> *,KN<double> *,Mesh3 *,long , E_F_stackF0F0F0_<KN<double> *,KN<double> *,Mesh3 *,long> >(&partmetis<Mesh3,0>));
-    Global.Add("metisdual","(",new OneOperator3_<KN<double> *,KN<double> *,Mesh3 *,long , E_F_stackF0F0F0_<KN<double> *,KN<double> *,Mesh3 *,long> >(&partmetis<Mesh3,1>));
-    
-}
-LOADFUNC(Load_Init)
-=======
-}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/mmg3d-v4.0.cpp.orig b/examples++-load/mmg3d-v4.0.cpp.orig
deleted file mode 100644
index fce9640..0000000
--- a/examples++-load/mmg3d-v4.0.cpp.orig
+++ /dev/null
@@ -1,453 +0,0 @@
-// ORIG-DATE:     Fev 2010
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : liaison medit freefem++ : adaptmesh in 3d 
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// Modif    : F. hecht  : Frederic.hecht at upmc.fr
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-
-//
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep:   mmg3d-v4
-//ff-c++-cpp-dep: 
-//  
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-
-//  ./ff-c++ mmg3dv4.cpp  -I../download/include/mmg3d/  -lmmg3d4 
-
-#include "ff++.hpp" 
-#include "msh3.hpp"
-//#define ADAPTLIBRARY"
-#include "dataff.h"
-
-using namespace  Fem2D;
-//using namespace  mmg3d;
-
-inline void add2(int *k,int n, int a)
-{
-    for (int i=0;i<n;++i)
-      k[i] += a; 
-}
-void set_mesh(void *dataff,int *data,int ldata)
-{
-    DataFF *dff=(DataFF *) dataff;
-    
-    int nnv= data[ff_id_vertex];
-    int nnt= data[ff_id_tet];
-    int nnbe= data[ff_id_tria];
-    Vertex3 *vv = new Vertex3[nnv];
-    Tet *tt= new Tet[nnt]; 
-    Triangle3 *bb=new Triangle3[nnbe];
-    
-    Mesh3 * pTh= new Mesh3();
-    pTh->nv = nnv;
-    pTh->nt = nnt;
-    pTh->nbe =nnbe;
-    
-    pTh->vertices = vv;
-    pTh->elements = tt;
-    pTh->borderelements = bb;
-    
-    pTh->mes=0.;
-    pTh->mesb=0.;
-    
-    dff->mesh= pTh; 
-    if(verbosity>5) cout << " Set_mesh nv=" << nnv << " nTet " << nnt<< " NTria " <<nnbe << endl;
-}
-void end_mesh(void *dataff)
-{
-    DataFF *dff=(DataFF *) dataff;
-
-    Mesh3 &  Th = *(Mesh3 *) dff->mesh;
-    
-    Th.mes=0.;
-    Th.mesb=0.;
-    
-    for (int i=0;i<Th.nbe;i++)  
-	Th.mesb += Th.be(i).mesure();  
-
-    //  Add FH to be consitant we all constructor ...  July 09
-    Th.BuildBound();
-    //Th.Save("TTTh.mesh");
-    if(verbosity>5)
-      cout << "end_mesh:  Th.mes = " << Th.mes << " Th.mesb = " << Th.mesb << endl;
-    if(Th.nt > 0){ 
-	Th.BuildAdj();
-	Th.Buildbnormalv();  
-	Th.BuildjElementConteningVertex();  
-    }
-    //  end add       
-    
-    if(verbosity>1)
-	cout << "  -- End of Construct  mesh3: mesure = " << Th.mes << " border mesure " << Th.mesb <<  endl;  
-    ffassert(Th.mes>=0); // add F. Hecht sep 2009.
-        
-}
-void set_v(void *dataff,int i,double *xyz,int lab)
-{
-  i--; 
-  DataFF *dff=(DataFF *) dataff;
-  ffassert(dff->mesh);
-  Mesh3 &  Th= * (Mesh3 *) dff->mesh;
-  Th.vertices[i].x = xyz[0];
-  Th.vertices[i].y = xyz[1];
-  Th.vertices[i].z = xyz[2];
-  Th.vertices[i].lab = lab;
-  if(verbosity>10) 
-    cout << " set_v3 " <<i << " " <<  xyz[0] << " "  << xyz[1] << " "  << xyz[02] << " "  << lab  << endl;
-  
-}
-void set_elmt(void *dataff,int id,int i,int *k,int lab)
-{
-  i--;
-  int n=0;
-    DataFF *dff=(DataFF *) dataff;
-    ffassert(dff->mesh);
-    Mesh3 &  Th= *(Mesh3 *) dff->mesh;
-      if( id == 2) 
-      {
-	n=3;
-	Mesh3::BorderElement & K(Th.be(i));
-	add2(k,3,-1);		  
-	K.set(Th.vertices,k,lab);
-      }
-	
-    else if ( id== 3) 
-      {
-	n=4; 
-	Mesh3::Element & K(Th.t(i));
-	add2(k,4,-1);
-	K.set(Th.vertices,k,lab);
-      }
-    else
-      {
-	cout << " unknows id = " << id << " not 2 or 3 " << endl;
-	ffassert(0); 
-      }
-
-  if(verbosity>10) 
-    {
-      cout << " set_ele"<< n << " "  <<i << " "  ;
-      for(int j=0;j<n;j++)
-	cout << k[j] << " ";
-      cout << lab << endl;
-    }
-
-}
-void get_mesh(void *dataff,int *data,int ldata)
-{
-    DataFF *dff=(DataFF *) dataff;
-    assert(ldata>5);
-    for(int i=0;i<ldata;++i)
-	data[i]=0;
-    ffassert(dff->mesh);
-    Mesh3 &  Th= *(Mesh3*) dff->mesh;
-    data[ff_id_vertex]=  Th.nv;
-    data[ff_id_tria]=  Th.nbe;
-    data[ff_id_tet]=  Th.nt;
-    if(verbosity>9) 
-      cout << " get_mesh " << Th.nv << " "<< Th.nbe << " "<< Th.nt << endl; 
-    
-}
-void get_v3(void *dataff,int i,double *xyz,int *lab)
-{
-  i--;
-  DataFF *dff=(DataFF *) dataff;
-  ffassert(dff->mesh);
-  Mesh3 &  Th= *(Mesh3*) dff->mesh;
-  xyz[0] = Th.vertices[i].x ;
-  xyz[1] = Th.vertices[i].y ;
-  xyz[2] = Th.vertices[i].z ;
-  *lab = Th.vertices[i].lab ;
-  if(verbosity>10) 
-    cout << " get_v3 " <<i << " " <<  xyz[0] << " "  << xyz[1] << " "  << xyz[2] << " "  << *lab  << endl;
-    
-  
-}
-void get_elmt(void *dataff,int id,int i,int *k,int *lab)
-{
-  i--;
-  DataFF *dff=(DataFF *) dataff;
-  ffassert(dff->mesh);
-  Mesh3 &  Th= *(Mesh3*)dff->mesh;
-  int n =0;
-  if( id == 2) 
-    {
-      n=3; 
-      Mesh3::BorderElement & K(Th.be(i));
-      for (int j=0; j<n;++j)
-	k[j]=Th(K[j]); 
-      
-      *lab = K.lab;
-    }
-  
-  else if ( id== 3) 
-    {
-      n=4;
-	Mesh3::Element & K(Th.t(i));
-        for (int j=0; j<n;++j)
-	  k[j]=Th(K[j]); 	
-	*lab=K.lab;
-    } 
-  else {
-    cout << "  id != 2, 3 , id = = "<< id  << endl;  
-    ffassert(0); 
-  }
-  add2(k,n,+1);
-  
-  if(verbosity>10) 
-    {
-      cout << " get_ele"<< n << " "  <<i << " "  ;
-      for(int j=0;j<n;j++)
-	cout << k[j] << " ";
-      cout << *lab << endl;
-    }
-  
-}
-
-
-
-class mmg3d_Op: public E_F0mps 
-{
-public:
-  Expression eTh,xx,yy,zz;
-  static const int n_name_param = 5; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>   karg(int i,Stack stack) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): KN_<long>((long*) 0,0L) ;}
-
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  string  arg(int i,Stack stack,const char * a ) const{ return nargs[i] ? *GetAny< string * >( (*nargs[i])(stack) ): a;}
-  long  arg(int i,Stack stack, long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  
-  
-public:
-  mmg3d_Op(const basicAC_F0 &  args ,Expression tth) 
-    : eTh(tth),xx(0),yy(0),zz(0) 
-  {
-    if(verbosity >1) 
-      cout << "mmg3d v4 "<< endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    
-    const E_Array * a1=0 ;
-    if(nargs[1])  a1  = dynamic_cast<const E_Array *>(nargs[1]);
-  
-    if(a1) {
-      if(a1->size() !=3) 
-	CompileError("mmg3d(Th,displacement=[X,Y,Z],) ");
-      xx=to<double>( (*a1)[0]); 
-      yy=to<double>( (*a1)[1]);
-      zz=to<double>( (*a1)[2]);
-    }    
-    else if ( nargs[1] ) 
-      CompileError("mmg3d(Th,displacement=[X,Y,Z], .... ) ");
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-
-basicAC_F0::name_and_type  mmg3d_Op::name_param[]= {
-  {  "metric", &typeid(KN<double> *)},   // 0
-  {  "displacement", &typeid(E_Array)},  // 1
-  {  "displVect", &typeid(KN_<double>)},   // 2
-  {  "opt", &typeid(string*)}, // 3
-  {  "Mb",&typeid(long)} // 4
-};
-
-class mmg3d_ff : public OneOperator { public:  
-     mmg3d_ff() : OneOperator( atype<pmesh3>(), atype<pmesh3>() ) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-	return  new  mmg3d_Op( args,t[0]->CastTo(args[0]) ); 
-  }
-};
-
-AnyType mmg3d_Op::operator()(Stack stack)  const 
-{
-  // initialisation
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  ffassert( pTh );
-  Mesh3 &Th3=*pTh;
-    string sarg= arg(3,stack,"");
-    DataFF dff;
-    dff.memory= arg(4,stack,128L); // 128 Mb .. ????  
-    ffassert( dff.memory < 2048 );// 2 GiGa bytes   limite of integer .. 
-    dff.typesol=0;
-    dff.np=pTh->nv;
-    dff.mesh=pTh;
-    dff.meshname="Th";
-    dff.imprim=verbosity;
-    dff.sol=0;
-    dff.mov=0;
-    dff.set_mesh =set_mesh;
-    dff.end_mesh =end_mesh;
-    dff.set_v = set_v;
-    dff.set_elmt = set_elmt;
-    dff.get_mesh = get_mesh;
-    dff.get_v3 = get_v3;
-    dff.get_elmt= get_elmt;
-
-  KN<double> *pmetric=0;
-  
-  if( nargs[0] ){ 
-    pmetric = GetAny< KN<double> *>( (*nargs[0])(stack) );
-    ffassert(pmetric) ;
-  }
-
-  KN<double>  cmetric; 
-  if(pmetric)
-    {
-      int m=pmetric->N();
-      if( m == Th3.nv*6) // 
-	{
-	  cmetric = (*pmetric);
-	  dff.typesol=6;
-	  dff.np = Th3.nv;
-	  for(int i=0;i <m; i += 6)
-	    std::swap(cmetric[i+2],cmetric[i+3]); 
-	  dff.sol= &cmetric[0];
-	  dff.solname="metrix-aniso";
-	}
-      else if ( m == Th3.nv) 
-	{
-	  dff.typesol = 1;
-	  dff.np = Th3.nv;
-	  dff.sol = &(*pmetric)[0];
-	  dff.solname="metrix-iso";
-	}
-      else
-	ExecError(" mmg3d v4: incompatibility  metric array  mesh ");
-    }
-
-
- 
- 
-  bool BoolMoving=0;
-  KN<double> Moving(0);
-  
-  if( nargs[1] || nargs[2] ){
-    BoolMoving=1;
-    if( nargs[2] ){
-      Moving = GetAny<double>( (*nargs[2])(stack) );
-      assert( Moving.N() == 3*Th3.nv );
-      dff.movename="move";
-      dff.mov = Moving;
-      if( Moving.N() != 3*Th3.nv ){ cerr << " Displacement vector is of size 3*Th.nv" << endl;
-	ExecError(" mmg3d v4");} 
-    }
-    else{ 
-      MeshPoint *mp3(MeshPointStack(stack));
-      Moving.resize(3*Th3.nv);
-      for( int i=0; i<Th3.nv; ++i){
-	mp3->set( Th3.vertices[i].x, Th3.vertices[i].y, Th3.vertices[i].z );
-	if(xx) Moving[3*i]   = GetAny<double>((*xx)(stack)); 
-	if(yy) Moving[3*i+1] = GetAny<double>((*yy)(stack));
-	if(zz) Moving[3*i+2] = GetAny<double>((*zz)(stack));  
-      }
-      dff.mov = Moving;
-      dff.movename="move";
-    }
-    //if(verbosity > 2) 
-    if(verbosity >2) cout << "displacement vector is loading" << endl;
-  }
-
-    int argc=1;
-    char * argv[1000];
-    char ff[10]="ff++";
-    KN<char> args(sarg.size()+1);
-    argv[0] = ff; 
-    argv[1] = & args[0]; 
-    strcpy(args, sarg.c_str());
-    //cout << sarg << " == " << &args[0] << endl;
-    char cc='\0';
-    for(int i=0;i<args.N();cc=args[i++])
-      {
-	if (isspace(args[i]) &&  cc!='\\' ) cc=args[i]='\0';		
-	else if ( !cc ) argv[argc++]=& args[i];	
-	ffassert(argc<1000);
-      }
-    
- //   for(int i=0;i< argc; ++i)
-//	cout << " *** arg " << i << " " << argv[i] << endl;
-	    		
-  int res= mainmmg3d(argc,argv,&dff);
-  Mesh3 * pTh3 = (Mesh3 *) dff.mesh;
-  if( res > 0){
-      dff.mesh=0;
-    cout << " problem of remeshing with mmg3d :: error" <<  res << endl; 
-  }
-
-  if(! pTh3 ){
-	  cout << " problem of remeshing with mmg3d v 4 (no mesh)  :: error" <<  res << endl; 
-      ExecError(" Error mmg3d" );} 
-  else {
-      //  end build of TH3...
-      if(verbosity > 10) cout << "buildGtree" << endl;
-      pTh3->BuildGTree();
-  }
-  
-  *mp=mps;
-  Add2StackOfPtr2FreeRC(stack,pTh3);
-  return pTh3;
-}
-
-
-<<<<<<< HEAD
-/*  class Init1 { public:
-  Init1();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init1 { public:
-  Init1();
-};
-
-LOADINIT(Init1)  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init1::Init1(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  
-  //if (verbosity)
-  if(verbosity) cout << " load: mmg3d  " << endl;
-  
-  Global.Add("mmg3d","(",new mmg3d_ff);
-  
-}
-
-
-#define  WITH_NO_INIT
-#include "msh3.hpp" 
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/msh3.cpp b/examples++-load/msh3.cpp
index 60945b9..0f01897 100644
--- a/examples++-load/msh3.cpp
+++ b/examples++-load/msh3.cpp
@@ -250,11 +250,11 @@ void TestSameTriangleMesh3( const Mesh3 & Th3, const double & hseuil, const R3 &
 } 
 
 int TestElementMesh3( const Mesh3 & Th3 ) 
-// Test si le maillage � des �l�ments communs : Sommet, triangle, ...
+// Test si le maillage � des �l�ments communs : Sommet, triangle, ...
 {
 //  FH 31/09/2009:  Change  int* to KN<int> to remove pb of missing free in some case 
-  R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
-  double hmin=1e10;   // longueur minimal des arr�tes
+  R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
+  double hmin=1e10;   // longueur minimal des arr�tes
   double hseuil;
   KN<int> Numero_Som(Th3.nv);
   int nv_t,nt_t,nbe_t;
@@ -267,7 +267,7 @@ int TestElementMesh3( const Mesh3 & Th3 )
   }
 
 
-  // calcul de la longueur minimal des arr�tes
+  // calcul de la longueur minimal des arr�tes
   for (int k=0;k<Th3.nt;k++){
     for (int e=0;e<6;e++){
       if( Th3[k].lenEdge(e) < Norme2(Psup-Pinf)/1e9 )
@@ -408,10 +408,10 @@ int TestElementMesh3( const Mesh3 & Th3 )
 
 
 Mesh3 *TestElementMesh3_patch( const Mesh3 & Th3 ) 
-// Test si le maillage � des �l�ments communs : Sommet, triangle, ...
+// Test si le maillage � des �l�ments communs : Sommet, triangle, ...
 {
-  R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
-  double hmin=1e10;   // longueur minimal des arr�tes
+  R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
+  double hmin=1e10;   // longueur minimal des arr�tes
   double hseuil;
   int *Numero_Som = new int [Th3.nv];
   int nv_t,nt_t,nbe_t;
@@ -423,7 +423,7 @@ Mesh3 *TestElementMesh3_patch( const Mesh3 & Th3 )
     Psup=Maxc(P,Psup);     
   }
 
-  // calcul de la longueur minimal des arr�tes
+  // calcul de la longueur minimal des arr�tes
   for (int k=0;k<Th3.nt;k++){
     for (int e=0;e<6;e++){
       if( Th3[k].lenEdge(e) < Norme2(Psup-Pinf)/1e9 ) continue;
@@ -923,7 +923,7 @@ void Som3D_mesh_product_Version_Sommet_mesh_tab(const int Nmax,
     }
     
 
-    tab_NumSommet[ii] = NumSommet; // Numero du premier sommet 3D associ� au sommet 2D ii.
+    tab_NumSommet[ii] = NumSommet; // Numero du premier sommet 3D associ� au sommet 2D ii.
     //cout << "ii, tab_NumSommet[ii]= "<< ii <<" "<< tab_NumSommet[ii] << endl;
     
     for(int j=0; j <= Ni; j++){ //changer
@@ -970,7 +970,7 @@ void Som3D_mesh_product_Version_Sommet_mesh_tab(const int Nmax,
 	       
 	    Th3.vertices[ tab_NumSommet[ ib[kk] ] + tab_Ni[ib[kk]] ].lab = imap2->second; 
 	       
-	       // label c�t�
+	       // label c�t�
 	     map<int,int>:: const_iterator imap3;
 	     imap3=mapemil.find ( K.lab );
 	     assert( imap3!=mapemil.end() );
@@ -994,7 +994,7 @@ void Som3D_mesh_product_Version_Sommet_mesh_tab(const int Nmax,
 
   ElemBord = 0;
 
-  // bord d�finies en zmax
+  // bord d�finies en zmax
   
   for(int ii=0; ii < Th2.nt; ii++){
     int ijj[3];
@@ -1548,7 +1548,7 @@ void Som3D_mesh_product_Version_Sommet_mesh_tab(const int Nmax,
       }
       
    }
-  // Au final : les sommers des tetraedres et la conectivit� des tetraedres finaux
+  // Au final : les sommers des tetraedres et la conectivit� des tetraedres finaux
   assert(NumElement <= Th3.nt);
   }
 
@@ -1557,7 +1557,7 @@ void Som3D_mesh_product_Version_Sommet_mesh_tab(const int Nmax,
 void dpent1_mesh(int idl[3],int nu[12],int &nbe,int &option){
   // intent(inout)  :: idl
   // intent(out)    :: nu,nbe,option
-  // option ne sert � rien
+  // option ne sert � rien
   //* version simplifie pour le mailleur par couche 2D 3D
   //-----------------------------------------------------------------------
   //      subroutine dpent1 (idl,nu,nbe,option)
@@ -2517,7 +2517,7 @@ AnyType Movemesh2D_3D_surf_Op::operator()(Stack stack)  const
     int border_only = 0;
     int recollement_border=1, point_confondus_ok=0;
 
-    // faire version de Transfo_Mesh2_tetgen pour ce cas pr�cis.
+    // faire version de Transfo_Mesh2_tetgen pour ce cas pr�cis.
     Mesh3 *Th3= MoveMesh2_func( precis_mesh, Th, txx, tyy, tzz, 
 			 border_only, recollement_border, point_confondus_ok);
 	
@@ -3898,7 +3898,7 @@ void PointCommun_hcode( const int &dim, const int &NbPoints, const int &point_co
     Numero_Som[ii] = -1;
   }
 	
-  /* Resolution probleme dans le cas o� le maillage se colle */
+  /* Resolution probleme dans le cas o� le maillage se colle */
 	
   /* maintenant determinations des points confondus et numerotation*/
 	
@@ -4399,7 +4399,7 @@ AnyType BuildLayeMesh_Op::operator()(Stack stack)  const
 
   // cas maillage volumique + surfacique
   Mesh3 *Th3= build_layer(Th, nlayer, ni, zmin, zmax, maptet, maptrimil, maptrizmax, maptrizmin, mapemil, mapezmax, mapezmin);
-  // cas maillage surfacique simplement // A construire Jacques + donner le numero des edges que l'on veut pas creer � l'int�rieure
+  // cas maillage surfacique simplement // A construire Jacques + donner le numero des edges que l'on veut pas creer � l'int�rieure
     
   
   if( !(xx) && !(yy) && !(zz) )
@@ -4687,7 +4687,7 @@ void GetManifolds( Expression mani, int & nbcmanifold,  int * &mani_nbe, Express
       if( verbosity>1) 
 	cout << "    the number of manifold " << n << endl;
       
-      nbcmanifold = n;  // nombre de manifold d�finis
+      nbcmanifold = n;  // nombre de manifold d�finis
       
       //manifold = new Expression[n]; 
       mani_nbe = new int[n];
@@ -5468,7 +5468,7 @@ AnyType ExtractMesh2D_Op::operator()(Stack stack)  const
 	
 	if( boolsurf==1 && boolelement==0 ){
 		// case only surface mesh
-		// demander � F. pour la pertinence
+		// demander � F. pour la pertinence
 		KN<int> takevertex(Th.nv,-1);
 		KN<int> takebe(Th.neb,0);
 		int nbeLab=0;
@@ -5538,7 +5538,7 @@ AnyType ExtractMesh2D_Op::operator()(Stack stack)  const
 //
 //
 ///////////////////////////////////////////////////////////
-//  recuperer une partie du maillage � l'aide des labels
+//  recuperer une partie du maillage � l'aide des labels
 
 class ExtractMesh_Op : public E_F0mps 
 {
diff --git a/examples++-load/msh3.cpp.orig b/examples++-load/msh3.cpp.orig
deleted file mode 100644
index ddf56e5..0000000
--- a/examples++-load/msh3.cpp.orig
+++ /dev/null
@@ -1,5905 +0,0 @@
-// ORIG-DATE: Novembre 2008
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-//  FH   July 2009
-//   comment all
-//       Th3_t->BuildBound();
-//       Th3_t->BuildAdj();
-//       Th3_t->Buildbnormalv();  
-//       Th3_t->BuildjElementConteningVertex();
-//   is now in the constructor of Mesh3 to be consistante. 
-//   
-#ifndef WITH_NO_INIT
-#include "ff++.hpp"
-#endif
-#include "AFunction_ext.hpp"
-
-
-//  TransfoMesh_v2.cpp
-using namespace std;
-// LayerMesh.cpp
-// buildlayer.cpp
-// trunc3d.cpp
-// rajout global
-
-#include <set>
-#include <vector>
-#include "msh3.hpp"
-#include "splitsimplex.hpp"
-
-using namespace  Fem2D;
-
-int  ChangeLab3D(const map<int,int> & m,int lab);
-
-void TestSameVertexMesh3( const Mesh3 & Th3, const double & hseuil, const R3 & Psup, const R3 &Pinf, int & nv_t, int *Numero_Som){
-  
-  Vertex3  *v=new Vertex3[Th3.nv];
-  nv_t=0;
-  
-  EF23::GTree<Vertex3> *gtree = new EF23::GTree<Vertex3>(v,Pinf,Psup,0);
-  
-  // creation of octree
-  for (int ii=0;ii<Th3.nv;ii++){
-    const R3 r3vi( Th3.vertices[ii].x, Th3.vertices[ii].y, Th3.vertices[ii].z );
-    const Vertex3 &vi(r3vi);
-    
-    Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-    
-    if(!pvi){
-      v[nv_t].x = vi.x;
-      v[nv_t].y = vi.y;
-      v[nv_t].z = vi.z;
-      v[nv_t].lab = Th3.vertices[ii].lab; // lab mis a zero par default
-      Numero_Som[ii] = nv_t; 
-      gtree->Add( v[nv_t] );
-      nv_t=nv_t+1;
-    }
-    else{
-      Numero_Som[ii] = pvi-v;
-    }
-  }
-  
-  delete gtree;
-  delete [] v;
-}
-
-void TestSameTetrahedraMesh3( const Mesh3 & Th3, const double & hseuil, const R3 & Psup, const R3 &Pinf, int & nt_t ){
-
-  Vertex3 *vt=new Vertex3[Th3.nt];
-  EF23::GTree<Vertex3> *gtree_t = new EF23::GTree<Vertex3>(vt,Pinf,Psup,0);
-  
-  nt_t=0;
-  // creation of octree
-  for (int ii=0;ii<Th3.nt;ii++){
-    const Tet & K(Th3.elements[ii]);
-    int iv[4];
-
-    for(int jj=0; jj <4; jj++)
-      iv[jj] = Th3.operator()(K[jj]);
-    
-    const double Cdg_x = ( Th3.vertices[iv[0]].x + Th3.vertices[iv[1]].x + Th3.vertices[iv[2]].x + Th3.vertices[iv[3]].x )/4.;
-    const double Cdg_y = ( Th3.vertices[iv[0]].y + Th3.vertices[iv[1]].y + Th3.vertices[iv[2]].y + Th3.vertices[iv[3]].y )/4.;
-    const double Cdg_z = ( Th3.vertices[iv[0]].z + Th3.vertices[iv[1]].z + Th3.vertices[iv[2]].z + Th3.vertices[iv[3]].z )/4.;
-
-    const R3 r3vi( Cdg_x, Cdg_y, Cdg_z );
-    const Vertex3 &vi(r3vi);
-    
-    Vertex3 * pvi=gtree_t->ToClose(vi,hseuil);
-    
-    if(!pvi){
-      vt[nt_t].x = vi.x;
-      vt[nt_t].y = vi.y;
-      vt[nt_t].z = vi.z;
-      vt[nt_t].lab = K.lab ; // lab mis a zero par default
-      gtree_t->Add( vt[nt_t] );
-      nt_t=nt_t+1;
-    }
-  }
-  
-  delete gtree_t;
-  delete [] vt;
-} 
-
-void TestSameTetrahedraMesh3( const Mesh3 & Th3, const double & hseuil, const R3 & Psup, const R3 &Pinf, int *Elem_ok, int & nt_t ){
-
-  Vertex3 *vt=new Vertex3[Th3.nt];
-  EF23::GTree<Vertex3> *gtree_t = new EF23::GTree<Vertex3>(vt,Pinf,Psup,0);
-  
-  nt_t=0;
-  // creation of octree
-  for (int ii=0;ii<Th3.nt;ii++){
-    if(Elem_ok[ii]!=1) continue;
-    const Tet & K(Th3.elements[ii]);
-    int iv[4];
-
-    for(int jj=0; jj <4; jj++)
-      iv[jj] = Th3.operator()(K[jj]);
-    
-    const double Cdg_x = ( Th3.vertices[iv[0]].x + Th3.vertices[iv[1]].x + Th3.vertices[iv[2]].x + Th3.vertices[iv[3]].x )/4.;
-    const double Cdg_y = ( Th3.vertices[iv[0]].y + Th3.vertices[iv[1]].y + Th3.vertices[iv[2]].y + Th3.vertices[iv[3]].y )/4.;
-    const double Cdg_z = ( Th3.vertices[iv[0]].z + Th3.vertices[iv[1]].z + Th3.vertices[iv[2]].z + Th3.vertices[iv[3]].z )/4.;
-
-    const R3 r3vi( Cdg_x, Cdg_y, Cdg_z );
-    const Vertex3 &vi(r3vi);
-    
-    Vertex3 * pvi=gtree_t->ToClose(vi,hseuil);
-    
-    if(!pvi){
-      vt[nt_t].x = vi.x;
-      vt[nt_t].y = vi.y;
-      vt[nt_t].z = vi.z;
-      vt[nt_t].lab = K.lab ; // lab mis a zero par default
-      gtree_t->Add( vt[nt_t] );
-      nt_t=nt_t+1;
-    }
-    else{
-      Elem_ok[ii]=0;
-    }
-  }
-  
-  delete gtree_t;
-  delete [] vt;
-} 
-
-
-void TestSameTriangleMesh3( const Mesh3 & Th3, const double & hseuil, const R3 & Psup, const R3 &Pinf, int & nbe_t){
-
-  Vertex3  *vbe= new Vertex3[Th3.nbe];
-  EF23::GTree<Vertex3> *gtree_be = new EF23::GTree<Vertex3>(vbe,Pinf,Psup,0);
-  
-  nbe_t=0;
-  // creation of octree
-  for (int ii=0;ii<Th3.nbe;ii++){
-    const Triangle3 & K(Th3.be(ii));
-    int iv[3];
-
-    for(int jj=0; jj<3; jj++)
-      iv[jj] = Th3.operator()(K[jj]);
-    
-    const double Cdg_x = ( Th3.vertices[iv[0]].x + Th3.vertices[iv[1]].x + Th3.vertices[iv[2]].x )/3.;
-    const double Cdg_y = ( Th3.vertices[iv[0]].y + Th3.vertices[iv[1]].y + Th3.vertices[iv[2]].y )/3.;
-    const double Cdg_z = ( Th3.vertices[iv[0]].z + Th3.vertices[iv[1]].z + Th3.vertices[iv[2]].z )/3.;
-
-    const R3 r3vi( Cdg_x, Cdg_y, Cdg_z );
-    const Vertex3 &vi(r3vi);
-    
-    Vertex3 * pvi=gtree_be->ToClose(vi,hseuil);
-    
-    if(!pvi){
-      vbe[nbe_t].x = vi.x;
-      vbe[nbe_t].y = vi.y;
-      vbe[nbe_t].z = vi.z;
-      vbe[nbe_t].lab = K.lab ; // lab mis a zero par default
-      gtree_be->Add( vbe[nbe_t] );
-      nbe_t=nbe_t+1;
-    }
-   
-  }
-  
-  delete gtree_be;
-  delete [] vbe;
-} 
-
-void TestSameTriangleMesh3( const Mesh3 & Th3, const double & hseuil, const R3 & Psup, const R3 &Pinf, int *Border_ok ,int & nbe_t ){
-
-  Vertex3 *vbe=new Vertex3 [Th3.nbe];
-  EF23::GTree<Vertex3> *gtree_be = new EF23::GTree<Vertex3>(vbe,Pinf,Psup,0);
-  
-  nbe_t=0;
-  // creation of octree
-  for (int ii=0;ii<Th3.nbe;ii++){
-    if(Border_ok[ii]!=1) continue;
-    const Triangle3 & K(Th3.be(ii));
-    int iv[3];
-
-    for(int jj=0; jj<3; jj++)
-      iv[jj] = Th3.operator()(K[jj]);
-    
-    const double Cdg_x = ( Th3.vertices[iv[0]].x + Th3.vertices[iv[1]].x + Th3.vertices[iv[2]].x )/3.;
-    const double Cdg_y = ( Th3.vertices[iv[0]].y + Th3.vertices[iv[1]].y + Th3.vertices[iv[2]].y )/3.;
-    const double Cdg_z = ( Th3.vertices[iv[0]].z + Th3.vertices[iv[1]].z + Th3.vertices[iv[2]].z )/3.;
-
-    const R3 r3vi( Cdg_x, Cdg_y, Cdg_z );
-    const Vertex3 &vi(r3vi);
-    
-    Vertex3 * pvi=gtree_be->ToClose(vi,hseuil);
-    
-    if(!pvi){
-      vbe[nbe_t].x = vi.x;
-      vbe[nbe_t].y = vi.y;
-      vbe[nbe_t].z = vi.z;
-      vbe[nbe_t].lab = K.lab ; // lab mis a zero par default
-      gtree_be->Add( vbe[nbe_t] );
-      nbe_t=nbe_t+1;
-    }
-    else{      
-      if(K.lab == vbe[pvi-vbe].lab )  Border_ok[ii] = 0;
-    }
-  }
-  
-  delete gtree_be;
-  delete [] vbe;
-} 
-
-int TestElementMesh3( const Mesh3 & Th3 ) 
-// Test si le maillage � des �l�ments communs : Sommet, triangle, ...
-{
-//  FH 31/09/2009:  Change  int* to KN<int> to remove pb of missing free in some case 
-  R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
-  double hmin=1e10;   // longueur minimal des arr�tes
-  double hseuil;
-  KN<int> Numero_Som(Th3.nv);
-  int nv_t,nt_t,nbe_t;
-  
-  // calcul de la boite englobante
-  for (int ii=0;ii<Th3.nv;ii++){ 
-    R3 P( Th3.vertices[ii].x, Th3.vertices[ii].y, Th3.vertices[ii].z);
-    Pinf=Minc(P,Pinf);
-    Psup=Maxc(P,Psup);     
-  }
-
-
-  // calcul de la longueur minimal des arr�tes
-  for (int k=0;k<Th3.nt;k++){
-    for (int e=0;e<6;e++){
-      if( Th3[k].lenEdge(e) < Norme2(Psup-Pinf)/1e9 )
-	{
-	  const Tet & K(Th3.elements[k]);
-	  int iv[4];
-	  for(int jj=0; jj <4; jj++){
-	    iv[jj] = Th3.operator()(K[jj]);
-	  }
-	  for (int eh=0;eh<6;eh++){
-	    cout << "tetrahedra: " << k << " edge : " << eh << " lenght "<<  Th3[k].lenEdge(eh) << endl;
-	    cout << " Tet vertices : " <<iv[0] << " " << iv[1] << " " << iv[2] << " " << iv[3] << " " << endl;
-	  }
-	  cout << " A tetrahedra with a very small edge was created " << endl;
-	 
-	  return 1;
-	}
-      hmin=min(hmin,Th3[k].lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-    }
-  }
-  
-  for (int k=0;k<Th3.nbe;k++){
-    for (int e=0;e<3;e++){
-      if( Th3.be(k).lenEdge(e) < Norme2(Psup-Pinf)/1e9 )
-	{
-	  for (int eh=0;eh<3;e++){
-	    cout << "triangles: " << k << " edge : " << eh << " lenght "<<  Th3.be(k).lenEdge(e) << endl;
-	  }
-	  cout << " A triangle with a very small edges was created " << endl;
-	  return 1;
-	}
-      hmin=min(hmin,Th3.be(k).lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-    }
-  }
-
-  if(verbosity > 1) cout << "      - hmin =" <<  hmin << " ,  Bounding Box: " << Pinf << " "<< Psup << endl;
-
-  ffassert(hmin>Norme2(Psup-Pinf)/1e9);
-
-  // determination du nombre de sommets confondus
-  hseuil = hmin/10.;     
-  
-  if(verbosity >1) cout << "TestSameVertexMesh3 " << hseuil << " size" <<Th3.nv<< endl;
-  TestSameVertexMesh3( Th3, hseuil, Psup, Pinf, nv_t, Numero_Som );
-  
-  if(verbosity >1) cout << "hseuil=" << hseuil << endl; 
-  if(verbosity >1) cout << "NbVertexRecollement " << nv_t << " / " << "NbVertex(anc)" << Th3.nv <<endl;   
-
-  if(nv_t != Th3.nv) {
-   // delete [] Numero_Som;
-    cout << " A vertex was referenced twice or more " << endl;
-    return 1;
-  }
-  /* degenerate element ??? */ 
-  KN<int> Elem_ok(Th3.nt);
-  int i_elem=0;
-  for(int ii=0; ii< Th3.nt; ii++){
-    const Tet & K(Th3.elements[ii]);
-    int iv[4];
-    
-    Elem_ok[ii] = 1;
-    
-    for(int jj=0; jj <4; jj++){
-      iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-    }
-      
-    for(int jj=0; jj<4; jj++){
-      for(int kk=jj+1; kk<4; kk++){
-	if( iv[jj]==iv[kk] ){
-	  Elem_ok[ii] = 0;
-	}
-      }
-    }
-    i_elem = i_elem + Elem_ok[ii];
-  }
-   
-  if( i_elem != Th3.nt ){
-    cout << "There are a false tetrahedra in the mesh" << endl;
-    assert( i_elem == Th3.nt);
-  }
-
-  KN<int> Border_ok(Th3.nbe);
-  int i_border= 0;
-  for( int ii=0; ii< Th3.nbe; ii++){
-    Border_ok[ii]=1;
-    
-    const Triangle3 & K(Th3.be(ii));
-    int iv[3];
-    
-    for(int jj=0; jj <3; jj++){
-      iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-      assert( iv[jj] >= 0 && iv[jj] < nv_t);
-    }
-    
-    for(int jj=0; jj<3; jj++){
-      for(int kk=jj+1; kk<3; kk++){
-	if( iv[jj]==iv[kk] ) Border_ok[ii]=0;
-      }
-    }
-    i_border = i_border + Border_ok[ii];
-  }
-  
-  if( i_border != Th3.nbe){
-    cout << "There are a false tetrahedra in the mesh" << endl;
-    assert( i_elem == Th3.nt);
-  }
-
-  /* determination du nombre de tetrahedre confondus */ 
-  hseuil = hmin/10.;
-  hseuil = hseuil/4.;
-  
-  if(verbosity >1) cout << "TestSameTetrahedraMesh3 " << hseuil << " size "<< Th3.nt <<endl;
-  TestSameTetrahedraMesh3( Th3, hseuil, Psup, Pinf, Elem_ok, nt_t );
-
-  if(verbosity >1) cout << "hseuil=" << hseuil << endl; 
-  if(verbosity >1) cout << "NbTetrahedraRecollement " << nt_t << " / " << "NbVertex(anc)" << Th3.nt <<endl;  
-
-  if(nt_t != Th3.nt){
-    cout << " a tetrahedra was referenced twice or more " << endl;
-    return 1;
-  }
-  /* determination du nombre de triangles confondus */ 
-  hseuil = hmin/10.;
-  hseuil = hseuil/3.;
-  if(verbosity >1) cout << "TestSameTriangleMesh3 " << hseuil << endl;
-  TestSameTriangleMesh3( Th3, hseuil, Psup, Pinf, Border_ok,  nbe_t );
- 
-  if(verbosity >1) cout << "hseuil=" << hseuil << endl; 
-  if(verbosity >1) cout << "NbVertexRecollement " << nbe_t << " / " << "NbVertex(anc)" << Th3.nbe <<endl;  
-
-  if(nbe_t != Th3.nbe){
-    cout << " a triangle was referenced twice or more " << endl;
-    return 1;
-  }
-    
-  return 0;
-}
-
-
-Mesh3 *TestElementMesh3_patch( const Mesh3 & Th3 ) 
-// Test si le maillage � des �l�ments communs : Sommet, triangle, ...
-{
-  R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
-  double hmin=1e10;   // longueur minimal des arr�tes
-  double hseuil;
-  int *Numero_Som = new int [Th3.nv];
-  int nv_t,nt_t,nbe_t;
-  
-  // calcul de la boite englobante
-  for (int ii=0;ii<Th3.nv;ii++){ 
-    R3 P( Th3.vertices[ii].x, Th3.vertices[ii].y, Th3.vertices[ii].z);
-    Pinf=Minc(P,Pinf);
-    Psup=Maxc(P,Psup);     
-  }
-
-  // calcul de la longueur minimal des arr�tes
-  for (int k=0;k<Th3.nt;k++){
-    for (int e=0;e<6;e++){
-      if( Th3[k].lenEdge(e) < Norme2(Psup-Pinf)/1e9 ) continue;
-      hmin=min(hmin,Th3[k].lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-    }
-  }
-  
-  for (int k=0;k<Th3.nbe;k++){
-    for (int e=0;e<3;e++){
-      if( Th3[k].lenEdge(e) < Norme2(Psup-Pinf)/1e9 ) continue;
-      hmin=min(hmin,Th3.be(k).lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-    }
-  }
-
-  if(verbosity > 1) cout << "      - hmin =" <<  hmin << " ,  Bounding Box: " << Pinf << " "<< Psup << endl;
-
-  ffassert(hmin>Norme2(Psup-Pinf)/1e9);
-
-  // determination du nombre de sommets confondus
-  hseuil = hmin/10.;     
-  if(verbosity >1) cout << "TestSameVertexMesh3" << endl;
-  TestSameVertexMesh3( Th3, hseuil, Psup, Pinf, nv_t, Numero_Som );
-  
-  if(verbosity >1) cout << "hseuil=" << hseuil << endl; 
-  if(verbosity >1) cout << "NbVertexRecollement " << nv_t << " / " << "NbVertex(anc)" << Th3.nv <<endl;   
-
-  /* degenerate element ??? */ 
-  int *Elem_ok=new int[Th3.nt];
-  int i_elem=0;
-  for(int ii=0; ii< Th3.nt; ii++){
-    const Tet & K(Th3.elements[ii]);
-    int iv[4];
-    
-    Elem_ok[ii] = 1;
-    
-    for(int jj=0; jj <4; jj++){
-      iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-    }
-      
-    for(int jj=0; jj<4; jj++){
-      for(int kk=jj+1; kk<4; kk++){
-	if( iv[jj]==iv[kk] ){
-	  Elem_ok[ii] = 0;
-	}
-      }
-    }
-    i_elem = i_elem + Elem_ok[ii];
-  }
-   
-  if( i_elem != Th3.nt ){
-    cout << "There are a false tetrahedra in the mesh" << endl;
-    //assert( i_elem == Th3.nt);
-  }
-
-  int *Border_ok=new int[Th3.nbe];
-  int i_border= 0;
-  for( int ii=0; ii< Th3.nbe; ii++){
-    Border_ok[ii]=1;
-    
-    const Triangle3 & K(Th3.be(ii));
-    int iv[3];
-    
-    for(int jj=0; jj <3; jj++){
-      iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-      assert( iv[jj] >= 0 && iv[jj] < nv_t);
-    }
-    
-    for(int jj=0; jj<3; jj++){
-      for(int kk=jj+1; kk<3; kk++){
-	if( iv[jj]==iv[kk] ) Border_ok[ii]=0;
-      }
-    }
-    i_border = i_border + Border_ok[ii];
-  }
-  
-  if( i_border != Th3.nbe){
-    cout << "There are a false tetrahedra in the mesh" << endl;
-    //assert( i_elem == Th3.nt);
-  }
-
-  /* determination du nombre de tetrahedre confondus */ 
-  hseuil = hmin/10.;
-  hseuil = hseuil/4.;
-  nt_t=0;
-  TestSameTetrahedraMesh3( Th3, hseuil, Psup, Pinf, Elem_ok, nt_t );
-
-  if(verbosity >1) cout << "hseuil=" << hseuil << endl; 
-  if(verbosity >1) cout << "NbVertexRecollement " << nt_t << " / " << "NbVertex(anc)" << Th3.nt <<endl;  
-
-  /* determination du nombre de triangles confondus */ 
-  hseuil = hmin/10.;
-  hseuil = hseuil/3.;
-  TestSameTriangleMesh3( Th3, hseuil, Psup, Pinf, Border_ok,  nbe_t );
- 
-  if(verbosity >1) cout << "hseuil=" << hseuil << endl; 
-  if(verbosity >1) cout << "NbVertexRecollement " << nbe_t << " / " << "NbVertex(anc)" << Th3.nbe <<endl;  
-
-  Vertex3   *v= new Vertex3[nv_t];
-  Tet       *t= new Tet[nt_t];
-  Triangle3 *b= new Triangle3[nbe_t]; 
-  Tet       *tt=t;
-  Triangle3 *bb=b; 
-
-  EF23::GTree<Vertex3> *gtree = new EF23::GTree<Vertex3>(v,Pinf,Psup,0);
-
-  // determination des nouveaux sommets
-  int nbv = 0; 
-  hseuil = hmin/10.;
-  for (int ii=0;ii<Th3.nv;ii++){
-    const Vertex3 &vi(Th3.vertices[ii]); 
-    Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-      
-    if(!pvi){
-      v[nbv].x = vi.x;
-      v[nbv].y = vi.y;
-      v[nbv].z = vi.z;
-      v[nbv].lab = vi.lab;
-      gtree->Add( v[nbv++] );
-    }
-   
-  }
-  delete gtree;
-  assert(nbv == nv_t);
-
-  // determination des nouveaux tetrahedres
-  int nbt = 0; 
-  hseuil = hmin/10.;
-  hseuil = hseuil/4.;
-  for (int ii=0;ii<Th3.nt;ii++){
-    if(Elem_ok[ii] == 0) continue; 
-    const Tet  &K(Th3.elements[ii]);
-    int iv[4];
-    iv[0]=Numero_Som[Th3.operator()(K[0])];
-    iv[1]=Numero_Som[Th3.operator()(K[1])];
-    iv[2]=Numero_Som[Th3.operator()(K[2])];
-    iv[3]=Numero_Som[Th3.operator()(K[3])];
-    (tt++)->set(v,iv,K.lab);
- 
-  }
-  assert(nbv == nv_t);
-
-  // determination des nouveaux trianglesxs
-  int nbbe = 0; 
-  hseuil = hmin/10.;
-  hseuil = hseuil/4.;
-  for (int ii=0;ii<Th3.nbe;ii++){
-    if(Border_ok[ii] == 0) continue; 
-    const Triangle3 & K(Th3.be(ii));
-    int iv[3];
-    iv[0]=Numero_Som[Th3.operator()(K[0])]; 
-    iv[1]=Numero_Som[Th3.operator()(K[1])]; 
-    iv[2]=Numero_Som[Th3.operator()(K[2])]; 
-  
-    (bb++)->set(v,iv,K.lab);
-  }
-  assert(nbbe == nbe_t);
-
-  delete [] Numero_Som;
-  delete [] Border_ok;
-  delete [] Elem_ok;
-  
-  Mesh3 *Th3_new = new Mesh3(nv_t,nt_t,nbe_t,v,t,b); 
-  return Th3_new;
-}
-
-
-
-
-
-// TransfoMesh_v2.cpp
-
-
-// LayerMesh.cpp
-
-// remarque choix 2 est a encore a determiner
-double  zmin_func_mesh( const int choix, const double x, const double y  )
-{
-  
-  switch(choix){
-  case 0: 
-    return 0.;
-    break;
-  case 1:
-    return 0.;   
-    break;
-  case 2:
-    return sqrt(pow(x,2)+pow(y,2));
-    break;
-  default :
-    cout << "zmin_func no defined" << endl;
-    return 0.;
-  }
-}
-
-double  zmax_func_mesh( const int choix, const double x, const double y  ){
-  
-  switch(choix){
-  case 0: 
-    return 1.;
-    break;
-  case 1:
-    return 1.;   
-    break;
-  case 2:
-    return 3.+sqrt(pow(x,2)+pow(y,2));
-    break;
-  default :
-    cout << "zmaxfunc no defined" << endl;
-    return 0.;
-  }
-}
-
-int Ni_func_mesh( const int choix, const double x, const double y  ){
-  const int multi=1;
-  int res;
-  switch(choix){
-  case 0:
-    if( x==0. && y==0.){
-      res = 3;
-    }
-    if( x==1. && y==0.){
-      res = 5;
-    }
-    if( x==0. && y==1.){
-      res = 7;
-    }
-    if( x==0.5 && y==0.5){
-      res = 6;
-    }
-    return res ;
-    //return multi;
-    break;
-  case 1:
-    return 2;   
-    break;
-  case 2:
-    return int(multi*(3+sqrt(pow(x,2)+pow(y,2))));
-    break;
-  default :
-    cout << "Ni_func no defined" << endl;
-    return 0;
-  }
-}
-
-void discretisation_max_mesh(const int choix,  const Mesh & Th2, int & Nmax){  
-  int Ni;
-
-  Nmax = 0;  
-
-  /*for(int ii=0; ii < A2D.NbSommet2D;ii++){
-    Ni   = Ni_func( choix, A2D.CoorSommet2D[ii][0], A2D.CoorSommet2D[ii][1]); 
-  	Nmax = max(Ni,Nmax);
-  }
-  Nmax=4;*/
-  for(int ii=0; ii < Th2.nv; ii++){
-     const  Mesh::Vertex & P = Th2.vertices[ii];
-     Ni   = Ni_func_mesh( choix, P.x, P.y); 
-  	 Nmax = max(Ni,Nmax);
-  }
-}
-
-void tab_zmin_zmax_Ni_mesh(const int choix, const Mesh & Th2, int & Nmax,double *tab_zmin, double *tab_zmax,int *tab_Ni){
-   Nmax = 0;	
-   for(int ii=0; ii < Th2.nv; ii++){
-	 const  Mesh::Vertex & P = Th2.vertices[ii];
-     tab_Ni[ii] = Ni_func_mesh( choix, P.x, P.y);
-	 tab_zmin[ii] = zmin_func_mesh( choix, P.x, P.y );
-     tab_zmax[ii] = zmax_func_mesh( choix, P.x, P.y );    
-     Nmax = max(tab_Ni[ii],Nmax);
-   }
-}
-/* Fonction permettant de transformer maillage 2D en maillage 3D*/
-
-void Tet_mesh3_mes_neg(Mesh3 & Th3){
-    int iv[4];
-    int lab;
-    
-    for(int ii=0; ii< Th3.nt; ii++){
-      const Tet & K(Th3.t(ii));
-      lab   = K.lab;
- 
-      iv[0] = Th3.operator()(K[0]);
-      iv[2] = Th3.operator()(K[1]);
-      iv[1] = Th3.operator()(K[2]);
-      iv[3] = Th3.operator()(K[3]);
-      R3 A(Th3.vertices[iv[0]]);
-      R3 B(Th3.vertices[iv[1]]);
-      R3 C(Th3.vertices[iv[2]]);
-      R3 D(Th3.vertices[iv[3]]);
-      double mes=det(A,B,C,D)/6.;
-      Th3.t(ii).set(Th3.vertices, iv, lab,mes);	
-    }
-}
-
-//=======================================================================//
-//   Rajout pour s'assurer un unique label pour les vertices
-//=======================================================================//
-
-void build_layer_map_tetrahedra(const Mesh &Th2, map<int, int> &maptet ){
-  
-  int numero_label=0;
-  //cout << "in: buil_layer_map_tetrahedra" << endl;
-  for(int ii=0; ii< Th2.nt; ii++){
-    //cout << "ii= " << ii  << "Th2.nt=" << Th2.nt <<endl; 
-    const  Mesh::Triangle & K(Th2.t(ii));
-    map<int,int>::const_iterator imap=maptet.find(K.lab);
-    //cout << "K.lab= " << K.lab << endl; 
-    if(imap == maptet.end()){
-	maptet[ K.lab ] = K.lab; //  modif FH .. numero_label;
-      numero_label = numero_label+1;
-    }
-  }
-  //cout << "number of tetraedra label=" << numero_label << endl;
-}
-void build_layer_map_triangle(const Mesh &Th2, map<int, int> &maptrimil, map<int, int> &maptrizmax, map<int, int> &maptrizmin ){
-  
-  int numero_label=0;
-  //cout << "in: buil_layer_map_triangle" << endl;
-  for(int ii=0; ii< Th2.nt; ii++){
-    const Mesh::Triangle & K(Th2.t(ii));
-    map<int,int>::const_iterator imap=maptrizmax.find(K.lab);
-    
-    if(imap == maptrizmax.end()){
-	maptrizmax[ K.lab ] = K.lab;// modif FH jan 2010  numero_label;
-      numero_label = numero_label+1;
-    }
-  }
-  
-  for(int ii=0; ii< Th2.nt; ii++){
-    const Mesh::Triangle & K(Th2.t(ii));
-    map<int,int>::const_iterator imap=maptrizmin.find(K.lab);
-    
-    if(imap == maptrizmin.end()){
-	maptrizmin[ K.lab ] =  K.lab;// modif FH jan 2010 numero_label;
-      numero_label = numero_label+1;
-    }
-  }
-  
-  for(int ii=0; ii< Th2.neb; ii++){
-    const Mesh::BorderElement & K(Th2.be(ii));
-    map<int,int>::const_iterator imap=maptrimil.find(K.lab);
-    
-    if(imap == maptrimil.end()){
-	maptrimil[ K.lab ] = K.lab  ;//modif FH jan 2010 numero_label;
-      numero_label = numero_label+1;
-    }
-  }
-  
-}
-	
-void build_layer_map_edge(const Mesh &Th2, map<int, int> &mapemil, map<int, int> &mapezmax, map<int, int> &mapezmin ){
-  
-  int numero_label=0;
-		
-  for(int ii=0; ii< Th2.neb; ii++){
-    const Mesh::BorderElement & K(Th2.be(ii));
-    map<int,int>::const_iterator imap1=mapezmax.find(K.lab);
-    map<int,int>::const_iterator imap2=mapemil.find(K.lab);
-    map<int,int>::const_iterator imap3=mapezmin.find(K.lab);
-    
-    if(imap1 == mapezmax.end()){
-	mapezmax[ K.lab ] = K.lab ;//modif FH jan 2010 numero_label;
-      numero_label = numero_label+1;
-    }
-			
-    if(imap2 == mapemil.end()){
-      mapemil[ K.lab ] = K.lab ;//modif FH jan 2010 numero_label;numero_label;
-      numero_label = numero_label+1;
-    }
-    
-    if(imap3 == mapezmin.end()){
-      mapezmin[ K.lab ] = K.lab ;//modif FH jan 2010 numero_label;numero_label;
-      numero_label = numero_label+1;
-    }
-    
-  }
- 	
-}
-
-	
-Mesh3 * build_layer (const Mesh & Th2, const int Nmax, const int *tab_Ni, 
-		const double *tab_zmin, const double *tab_zmax, 
-		const map<int, int> &maptet, const map<int, int> &maptrimil, const map<int, int> &maptrizmax, const map<int, int> &maptrizmin, 
-		const map<int, int> &mapemil, const map<int, int> &mapezmax, const map<int, int> &mapezmin ){
-
-  int MajSom, MajElem, MajBord2D;     
-  Mesh3 *Th3=new Mesh3;
-  NbSom3D_NbElem3D_NbBord2D_mesh_product_mesh_tab( Nmax, tab_Ni, Th2, MajSom, MajElem, MajBord2D);   
-  if(verbosity > 1) cout << "MajSom = " <<  MajSom  << "  "  << "MajElem = " <<  MajElem  << " " << "MajBord2D =" << MajBord2D << endl;
-  
-  if(verbosity > 1) cout << "debut :   Th3.set(MajSom, MajElem, MajBord2D);     "<< endl;
-  Th3->set(MajSom,MajElem,MajBord2D);
-  
-  if(verbosity > 1) cout << "debut :   Som3D_mesh_product_Version_Sommet_mesh_tab( Nmax, tab_Ni, tab_zmin, tab_zmax, Th2, Th3);   "<< endl;
-  Som3D_mesh_product_Version_Sommet_mesh_tab( Nmax, tab_Ni, tab_zmin, tab_zmax, Th2, 
-			maptet, maptrimil, maptrizmax, maptrizmin, mapemil, mapezmax, mapezmin, *Th3);    
-  
-  
-  //  Add FH because remove in call function.. 
-  
-  Th3->BuildBound();
-  Th3->BuildAdj();
-  Th3->Buildbnormalv();  
-  Th3->BuildjElementConteningVertex();
-  
-    
-  return Th3;
-}
-
-void NbSom3D_NbElem3D_NbBord2D_mesh_product_mesh_tab(const int Nmax, const int *tab_Ni, const Mesh &Th2,  int &MajSom, int &MajElem, int &MajBord2D){  
-  int i;
-  
-  MajSom = 0;  
-  for(int ii=0; ii < Th2.nv;ii++){  
-    MajSom = MajSom + (tab_Ni[ii]+1);        
-  	assert(tab_Ni[ii]<=Nmax);
-  }
-
-  MajElem = 0;  
-  for(int ii=0; ii < Th2.nt; ii++){   
-    const Mesh::Triangle & K(Th2.t(ii));
-    for(int jj=0; jj < 3; jj++){ 
-      //i  = A2D.ElemPoint2D[ii][jj]; 
-      i  = Th2.operator()(K[jj]); 
-      MajElem = MajElem + tab_Ni[i]; 
-    }
-  }
-  
-  // determination of NbBord2D
-  MajBord2D = 2*Th2.nt;  
- 
-  for(int ii=0; ii < Th2.neb;ii++)
-    {
-      const Mesh::BorderElement  & K(Th2.be(ii));
-      for(int jj=0; jj < 2; jj++)
-	{  
-	  // i  = A2D.ElemBord1D[ii][jj];
-	  i=Th2.operator()(K[jj]); 
-	  
-	  MajBord2D = MajBord2D + tab_Ni[i];
-	  assert( tab_Ni[i] <= Nmax);	
-	}
-    }
-  //exit(1);
-}
-
-void Som3D_mesh_product_Version_Sommet_mesh_tab(const int Nmax, 
-			const int *tab_Ni, const double *tab_zmin, const double *tab_zmax, const Mesh &Th2, 
-			const map<int, int> &maptet, const map<int, int> &maptrimil, const map<int, int> &maptrizmax, const map<int, int> &maptrizmin, 
-			const map<int, int> &mapemil, const map<int, int> &mapezmax, const map<int, int> &mapezmin, 
-			Mesh3 & Th3){
-  // intent(in)  Nmax,Mesh &A2D
-  // intent(out) Mesh3 &A3D
-  
-  double val_zmin,val_zmax,val_dz;
-  int    Ni;
-  int    NumSommet;
-  int    NumElement;
-  KN<int>  tab_NumSommet(Th2.nv+1);
-
-  // variable tet
-  int    SommetPrisme[6];
- 
-  // variable creer pour le bord
-  int    i_ind1,Ni_ind1;
-  int    i_ind2,Ni_ind2; 
-  int    i_recoll_1pp,i_recoll_2pp; 
-  int    i_recoll_1, i_recoll_2; 
-  //int    pas_recoll_1, pas_recoll_2; 
-  int    type_dec_border; 
-  
-  // avec data
-  int i_recoll_jMax,i_recoll_jMaxpp;
-  int cas_decoupage; //, cas_data; 
-  int int_decoup[3] = {1,2,4};
-  int Ni_elem[3]; 
-  int DiagMax1,DiagMax2;
-
-  // determination of maximum label for vertices 
-  NumSommet = 0;
-
-  for( int ii=0; ii < Th2.nv; ii++){
-    const  Mesh::Vertex & P = Th2.vertices[ii];
-
-    val_zmin = tab_zmin[ii];
-    val_zmax = tab_zmax[ii];    
-    Ni       = tab_Ni[ii];
-
-   
-    //val_dz = (val_zmax - val_zmin)/Ni;
-    if( Ni == 0){
-      val_dz = 0.;
-    }
-    else{
-      val_dz = (val_zmax - val_zmin)/Ni;
-      //if( abs(val_dz) < 1e-9 ) Ni=0; 
-    }
-    
-
-    tab_NumSommet[ii] = NumSommet; // Numero du premier sommet 3D associ� au sommet 2D ii.
-    //cout << "ii, tab_NumSommet[ii]= "<< ii <<" "<< tab_NumSommet[ii] << endl;
-    
-    for(int j=0; j <= Ni; j++){ //changer
-      Th3.vertices[NumSommet].x = P.x; 
-      Th3.vertices[NumSommet].y = P.y; 
-      Th3.vertices[NumSommet].z = val_zmin + val_dz*j;
-
-      Th3.vertices[NumSommet].lab = P.lab; 
-      // cas maillage du bas et du haut, on un nouveau label
-      if(j==0)  Th3.vertices[NumSommet].lab = P.lab ;
-      if(j==Ni) Th3.vertices[NumSommet].lab = P.lab ;      
-      NumSommet = NumSommet+1;
-    }
-  
-  }
-  tab_NumSommet[Th2.nv] = NumSommet;
-
-  assert( NumSommet == Th3.nv );
-  
-  /*********************************/
-  /*  new label for edges of cube  */
-  /*********************************/ 
-  /*
-  cout << " new label for edges of cubes  " << endl;
-  for(int ii=0; ii < Th2.neb; ii++){ 
-	const Mesh::BorderElement & K(Th2.be(ii));
-	int ib[2];
-	ib[0] = Th2.operator()(K[0]);
-    ib[1] = Th2.operator()(K[1]);  
-    //map<int,int>:: const_iterator imap;
-    
-    for(int kk=0; kk<2;kk++){
-	    // label zmin
-	    map<int,int>:: const_iterator imap1;
-	    imap1=mapezmin.find( K.lab );
-
-	    assert( imap1!=mapezmin.end() );
-	    Th3.vertices[ tab_NumSommet[ib[kk]] ].lab = imap1->second;  
-	       
-	    // label zmax
-	    map<int,int>:: const_iterator imap2;
-	    imap2=mapezmax.find( K.lab );
-	    assert( imap2!=mapezmax.end() );
-	       
-	    Th3.vertices[ tab_NumSommet[ ib[kk] ] + tab_Ni[ib[kk]] ].lab = imap2->second; 
-	       
-	       // label c�t�
-	     map<int,int>:: const_iterator imap3;
-	     imap3=mapemil.find ( K.lab );
-	     assert( imap3!=mapemil.end() );
-	       
-	     for(int jj=1; jj < tab_Ni[ib[kk]]; jj++){
-		       Th3.vertices[ tab_NumSommet[ ib[kk] ] + jj ].lab = imap3->second;
-		 }
-		 }
-  }
-  */
-  
-  
-  //=======================================================================
-  // creation des bord du maillage 3D a partir du bord 1D et du maillage 2D
-  //=======================================================================
-
-  if(verbosity > 1) cout << "calcul element du bord " << endl;
- 
-  // A mettre plus haut
-  int ElemBord;
-
-  ElemBord = 0;
-
-  // bord d�finies en zmax
-  
-  for(int ii=0; ii < Th2.nt; ii++){
-    int ijj[3];
-    const Mesh::Element & K(Th2.t(ii));
-    int lab;
-    map<int,int>::const_iterator imap=maptrizmax.find(K.lab);
-    assert( imap!=maptrizmax.end() );
-    lab=imap->second;
-   
-    for(int kk=0; kk < 3; kk++){
-      ijj[kk] = Th2.operator()(K[kk]);
-      ijj[kk] = tab_NumSommet[ijj[kk]+1]-1;
-    }
-     
-    Th3.be(ElemBord).set(Th3.vertices,ijj,lab);
-    
-    ElemBord = ElemBord+1;
-  }
-
-  //cout << "bord en zmin" << endl;
- 
-  for(int ii=0; ii < Th2.nt; ii++){
-    int ijj[3];//bjj[3];
-    const Mesh::Element & K(Th2.t(ii));
-    int lab; 
-    map<int,int>::const_iterator imap=maptrizmin.find(K.lab);
-    assert( imap!=maptrizmin.end() );
-    lab = imap->second; 
-    
-  
-    for(int kk=0; kk < 3; kk++){
-      ijj[2-kk] = Th2.operator()(K[kk]);
-      //bjj[2-kk] = ijj[2-kk] ;
-      ijj[2-kk] = tab_NumSommet[ijj[2-kk]];
-    }
-
-    Th3.be(ElemBord).set(Th3.vertices,ijj,lab);
-
-    ElemBord = ElemBord+1;
-  }
-  
-  //cout << "bord sur le cote" << endl;
-
-  for(int ii=0; ii < Th2.neb; ii++){ // Th2.neb ??
-    int ijj[3];
-	
-    const Mesh::BorderElement & K(Th2.be(ii));
-    int lab;
-    
-    map<int,int>::const_iterator imap=maptrimil.find(K.lab);
-    assert( imap!=maptrimil.end() );
-    lab=imap->second;
-
-    int edgebid ;
-    int ffbid   = Th2.BoundaryElement( ii, edgebid );     // ii : number of edge => sortie :: ffbid = numero triangles, edgebid = numero edges
-    int j0bid,j1bid;
-    Th2.VerticesNumberOfEdge( Th2.t(ffbid), edgebid, j0bid, j1bid);
-
-    //bool ffsens = Th2.SensOfEdge( Th2.t(ffbid), edgebid ); // sens du parcours de la edge correcte ou non
-
-    /*
-      if( ffsens == true){
-      i_ind1  = Th2.operator()(K[0]);
-      i_ind2  = Th2.operator()(K[1]);
-      }
-      else{
-      i_ind1  = Th2.operator()(K[1]);
-      i_ind2  = Th2.operator()(K[0]);
-      }
-      
-
-      printf("value of vertex edge (verticesNumberOfEdge) :: %d--%d \n", j0bid, j1bid );
-      printf("value of vertex edge ( Th2.operator() ) :: %d--%d \n",  Th2.operator()(K[0]), Th2.operator()(K[1]) );
-      printf("value of vertex edge ( bool sens  ) :: %d--%d \n",  i_ind1, i_ind2 );
-    */
-    i_ind1 = j0bid;
-    i_ind2 = j1bid;
-
-
-    Ni_ind1 =  tab_Ni[i_ind1]; 
-    Ni_ind2 =  tab_Ni[i_ind2]; 
-	  
-    assert( Ni_ind1 <= Nmax);
-    assert( Ni_ind2 <= Nmax);
-	
-    for(int jNmax=Nmax-1; jNmax >=0; jNmax--){
-	    
-      /*
-      i_recoll_1pp = int((jNmax+1)*Ni_ind1/Nmax);
-      i_recoll_2pp = int((jNmax+1)*Ni_ind2/Nmax); 
-      
-      i_recoll_1 = int(jNmax*Ni_ind1/Nmax);
-      i_recoll_2 = int(jNmax*Ni_ind2/Nmax); 
-      */
-      
-      i_recoll_1 = int((jNmax+1)*Ni_ind1/Nmax);
-      i_recoll_2 = int((jNmax+1)*Ni_ind2/Nmax); 
-      
-      i_recoll_1pp = int(jNmax*Ni_ind1/Nmax);
-      i_recoll_2pp = int(jNmax*Ni_ind2/Nmax);
-      
-//       if( (i_ind1== 11 ||  i_ind1== 0) && (i_ind2==11 || i_ind2==0) ) {
-// 	printf("i_recoll1   %d,    i_recoll2 %d\n", i_recoll_1, i_recoll_2);
-// 	printf("i_recoll1pp %d,  i_recoll2pp %d\n", i_recoll_1pp, i_recoll_2pp);
-//       }
-      /*
-
-	1     ===   2 
-	
-	|           |
-	|           |
-	
-	1pp   ===   2pp   
-	
-	sens 2D : 1pp => 2pp et 1 => 2
-
-	type_dec_border = 0  tous les points sont confondus
-	type_dec_border = 1  les points 1pp et 1 sont differents
-	type_dec_border = 2  les points 2pp et 2 sont differents
-	type_dec_border = 3  les points 1pp et 1 et les points 2pp et 2 sont differents 
-
-	rappel :  1pp(0) 2pp(1) 2(2) 1(3) 
-	data_dec_border 1 :   {3 1 0}
-	data_dec_border 2 :   {2 1 0}
-	data_dec_border 3 : type1 : { {2 1 0}{0 3 2} }
-	                  : type2 : { {3 1 0}{1 3 2} }
-      */
-      type_dec_border = 0; 
-      
-      if( i_recoll_1pp != i_recoll_1){ 
-	type_dec_border = type_dec_border + 1;
-      }
-      
-      if( i_recoll_2pp != i_recoll_2){ 
-	type_dec_border = type_dec_border + 2;
-      }
-
-//   if( (i_ind1== 11 ||  i_ind1== 0) && (i_ind2==11 || i_ind2==0) ) 
-// 	cout << "type decoupage bord= " <<  type_dec_border <<endl;
-           
-      switch( type_dec_border ){
-      case 0:
-	// rien n a faire
-	break;
-      case 1:
-	// 2pp = 2
-	// avant 2,1,0 --> 0,1,2
-	ijj[0] = tab_NumSommet[i_ind1]+i_recoll_1pp;   
-	ijj[1] = tab_NumSommet[i_ind2]+i_recoll_2pp;
-	ijj[2] = tab_NumSommet[i_ind1]+i_recoll_1; 
-	
-	Th3.be(ElemBord).set(Th3.vertices,ijj,lab);
-	
-	ElemBord = ElemBord+1;
-	break;
-      case 2:
-	// 1pp = 1
-	// avant 2,1,0 --> 0,1,2
-	ijj[0] = tab_NumSommet[i_ind1]+i_recoll_1pp;
-	ijj[1] = tab_NumSommet[i_ind2]+i_recoll_2pp;
-	ijj[2] = tab_NumSommet[i_ind2]+i_recoll_2; 
-	
-	Th3.be(ElemBord).set(Th3.vertices,ijj,lab);
-	
-	ElemBord = ElemBord+1;
-	break;
-      case 3:
-	int idl;
-	// determination de la diagonale Max
-	DiagMax1 = max( tab_NumSommet[i_ind1]+i_recoll_1pp, tab_NumSommet[i_ind2]+i_recoll_2 );
-	DiagMax2 = max( tab_NumSommet[i_ind2]+i_recoll_2pp, tab_NumSommet[i_ind1]+i_recoll_1 );	
-
-	
-	if(DiagMax1 > DiagMax2){  
-	  idl = 1; 
-      
-	  ijj[0] = tab_NumSommet[i_ind1]+i_recoll_1pp;
-	  ijj[1] = tab_NumSommet[i_ind2]+i_recoll_2pp;
-	  ijj[2] = tab_NumSommet[i_ind2]+i_recoll_2; 
-	
-	  Th3.be(ElemBord).set(Th3.vertices,ijj,lab);
-
-	  ijj[0] = tab_NumSommet[i_ind2]+i_recoll_2;
-	  ijj[1] = tab_NumSommet[i_ind1]+i_recoll_1;
-	  ijj[2] = tab_NumSommet[i_ind1]+i_recoll_1pp; 
-	
-	  Th3.be(ElemBord+1).set(Th3.vertices,ijj,lab);
-
-	}
-	else{
-	  idl = 2;
-	  
-	  ijj[0] = tab_NumSommet[i_ind1]+i_recoll_1pp;
-	  ijj[1] = tab_NumSommet[i_ind2]+i_recoll_2pp;
-	  ijj[2] = tab_NumSommet[i_ind1]+i_recoll_1; 
-
-	  Th3.be(ElemBord).set(Th3.vertices,ijj,lab);
-	  
-	  ijj[0] = tab_NumSommet[i_ind2]+i_recoll_2;
-	  ijj[1] = tab_NumSommet[i_ind1]+i_recoll_1;
-	  ijj[2] = tab_NumSommet[i_ind2]+i_recoll_2pp; 
-
-	  Th3.be(ElemBord+1).set(Th3.vertices,ijj,lab);
-	}
-	//cout << "idl=" << idl << endl; 
-	ElemBord = ElemBord+2;
-	break;
-      default:
-	break;
-      }     
-    }    
-  }
-  
-  assert( ElemBord == Th3.nbe );
-  //=========================================
-  // Creation + determination tetraedre
-
-  if(verbosity > 1) cout << "calcul element tetraedre " << endl;
-  
-  NumElement =  0;
-
-  for(int ii=0; ii < Th2.nt; ii++){
-      /*  
-	  nouvelle numerotation : 
-	  -----------------------
-	  Valeur de cas_deoupage
-	  -----------------------
-	  1 : sommet 0 et 3 differents
-	  2 : sommet 1 et 4 differents
-	  4 : sommet 2 et 5 differents
-	  ============================
-	  3 : sommet 0 et 3 differents + sommet 1 et 4 differents
-	  5 : sommet 0 et 3 differents + sommet 2 et 5 differents
-	  6 : sommet 1 et 4 differents + sommet 2 et 5 differents
-	  ============================
-	  7 : aucun sommets confondus
-
-	  data_tetraedre 
-	  ==============
-	  1: 0++,1++,2++,SomDiff :  {0 1 2 3}        :: data 1
-	  2: 0++,1++,2++,SomDiff :  {0 1 2 4}        :: data 2
-	  4: 0++,1++,2++,SomDiff :  {0 1 2 5}        :: data 3
-	  ==============
-	  = deux cas possible depend du sommet le plus grand : Sommet le plus grand est un ++
-	  = 0++,1++,2++,SomDiffMin  ||  SomDiffMax++, j_SomDiff_py[j_SomEgal][0], j_SomDiff_py[j_SomEgal][1], Som_Egal 
-	  3:a: SommetMax diag 04  {0,1,2,4} {5,4,3,0} :: data 4
-	  3:b: SommetMax diag 13  {0,1,2,3} {5,4,3,1} :: data 5
-	  =============================================
-	  5:a: SommetMax diag 05  {0,1,2,5} {5,4,3,0} :: data 6
-	  5:b: SommetMax diag 23  {0,1,2,3} {5,4,3,2} :: data 7
-	  =============================================
-	  6:a: SommetMax diag 15  {0,1,2,5} {5,4,3,1} :: data 8
-	  6:b: SommetMax diag 24  {0,1,2,4} {5,4,3,2} :: data 9
-	  =============================================
-	  7: aller chercher dans la fonction          :: data 10 a data 
-	  == voir hecht routine
-
-      */
-      const Mesh::Element & K(Th2.t(ii));
-      int somv[4];
-      int K_jj[3];
-      int lab;
-      
-      map<int,int>::const_iterator imap=maptet.find(K.lab); 
-      assert( imap != maptet.end() );
-      lab=imap->second;
-     
-      // valeur de Nombre de points
-      for(int jj=0; jj <3; jj++){
-        K_jj[jj] = Th2.operator()(K[jj]);   
-        Ni_elem[jj] = tab_Ni[ K_jj[jj] ];    
-      }
-     
-      for(int jNmax=Nmax-1; jNmax >=0; jNmax--){
-	// determination des sommets + cas decoupage
-	cas_decoupage = 0;
-	for(int jj=0; jj<3; jj++){
-	  
-	  i_recoll_jMax   = int( (jNmax)*Ni_elem[jj]/Nmax );
-	  i_recoll_jMaxpp = int( (jNmax+1)*Ni_elem[jj]/Nmax );
-	  
-	  SommetPrisme[jj+3] = tab_NumSommet[ K_jj[jj] ] + i_recoll_jMaxpp;
-	  SommetPrisme[jj] = tab_NumSommet[ K_jj[jj] ] + i_recoll_jMax;
-	  
-	  assert( SommetPrisme[jj]   <= Th3.nv);
-	  assert( SommetPrisme[jj+3] <= Th3.nv);
-	  if( i_recoll_jMax != i_recoll_jMaxpp) cas_decoupage = cas_decoupage + int_decoup[jj];
-	}
-	
-	//cout << "cas du decoupage= " << cas_decoupage << endl;
-	
-	switch( cas_decoupage ){
-	  
-	case 0 : 
-	// les points sont tous confondus pas d ajout element : rien a faire
-	  break;
-	  /*
-	    CAS CREATION D UN TETRAEDRE : cas decoupage 1 2 4
-	    
-	  */
-	case 1 :
-	  // On a un tetraedre
-	
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1]; 
-	  somv[2] = SommetPrisme[2]; 
-	  somv[3] = SommetPrisme[3];
-	  
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	
-	  
-	  NumElement = NumElement+1;
-	  break;
-	case 2 :
-	  // On a un tetraedre
-	  
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1]; 
-	  somv[2] = SommetPrisme[2]; 
-	  somv[3] = SommetPrisme[4];
-
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	
-	  
-	  NumElement = NumElement+1;
-	  break;
-	case 4 :
-	  // On a un tetraedre
-	  
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1]; 
-	  somv[2] = SommetPrisme[2]; 
-	  somv[3] = SommetPrisme[5];
-	  
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	
-	
-	  NumElement = NumElement+1;
-	  break;
-	/*
-	  On a une pyramide a base rectangle: decoupe deux tetraedres
-	  cas decoupage 3 5 6
-	*/
-      case 3 :
-	// determination de la diagonale dominante
-	DiagMax1 = max( SommetPrisme[0], SommetPrisme[4] );
-	DiagMax2 = max( SommetPrisme[1], SommetPrisme[3] );
-	
-	//cout << "DiagMax1=" << DiagMax1 << " "<< SommetPrisme[0]<<" " <<SommetPrisme[4] << endl;
-
-	if( DiagMax1 > DiagMax2){
-	  //------------------
-	  // premier tetraedre 
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1];	
-	  somv[2] = SommetPrisme[2];
-	  somv[3] = SommetPrisme[4]; 
-	  
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	
-	  // deuxieme tetraedre
-	  somv[0] = SommetPrisme[5];
-	  somv[1] = SommetPrisme[4];	
-	  somv[2] = SommetPrisme[3];
-	  somv[3] = SommetPrisme[0]; 
-	  
-	  Th3.elements[NumElement+1].set(Th3.vertices, somv, lab);	
-	}			  
-	else{
-	  //------------------
-	  // premier tetraedre 
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1];	
-	  somv[2] = SommetPrisme[2];
-	  somv[3] = SommetPrisme[3];
-	  
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	 
-	  // deuxieme tetraedre
-	  somv[0] = SommetPrisme[5];
-	  somv[1] = SommetPrisme[4];	
-	  somv[2] = SommetPrisme[3];
-	  somv[3] = SommetPrisme[1]; 
-	  
-	  Th3.elements[NumElement+1].set(Th3.vertices, somv, lab);	
-	}
-      
-	NumElement = NumElement+2;
-	break;
-
-      case 5 :
-	// determination de la diagonale dominante
-	DiagMax1 = max( SommetPrisme[0], SommetPrisme[5] );
-	DiagMax2 = max( SommetPrisme[2], SommetPrisme[3] );
-	
-	//cout << "DiagMax1=" << DiagMax1 << " "<< SommetPrisme[0]<<" " <<SommetPrisme[5] << endl;
-
-	if( DiagMax1 > DiagMax2){
-	  //------------------
-	  // premier tetraedre 
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1];	
-	  somv[2] = SommetPrisme[2];
-	  somv[3] = SommetPrisme[5];
-	  
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	 
-	  // deuxieme tetraedre
-	  somv[0] = SommetPrisme[5];
-	  somv[1] = SommetPrisme[4];	
-	  somv[2] = SommetPrisme[3];
-	  somv[3] = SommetPrisme[0]; 
-	  
-	  Th3.elements[NumElement+1].set(Th3.vertices, somv, lab);	
-	}			  
-	else{
-	  //------------------
-	  // premier tetraedre 
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1];	
-	  somv[2] = SommetPrisme[2];
-	  somv[3] = SommetPrisme[3];
-	  
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	 
-	  // deuxieme tetraedre
-	  somv[0] = SommetPrisme[5];
-	  somv[1] = SommetPrisme[4];	
-	  somv[2] = SommetPrisme[3];
-	  somv[3] = SommetPrisme[2]; 
-	  
-	  Th3.elements[NumElement+1].set(Th3.vertices, somv, lab);	
-	}
-      
-	NumElement = NumElement+2;
-	break;
-
-      case 6 :
-	// determination de la diagonale dominante
-	DiagMax1 = max( SommetPrisme[1], SommetPrisme[5] );
-	DiagMax2 = max( SommetPrisme[2], SommetPrisme[4] );
-
-	//cout << "DiagMax1=" << DiagMax1 << " "<< SommetPrisme[1]<<" " <<SommetPrisme[5] << endl;
-	
-	if( DiagMax1 > DiagMax2){
-	  //------------------
-	  // premier tetraedre 
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1];	
-	  somv[2] = SommetPrisme[2];
-	  somv[3] = SommetPrisme[5];
-	  
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	 
-	  // deuxieme tetraedre
-	  somv[0] = SommetPrisme[5];
-	  somv[1] = SommetPrisme[4];	
-	  somv[2] = SommetPrisme[3];
-	  somv[3] = SommetPrisme[1]; 
-	  
-	  Th3.elements[NumElement+1].set(Th3.vertices, somv, lab);	
-	}			  
-	else{
-	  //------------------
-	  // premier tetraedre 
-	  somv[0] = SommetPrisme[0];
-	  somv[1] = SommetPrisme[1];	
-	  somv[2] = SommetPrisme[2];
-	  somv[3] = SommetPrisme[4];
-	  
-	  Th3.elements[NumElement].set(Th3.vertices, somv, lab);	 
-	  // deuxieme tetraedre
-	  somv[0] = SommetPrisme[5];
-	  somv[1] = SommetPrisme[4];	
-	  somv[2] = SommetPrisme[3];
-	  somv[3] = SommetPrisme[2]; 
-	  
-	  Th3.elements[NumElement+1].set(Th3.vertices, somv, lab);	
-	}
-      
-	NumElement = NumElement+2;
-	break;
-
-      case 7 :
-	// on a un prisme 
-	int nbe;
-	int option=1;
-	int idl[3];
-	int nu[12];
-	
-	DiagMax1 = max( SommetPrisme[0], SommetPrisme[5] );
-	DiagMax2 = max( SommetPrisme[2], SommetPrisme[3] );	
-	
-	// determination de idl
-	// idl[0] : choix sommet 0 ou 2 (dpent1 equivalent 1 ou 3)
-	
-	if(DiagMax1 > DiagMax2){  
-	  idl[0]=1;
-	}
-	else{
-	  idl[0]=2;
-	}
-    
-	DiagMax1 = max( SommetPrisme[0], SommetPrisme[4] );
-	DiagMax2 = max( SommetPrisme[1], SommetPrisme[3] );	
-	
-	// idl[1] : choix sommet 0 ou 1 (dpent1 equivalent 1 ou 2)	
-    if(DiagMax1 > DiagMax2){
-	  idl[1]=1;
-	}
-	else{
-	  idl[1]=2;
-	}
-	
-	DiagMax1 = max( SommetPrisme[1], SommetPrisme[5] );
-	DiagMax2 = max( SommetPrisme[2], SommetPrisme[4] );	
-	
-	// idl[2] : choix sommet 1 ou 2 (dpent1 equivalent 2 ou 3)	
-	if(DiagMax1 > DiagMax2){
-	  idl[2]=1;
-	}
-	else{
-	  idl[2]=2;
-	}
-	//cout << "idl[0] << << idl[1] << << idl[2]" << endl;
-	//cout << idl[0] << " " << idl[1] << "  "<< idl[2] << endl;
-	
-	nbe = 0;
-
-	dpent1_mesh( idl, nu, nbe, option);
-      
-	if(nbe!=3){cout << nbe << endl; cerr << "probleme dans dpent1_mesh" << endl;  };
-	
-	//------------------
-	// premier tetraedre 
-	somv[0] = SommetPrisme[nu[0]];
-	somv[1] = SommetPrisme[nu[1]];	
-	somv[2] = SommetPrisme[nu[2]];	
-	somv[3] = SommetPrisme[nu[3]];
-	
-	Th3.elements[NumElement].set(Th3.vertices, somv, lab);		
-	// deuxieme tetraedre
-	somv[0] = SommetPrisme[nu[4]]; 
-	somv[1] = SommetPrisme[nu[5]]; 
-	somv[2] = SommetPrisme[nu[6]]; 
-	somv[3] = SommetPrisme[nu[7]];
-	
-	Th3.elements[NumElement+1].set(Th3.vertices, somv, lab);	 	
-	// troisieme tetraedre
-	somv[0] = SommetPrisme[nu[8]]; 
-	somv[1] = SommetPrisme[nu[9]]; 
-	somv[2] = SommetPrisme[nu[10]]; 
-	somv[3] = SommetPrisme[nu[11]]; 
-	
-	Th3.elements[NumElement+2].set(Th3.vertices, somv, lab);	
-	
-	NumElement = NumElement+3;
-	break;
-      }
-      
-   }
-  // Au final : les sommers des tetraedres et la conectivit� des tetraedres finaux
-  assert(NumElement <= Th3.nt);
-  }
-
-}
-
-void dpent1_mesh(int idl[3],int nu[12],int &nbe,int &option){
-  // intent(inout)  :: idl
-  // intent(out)    :: nu,nbe,option
-  // option ne sert � rien
-  //* version simplifie pour le mailleur par couche 2D 3D
-  //-----------------------------------------------------------------------
-  //      subroutine dpent1 (idl,nu,nbe,option)
-  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-  //                s.p. dpent1
-  // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-  //  but : decoupe un pentaedre en 3 tetreadres suivant la decoupe des 3
-  // ---   faces frontieres a 4 cotes
-  // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-  //  parametres en entre :
-  //   idl : parametre de decoupe de face calculer comme ceci :
-  //       si idl(i) = 0 alors la face n'est pas  decoupee
-  //       idl(1)= 1 si la face 1463 est decoupe par l'arete 16 ,sinon 2
-  //       idl(2)= 1 si la face 1254 est decoupe par l'arete 15 ,sinon 2
-  //       idl(3)= 1 si la face 2365 est decoupe par l'arete 26 ,sinon 2
-  //          id = i1 + i2 * 2 + i3 * 4
-  //  parametres en sortie :
-  //   nbe : nbe de tetraedre de la decoupe
-  //         nbe = 0 => decoup impossible
-  //         nbe = 3 => decoup possible le tableau nu est genere
-  //   nu(1:4,1:nbe) : tableau de numero des sommet 3 tetraedres dans le
-  //                   pentaedre
-  // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-  //  programmation : f77 ->c++ subroutine de f. hecht upmc 
-
-  int idp[8];
-  int i1,i2,i3,i,nbdp,idf,idecou;
-  const int pdd[8] = {1,0,2,3,4,5,0,6};
-
-  int mu[6][12];
-  const int mu0[12] = {1,6,2,3, 1,5,2,6, 1,6,4,5};
-  const int mu1[12] = {1,6,2,3, 1,4,2,6, 2,6,4,5};
-  const int mu2[12] = {1,4,2,3, 2,6,3,4, 2,6,4,5};
-  const int mu3[12] = {1,5,2,3, 1,5,3,6, 1,6,4,5};
-  const int mu4[12] = {1,5,2,3, 1,5,3,4, 3,6,4,5};
-  const int mu5[12] = {1,4,2,3, 2,5,3,4, 3,6,4,5};
-
-  for(int jj=0; jj<12; jj++){
-    mu[0][jj] = mu0[jj];
-    mu[1][jj] = mu1[jj];
-    mu[2][jj] = mu2[jj];
-    mu[3][jj] = mu3[jj];
-    mu[4][jj] = mu4[jj];
-    mu[5][jj] = mu5[jj];
-  }
-
-  // calcul des descoupes possible du pentaedre
-  idf  = -1;
-  nbdp =  0;
-
-  for(i3=1; i3<=2; i3++){
-    for(i2=1; i2<=2; i2++){
-      for(i1=1; i1<=2; i1++){
-	idf=idf+1;
-	if( (pdd[idf] != 0) 
-	    && (  idl[0]==0  || idl[0]==i1 )
-	    && (  idl[1]==0  || idl[1]==i2 )
-	    && (  idl[2]==0  || idl[2]==i3 ) ){
-	  //nbdp=nbdp+1;
-	  idp[nbdp]=idf;
-	  nbdp=nbdp+1;
-	}
-      }
-    }
-  }
-  
-  if(nbdp == 0){
-    nbe=0;
-  }
-  else{
-    nbe=3;
-    idf=idp[0];
-    idecou=pdd[idf];
-   /* i=idf;  
-    j=i/4;
-    i=i-4*j;
-    idl[2]=j+1;
-    j=i/2;
-    idl[1]=j+1;
-    idl[0]=i-2*j+1;
-    //cout << "idecou= " << idecou << endl;*/
-    for(i=0; i<12;i++){
-      nu[i]=mu[idecou-1][i]-1;
-      //cout << "i, nu[i] "<< i <<" " << nu[i] << endl;
-    }
-  }
-
-  }
-//----------------------------------------------------------------------- 
-
-
-
-
-
-
-// glumesh3D
-
-class listMesh3 { 
-public:
-  list<Mesh3 *> *lth;
-  void init()  { lth=new list<Mesh3 *>;}
-  void destroy() { delete lth;}
-  listMesh3(Stack s,Mesh3 *th) : lth(Add2StackOfPtr2Free(s,new list<Mesh3*>)) { lth->push_back(th);}
-  listMesh3(Stack s,Mesh3 *tha,Mesh3 *thb) : lth(Add2StackOfPtr2Free(s,new list<Mesh3*>)) { lth->push_back(tha);lth->push_back(thb);}
-  listMesh3(Stack s,const listMesh3 &l,Mesh3 *th) : lth(Add2StackOfPtr2Free(s,new list<Mesh3*>(*l.lth))) { lth->push_back(th);}
-
-};
-
-Mesh3 * GluMesh3(listMesh3 const & lst)
-{ 
-  int flagsurfaceall = 0;
-
-  int nbt=0;
-  int nbe=0;
-  int nbex=0;
-  int nbv=0;
-  int nbvx=0;
-  
-  double hmin=1e100;
-  R3 Pn(1e100,1e100,1e100),Px(-1e100,-1e100,-1e100);
-  const list<Mesh3 *> lth(*lst.lth);
-  Mesh3 * th0=0;
-  int kk=0; 
-  for(list<Mesh3 *>::const_iterator i=lth.begin();i != lth.end();i++)
-    {
-      if( ! *i) continue ;
-      kk++;
-      Mesh3 &Th3(**i);  // definis ???
-      th0=&Th3;
-      if(verbosity>1)  cout << " determination of hmin : GluMesh3D + "<< Th3.nv << " " << Th3.nt << " "<< Th3.nbe << endl;
-      
-      nbt  += Th3.nt;
-      nbvx += Th3.nv;
-      nbex += Th3.nbe;
-      
-      for (int k=0;k<Th3.nt;k++){
-	for (int e=0;e<6;e++){
-	  hmin=min(hmin,Th3[k].lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-	}
-      }
-      
-      for (int k=0;k<Th3.nbe;k++){
-	for (int e=0;e<3;e++){
-	  hmin=min(hmin,Th3.be(k).lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-	}
-      }
-      
-      for (int ii=0;ii<Th3.nv;ii++){ 
-	R3 P( Th3.vertices[ii].x, Th3.vertices[ii].y, Th3.vertices[ii].z);
-	Pn=Minc(P,Pn);
-	Px=Maxc(P,Px);     
-      }
-    } 
-  if(kk==0) return 0; // no mesh ....
-
-  if(verbosity > 1) cout << "      - hmin =" <<  hmin << " ,  Bounding Box: " << Pn << " "<< Px << endl;
-  
-  // probleme memoire
-  Vertex3  *v= new Vertex3[nbvx];
-  Tet      *t;
-  if(nbt!=0) t= new Tet[nbt];
-  Tet      *tt=t;
-  Triangle3 *b= new Triangle3[nbex];
-  Triangle3 *bb= b;
-  
-  ffassert(hmin>Norme2(Pn-Px)/1e9);
-  double hseuil =hmin/10.; 
-
-  //int *NumSom= new int[nbvx];
-
-  // VERSION morice
-  if(verbosity > 1) cout << " creation of : BuildGTree" << endl;   
-  EF23::GTree<Vertex3> *gtree = new EF23::GTree<Vertex3>(v,Pn,Px,0);  
-  
-  nbv=0;
-  //int nbv0=0;
-  for(list<Mesh3 *>::const_iterator i=lth.begin(); i!=lth.end();i++)
-    {
-      if( ! *i) continue ;
-      const Mesh3 &Th3(**i);
-      if(verbosity>1)  cout << " loop over mesh for create new mesh "<< endl;
-      if(verbosity>1)  cout << " GluMesh3D + "<< Th3.nv << " " << Th3.nt <<" " << Th3.nbe << endl;
-      //nbv0 =+Th3.nv;
-      
-      for (int ii=0;ii<Th3.nv;ii++){
-	const Vertex3 &vi(Th3.vertices[ii]);
-	Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-
-	   
-	if(!pvi){
-	  v[nbv].x = vi.x;
-	  v[nbv].y = vi.y;
-	  v[nbv].z = vi.z;
-	  v[nbv].lab = vi.lab;
-	  //NumSom[ii+nbv0] = nbv;
-	  gtree->Add( v[nbv] );
-	  nbv++;
-	}
-	/*
-	  else{
-	  NumSom[ii+nbv0] = pvi-v;
-	  assert(pvi-v <nbv); 
-	  }
-	*/
-      }
-	  
-      for (int k=0;k<Th3.nt;k++){
-	const Tet  &K(Th3.elements[k]);
-	int iv[4];
-	iv[0]=gtree->ToClose(K[0],hseuil)-v;
-	iv[1]=gtree->ToClose(K[1],hseuil)-v;
-	iv[2]=gtree->ToClose(K[2],hseuil)-v;  
-	iv[3]=gtree->ToClose(K[3],hseuil)-v;  
-	(tt++)->set(v,iv,K.lab);
-      }
-      //nbv0 =+Th3.nv;
-    }
-  
-  if(verbosity > 1) cout << " creation of : BuildGTree for border elements" << endl;
-  Vertex3  *becog= new Vertex3[nbex];  
-  //Vertex3  becog[nbex]; 
-  EF23::GTree<Vertex3> *gtree_be = new EF23::GTree<Vertex3>(becog,Pn,Px,0);
-  
-  double hseuil_border = hseuil/3.;
-  //nbv0=0;
-  for(list<Mesh3 *>::const_iterator i=lth.begin();i != lth.end();i++)
-    {
-      if( ! *i) continue ;
-      const Mesh3 &Th3(**i);
-      
-    for (int k=0;k<Th3.nbe;k++)
-      {
-	const Triangle3 & K(Th3.be(k));
-	int iv[3];
-	iv[0]=Th3.operator()(K[0]); 
-	iv[1]=Th3.operator()(K[1]); 
-	iv[2]=Th3.operator()(K[2]); 
-
-	R cdgx,cdgy,cdgz;
-	  
-	cdgx = (Th3.vertices[iv[0]].x+ Th3.vertices[iv[1]].x+ Th3.vertices[iv[2]].x)/3.;
-	cdgy = (Th3.vertices[iv[0]].y+ Th3.vertices[iv[1]].y+ Th3.vertices[iv[2]].y)/3.;
-	cdgz = (Th3.vertices[iv[0]].z+ Th3.vertices[iv[1]].z+ Th3.vertices[iv[2]].z)/3.;
-	 
-	const R3 r3vi( cdgx, cdgy, cdgz ); 
-	const Vertex3 &vi( r3vi);
-	    
-	Vertex3 * pvi=gtree_be->ToClose(vi,hseuil_border);
-	if(!pvi){
-	  becog[nbe].x = vi.x;
-	  becog[nbe].y = vi.y;
-	  becog[nbe].z = vi.z;
-	  becog[nbe].lab = vi.lab;
-	  gtree_be->Add( becog[nbe++]);
-		  
-	  int igluv[3];
-	  igluv[0]= gtree->ToClose(K[0],hseuil)-v; //NumSom[iv[0]+nbv0];  
-	  igluv[1]= gtree->ToClose(K[1],hseuil)-v; //NumSom[iv[1]+nbv0]; 
-	  igluv[2]= gtree->ToClose(K[2],hseuil)-v; //NumSom[iv[2]+nbv0]; 
-	 
-	  (bb++)->set(v,igluv,K.lab);
-	}
-      }
-    //nbv0 =+Th3.nv;
-  }
-  delete gtree;
-  delete gtree_be;
-  delete [] becog;
-  
-  if(verbosity > 2) cout << " nbv="  << nbv  << endl;
-  if(verbosity > 2) cout << " nbvx=" << nbvx << endl;
-  if(verbosity > 2) cout << " nbt="  << nbt  << endl;
-  if(verbosity > 2) cout << " nbe="  << nbe  << endl;
-  if(verbosity > 2) cout << " nbex=" << nbex << endl;
-  if(verbosity>1)
-    {
-      cout << "     Nb of glu3D  point " << nbvx-nbv;
-      cout << "     Nb of glu3D  Boundary faces " << nbex-nbe << endl;
-    }
-
-  if(nbt==0){
-    Mesh3 *mpq= new Mesh3(nbv,nbe,v,b);  
-    if(flagsurfaceall==1) mpq->BuildBoundaryElementAdj();
-    return mpq;
-  }
-  else{
-    Mesh3 *mpq= new Mesh3(nbv,nbt,nbe,v,t,b);  
- /* 
-    mpq->BuildBound();
-    if(verbosity > 1) cout << "fin de BuildBound" << endl;
-    mpq->BuildAdj();
-    if(verbosity > 1) cout << "fin de BuildAdj" << endl;
-    mpq->Buildbnormalv();  
-    if(verbosity > 1) cout << "fin de Buildnormalv()" << endl;
-    mpq->BuildjElementConteningVertex();
-    if(verbosity > 1) cout << "fin de ConteningVertex()" << endl;
-  */
-    mpq->BuildGTree();
-    if(verbosity > 2) cout << "fin de BuildGTree()" << endl;
-    
-    //Add2StackOfPtr2FreeRC(stack,mpq);
-  
-    return mpq;
-  }
-}
-
-
-template<class RR,class AA=RR,class BB=AA> 
-struct Op3_addmesh: public binary_function<AA,BB,RR> { 
-  static RR f(Stack s,const AA & a,const BB & b)  
-  { return RR(s, a, b );} 
-};
-
-template<bool INIT,class RR,class AA=RR,class BB=AA> 
-struct Op3_setmesh: public binary_function<AA,BB,RR> { 
-  static RR f(Stack stack,const AA & a,const BB & b)  
-  {
-    ffassert(a );
-    pmesh3  p=GluMesh3(b);
-    
-    if(!INIT && *a){
-      //Add2StackOfPtr2FreeRC(stack,*a);
-       (**a).destroy();
-      cout << "destruction du pointeur" << endl;
-    }
-    //Add2StackOfPtr2FreeRC(stack,p); //  the pointer is use to set variable so no remove. 
-    *a=p;
-    return a;
-  } 
-};
-
-// Movemesh3D
-
-class Movemesh3D_Op : public E_F0mps 
-{
-public:
-  Expression eTh;
-  Expression xx,yy,zz;
-  //Expression  lab,reg;  
-  static const int n_name_param =7+2; // add FH for cleanning name  //  "+1" add to reorient tetrahedrons
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,int ii,Stack stack,KN_<long> a ) const
-    {  ffassert( ! (nargs[i] && nargs[ii]) ); i= nargs[i] ? i : ii;
-	return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long  arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-public:
-/*  Movemesh3D_Op(const basicAC_F0 &  args,Expression tth)
-    : eTh(tth), xx(0) , yy(0) , zz(0)
-  {
-    args.SetNameParam(n_name_param,name_param,nargs);
-    const E_Array * a1=0 ;
-    if(nargs[0])  a1  = dynamic_cast<const E_Array *>(nargs[0]);
-    int err =0;
-    if( nargs[1] && nargs[7] ) 
-	CompileError("uncompatible movemesh3 (Th, region= , reftet=  ");
-    if( nargs[2] && nargs[8] ) 
-	CompileError("uncompatible movemesh3 (Th, label= , refface=  ");
-
-    if(a1) {
-      if(a1->size() !=3) 
-	CompileError("movemesh3 (Th,transfo=[X,Y,Z],) ");
-      xx=to<double>( (*a1)[0]); 
-      yy=to<double>( (*a1)[1]);
-      zz=to<double>( (*a1)[2]);
-    }    
-  }*/
-    Movemesh3D_Op(const basicAC_F0 &  args,Expression tth,Expression xxx=0,Expression yyy=0,Expression zzz=0  )
-    : eTh(tth), xx(xxx) , yy(yyy) , zz(zzz)
-    {
-        args.SetNameParam(n_name_param,name_param,nargs);
-        const E_Array * a1=0 ;
-        if(nargs[0])  a1  = dynamic_cast<const E_Array *>(nargs[0]);
-        int err =0;
-        if( nargs[1] && nargs[7] )
-            CompileError("uncompatible movemesh3 (Th, region= , reftet=  ");
-        if( nargs[2] && nargs[8] )
-            CompileError("uncompatible movemesh3 (Th, label= , refface=  ");
-        
-        if(a1) {
-            if(a1->size() !=3 ||  xx || yy || zz)
-                CompileError("movemesh3 (Th,transfo=[X,Y,Z],) ");
-            xx=to<double>( (*a1)[0]);
-            yy=to<double>( (*a1)[1]);
-            zz=to<double>( (*a1)[2]);
-        }    
-    } 
-    
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type Movemesh3D_Op::name_param[]= {
-  {  "transfo", &typeid(E_Array)}, //0
-  {  "reftet", &typeid(KN_<long>)},// 1
-  {  "refface", &typeid(KN_<long>)},
-  {  "ptmerge", &typeid(double)},
-  {  "facemerge",&typeid(long)},
-  {  "boolsurface",&typeid(long)}, // 5
-  {  "orientation",&typeid(long)},
-  {  "region", &typeid(KN_<long> )}, //7 
-  {  "label", &typeid(KN_<long> )} // 8
-  // option a rajouter
-  // facemerge 0,1 + label
-};
-
-AnyType Movemesh3D_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  
-  ffassert(pTh);
-  Mesh3 &Th=*pTh;
-  Mesh3 *m= pTh;   // question a quoi sert *m ??
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int nbe=Th.nbe; // nombre d'aretes fontiere
-  if(verbosity>5)  cout << "before movemesh: Vertex " << nbv<< " Tetrahedra " << nbt << " triangles "<< nbe << endl; 
- 
- // lecture des references
-   
-  KN<long> zzempty;
-  KN<long> nrtet  (arg(1,7,stack,zzempty));  
-  KN<long> nrf (arg(2,8,stack,zzempty)); 
-  double precis_mesh( arg(3,stack,1e-7));
-  long  mergefacemesh( arg(4,stack,1L) );
-  long  flagsurfaceall( arg(5,stack,0L) );
-    long orientationelement( arg(6,stack,1L) );
-
-
-  //if( nrtet.N() && nrfmid.N() && nrfup.N() && nrfdown.N() ) return m;
-  ffassert( nrtet.N() %2 ==0);
-  ffassert( nrf.N() %2 ==0);
-  
-  map<int,int> mapface;
-  for(int i=0;i<nrf.N();i+=2)
-    {
-      if( nrf[i] != nrf[i+1] ){	
-	mapface[nrf[i]] = nrf[i+1];
-      }      
-    }
-  
-  map<int,int> maptet;
-  for(int i=0;i<nrtet.N();i+=2)
-    {
-      if( nrtet[i] != nrtet[i+1] ){	
-	maptet[nrtet[i]] = nrtet[i+1];
-      }      
-    }
-
-
-
-  // realisation de la map par default
-  
-  assert((xx) && (yy) && (zz) );
-  
-  KN<double> txx(Th.nv), tyy(Th.nv), tzz(Th.nv);
-  
-  Mesh3 &rTh3 = Th;
- 
-  KN<int> takemesh(Th.nv);
-  MeshPoint *mp3(MeshPointStack(stack)); 
-  
-  takemesh=0;
-  // loop over tetrahedral 
-  for (int it=0;it<Th.nt;++it){
-    for( int iv=0; iv<4; ++iv){
-      int i=Th(it,iv);  
-      
-      if(takemesh[i]==0){
-	mp3->setP(&Th,it,iv);
-          if(xx){ txx[i]=GetAny<double>((*xx)(stack));} else txx[i]=mp3->P.x;
-	if(yy){ tyy[i]=GetAny<double>((*yy)(stack));}else tyy[i]=mp3->P.y;
-	if(zz){ tzz[i]=GetAny<double>((*zz)(stack));}else tzz[i]=mp3->P.z;
-	takemesh[i] = takemesh[i]+1;
-      }
-    }
-  }
-
-  // loop over border elements
-   // loop over tetrahedral 
-  for (int it=0;it<Th.nbe;++it){
-    const Triangle3 &K(Th.be(it));
-    int iv[3];
-    iv[0]=Th.operator()(K[0]); 
-    iv[1]=Th.operator()(K[1]);
-    iv[2]=Th.operator()(K[2]);
-    
-    R coordx,coordy,coordz;
-    for(int jj=0; jj< 3; jj++){
-      int i=iv[jj];
-      if(takemesh[i]==0){	 
-	mp3->set( Th.vertices[i].x, Th.vertices[i].y, Th.vertices[i].z );
-	if(xx){ txx[i]=GetAny<double>((*xx)(stack));}
-	if(yy){ tyy[i]=GetAny<double>((*yy)(stack));}
-	if(zz){ tzz[i]=GetAny<double>((*zz)(stack));}
-	takemesh[i] = takemesh[i]+1;
-      }
-    }
-  }
-  
-  // option (Transfo_Mesh3) :: 
-  
-  // border_only = 0, recollement_border=1, point_confondus_ok=0;   == > 1900 triangles
-  // border_only = 0, recollement_border=0, point_confondus_ok=0;   == > 1980 triangles
-  // border_only = 0, recollement_border=1, point_confondus_ok=1;   == > 1820 triangles
-
-  // border_only = 1, recollement_border=1, point_confondus_ok=0;   == > 1900 triangles
-  // border_only = 1, recollement_border=0, point_confondus_ok=0;   == > 1980 triangles
-  // border_only = 1, recollement_border=1, point_confondus_ok=1;   == > 1820 triangles
-
-
-  int border_only=0; // ne sert a rien !!!!! A enlever
-  int recollement_elem=0;
-  int recollement_border, point_confondus_ok;
-  
-  if(mergefacemesh == 0)
-    {
-      recollement_border=0;
-      point_confondus_ok=0;
-    }
-  if(mergefacemesh == 1)
-    { 
-      recollement_border=1;
-      point_confondus_ok=0;
-    }
-  if(mergefacemesh == 2)
-    { 
-      recollement_border=1;
-      point_confondus_ok=1;
-    }
-  
-  Mesh3 *T_Th3=Transfo_Mesh3( precis_mesh,rTh3, txx, tyy, tzz, border_only, 
-			      recollement_elem, recollement_border, point_confondus_ok,orientationelement);
-  
-  if( nrtet.N() >0)
-   {
-    for (int i=0;i<nbt;i++)
-      {
-	const Tet &K( T_Th3->elements[i] );	
-	int lab=K.lab;
-	T_Th3->elements[i].lab = ChangeLab3D(maptet,lab);
-      }  
-  }
-  // les arete frontieres qui n'ont pas change
-    
-  if( nrf.N()>0)
-    {
-    for (int i=0;i<nbe;i++)
-      { 
-	const Triangle3 &K( T_Th3->be(i) );
-	int l0,l1=ChangeLab3D(mapface,l0=K.lab) ;
-	T_Th3->be(i).lab = l1;
-      }
-   }
-  
-
-   if(flagsurfaceall==1) T_Th3->BuildBoundaryElementAdj();
-
-   T_Th3->BuildGTree();
-   Add2StackOfPtr2FreeRC(stack,T_Th3);
- 
-  *mp=mps;
-  return T_Th3;
-}
-
-class  Movemesh3D : public OneOperator { public:
-    int cas;
-    Movemesh3D() : OneOperator(atype<pmesh3>(),atype<pmesh3>()), cas(0) {}
-    Movemesh3D(int ) : OneOperator(atype<pmesh3>(),atype<pmesh3>(),atype<E_Array>()), cas(1) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  {
-	if(cas==0)
-            return  new Movemesh3D_Op(args,t[0]->CastTo(args[0]));
-        else if (cas == 1)
-        {
-            const E_Array * a = dynamic_cast<const E_Array *>(args[1].LeftValue());
-            
-            ffassert(a);
-            if (a->size() !=3) CompileError("movemesh(Th,[X,Y,Z],...) need 3 componates in array ",atype<pmesh>());
-            Expression X=to<double>( (*a)[0]);
-            Expression Y=to<double>( (*a)[1]);
-            Expression Z=to<double>( (*a)[2]);
-            return   new Movemesh3D_Op(args,t[0]->CastTo(args[0]),X,Y,Z);
-        }
-      else return 0;
-  }
-};
-
-
-
-
-
-
-
-
-
-
-//// version 3D de change label
-
-class SetMesh3D_Op : public E_F0mps 
-{
-public:
-  Expression a; 
-  
-  static const int n_name_param =2+2+2+2; //
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-    { ffassert( !(nargs[i] && nargs[i+2]));
-      i = nargs[i] ? i : i+2;
-      return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-    long  arg(int i,Stack stack, long  a ) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-    bool   arg(int i,Stack stack, bool   a ) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-
-  
-public:
-  SetMesh3D_Op(const basicAC_F0 &  args,Expression aa) : a(aa) {
-    args.SetNameParam(n_name_param,name_param,nargs);
-      if( nargs[0] && nargs[2] ) 
-	  CompileError("uncompatible change(... region= , reftet=  ");
-      if( nargs[1] && nargs[3] ) 
-	  CompileError("uncompatible  change(...label= , refface=  ");
-      
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type SetMesh3D_Op::name_param[]= {
-  {  "reftet", &typeid(KN_<long> )},
-  {  "refface", &typeid(KN_<long> )},
-  {  "region", &typeid(KN_<long> )},
-  {  "label", &typeid(KN_<long> )},
-  {  "fregion", &typeid(long)},
-  {  "flabel", &typeid(long )},
-  {  "rmlfaces", &typeid(long)},
-  {  "rmInternalFaces", &typeid(bool)}
-
-};
-//  besoin en cas de fichier 2D / fichier 3D 
-
-int  ChangeLab3D(const map<int,int> & m,int lab)
-{
-  map<int,int>::const_iterator i=m.find(lab);
-  if(i != m.end())
-    lab=i->second;
-  return lab;
-}
-
-AnyType SetMesh3D_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*a)(stack));
-  Mesh3 & Th=*pTh;
-  if(!pTh) return pTh;
-  Mesh3 *m= pTh;
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int nbe=Th.nbe; // nombre d'aretes fontiere
-  //cout << "Number of Vertex="<< nbv << "Number of BorderElement=" << nbe << endl;  
-  KN<long> zz;
-  KN<long> nrtet (arg(0,stack,zz));  
-  KN<long> nrface (arg(1,stack,zz));  
-  Expression freg = nargs[4];
-  Expression flab = nargs[5];
-    bool  rm_faces = nargs[6];
-    long  rmlabfaces (arg(6,stack,0L));
-    bool  rm_i_faces (arg(7,stack,false));
-
- // cout << " Chnage " << freg << " " << flab << endl;   
-  if(nrface.N() <=0 && nrtet.N() <=0 && (!freg) && (!flab) && !rmlabfaces && !rm_i_faces ) return m; // modf J.M. oct 2010
-  ffassert( nrtet.N() %2 ==0);
-  ffassert( nrface.N() %2 ==0);
-  
-  map<int,int> maptet,mapface;
-  
-  int z00 = false;
-  for(int i=0;i<nrface.N();i+=2)
-    { z00 = z00 || ( nrface[i]==0 && nrface[i+1]==0);
-
-      if( nrface[i] != nrface[i+1] ){	
-      mapface[nrface[i]] = nrface[i+1];
-      }      
-    }
-      
-  for(int i=0;i<nrtet.N();i+=2)
-    maptet[nrtet[i]]=nrtet[i+1];
-  
-  // sert a quoi ???  
-  int nben =0;
-  for(int i=0;i<nbe;++i)
-  {
-  	const Triangle3 & K = Th.be(i);	
-	int l0,l1=ChangeLab3D(mapface, l0= K.lab) ;
-	nben++;
-  }
-	  
-	  
-  Vertex3   *v = new Vertex3[nbv];
-  Tet       *t;
-  if(nbt!=0) t=new Tet[nbt];
-  Triangle3 *b = new Triangle3[nben];
-  // generation des nouveaux sommets 
-  Vertex3 *vv=v;
-  // copie des anciens sommets (remarque il n'y a pas operateur de copy des sommets)
-  for (int i=0;i<nbv;i++)
-    {
-     const Vertex3 & V(Th.vertices[i]);
-     vv->x=V.x;
-     vv->y=V.y;
-     vv->z=V.z;
-     vv->lab = V.lab;
-     vv++;      
-   }
-
-  //  generation des triangles 
-  Tet *tt= t; 
-  int lmn= 2000000000;
-  int lmx= -2000000000;
-  int nberr=0;
-   R3 PtHat(1./4.,1./4.,1./4.);
-    for (int i=0;i<nbt;i++)
-    {
-      const Tet &K( Th.elements[i] );	
-      int iv[4];
-      //int i0=Th(i,0), i1=Th(i,1),i2=Th(i,2);
-      iv[0]= Th.operator()(K[0]);
-      iv[1]= Th.operator()(K[1]);
-      iv[2]= Th.operator()(K[2]);
-      iv[3]= Th.operator()(K[3]);
-      // les 3 triangles par triangles origines 
-      int lab=K.lab;
-      
-      tt->set( v, iv, ChangeLab3D(maptet,lab));
-      if(freg)
-	{//      R3 B(1./4.,1./4.,1./4.);  // 27/09/10 : J.Morice error in msh3.cpp
-	      mp->set(Th,K(PtHat),PtHat,K,0);
-	      tt->lab =GetAny<long>( (* freg)(stack)) ;  
-	      lmn= min (lmn,tt->lab);
-	      lmx= max (lmx,tt->lab);
-	    }
-      tt++;
-	
-    }  
-    if(freg && verbosity> 1 ) cout << "    -- Change : new region number bound : " << lmn << " "<< lmx << endl;
-    // les arete frontieres qui n'ont pas change
-     lmn= 2000000000;
-     lmx= -2000000000;
-  
-  Triangle3 * bb=b;
-     R2 PtHat2(1./3.,1./3.);
-    int nrmf=0; 
-  for (int i=0;i<nbe;i++)
-    { 
-      const Triangle3 &K( Th.be(i) );
-      int fk,ke = Th.BoundaryElement(i,fk); // element co
-      int fkk,kke = Th.ElementAdj(ke,fkk=fk); // element co
-      bool onborder = (kke==ke) || (kke <0) ;
-      const Tet & KE(Th[ke]);
-      R3 B= KE.PBord(fk,PtHat2);
-      int iv[3];       
-      bool  rmf = rm_i_faces && ! onborder; 
-      iv[0] = Th.operator()(K[0]);
-      iv[1] = Th.operator()(K[1]);
-      iv[2] = Th.operator()(K[2]);
-      
-      int l0,l1=ChangeLab3D(mapface,l0=K.lab) ;
-      if(flab)
-	  {//      R3 B(1./4.,1./4.,1./4.);  // 27/09/10 : J.Morice error in msh3.cpp
-              R3 NN= KE.N(fk);
-              double mes=NN.norme();
-              NN/=mes;
-	      mp->set(Th,KE(B),B,KE,K.lab,NN,fk);
-	      l1 =GetAny<long>( (* flab)(stack)) ;
-	      lmn= min (lmn,bb->lab);
-	      lmx= max (lmx,bb->lab);
-	  }
-        if( !rmf && rm_faces)
-          rmf =  !onborder &&  ( l1 == rmlabfaces  );
-        if(rmf)
-            nrmf++;
-        else
-         (*bb++).set( v, iv, l1);
-
-	
-    }
-    if(nrmf && verbosity > 2) cout << "   change  mesh3 : number of removed  internal faces " << nrmf << " == " << nbe - (bb-b) << endl;
-    
-  nben -= nrmf;
-  nbe -= nrmf;
-  assert(nben==bb-b);
-  *mp=mps; 
-  if(nbt != 0)
-    {
-      Mesh3 *mpq = new Mesh3(nbv,nbt,nbe,v,t,b);
-      
-	//mpq->BuildBound();
-     // mpq->BuildAdj();
-     // mpq->Buildbnormalv();  
-     // mpq->BuildjElementConteningVertex(); 
-      mpq->BuildGTree();
-      //mpq->decrement();   // ?? decrement enlever ???
-      Add2StackOfPtr2FreeRC(stack,mpq);  
-      
-      return mpq;
-    }
-  if(nbt == 0)
-    {
-      Mesh3 *mpq = new Mesh3(nbv,nbe,v,b);
-      
-     // mpq->BuildBound();
-      Add2StackOfPtr2FreeRC(stack,mpq);  
-      
-      return mpq;
-    }
-
-  Mesh3 *mpq = NULL;
-  return mpq;
-}
-
-
-class SetMesh3D : public OneOperator { public:  
-typedef Mesh3 *pmesh3;
-    SetMesh3D() : OneOperator(atype<pmesh3>(),atype<pmesh3>() ) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new SetMesh3D_Op(args,t[0]->CastTo(args[0])); 
-  }
-};
-
-// ---------------------------------
-// Movemesh2d_3D_surf
-
-
-class Movemesh2D_3D_surf_Op : public E_F0mps 
-{
-public:
-  Expression eTh;
-  Expression xx,yy,zz; 
-  static const int n_name_param =5+1; 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const{ 
-      return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  long arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-  double arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny<double>( (*nargs[i])(stack) ): a;}
-public:
-  Movemesh2D_3D_surf_Op(const basicAC_F0 &  args,Expression tth) : 
-  eTh(tth),xx(0),yy(0),zz(0) 
-  {
-
-    args.SetNameParam(n_name_param,name_param,nargs);
-    
-    const E_Array * a1=0 ;
-    if(nargs[0])  a1  = dynamic_cast<const E_Array *>(nargs[0]);
-    int err =0;
-    if( nargs[2] && nargs[5] ) 
-    	CompileError("uncompatible movemesh23 (Th, label= , refface=  ");
-    if(a1) {
-      if(a1->size() !=3) 
-	CompileError("movemesh23 (Th,transfo=[X,Y,Z],) ");
-      xx=to<double>( (*a1)[0]);
-      yy=to<double>( (*a1)[1]);
-      zz=to<double>( (*a1)[2]);
-    }    
-    
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type Movemesh2D_3D_surf_Op::name_param[]= {
-  {  "transfo", &typeid(E_Array )},
-  {  "orientation", &typeid(long)},
-  {  "refface", &typeid(KN_<long>)},
-  {  "ptmerge", &typeid(double)},
-  {  "boolsurface",&typeid(long)},
-  {  "label", &typeid(KN_<long> )}
-    
-};
-
-AnyType Movemesh2D_3D_surf_Op::operator()(Stack stack)  const 
-{
-  Mesh * pTh= GetAny<Mesh *>((*eTh)(stack));
-  Mesh & Th=*pTh;
-  Mesh *m= pTh;
-  int nbv=Th.nv;  // nombre de sommet 
-  int nbt=Th.nt;  // nombre de triangles
-  int nbe=Th.neb; // nombre d'aretes fontiere
-  if(verbosity>5)
-    cout << "before movemesh: Vertex Triangle Edge"<< nbv << " "  << nbt << " " << nbe << endl;  
-  
-  KN<long> zzempty;
-  //int intempty=0;
-  int mesureM (arg(1,stack,0L));
-  KN<long> nrface (arg(2,stack,arg(5,stack,zzempty)));
-  double precis_mesh(arg(3,stack,-1.));
-  long flagsurfaceall(arg(4,stack,-1L));
-  
-  if(nrface.N()<0 ) return m;
-  ffassert( nrface.N() %2 ==0);
-  
-  map<int,int> mapface;
-  
-  int z00 = false;
-  for(int i=0;i<nrface.N();i+=2)
-    { z00 = z00 || ( nrface[i]==0 && nrface[i+1]==0);
-
-      if( nrface[i] != nrface[i+1] ){	
-      mapface[nrface[i]] = nrface[i+1];
-      }      
-    }
-  
-  int surface_orientation=1; 
-  if( mesureM <0 ){
-    surface_orientation=-1;
-  }
-        
-
-  KN<double> txx(nbv), tyy(nbv), tzz(nbv);
-  MeshPoint *mp3(MeshPointStack(stack)); 
-  
-  {
-    KN<int> takemesh(nbv);  
-    takemesh=0;  
-    Mesh &rTh = Th;
-    for (int it=0; it<nbt; ++it){
-      for( int iv=0; iv<3; ++iv){
-	int i=Th(it,iv);
-	if(takemesh[i]==0){
-	  mp3->setP(&Th,it,iv);
-	  if(xx){ 
-	    txx[i]=GetAny<double>((*xx)(stack));
-	  }
-	  if(yy){ 
-	    tyy[i]=GetAny<double>((*yy)(stack));
-	  }
-	  if(zz){ 
-	    tzz[i]=GetAny<double>((*zz)(stack));
-	  }
-	  takemesh[i] = takemesh[i]+1;
-	}
-      }
-    }
-  }
-  
-  //Mesh3 *Th3; //= new Mesh3;
-  
-  int vertex_out=1;
-  
-  if( vertex_out == 1){
-    /* determinate the same vertex */ 
-    int border_only = 0;
-    int recollement_border=1, point_confondus_ok=0;
-
-    // faire version de Transfo_Mesh2_tetgen pour ce cas pr�cis.
-    Mesh3 *Th3= MoveMesh2_func( precis_mesh, Th, txx, tyy, tzz, 
-			 border_only, recollement_border, point_confondus_ok);
-	
-    // Rajouter fonction flip a l interieure
-    int nbflip=0;
-    for(int ii=0; ii < Th3->nbe; ii++){
-      const Triangle3 & K(Th3->be(ii)); 
-      int iv[3];
-      int lab;
-      double mes_triangle3;
-	
-    
-      iv[0] = Th3->operator()(K[0]);
-      iv[1] = Th3->operator()(K[1]);
-      iv[2] = Th3->operator()(K[2]);
-		
-      map< int, int>:: const_iterator imap;
-      imap = mapface.find(K.lab); 
-		
-      if(imap!= mapface.end()){
-	lab=imap->second;
-      } 
-      else{
-	lab=K.lab;
-      }
-		
-      Th3->be(ii).set( Th3->vertices, iv, lab ) ;
-      mes_triangle3 = Th3->be(ii).mesure();
-		
-      if( surface_orientation*mes_triangle3 < 0){
-	int iv_temp=iv[1];
-	iv[1]=iv[2];
-	iv[2]=iv_temp;
-	Th3->be(ii).set( Th3->vertices, iv, lab ) ;
-	nbflip++;
-      }
-		
-      /* autre methode a tester */
-      /*
-	Triangle3 Kmes;
-	Kmes.set( Th3->vertices, iv, lab ) ;
-	mes_triangle3 = Kmes.mesure();
-	if( surface_orientation*mes_triangle3) < 0){
-	int iv_temp=iv[1];
-	iv[1]=iv[2];
-	iv[2]=iv_temp;
-	}
-	Th3->be(ii).set( Th3->vertices, iv, lab ) ;
-      */
-    }
-    
-    assert(nbflip==0 || nbflip== Th3->nbe);
-    if(flagsurfaceall==1) Th3->BuildBoundaryElementAdj();
-    Add2StackOfPtr2FreeRC(stack,Th3);
-   
-    return Th3;
-  }
-  else   if( vertex_out == 0){
-	  
-    //Tet       *t = new Tet[1];
-    Vertex3   *v = new Vertex3[nbv];
-    Triangle3 *b = new Triangle3[nbe];
-    // generation des nouveaux sommets 
-    Vertex3 *vv=v;
-    // copie des anciens sommets (remarque il n'y a pas operateur de copy des sommets)
-    for (int i=0;i<nbv;i++)
-      {
-	const Mesh::Vertex & V( Th.vertices[i]);
-	vv->x = txx[i];
-	vv->y = tyy[i];
-	vv->z = tzz[i];
-	vv->lab = V.lab;
-	vv++;      
-      }
- 
-    // les arete frontieres qui n'ont pas change
-  
-    Triangle3 * bb=b;
-    for (int i=0;i<nbt;i++)
-      { 
-      	const Mesh::Triangle &K( Th.t(i) );
-      	int iv[3];       
-    
-      	iv[0] = Th.operator()(K[0]);
-      	iv[1] = Th.operator()(K[1]);
-      	iv[2] = Th.operator()(K[2]);
-      	
-      	(*bb++).set( v, iv, K.lab);
-		
-      }
-      
-    //Mesh3 *Th3 = new Mesh3(nbv,0,nbt,v,t,b);
-    Mesh3 *Th3 = new Mesh3(nbv,nbt,v,b);
-
-    int nbflip=0;
-    for (int i=0;i<Th3->nbe;i++)
-      { 
-	double mes_triangle3= Th3->be(i).mesure();
-	
-	if( surface_orientation*mes_triangle3 < 0){
-	  const Triangle3 &K( Th3->be(i) );
-	  int iv[3];       
-	  
-	  iv[0] = Th3->operator()(K[0]);
-	  iv[1] = Th3->operator()(K[1]);
-	  iv[2] = Th3->operator()(K[2]);
-	  
-	  int iv_temp=iv[1];
-	  iv[1]=iv[2];
-	  iv[2]=iv_temp;
-	  Th3->be(i).set( Th3->vertices, iv, K.lab ) ;
-	  nbflip++;
-	}
-      }
-    assert(nbflip==0 || nbflip== Th3->nbe);
-    if(flagsurfaceall==1) Th3->BuildBoundaryElementAdj();
-    Add2StackOfPtr2FreeRC(stack,Th3);
-    return Th3;
-  }
-  return (Mesh3*) 0;
-}
-
-
-class Movemesh2D_3D_surf : public OneOperator { public:  
-typedef Mesh *pmesh;
-typedef Mesh3 *pmesh3;
-    
-  Movemesh2D_3D_surf() : OneOperator(atype<pmesh3>(),atype<pmesh>() ) {}
-    E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new Movemesh2D_3D_surf_Op(args,t[0]->CastTo(args[0]));  // CastTo(args[]); // plus tard
-  }
-};
-
-
-/* ancien fichier de TransfoMesh */
-
-Mesh3 * Transfo_Mesh3(const double &precis_mesh,const Mesh3 & Th3, const double *tab_XX, const double *tab_YY, const double *tab_ZZ,
-		      int &border_only, int &recollement_element, int &recollement_border, int &point_confondus_ok,int orientation)
-{
-    // cas besoin memoire important
-    
-    //Mesh3 *T_Th3=new Mesh3;
-    int nv_t,nt_t,nbe_t;
-    
-    int* Numero_Som;
-    
-    int* ind_nv_t;
-    int* ind_nt_t;
-    int* ind_nbe_t;
-    
-    int* label_nt_t;
-    int* label_nbe_t;
-    
-    int i_som, i_elem, i_border;
-    
-    Numero_Som = new int[Th3.nv];
-    
-    ind_nv_t   = new int[Th3.nv];
-    ind_nt_t   = new int[Th3.nt];
-    ind_nbe_t  = new int[Th3.nbe];
-    
-    label_nt_t   = new int[Th3.nt];
-    label_nbe_t  = new int[Th3.nbe];
-    
-    
-    //cout << "Vertex, Tetrahedra, Border : "<<Th3.nv << ", "<<Th3.nt<< ", " << Th3.nbe<< endl;
-    
-    for(int ii=0; ii<Th3.nv; ii++){
-        Numero_Som[ii]=ii;
-    }
-    
-    if(verbosity > 1) cout <<" debut: SamePointElement " <<endl;
-    
-    SamePointElement( precis_mesh, tab_XX, tab_YY, tab_ZZ, Th3, recollement_element, recollement_border, point_confondus_ok,
-                     Numero_Som, ind_nv_t, ind_nt_t, ind_nbe_t, label_nt_t, label_nbe_t, nv_t, nt_t, nbe_t);
-    
-    if(verbosity > 1) cout <<" fin: SamePointElement " <<endl;
-    
-    
-    
-    // set size of Mesh T_Th3
-    //T_Th3->set(nv_t,nt_t,nbe_t);
-    Vertex3 *v = new Vertex3[nv_t];
-    Tet     *t = new Tet[nt_t];
-    Tet     *tt=t;
-    Triangle3 *b= new Triangle3[nbe_t];
-    Triangle3 *bb=b;
-    double mes=0,mesb=0;
-    cout << "Transfo TH3 : Vertex, Tetrahedra, Border : "<< "nv_t="<< nv_t << " nt_t=" << nt_t << " nbe_t=" << nbe_t << endl;
-    
-    // determination of vertex
-    i_som = 0;
-    for(int i=0; i<nv_t; i++){
-        
-        int & ii = ind_nv_t[i];
-        assert( Numero_Som[ii] == i_som );
-        
-        const Vertex3 & K(Th3.vertices[ii]);
-        
-        v[i_som].x = tab_XX[ii];
-        v[i_som].y = tab_YY[ii];
-        v[i_som].z = tab_ZZ[ii];
-        v[i_som].lab = K.lab;
-        
-        
-        i_som = i_som + 1;
-    }
-    assert( i_som == nv_t);
-    
-    
-    //cout << " Transfo volume elements " << endl;
-    // determination of volume elements
-    i_elem = 0;
-    for( int i=0; i< nt_t; i++){
-        int & ii=ind_nt_t[i];
-        
-        // creation of elements
-        
-        const Tet & K(Th3.elements[ii]);
-        int iv[4];
-        int lab;
-        lab = label_nt_t[i];
-        
-        for(int jj=0; jj <4; jj++){
-            iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-            assert( iv[jj] >= 0 && iv[jj] < nv_t);
-        }
-        if(orientation<0) swap(iv[1],iv[2]) ;
-        (tt)->set(v, iv, lab);
-        mes += tt++->mesure();
-        i_elem++;
-    }
-    
-    assert( i_elem == nt_t);
-    
-    //cout << " Transfo border elements " << endl;
-    // determination of border elements
-    i_border= 0;
-    for( int i=0; i< nbe_t; i++){
-        int & ii=ind_nbe_t[i];
-        // creation of elements
-        const Triangle3 & K(Th3.be(ii));
-        int iv[3];
-        int lab;
-        lab = label_nbe_t[i];
-        
-        for(int jj=0; jj <3; jj++)
-        {
-            iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-            assert( iv[jj] >= 0 && iv[jj] < nv_t);
-        }
-        if(orientation<0) swap(iv[1],iv[2]) ;
-        
-        bb->set(v, iv, lab);
-        mesb += bb++->mesure();
-        i_border=i_border+1;
-    }
-    assert( i_border == nbe_t);
-    if  ( mes  < 0 )
-    {
-        cerr << " E rror of mesh orientation , current orientation = "<< orientation << endl;
-        cerr << " volume mesh = " << mes << endl;
-        cerr << " surface border mesh = " << mesb << endl;
-        ErrorExec(" movemesh 3d ",1);
-    }
-    
-    delete [] Numero_Som;
-    delete [] ind_nv_t;   
-    delete [] ind_nt_t;  
-    delete [] ind_nbe_t;
-    delete [] label_nt_t;
-    delete [] label_nbe_t;
-    
-    if( nt_t !=0){
-        Mesh3 *T_Th3 = new Mesh3(nv_t,nt_t,nbe_t,v,t,b);
-        
-        return T_Th3;
-    }
-    else{
-        Mesh3 *T_Th3 = new Mesh3(nv_t,nbe_t,v,b);
-        
-        delete [] t;
-        return T_Th3;
-    }
-    
-    
-}
-void SamePointElement( const double &precis_mesh, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, const Mesh3 & Th3, 
-	int &recollement_element, int &recollement_border, int &point_confondus_ok,
-	int *Numero_Som, int *ind_nv_t, int *ind_nt_t, int *ind_nbe_t, 
-	int *label_nt_t, int *label_nbe_t, int & nv_t, int & nt_t,int & nbe_t ){
-		
-  int Elem_ok, Border_ok;
-  double hmin,hmin_elem,hmin_border;
-  R3 bmin,bmax;
-  //int recollement_element=1,recollement_border=1;
-  
-  if(verbosity > 2) cout << "    BuilBound " <<endl;
-  BuildBoundMinDist_th3( precis_mesh, tab_XX, tab_YY, tab_ZZ, Th3, bmin, bmax, hmin);
-  if(verbosity > 2) cout << "   =============================== " << endl;
-		
-  double bmin3[3], bmax3[3];
-  bmin3[0] = bmin.x;
-  bmin3[1] = bmin.y;
-  bmin3[2] = bmin.z;
-		
-  bmax3[0] = bmax.x;
-  bmax3[1] = bmax.y;
-  bmax3[2] = bmax.z;
- 
-
-
-  if(verbosity > 2) cout << "    OrderVertexTransfo_hcode gtree " << endl;
-  OrderVertexTransfo_hcode_nv_gtree( Th3.nv, bmin, bmax, hmin, tab_XX, tab_YY, tab_ZZ, Numero_Som, ind_nv_t, nv_t );
-  if(verbosity > 2) cout << "    fin order vertex gtree: nv_t=" << nv_t << endl;
-  if(verbosity > 2) cout << "   =============================== " << endl;
-		
-  /* determination de nt_t et de nbe_t*/ 
-  int i_elem, i_border;
-		
-  i_elem = 0;
-  for(int ii=0; ii< Th3.nt; ii++){
-    const Tet & K(Th3.elements[ii]);
-    int iv[4];
-			
-    Elem_ok = 1;
-			
-    for(int jj=0; jj <4; jj++){
-      iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-    }
-			
-    for(int jj=0; jj<4; jj++){
-      for(int kk=jj+1; kk<4; kk++){
-	if( iv[jj]==iv[kk] ){
-	  Elem_ok = 0;
-	}
-      }
-    }
-			
-    if(Elem_ok==1){
-      ind_nt_t[i_elem]= ii;
-      label_nt_t[i_elem] = K.lab;
-      i_elem = i_elem + 1;
-    }
-  } 
-  nt_t=i_elem;
-		
-  if(recollement_element ==1){
-    //int point_confondus_ok_e = 0;
-    if(verbosity > 1) cout << "debut recollement : nt_t= "<< nt_t << endl; 
-			
-    int np,dim=3;
-    int *ind_np = new int [nt_t];
-    int *label_t = new int [nt_t];
-    double **Cdg_t=new double *[nt_t];
-    for(int i=0; i<nt_t; i++) Cdg_t[i] = new double[dim];
-			
-    for( int i_elem=0; i_elem< nt_t; i_elem++){
-      int & ii=ind_nt_t[i_elem];
-      const Tet & K(Th3.elements[ii]);
-      int iv[4];
-      for(int jj=0; jj <4; jj++){
-	iv[jj] = Th3.operator()(K[jj]) ;
-      }
-      Cdg_t[i_elem][0] = ( tab_XX[iv[0]] + tab_XX[iv[1]] + tab_XX[iv[2]] + tab_XX[iv[3]] )/4.;
-      Cdg_t[i_elem][1] = ( tab_YY[iv[0]] + tab_YY[iv[1]] + tab_YY[iv[2]] + tab_YY[iv[3]] )/4.;
-      Cdg_t[i_elem][2] = ( tab_ZZ[iv[0]] + tab_ZZ[iv[1]] + tab_ZZ[iv[2]] + tab_ZZ[iv[3]] )/4.;
-      label_t[i_elem]  = K.lab;
-    }
-			
-    hmin_elem = hmin/4;
-    //PointCommun_hcode( dim, nt_t, 0, Cdg_t, bmin3, bmax3, hmin_elem, ind_np, np); //ancien
-    PointCommun_hcode_gtree( dim, nt_t, 0, Cdg_t, label_t, bmin, bmax, hmin_elem, 
-			     ind_np, label_nt_t, np); // nv
-			
-    assert( np <= nt_t );
-			
-    int *ind_nt_t_tmp= new int [np];
-			
-    for( int i_elem=0; i_elem< np; i_elem++){
-      assert( ind_np[i_elem] >=0 && ind_np[i_elem] <= nt_t );
-      ind_nt_t_tmp[ i_elem ] = ind_nt_t[ ind_np[i_elem] ]; 
-    }
-    for( int i_elem=0; i_elem< np; i_elem++){
-      ind_nt_t[ i_elem ] = ind_nt_t_tmp[ i_elem ]; 
-    }
-			
-    
-    delete [] ind_np; 
-    delete [] label_t;
-    for(int i=0; i<nt_t; i++) delete [ ] Cdg_t[i];
-    delete [] Cdg_t;
-
-    delete [] ind_nt_t_tmp;
-		
-    nt_t = np;
-    if(verbosity > 1) cout << "fin recollement : nt_t= "<< nt_t << endl; 
-  }
-		
-  // determination of border elements
-  i_border= 0;
-  for( int ii=0; ii< Th3.nbe; ii++){
-    Border_ok=1;
-		
-    const Triangle3 & K(Th3.be(ii));
-    int iv[3];
-			
-    for(int jj=0; jj <3; jj++){
-      iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-      assert( iv[jj] >= 0 && iv[jj] < nv_t);
-    }
-			
-    for(int jj=0; jj<3; jj++){
-      for(int kk=jj+1; kk<3; kk++){
-	if( iv[jj]==iv[kk] ) Border_ok=0;
-      }
-    }
-    if(Border_ok==1){
-      ind_nbe_t[i_border]   = ii;
-      label_nbe_t[i_border] = K.lab;
-      i_border=i_border+1;
-    }
-  }
-  nbe_t = i_border;
-		
-  if( recollement_border == 1){
-    //int point_confondus_ok = 1;
-    if(verbosity > 1) cout << "debut recollement : nbe_t= "<< nbe_t << endl; 
-			
-    int np,dim=3;
-    int *ind_np = new int [nbe_t];
-    double **Cdg_be=new double *[nbe_t];
-    int *label_be = new int [nbe_t];
-    for(int i=0; i<nbe_t; i++) Cdg_be[i] = new double[dim];
-			
-    for( int i_border=0; i_border< nbe_t; i_border++){
-				
-      int & ii=ind_nbe_t[i_border];
-      const Triangle3 & K(Th3.be(ii));
-      int iv[3];
-				
-      for(int jj=0; jj <3; jj++){
-	iv[jj] = Th3.operator()(K[jj]);
-      }
-      Cdg_be[i_border][0] = ( tab_XX[iv[0]] + tab_XX[iv[1]] + tab_XX[iv[2]] )/3.; //( Th3.vertices[iv[0]].x + Th3.vertices[iv[1]].x + Th3.vertices[iv[2]].x )/3.;
-      Cdg_be[i_border][1] = ( tab_YY[iv[0]] + tab_YY[iv[1]] + tab_YY[iv[2]] )/3.; //( Th3.vertices[iv[0]].y + Th3.vertices[iv[1]].y + Th3.vertices[iv[2]].y )/3.;
-      Cdg_be[i_border][2] = ( tab_ZZ[iv[0]] + tab_ZZ[iv[1]] + tab_ZZ[iv[2]] )/3.; //( Th3.vertices[iv[0]].z + Th3.vertices[iv[1]].z + Th3.vertices[iv[2]].z )/3.;		
-				
-      label_be[i_border] = K.lab;
-    }
-    hmin_border=hmin/3.;
-    if(verbosity > 1) cout << "hmin_border=" << hmin_border << endl;
-			
-    if(verbosity > 1) cout << "appele de PointCommun_hcode := " << point_confondus_ok<< endl;
-    //PointCommun_hcode( dim, nbe_t, point_confondus_ok, Cdg_be, bmin3, bmax3, hmin_border, ind_np, np);
-    PointCommun_hcode_gtree( dim, nbe_t, point_confondus_ok, Cdg_be, label_be, 
-			     bmin, bmax, hmin_border, ind_np, label_nbe_t, np); 
-    if(verbosity > 1) cout << "fin appele de PointCommun_hcode" << endl;
-			
-    assert( np <= nbe_t );
-			
-    int *ind_nbe_t_tmp= new int [np];
-		
-    for( int i_border=0; i_border<np; i_border++){
-      ind_nbe_t_tmp[ i_border ] = ind_nbe_t[ ind_np[i_border] ]; 
-    }
-		
-    for( int i_border=0; i_border< np; i_border++){
-      ind_nbe_t[ i_border ] = ind_nbe_t_tmp[ i_border ]; 
-    }
-   
-    delete [] ind_np; 
-    delete [] label_be;
-    for(int i=0; i<nbe_t; i++) delete [ ] Cdg_be[i];
-    delete [] Cdg_be;
-
-    delete [] ind_nbe_t_tmp;
-			
-    nbe_t = np;
-    if(verbosity > 1) cout << "fin recollement : nbe_t= "<< nbe_t << endl; 
-			
-    // Affectation de la nouvelle valeur du label
-			
-  }
-}
-
-// 3D surface
-
-Mesh3 * Transfo_Mesh3_surf(const double &precis_mesh, const Mesh3 & Th3, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, 
-	int &recollement_border, int &point_confondus_ok){
-	// cas besoin memoire important
-	
-	//Mesh3 *T_Th3=new Mesh3;
-	int nv_t,nbe_t;
-	int nt_t=0;
-	
-	int* Numero_Som;
-	int* ind_nv_t;
-	int* ind_nbe_t;
-	int* label_nbe_t;
-	
-	int i_som, i_elem, i_border;
-	
-	assert( Th3.nt == 0);
-	
-	Numero_Som = new int[Th3.nv];
-	ind_nv_t   = new int[Th3.nv];
-	ind_nbe_t  = new int[Th3.nbe];
-	label_nbe_t  = new int[Th3.nbe];
-	
-    
-	if(verbosity > 1) cout << "Vertex, Tetrahedra, Border : "<<Th3.nv << ", "<<Th3.nt<< ", " << Th3.nbe<< endl;
-    
-	for(int ii=0; ii<Th3.nv; ii++){
-		Numero_Som[ii]=ii;
-	}
-	
-	if(verbosity > 1) cout <<" debut: SamePointElement " <<endl;
-	
-	SamePointElement_surf( precis_mesh, tab_XX, tab_YY, tab_ZZ, Th3, 
-			       recollement_border, point_confondus_ok, Numero_Som,
-			       ind_nv_t, ind_nbe_t, label_nbe_t, nv_t, nbe_t);
-	
-	if(verbosity > 1) cout <<" fin: SamePointElement " <<endl;
-	
-	// set size of Mesh T_Th3 
-
-
-	//T_Th3->set(nv_t,nt_t,nbe_t);
-	Vertex3 *v = new Vertex3[nv_t];
-	//Tet     *t;
-	Triangle3 *b= new Triangle3[nbe_t];
-	Triangle3 *bb=b;
-
-
-	if(verbosity > 1) cout << "Transfo TH3 : Vertex, Tetrahedra, Border : "<< "nv_t="<< nv_t << " nt_t=" << nt_t << " nbe_t=" << nbe_t << endl;
-		
-	// determination of vertex		
-	i_som = 0;
-	for(int i=0; i<nv_t; i++){
-		
-	  int & ii = ind_nv_t[i];
-	  assert( Numero_Som[ii] == i_som );
-	  
-	  const Vertex3 & K(Th3.vertices[ii]);
-	  /*
-	    T_Th3->vertices[i_som].x = tab_XX[ii];
-	    T_Th3->vertices[i_som].y = tab_YY[ii];
-	    T_Th3->vertices[i_som].z = tab_ZZ[ii];
-	    T_Th3->vertices[i_som].lab = K.lab; 
-	  */
-	   v[i_som].x = tab_XX[ii];
-	   v[i_som].y = tab_YY[ii];
-	   v[i_som].z = tab_ZZ[ii];
-	   v[i_som].lab = K.lab; 
-
-	  i_som = i_som + 1;		
-	}	
-	if(verbosity > 1) cout << "i_som, nv_t=" <<i_som << " "<<nv_t << endl;
-	assert( i_som == nv_t);
-	
-	if(verbosity > 1) cout << " Transfo border elements " << endl;
-	// determination of border elements
-	i_border= 0;
-	for( int i=0; i< nbe_t; i++){
-	  int & ii=ind_nbe_t[i];
-	  
-	  // creation of elements
-	  const Triangle3 & K(Th3.be(ii));
-	  int iv[3];
-	  int lab;
-	  
-	  //lab = K.lab; 
-	  lab = label_nbe_t[i];
-	  
-	  for(int jj=0; jj <3; jj++){
-	    iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-	    assert( iv[jj] >= 0 && iv[jj] <= nv_t);
-	  }
-	  //T_Th3->be(i_border).set(T_Th3->vertices, iv, lab);
-	  (bb++)->set(v, iv, lab);
-	  i_border=i_border+1;
-	} 
-	assert( i_border == nbe_t);
-
-	delete [] Numero_Som;
-	delete [] ind_nv_t;
-	delete [] ind_nbe_t;  
-	delete [] label_nbe_t;
-
-	//Mesh3* T_Th3 = new Mesh3(nv_t,nt_t,nbe_t,v,t,b); 
-	Mesh3* T_Th3 = new Mesh3(nv_t,nbe_t,v,b);
-
-	return T_Th3;
-}
-
-void SamePointElement_surf( const double &precis_mesh, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, const Mesh3 & Th3, 
-	int &recollement_border, int &point_confondus_ok, int *Numero_Som, 
-	int *ind_nv_t, int *ind_nbe_t, int *label_nbe_t, int & nv_t,int & nbe_t ){
-		
-  int Elem_ok, Border_ok;
-  double hmin,hmin_elem,hmin_border;
-  R3 bmin,bmax;
-  //int recollement_element=1,recollement_border=1;
-  
-  if(verbosity > 1) cout << "  OrderVertexTransfo_hcode gtree " <<endl;
-  BuildBoundMinDist_th3( precis_mesh, tab_XX, tab_YY, tab_ZZ, Th3, bmin, bmax, hmin);
-  if(verbosity > 1) cout << " =============================== " << endl;
-  
-  double bmin3[3], bmax3[3];
-  bmin3[0] = bmin.x;
-  bmin3[1] = bmin.y;
-  bmin3[2] = bmin.z;
-  
-  bmax3[0] = bmax.x;
-  bmax3[1] = bmax.y;
-  bmax3[2] = bmax.z;
-  
-  /*
-    cout << "  OrderVertexTransfo_hcode " << endl;
-    OrderVertexTransfo_hcode_nv( Th3.nv, tab_XX, tab_YY, tab_ZZ, bmin3, bmax3, hmin, Numero_Som, ind_nv_t, nv_t );
-    cout << "fin order vertex: nv_t=" << nv_t << endl;
-  */
-  if(verbosity > 1) cout << "  OrderVertexTransfo_hcode gtree " << endl;
-  OrderVertexTransfo_hcode_nv_gtree( Th3.nv, bmin, bmax, hmin, tab_XX, tab_YY, tab_ZZ, Numero_Som, ind_nv_t, nv_t );
-  if(verbosity > 1) cout << "fin order vertex gtree: nv_t=" << nv_t << endl;
-  
-  if(verbosity > 1) cout << " =============================== " << endl;
-  
-  /* determination de nt_t et de nbe_t*/ 
-  int i_border;
-  
-  // determination of border elements
-  i_border= 0;
-  for( int ii=0; ii< Th3.nbe; ii++){
-    Border_ok=1;
-    
-    const Triangle3 & K(Th3.be(ii));
-    int iv[3];
-			
-    for(int jj=0; jj <3; jj++){
-      iv[jj] = Numero_Som[ Th3.operator()(K[jj]) ];
-    }
-			
-    for(int jj=0; jj<3; jj++){
-      for(int kk=jj+1; kk<3; kk++){
-	if( iv[jj]==iv[kk] ) Border_ok=0;
-      }
-    }
-    if(Border_ok==1){
-      ind_nbe_t[i_border]   = ii;
-      label_nbe_t[i_border] = K.lab;
-      i_border=i_border+1;
-    }
-  }
-  nbe_t = i_border;
-		
-  if( recollement_border == 1){
-    //int point_confondus_ok = 1;
-    if(verbosity > 1) cout << "debut recollement : nbe_t= "<< nbe_t << endl; 
-			
-    int np,dim=3;
-    int *ind_np = new int [nbe_t];
-    int *label_be = new int [nbe_t];
-
-    double **Cdg_be=new double *[nbe_t];
-    for(int i=0; i<nbe_t; i++) Cdg_be[i] = new double[dim];
-  
-		
-    for( int i_border=0; i_border< nbe_t; i_border++){
-				
-      int & ii=ind_nbe_t[i_border];
-      const Triangle3 & K(Th3.be(ii));
-      int iv[3];
-				
-      for(int jj=0; jj <3; jj++){
-	iv[jj] = Th3.operator()(K[jj]);
-      }
-      Cdg_be[i_border][0] = ( tab_XX[iv[0]] + tab_XX[iv[1]] + tab_XX[iv[2]] )/3.; //( Th3.vertices[iv[0]].x + Th3.vertices[iv[1]].x + Th3.vertices[iv[2]].x )/3.;
-      Cdg_be[i_border][1] = ( tab_YY[iv[0]] + tab_YY[iv[1]] + tab_YY[iv[2]] )/3.; //( Th3.vertices[iv[0]].y + Th3.vertices[iv[1]].y + Th3.vertices[iv[2]].y )/3.;
-      Cdg_be[i_border][2] = ( tab_ZZ[iv[0]] + tab_ZZ[iv[1]] +  tab_ZZ[iv[2]] )/3.; //( Th3.vertices[iv[0]].z + Th3.vertices[iv[1]].z + Th3.vertices[iv[2]].z )/3.;		
-				
-      label_be[i_border] = K.lab;
-    }
-    hmin_border=hmin/3.;
-    if(verbosity > 1) cout << "hmin_border=" << hmin_border << endl;
-			
-    if(verbosity > 1) cout << "appele de PointCommun_hcode := " << point_confondus_ok<< endl;
-    //PointCommun_hcode( dim, nbe_t, point_confondus_ok, Cdg_be, bmin3, bmax3, hmin_border, ind_np, np);
-    PointCommun_hcode_gtree( dim, nbe_t, point_confondus_ok, Cdg_be, label_be, 
-			     bmin, bmax, hmin_border, ind_np, label_nbe_t, np); 
-    if(verbosity > 1) cout << "fin appele de PointCommun_hcode" << endl;
-			
-    assert( np <= nbe_t );
-			
-    int *ind_nbe_t_tmp= new int [np];
-		
-    for( int i_border=0; i_border<np; i_border++){
-      ind_nbe_t_tmp[ i_border ] = ind_nbe_t[ ind_np[i_border] ]; 
-    }
-		
-    for( int i_border=0; i_border< np; i_border++){
-      ind_nbe_t[ i_border ] = ind_nbe_t_tmp[ i_border ]; 
-    }
-  
-
-    delete [] ind_np; 
-    delete [] label_be;
-    delete [] ind_nbe_t_tmp;
-    for(int i=0; i<nbe_t; i++) delete [] Cdg_be[i];
-    delete [] Cdg_be;
-	
-    nbe_t = np;
-    if(verbosity > 1) cout << "fin recollement : nbe_t= "<< nbe_t << endl; 
-			
-    // Affectation de la nouvelle valeur du label
-		
-  }
-}
-
-void Transfo_Mesh2_map_face(const Mesh &Th2, map<int, int> &maptri ){
-		
-  int numero_label=0;
-  for(int ii=0; ii< Th2.nt; ii++){
-    const Mesh::Triangle & K(Th2.t(ii));
-    map<int,int>::const_iterator imap=maptri.find(K.lab);
-			
-    if(imap == maptri.end()){
-      maptri[ K.lab ] = numero_label;
-      numero_label = numero_label+1;
-    }
-  }
-}
-
-
-Mesh3 * MoveMesh2_func( const double &precis_mesh, const Mesh & Th2, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, 
-	int &border_only, int &recollement_border, int &point_confondus_ok){
-	
-  //Mesh3 *T_Th3= new Mesh3;
-	int nv_t,nt_t,nbe_t;
-	int* Numero_Som;
-	
-	int* ind_nv_t;
-	int* ind_nt_t=0;
-	int* ind_nbe_t;
-	int* label_nbe_t;
-	
-	//int i_som;
-	Numero_Som = new int[Th2.nv];
-	ind_nv_t   = new int[Th2.nv];
-	ind_nbe_t  = new int[Th2.nt];   
-	label_nbe_t = new int[Th2.nt];
-	if(verbosity>5)
-	cout << "before movemesh::Vertex  triangle2  border " << Th2.nv << " "<<Th2.nt<< " " << Th2.neb<< endl;
-	
-	for(int ii=0; ii<Th2.nv; ii++){ 
-		Numero_Som[ii]=ii;
-	}
-	
-	if(verbosity > 1) cout <<" debut: SamePointElement " <<endl;
-	
-	SamePointElement_Mesh2( precis_mesh, tab_XX, tab_YY, tab_ZZ, Th2, recollement_border, point_confondus_ok, 
-		Numero_Som, ind_nv_t, ind_nt_t, ind_nbe_t, label_nbe_t, nv_t, nt_t, nbe_t);
-	
-	if(verbosity > 1) cout <<" fin: SamePointElement " <<endl;
-	
-	cout << "After movemesh::Vertex  triangle2  border " << nv_t << " "<< nt_t << " " << nbe_t<< endl;
-	
-	Vertex3 *v=new Vertex3[nv_t];
-	Tet *t;
-	Triangle3 *b=new Triangle3[nbe_t];
-	Triangle3 *bb=b;
-
-	//T_Th3->set(nv_t,0,nbe_t);
-	
-	for(int nnv=0; nnv < nv_t; nnv++)
-	{
-		int ii = ind_nv_t[nnv];
-		assert( Numero_Som[ii] == nnv );
-		const Mesh::Vertex & K = Th2.vertices[ii];//const Vertex2 & K(Th2.vertices[ii]); //Version Mesh2   
-		/*
-		  T_Th3->vertices[nnv].x = tab_XX[ii];
-		  T_Th3->vertices[nnv].y = tab_YY[ii];
-		  T_Th3->vertices[nnv].z = tab_ZZ[ii];       
-		  T_Th3->vertices[nnv].lab =  K.lab;   
-		*/
-		v[nnv].x = tab_XX[ii];
-		v[nnv].y = tab_YY[ii];
-		v[nnv].z = tab_ZZ[ii];       
-		v[nnv].lab =  K.lab;
-		
-	}
-	  
-	for(int ibe=0; ibe < nbe_t; ibe++){
-		int lab;
-		int iv[3];
-		int ii=ind_nbe_t[ibe];
-		// creation of elements
-		const Mesh::Triangle & K(Th2.t(ii)); // const Triangle2 & K(Th2.elements[ii]); // Version Mesh2  
-		iv[0] = Numero_Som[ Th2.operator()(K[0]) ];
-		iv[1] = Numero_Som[ Th2.operator()(K[1]) ];
-		iv[2] = Numero_Som[ Th2.operator()(K[2]) ];
-		
-		/*
-		map< int, int>:: const_iterator imap;
-		imap = maptri.find(K.lab); // imap= maptri.find( label_nbe_t[ibe] );
-		assert( imap != maptri.end());
-		lab = imap->second; // K.lab; // before 
-		*/
-		//T_Th3->be(ibe).set(T_Th3->vertices,iv,K.lab);
-		(bb++)->set(v,iv,K.lab);
-	}  
-
-
-	//Mesh3 *T_Th3 = new Mesh3(nv_t,0,nbe_t,v,t,b);
-	Mesh3 *T_Th3 = new Mesh3(nv_t,nbe_t,v,b);
-
- 	delete [ ] Numero_Som;
-	delete [ ] ind_nv_t;
-	delete [ ] ind_nbe_t;
-	delete [ ] label_nbe_t;
-
-	return T_Th3;
-}
-
-void SamePointElement_Mesh2( const double &precis_mesh, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, const Mesh & Th2, 
-	int &recollement_border, int &point_confondus_ok, int *Numero_Som, 
-	int *ind_nv_t, int *ind_nt_t, int *ind_nbe_t, int* label_nbe_t,
-	int & nv_t, int & nt_t,int & nbe_t ){
-
-  int Border_ok;
-  //int recollement_border=0;
-  R3 bmin,bmax;
-  double hmin,hmin_border;
-		
-  if(verbosity > 1) cout << "calculus of bound and minimal distance" << endl;
-  BuildBoundMinDist_th2( precis_mesh, tab_XX, tab_YY, tab_ZZ, Th2, bmin, bmax, hmin);
-  // assertion pour la taille de l octree
-  assert(hmin>Norme2(bmin-bmax)/1e9);
-		
-  double bmin3[3], bmax3[3];
-  bmin3[0] = bmin.x;
-  bmin3[1] = bmin.y;
-  bmin3[2] = bmin.z;
-		
-  bmax3[0] = bmax.x;
-  bmax3[1] = bmax.y;
-  bmax3[2] = bmax.z;
-  /*
-    cout << "debut: OrderVertexTransfo_hcode " <<endl;
-    OrderVertexTransfo_hcode_nv( Th2.nv, tab_XX, tab_YY, tab_ZZ, bmin3, bmax3, hmin, Numero_Som, ind_nv_t, nv_t );
-    cout << "fin order vertex: nv_t=" << nv_t << endl;
-  */
-  if(verbosity > 1) cout << "debut: OrderVertexTransfo_hcode_gtree " <<endl;
-  OrderVertexTransfo_hcode_nv_gtree( Th2.nv, bmin, bmax, hmin, tab_XX, tab_YY, tab_ZZ, Numero_Som, ind_nv_t, nv_t);
-  if(verbosity > 1) cout << "fin: OrderVertexTransfo_hcode_gtree " <<endl;
-		
-		
-  /* determination de nt_t et de nbe_t*/ 
-  nt_t = 0;
-  int i_border;
-		
-  // determination of border elements
-  i_border= 0;
-  for( int
-	 ii=0; ii< Th2.nt; ii++){
-    Border_ok=1;
-    const Mesh::Triangle & K(Th2.t(ii)); // const Triangle2 & K(Th2.elements[ii]); // avant Mesh2
-    int iv[3];
-			
-    for(int jj=0; jj <3; jj++){
-      iv[jj] = Numero_Som[ Th2.operator()(K[jj]) ];
-    }
-			
-    for(int jj=0; jj<3; jj++){
-      for(int kk=jj+1; kk<3; kk++){
-	if( iv[jj]==iv[kk] ) Border_ok=0;
-      }
-    }
-    if(Border_ok==1){
-      ind_nbe_t[i_border] = ii;
-      label_nbe_t[i_border] = K.lab;
-      i_border=i_border+1;
-    }
-  }
-  nbe_t = i_border;
-		
-  if( recollement_border == 1){
-    //int point_confondus_ok=1;
-    if(verbosity > 1) cout << "debut recollement : nbe_t= "<< nbe_t << endl; 
-			
-    int np,dim=3;
-    int *ind_np = new int [nbe_t];
-    int *label_be = new int [nbe_t ];
-    double **Cdg_be=new double *[nbe_t];
-		
-    for(int i=0; i<nbe_t; i++) Cdg_be[i] = new double[dim];
-		
-    for( int i_border=0; i_border< nbe_t; i_border++){
-      int & ii=ind_nbe_t[i_border];
-      const Mesh::Triangle & K(Th2.t(ii)); //const Triangle2 & K(Th2.elements[ii]);  // avant Mesh2
-      int iv[3];
-				
-      for(int jj=0; jj <3; jj++){
-	iv[jj] = Th2.operator()(K[jj]);
-      }
-      
-      Cdg_be[i_border][0] = ( tab_XX[iv[0]] + tab_XX[iv[1]] + tab_XX[iv[2]] )/3.; 
-      Cdg_be[i_border][1] = ( tab_YY[iv[0]] + tab_YY[iv[1]] + tab_YY[iv[2]] )/3.; 
-      Cdg_be[i_border][2] = ( tab_ZZ[iv[0]] + tab_ZZ[iv[1]] + tab_ZZ[iv[2]] )/3.; 
-				
-      label_be[i_border] = K.lab;
-    }
-			
-    hmin_border=hmin/3.;
-    if(verbosity > 1) cout << "points commun " << endl;
-    //PointCommun_hcode( dim, nbe_t, point_confondus_ok, Cdg_be, bmin3, bmax3, hmin_border, ind_np, np); // ancien
-    PointCommun_hcode_gtree( dim, nbe_t, point_confondus_ok, Cdg_be, label_be, bmin, bmax, hmin_border, 
-			     ind_np, label_nbe_t,np); // new
-    if(verbosity > 1) cout << "points commun finis " <<endl;
-    assert( np <= nbe_t );
-
-    	
-    //int *ind_nbe_t_tmp= new int [np];
-    int ind_nbe_t_tmp[np];
-	
-    for( int i_border=0; i_border<np; i_border++){
-      ind_nbe_t_tmp[ i_border ] = ind_nbe_t[ ind_np[i_border] ]; 
-    }
-			
-    for( int i_border=0; i_border< np; i_border++){
-      ind_nbe_t[ i_border ] = ind_nbe_t_tmp[ i_border ]; 
-    }	
-		
-   
-    delete [ ] ind_np; //= new int [nbe_t];
-    delete [ ] label_be;// = new int [nbe_t ];
-    for(int i=0; i<nbe_t; i++) delete [ ] Cdg_be[i];
-    delete [ ] Cdg_be; //=new double *[nbe_t];
-    
-    nbe_t = np;
-    if(verbosity > 1) cout << "fin recollement : nbe_t= "<< nbe_t << endl; 
-
-  }
-}
-
-
-//======================
-//    Fin cas 2D
-//======================
-// version Mesh2
-void BuildBoundMinDist_th2( const double &precis_mesh, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, const Mesh & Th2, R3 &bmin, R3 &bmax, double &hmin){
-  //determination de la boite englobante
-  //R3 bmin,bmax;
-  double precispt;
-		
-  bmin.x = tab_XX[0];
-  bmin.y = tab_YY[0];
-  bmin.z = tab_ZZ[0];
-		
-  bmax.x = bmin.x;
-  bmax.y = bmin.y;
-  bmax.z = bmin.z;
-		
-  //R3 bmax = new R3(bmin);
-  
-  if(verbosity >1) cout << " determination of bmin and bmax" << endl;
-		
-  for(int ii=1; ii<Th2.nv; ii++){
-    bmin.x = min(bmin.x,tab_XX[ii]);
-    bmin.y = min(bmin.y,tab_YY[ii]);
-    bmin.z = min(bmin.z,tab_ZZ[ii]);
-		
-    bmax.x = max(bmax.x,tab_XX[ii]);
-    bmax.y = max(bmax.y,tab_YY[ii]);
-    bmax.z = max(bmax.z,tab_ZZ[ii]);
-  }
-  double longmini_box=1e10;
-		
-  longmini_box = pow(bmax.x-bmin.x,2)+pow(bmax.y-bmin.y,2)+ pow(bmax.z-bmin.z,2);
-  longmini_box = sqrt(longmini_box);
-		
-  // determination de hmin 
-  if(precis_mesh< 0){
-    precispt=longmini_box*1e-7;
-  }
-  else{
-    precispt=precis_mesh;
-  }
-
-  hmin = 1e10;
-  for( int ii=0; ii< Th2.nt; ii++){
-    const Mesh :: Triangle & K(Th2.t(ii)); // const Triangle2 & K(Th2.elements[ii]);
-    double longedge;
-    int iv[3];
-    for(int jj=0; jj<3; jj++){
-      iv[jj] = Th2.operator()(K[jj]) ;
-    }
-			
-    for( int jj=0; jj<3; jj++){
-      for( int kk=jj+1; kk<3; kk++){ 
-	int & i1= iv[jj];
-	int & i2= iv[kk];
-	longedge = pow(tab_XX[i1]-tab_XX[i2],2) 
-	  + pow(tab_YY[i1]-tab_YY[i2],2) 
-	  + pow(tab_ZZ[i1]-tab_ZZ[i2],2);
-	longedge = sqrt(longedge);
-	//cout << "longedge=" << longedge << endl; 
-	if( longedge > precispt ) hmin = min( hmin, longedge);
-      }
-    }
-  }
-  if(verbosity >5) cout << "    longmin_box=" << longmini_box << endl;
-  if(verbosity >5) cout << "    hmin =" << hmin << endl;
-  if(verbosity >5) cout << "    Norme2(bmin-bmax)=" <<  Norme2(bmin-bmax) << endl;
-  assert( hmin < longmini_box);
-
-  // assertion pour la taille de l octree
-  assert(hmin>Norme2(bmin-bmax)/1e9);
-
-  /*  // ?????????
-    hmin = 1e10;
-    for( int ii=0; ii< Th2.nt; ii++){
-      const Mesh :: Triangle & K(Th2.t(ii)); // const Triangle2 & K(Th2.elements[ii]);
-      double longedge;
-      int iv[3];
-      for(int jj=0; jj<3; jj++){
-	iv[jj] = Th2.operator()(K[jj]) ;
-      }
-			
-      for( int jj=0; jj<3; jj++){
-	for( int kk=jj+1; kk<3; kk++){ 
-	  int & i1= iv[jj];
-	  int & i2= iv[kk];
-	  longedge = pow(tab_XX[i1]-tab_XX[i2],2) 
-	    + pow(tab_YY[i1]-tab_YY[i2],2) 
-	    + pow(tab_ZZ[i1]-tab_ZZ[i2],2);
-	  longedge = sqrt(longedge);
-	  //cout << "longedge=" << longedge << endl; 
-	  if( longedge > longmini_box*1e-7 ) hmin = min( hmin, longedge);
-	}
-      }
-    }
-    cout << "longmin_box=" << longmini_box << endl;
-    cout << "hmin =" << hmin << endl;
-    cout << "Norme2(bmin-bmax)=" <<  Norme2(bmin-bmax) << endl;
-    assert( hmin < longmini_box);
-    // assertion pour la taille de l octree
-    assert(hmin>Norme2(bmin-bmax)/1e9);
-  */
-}
-
-// version Mesh3
-
-void BuildBoundMinDist_th3(  const double &precis_mesh,  const double *tab_XX, const double *tab_YY, const double *tab_ZZ, const Mesh3& Th3, R3 &bmin, R3 &bmax, double &hmin){
-  //determination de la boite englobante
-  //R3 bmin,bmax;
-  double precispt;
-  bmin.x = tab_XX[0];
-  bmin.y = tab_YY[0];
-  bmin.z = tab_ZZ[0];
-		
-  bmax.x = bmin.x;
-  bmax.y = bmin.y;
-  bmax.z = bmin.z;
-		
-  //R3 bmax = new R3(bmin);
-		
-  if(verbosity >1) cout << " determination of bmin and bmax" << endl;
-		
-  for(int ii=1; ii<Th3.nv; ii++){
-    bmin.x = min(bmin.x,tab_XX[ii]);
-    bmin.y = min(bmin.y,tab_YY[ii]);
-    bmin.z = min(bmin.z,tab_ZZ[ii]);
-		
-    bmax.x = max(bmax.x,tab_XX[ii]);
-    bmax.y = max(bmax.y,tab_YY[ii]);
-    bmax.z = max(bmax.z,tab_ZZ[ii]);
-  }
-		
-  double longmini_box;
-		
-  //longmini_box = min(bmax.x-bmin.x, bmax.y-bmin.y);
-  //longmini_box = min(longmini_box, bmax.z-bmin.z);
-		
-  longmini_box = pow(bmax.x-bmin.x,2)+pow(bmax.y-bmin.y,2)+ pow(bmax.z-bmin.z,2);
-  longmini_box = sqrt(longmini_box);
-		
-		
-  if(verbosity >1) cout << " bmin := " << bmin.x << " " << bmin.y << " " << bmin.z << endl;
-  if(verbosity >1) cout << " bmax := " << bmax.x << " " << bmax.y << " " << bmax.z << endl;
-  if(verbosity >1) cout << " box volume :=" << longmini_box << endl;
-	
-
-  if(precis_mesh< 0){
-    precispt=longmini_box*1e-7;
-  }
-  else{
-    precispt=precis_mesh;
-  }
-  // determination de hmin 
-		
-  hmin = 1e10;
-  for( int ii=0; ii< Th3.nt; ii++){
-    const Tet & K(Th3.elements[ii]);
-    double longedge;
-    int iv[4];
-    for(int jj=0; jj <4; jj++){
-      iv[jj] = Th3.operator()(K[jj]) ;
-    }
-			
-    for( int jj=0; jj<4; jj++){
-      for( int kk=jj+1; kk<4; kk++){ 
-	int & i1= iv[jj];
-	int & i2= iv[kk];
-	longedge = pow(tab_XX[i1]-tab_XX[i2],2) 
-	  + pow(tab_YY[i1]-tab_YY[i2],2) 
-	  + pow(tab_ZZ[i1]-tab_ZZ[i2],2);
-	longedge = sqrt(longedge);
-	if(longedge > precispt ) hmin = min( hmin, longedge);
-      }
-    }
-  }
-
-  if( Th3.nt == 0){
-    for( int ii=0; ii< Th3.nbe; ii++){
-      if(verbosity >10) cout << "border " << ii <<" hmin =" << hmin << endl;
-      const Triangle3 & K(Th3.be(ii));
-      double longedge;
-      int iv[3];
-      for(int jj=0; jj <3; jj++){
-	iv[jj] = Th3.operator()(K[jj]) ;
-      }
-			
-      for( int jj=0; jj<3; jj++){
-	for( int kk=jj+1; kk<3; kk++){ 
-	  int & i1= iv[jj];
-	  int & i2= iv[kk];
-	  longedge = pow(tab_XX[i1]-tab_XX[i2],2) 
-	    + pow(tab_YY[i1]-tab_YY[i2],2) 
-	    + pow(tab_ZZ[i1]-tab_ZZ[i2],2);
-	  longedge = sqrt(longedge);
-	  if(longedge > precispt ) hmin = min( hmin, longedge);
-	}
-      }
-    }
-  }
-
-  if(verbosity >5) cout << "    longmini_box" << longmini_box << endl;
-  if(verbosity >5) cout << "    hmin =" << hmin << endl;
-  assert( hmin < longmini_box);
-  if(verbosity >5) cout << "    Norme2(bmin-bmax)=" <<  Norme2(bmin-bmax) << endl;
-  // assertion pour la taille de l octree
-  assert(hmin>Norme2(bmin-bmax)/1e9);
-}
-
-//======================
-//
-//======================
-void OrderVertexTransfo_hcode_nv( const int &tab_nv, const double *tab_XX, const double *tab_YY, const double *tab_ZZ,  
-				  const double *bmin, const double *bmax, const double hmin,int *Numero_Som, int * ind_nv_t, int & nv_t){
-  size_t i;
-  size_t j[3];
-  size_t k[3];
-  size_t NbCode = 100000;
-  int *tcode; //= new int[NbCode];	
-
-  int *posv = new int[tab_nv];
-  double epsilon= hmin/10.;
-  /*
-    double epsilon=0.001;
-			
-    // determination de boite englobante
-    double bmin[3],bmax[3];
-	
-    bmin[0] = tab_XX[0];
-    bmin[1] = tab_YY[0];
-    bmin[2] = tab_ZZ[0];
-	
-    bmax[0] = bmin[0];
-    bmax[1] = bmin[1];
-    bmax[2] = bmin[2];
-	
-    cout << " determination bmin et bmax" << endl;
-	
-    for(int ii=1; ii<tab_nv; ii++){
-    bmin[0] = min(bmin[0],tab_XX[ii]);
-    bmin[1] = min(bmin[1],tab_YY[ii]);
-    bmin[2] = min(bmin[2],tab_ZZ[ii]);
- 		
-    bmax[0] = max(bmax[0],tab_XX[ii]);
-    bmax[1] = max(bmax[1],tab_YY[ii]);
-    bmax[2] = max(bmax[2],tab_ZZ[ii]);
-    }
-  */
-	
-  k[0] = int( (bmax[0]-bmin[0])/epsilon ); 
-  k[1] = int( (bmax[1]-bmin[1])/epsilon ); 
-  k[2] = int( (bmax[2]-bmin[2])/epsilon ); 
-	
-  int numberofpoints=0;
-  int numberofpointsdiff;
-	
-  for(int ii=0; ii<tab_nv; ii++){
-    numberofpointsdiff=0;
-    for(int jj=ii+1; jj<tab_nv; jj++){
-      double dist = 0.;
-      dist = pow(tab_XX[jj]-tab_XX[ii],2)+pow(tab_YY[jj]-tab_YY[ii],2)+pow(tab_ZZ[jj]-tab_ZZ[ii],2); //pow(Coord_Point[jj][kk]-Coord_Point[ii][kk],2);
-      if( sqrt(dist) < epsilon ){
-	numberofpointsdiff=1;
-      } 
-    }
-    if( numberofpointsdiff==0) numberofpoints=numberofpoints+1;
-  }
-	
-  if(verbosity >4) cout << "   -- numberofpoints " << numberofpoints << endl;
-  if(verbosity >4) cout << "   -- taille boite englobante =" << endl;
-  if(verbosity >4)
-    {
-      for(int ii=0; ii<3; ii++){
-	cout << "ii=" << ii << " " << bmin[ii] << " " << bmax[ii] <<endl;
-      }
-      
-      for(int ii=0; ii<3; ii++){
-	cout << "k[" << ii << "]= " << k[ii]<<endl;
-      }
-    }
-  NbCode = min( 4*(k[0]+k[1]+k[2]), NbCode );
-  tcode = new int[NbCode];
-	
-	
-  /* initialisation des codes */
-  for(int ii=0; ii< NbCode; ii++){
-    tcode[ii] = -1;
-  }
-	
-	
-  for(int ii=0; ii < tab_nv; ii++){
-    // boucle dans l autre sens pour assurer l'ordre des elements pour la suite
-    //cout << "vertex ii " << ii << "  max : " << tab_nv;  
-    j[0] = int( (tab_XX[ii]-bmin[0])/epsilon  );
-    j[1] = int( (tab_YY[ii]-bmin[1])/epsilon  );
-    j[2] = int( (tab_ZZ[ii]-bmin[2])/epsilon  );  
-		
-    assert( j[0] <=k[0] && j[0]>=0);
-    assert( j[1] <=k[1] && j[1]>=0);
-    assert( j[2] <=k[2] && j[2]>=0);
-    i = (j[2]*(k[1]+1)+j[1]*(k[0]+1)+j[0]);
-    //cout << i << endl;	
-    i = i%NbCode;    
-    assert( i < NbCode );
-    posv[ii] = tcode[i];
-    tcode[i] = ii;
-  }
-	
-  if(verbosity >1) cout << " boucle numero de Sommet " << endl;
-  for(int ii=0; ii<tab_nv; ii++){
-    Numero_Som[ii]=-1;
-  }
-	
-  if(verbosity >1) cout << " determinations des points confondus et numerotation " << endl;
-	
-  nv_t=0;
-  for(int	icode =0; icode < NbCode; icode++){
-    //int ii,jj;		
-    double dist;		
-		
-    for(int ii=tcode[icode]; ii!=-1; ii=posv[ii]){
-      if(Numero_Som[ii] != -1) continue; 
-      Numero_Som[ii] = nv_t;				
-      for(int jj=posv[ii]; jj!=-1; jj=posv[jj]){
-	if(Numero_Som[jj] != -1) continue; 
-	dist=pow(tab_XX[jj]-tab_XX[ii],2)+pow(tab_YY[jj]-tab_YY[ii],2)+pow(tab_ZZ[jj]-tab_ZZ[ii],2);	
-			
-	if( sqrt(dist) < epsilon ){
-	  // point semblable
-	  Numero_Som[jj] = Numero_Som[ii];
-	  //cout << "point semblable" << endl;
-	  //exit(-1); 
-	}
-				
-      }
-      ind_nv_t[nv_t] = ii; // Remarque on donne a nv_t le plus grand
-      nv_t++; //nv_t = nvt+1;
-    }
-  }
-  if(verbosity >1) cout << "      nv_t = " << nv_t << " / " << "nv_t(anc)" << tab_nv <<endl;
-  assert( nv_t == numberofpoints);
-
-  delete [] posv;
-  delete [] tcode;
-}
-
-void PointCommun_hcode( const int &dim, const int &NbPoints, const int &point_confondus_ok, double **Coord_Point, 
-			const double *bmin, const double *bmax, const double hmin, int * ind_np, int & np){
-	
-  size_t i;
-  size_t j[dim];
-  size_t k[dim];
-  size_t NbCode = 100000;
-  int *tcode; //= new int[NbCode];
-  int *posv = new int[NbPoints];
-  int *Numero_Som =new int[NbPoints];
-	
-  double epsilon=hmin/10.;
-  /*
-    double epsilon=0.0001;
-    double bmin[dim],bmax[dim];
-	
-    for(int jj=0; jj<dim; jj++){ 
-    bmin[jj] = Coord_Point[0][jj];
-    bmax[jj] = bmin[jj];
-    }
-    for(int ii=1; ii<NbPoints; ii++){
-    for(int jj=0; jj<dim; jj++){ 
-    bmin[jj] = min(bmin[jj],Coord_Point[ii][jj]);
-    bmax[jj] = max(bmax[jj],Coord_Point[ii][jj]);
-    }
-    }
-  */
-  assert( dim > 1);
-	
-  for(int jj=0; jj<dim; jj++){ 
-    k[jj] = int( (bmax[jj]-bmin[jj])/epsilon );
-  } 
-	
-  int numberofpoints=0;
-  int numberofpointsdiff;
-	
-  for(int ii=0; ii<NbPoints; ii++){
-    numberofpointsdiff=0;
-    for(int jj=ii+1; jj<NbPoints; jj++){
-      double dist = 0.;
-      for( int kk=0; kk<3; kk++){
-	dist = dist +  pow(Coord_Point[jj][kk]-Coord_Point[ii][kk],2);
-      }
-      if( sqrt(dist) < 1e-10){
-	numberofpointsdiff=1;
-      } 
-    }
-    if( numberofpointsdiff==0) numberofpoints=numberofpoints+1;
-  }
-	
-  if(verbosity >1) cout << "numberofpoints " << numberofpoints << endl;
-	
-  NbCode = min( 4*(k[0]+k[1]+k[2]), NbCode);
-  if(verbosity >1) cout << "NbCode=" << NbCode << endl;
-  tcode = new int[NbCode];
-  /* initialisation des codes */
-  for(int ii=0; ii< NbCode; ii++){
-    tcode[ii] = -1;
-  }
-	
-  for(int ii=0; ii < NbPoints; ii++){
-    // boucle dans l autre sens pour assurer l'ordre des elements pour la suite
-		
-    for( int jj=0; jj<dim; jj++){
-      j[jj] = int( (Coord_Point[ii][jj]-bmin[jj])/epsilon  );
-    }
-	
-    assert( j[0] <=k[0] && j[0]>=0);
-    assert( j[1] <=k[1] && j[1]>=0);
-    assert( j[2] <=k[2] && j[2]>=0);
-		
-    i = j[0];
-    for(int jj=1; jj<dim; jj++){
-      i=i+j[jj]*(k[jj-1]+1);
-    }
-    i = i%NbCode;    
-		
-    assert( i < NbCode );
-    posv[ii] = tcode[i];
-    tcode[i] = ii;
-  }
-  for(int ii=0; ii < NbPoints; ii++){
-    ind_np[ii] = -1;
-    Numero_Som[ii] = -1;
-  }
-	
-  /* Resolution probleme dans le cas o� le maillage se colle */
-	
-  /* maintenant determinations des points confondus et numerotation*/
-	
-  switch( point_confondus_ok ){
-	
-  case 0:
-    np=0;
-    for(int	icode =0; icode < NbCode; icode++){
-      //int ii,jj;		
-      double dist;		
-		
-      for(int ii=tcode[icode]; ii!=-1; ii=posv[ii]){
-			
-	if( Numero_Som[ii]!= -1 ) continue;
-	//minimum_np=ii;
-	Numero_Som[ii] = np;
-			
-	for(int jj=posv[ii]; jj!=-1; jj=posv[jj]){
-				
-	  if(Numero_Som[jj] != -1) continue; 
-	  dist = 0.;
-				
-	  for( int kk=0; kk<dim; kk++){
-	    dist = dist +  pow(Coord_Point[jj][kk]-Coord_Point[ii][kk],2);
-	  }
-					
-	  if( sqrt(dist) < epsilon ){
-	    // point semblable
-	    Numero_Som[jj] = Numero_Som[ii];
-	    //minimum_np = min( jj, minimum_np);
-	  }
-	}
-	ind_np[np] = ii; //min(ii,minimum_np);	// Remarque on donne a np le plus petit element
-	np++; //nv_t = nvt+1;
-      }
-    }
-    break;
-		
-  case 1:
-    int point_multiple;
-    np=0;
-    for(int icode =0; icode < NbCode; icode++){
-      //int ii,jj;		
-      double dist;		
-		
-      for(int ii=tcode[icode]; ii!=-1; ii=posv[ii]){
-			
-	if( Numero_Som[ii]!= -1 ) continue;										
-	//minimum_np=ii;
-	Numero_Som[ii] = np;
-	point_multiple = 0; 
-				
-				
-	for(int jj=posv[ii]; jj!=-1; jj=posv[jj]){
-				
-	  if(Numero_Som[jj] != -1) continue; 				
-	  dist = 0.;
-				
-	  for( int kk=0; kk<dim; kk++){
-	    dist = dist +  pow(Coord_Point[jj][kk]-Coord_Point[ii][kk],2);
-	  }
-							
-	  if( sqrt(dist) < epsilon ){
-	    // point semblable
-	    Numero_Som[jj] = Numero_Som[ii];
-	    point_multiple = 1; 
-	    //minimum_np = min( jj, minimum_np);
-	  }				
-	}
-	if(point_multiple ==0){
-	  ind_np[np] = ii; //min(ii,minimum_np);	// Remarque on donne a np le plus petit element
-	  np++; //nv_t = nvt+1;
-	}
-      }
-    }
-    break;
-  default:
-    cout << " point_confondus_ok dans fonction PointCommun_hcode vaut 1 ou 0." << endl;
-    exit(-1);
-  }
-
-  delete [] tcode; 
-  delete [] posv;
-  delete [] Numero_Som;
-
-}
-
-void OrderVertexTransfo_hcode_nv_gtree( const int & tab_nv, const R3 &bmin, const R3 &bmax, const double &hmin,  
-					const double *tab_XX, const double *tab_YY, const double *tab_ZZ, int *Numero_Som, int * ind_nv_t, int & nv_t){
-
-  size_t i;
-  size_t j[3];
-  size_t k[3];
-	
-  // parametre interne pour debugger le code
-  int verifnumberofpoints;
-  verifnumberofpoints = 1;
-	
-  // hmin a determiner plus haut
-  assert(hmin>Norme2(bmin-bmax)/1e9);
-  double hseuil =hmin/10.; 
-
-  //hseuil = hseuil/10.;
-	
-  Vertex3  *v= new Vertex3[tab_nv];
-  //Vertex3  v[tab_nv];
-  
-  EF23::GTree<Vertex3> *gtree = new EF23::GTree<Vertex3>(v,bmin,bmax,0);
-	
-  if(verbosity >2){
-    cout << "  -- taille de la boite " << endl;
-    cout << "\t" <<  bmin.x << " " << bmin.y << " " << bmin.z <<  endl;
-    cout << "\t"  << bmax.x << " " << bmax.y << " " << bmax.z <<  endl;
-  }
-	
-  // creation of octree
-  nv_t = 0;
-  for (int ii=0;ii<tab_nv;ii++){
-    const R3 r3vi( tab_XX[ii], tab_YY[ii],tab_ZZ[ii]);
-    /*vi.x = tab_XX[ii];
-      vi.y = tab_YY[ii];
-      vi.z = tab_ZZ[ii];*/
-    const Vertex3 &vi(r3vi);
-    /*vi.x = tab_XX[ii];
-      vi.y = tab_YY[ii];
-      vi.z = tab_ZZ[ii];*/
-	
-
-    Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-    if(!pvi){
-      v[nv_t].x = vi.x;
-      v[nv_t].y = vi.y;
-      v[nv_t].z = vi.z;
-      v[nv_t].lab = vi.lab; // lab mis a zero par default
-      ind_nv_t[nv_t] = ii;
-      Numero_Som[ii] = nv_t;
-      gtree->Add( v[nv_t] );
-      nv_t=nv_t+1;
-    }
-
-    else{
-      Numero_Som[ii] = pvi-v;
-    }
-  }
-
-  delete gtree;
-  delete [] v;
-	
-  if(verbosity >3) cout << "    hseuil=" << hseuil <<endl;
-  if(verbosity >3) cout << "    nv_t = " << nv_t << " / " << "nv_t(anc)" << tab_nv <<endl;
-  
-  if(verifnumberofpoints ==1){
-    int numberofpoints=0;
-    int numberofpointsdiff;
-	
-    for(int ii=0; ii<tab_nv; ii++){
-      numberofpointsdiff=0;
-      for(int jj=ii+1; jj<tab_nv; jj++){
-	double dist = 0.;
-	dist = pow(tab_XX[jj]-tab_XX[ii],2)+pow(tab_YY[jj]-tab_YY[ii],2)+pow(tab_ZZ[jj]-tab_ZZ[ii],2);
-	if( sqrt(dist) < hseuil){
-	  numberofpointsdiff=1;
-	} 
-      }
-      if( numberofpointsdiff==0) numberofpoints=numberofpoints+1;
-    }
-    if(verbosity >2) cout << "  -- numberofpoints " << numberofpoints << endl;
-//    if(verbosity >2) cout << "  -- taille boite englobante =" << endl;
-    //    assert(nv_t==numberofpoints);
-  }
-}
-
-void PointCommun_hcode_gtree( const int &dim, const int &NbPoints, const int &point_confondus_ok, 
-			      double **Coord_Point, const int * label_point, 
-			      const R3 & bmin, const R3 & bmax, const double &hmin, int * ind_np, int * ind_label, int & np){
-	
-  double hseuil =hmin/10.; 
-  Vertex3  *v= new Vertex3[NbPoints];
-  //Vertex3 v[NbPoints];
-  EF23::GTree<Vertex3> *gtree = new EF23::GTree<Vertex3>(v,bmin,bmax,0);
-	
-  if(verbosity >1) cout<< "verif hmin vertex3 GTree switch: " << point_confondus_ok << endl;
-	
-  int int_point_confondus_ok = point_confondus_ok;
-	
-  if(int_point_confondus_ok == 0){
-    // accepte les points double 
-    np = 0;
-    for (int ii=0;ii<NbPoints;ii++){
-      const R3 r3vi( Coord_Point[ii][0], Coord_Point[ii][1], Coord_Point[ii][2] ); 
-      const Vertex3 &vi( r3vi);
-      Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-			
-      if(!pvi){
-	v[np].x = vi.x;
-	v[np].y = vi.y;
-	v[np].z = vi.z;
-	v[np].lab = vi.lab; // lab mis a zero par default
-	ind_np[np] = ii;
-	ind_label[np] = label_point[ii];
-	gtree->Add( v[np++] );
-      }
-      else{
-	ind_label[pvi-v] = min( ind_label[pvi-v], label_point[ii] );
-      }
-    }
-    if(verbosity >1) cout << "np="<< np << endl;
-		
-  }
-  if(int_point_confondus_ok == 1){
-    // accepte les points double sont enleves
-    np = 0;
-    for (int ii=0;ii<NbPoints;ii++){
-      const R3 r3vi( Coord_Point[ii][0], Coord_Point[ii][1], Coord_Point[ii][2] ); 
-      //int label = label_point[ii];
-      const Vertex3 &vi( r3vi);
-      Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-			
-      if(!pvi){
-	v[np].x = vi.x;
-	v[np].y = vi.y;
-	v[np].z = vi.z;
-	v[np].lab = vi.lab; // lab mis a zero par default
-	ind_np[np] = ii;
-	ind_label[np] = label_point[ii];
-	gtree->Add( v[np++] );
-      }
-      else{
-	ind_label[pvi-v] = min( ind_label[pvi-v], label_point[ii] );
-      }
-    }
-		
-    int ind_multiple[np];
-		
-    for(int ii=0; ii<np; ii++){
-      ind_multiple[ii]=-1;
-    }
-    for (int ii=0;ii<NbPoints;ii++){
-      const R3 r3vi(Coord_Point[ii][0], Coord_Point[ii][1], Coord_Point[ii][2] );
-      //int label =  label_point[ii];
-      const Vertex3 & vi(r3vi);
-      Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-      ind_multiple[pvi-v]=ind_multiple[pvi-v]+1; 
-    }
-		
-    int jnp;
-    jnp=0;
-    for(int ii=0; ii<np; ii++){
-      if(ind_multiple[ii]==0){
-	assert( jnp <= ii);
-	ind_np[jnp] = ind_np[ii];
-	ind_label[jnp] = ind_label[ii];
-	jnp++;
-      }
-    }
-    np=jnp;
-  }
-  if( int_point_confondus_ok != 0 && int_point_confondus_ok != 1){
-    cout << " point_confondus_ok dans fonction PointCommun_hcode vaut 1 ou 0." << endl;
-    exit(1);
-  }
-	
-  delete gtree;
-  delete [] v; 
-
-  /*
-    int z_verifnumberofpoints;
-    z_verifnumberofpoints = 0;
-    if(z_verifnumberofpoints ==1){
-    int numberofpoints=0;
-    int numberofpointsdiff;
-    for(int ii=0; ii<NbPoints; ii++){
-    numberofpointsdiff=0;
-    for(int jj=ii+1; jj<NbPoints; jj++){
-    double dist = 0.;
-    for( int kk=0; kk<3; kk++){
-    dist = dist +  pow(Coord_Point[jj][kk]-Coord_Point[ii][kk],2);
-    }
-    if( sqrt(dist) < hseuil/10){
-    numberofpointsdiff=1;
-    } 
-    }
-    if( numberofpointsdiff==0) numberofpoints=numberofpoints+1;
-    if( point_confondus_ok==1 && numberofpointsdiff==1) numberofpoints=numberofpoints-1;
-    }
-    cout << "numberofpoints =" << numberofpoints<< endl;
-    cout << "np =" << np<< endl;
-    //assert( numberofpoints == np);
-    }
-  */
-}
-
-/* fin TransfoMesh_v2.cpp*/
-
-/* debut buildlayer.cpp */
-class BuildLayeMesh_Op : public E_F0mps 
-{
-public:
-  Expression eTh;
-  Expression enmax,ezmin,ezmax,xx,yy,zz;
-  static const int n_name_param =9+4; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  //int    arg(int i,Stack stack,int a ) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-public:
-  BuildLayeMesh_Op(const basicAC_F0 &  args,Expression tth,Expression nmaxx) 
-    : eTh(tth),enmax(nmaxx), ezmin(0),ezmax(0),xx(0),yy(0),zz(0)
-  {
-    if(verbosity >1) cout << "construction par BuilLayeMesh_Op" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    const E_Array * a2 =0, *a1=0 ;
-    if(nargs[0])  a1  = dynamic_cast<const E_Array *>(nargs[0]);
-    if(nargs[1])  a2  = dynamic_cast<const E_Array *>(nargs[1]);
-    int err =0;
-    //cout << nargs[0] << " "<< a1 << endl;
-    //cout << nargs[1] << " "<< a2 << endl;
-    if(a1) {
-      if(a1->size() !=2) 
-	CompileError("LayerMesh (Th,n, zbound=[zmin,zmax],) ");
-	  //cout << "lecture de ezmin , ezmax" << endl; 
-      ezmin=to<double>( (*a1)[0]);
-      ezmax=to<double>( (*a1)[1]); 
-    }
-    if(a2) {
-      if(a2->size() !=3) 
-	CompileError("LayerMesh (Th,n, transfo=[X,Y,Z],) ");
-      xx=to<double>( (*a2)[0]);
-      yy=to<double>( (*a2)[1]);
-      zz=to<double>( (*a2)[2]);
-    }  
-    if( nargs[3] && nargs[9] ) 
-	CompileError("uncompatible buildlayer (Th, region= , reftet=  ");
-    if( nargs[4] && nargs[10] ) 
-	CompileError("uncompatible buildlayer (Th, midlabel= , reffacemid=  ");
-    if( nargs[5] && nargs[11] ) 
-	CompileError("uncompatible buildlayer (Th, toplabel= , reffaceup=  ");
-    if( nargs[6] && nargs[12] ) 
-	CompileError("uncompatible buildlayer (Th, downlabel= , reffacelow=  ");
-    
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type BuildLayeMesh_Op::name_param[]= {
-  {  "zbound", &typeid(E_Array)},
-  {  "transfo", &typeid(E_Array)},
-  {  "coef", &typeid(double)},
-  {  "reftet", &typeid(KN_<long>)}, // 3
-  {  "reffacemid", &typeid(KN_<long> )},
-  {  "reffaceup", &typeid(KN_<long> )},
-  {  "reffacelow", &typeid(KN_<long> )},
-  {  "facemerge", &typeid(long)},
-  {  "ptmerge",&typeid(double)},
-  {  "region", &typeid(KN_<long>)}, // 9
-  {  "labelmid", &typeid(KN_<long> )},
-  {  "labelup", &typeid(KN_<long> )},
-  {  "labeldown", &typeid(KN_<long> )}, // 12
-    
-};
-
-
-class  BuildLayerMesh : public OneOperator { public:  
-    BuildLayerMesh() : OneOperator(atype<pmesh3>(),atype<pmesh>(),atype<long>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  {
-    if(verbosity >1) cout << " je suis dans code(const basicAC_F0 & args) const" << endl; 
-    //cout << "args: " << args << endl;   
-    return  new BuildLayeMesh_Op(args,t[0]->CastTo(args[0]),t[1]->CastTo(args[1])); 
-  }
-};
-
-AnyType BuildLayeMesh_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh * pTh= GetAny<Mesh *>((*eTh)(stack));
-  int nlayer = (int) GetAny<long>((*enmax)(stack));
-  ffassert(pTh && nlayer>0);
-  Mesh &Th=*pTh;
-  Mesh *m= pTh;   // question a quoi sert *m ??
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int neb=Th.neb; // nombre d'aretes fontiere
-  if(verbosity>2)
-  cout << "  -- BuildLayeMesh_Op input: nv" << nbv<< "  nt: "<< nbt << " nbe "<< neb << endl; 
-  KN<double> zmin(nbv),zmax(nbv);
-  KN<double> clayer(nbv); //  nombre de layer est nlayer*clayer
-  
-  clayer=-1;
-  zmin=0.;
-  zmax=1.;
-    double maxdz = 0;   
-  for (int it=0;it<nbt;++it){
-    for(int iv=0;iv<3;++iv)      
-    {
-      int i=Th(it,iv);
-       if(clayer[i]<0)
-	{
-	  mp->setP(&Th,it,iv);
-	  //cout << "mp: fait " << endl;
-	  if(ezmin){ zmin[i]=GetAny<double>((*ezmin)(stack));}
-	  if(ezmax){ zmax[i]=GetAny<double>((*ezmax)(stack));}
-	  maxdz = max(maxdz, abs(zmin[i]-zmax[i]));
-	  clayer[i]=Max( 0. , Min( 1. , arg(2,stack,1.) ) ); 
-	
-	}	     
-    }
-  }
-  
-  ffassert(clayer.min() >=0);
-
-  if(verbosity >1) cout << "lecture valeur des references " << endl;
-  
-  KN<long> zzempty;
-  KN<long> nrtet  (arg(3,stack,arg(3+6,stack,zzempty)));  
-  KN<long> nrfmid (arg(4,stack,arg(4+6,stack,zzempty)));  
-  KN<long> nrfup  (arg(5,stack,arg(5+6,stack,zzempty)));  
-  KN<long> nrfdown (arg(6,stack,arg(6+6,stack,zzempty)));  
-  int point_confondus_ok (arg(7,stack,0L));
-  double precis_mesh (arg(8,stack,-1L));
-
-  
-  //if( nrtet.N() && nrfmid.N() && nrfup.N() && nrfdown.N() ) return m;
-  ffassert( nrtet.N() %2 ==0);
-  ffassert( nrfmid.N() %2 ==0);
-  ffassert( nrfup.N() %2 ==0);
-  ffassert( nrfdown.N() %2 ==0);
-  
-  // realisation de la map par default
-  
-  map< int, int > maptet; 
-  map< int, int > maptrimil, maptrizmax, maptrizmin;
-  map< int, int > mapemil, mapezmax, mapezmin;
-  
-  build_layer_map_tetrahedra( Th, maptet );
-  build_layer_map_triangle( Th, maptrimil, maptrizmax, maptrizmin );
-  build_layer_map_edge( Th, mapemil, mapezmax, mapezmin );
-    
-  // Map utilisateur
-  map< int, int > :: iterator imap;
-  for( int ii=0; ii < nrtet.N(); ii+=2){
-	imap = maptet.find(nrtet[ii]);
-	if( imap != maptet.end()){
-		imap -> second = nrtet[ii+1];
-	}
-  }  
-
-  for( int ii=0; ii < nrfmid.N(); ii+=2){
-	imap = maptrimil.find(nrfmid[ii]);
-	if( imap != maptrimil.end()){
-		imap -> second = nrfmid[ii+1];
-	}
-  }  
-  
-  for( int ii=0; ii < nrfup.N(); ii+=2){
-	imap = maptrizmax.find(nrfup[ii]);
-	if( imap != maptrizmax.end()){
-		imap -> second = nrfup[ii+1];
-	}
-  }  
-  
-  for( int ii=0; ii < nrfdown.N(); ii+=2){
-	imap = maptrizmin.find(nrfdown[ii]);
-	if( imap != maptrizmin.end()){
-		imap -> second = nrfdown[ii+1];
-	}
-  }  
-    
-  int nebn =0;
-  KN<int> ni(nbv);
-    double epsz = maxdz *1e-6;
- if(verbosity>9999)    cout << "BuildLayeMesh_Op:: epsz " << epsz <<endl; 
-  for(int i=0;i<nbv;i++)
-    {
-      ni[i]=Max(0,Min(nlayer,(int) lrint(nlayer*clayer[i])));
-      if(abs(zmin[i]-zmax[i]) < epsz) ni[i]=0; // Corr FH aug. 2014...
-    }
-  if(verbosity>9999)    cout << " BuildLayeMesh_Op: ni = " << ni << endl; 
-  // triangle 
-  for (int it=0;it<nbt;++it){
-    const Mesh::Element &K(Th.t(it));
-    int i0 = Th.operator()(K[0]); 
-    int i1 = Th.operator()(K[1]); 
-    int i2 = Th.operator()(K[2]); 
-    
-    if( ni[i0] == 0 && ni[i1] == 0 && ni[i2] == 0 ){
-      cout << "A tetrahedra with null volume will be created with triangle " << it << " of 2D Mesh " << endl;
-      cout << "stop procedure of buildlayer" << endl;
-      exit(1);
-    }
-
-  }
-
-  // cas maillage volumique + surfacique
-  Mesh3 *Th3= build_layer(Th, nlayer, ni, zmin, zmax, maptet, maptrimil, maptrizmax, maptrizmin, mapemil, mapezmax, mapezmin);
-  // cas maillage surfacique simplement // A construire Jacques + donner le numero des edges que l'on veut pas creer � l'int�rieure
-    
-  
-  if( !(xx) && !(yy) && !(zz) )
-    {
-	 /*
-	  map< int, int > maptet; 
-	  map< int, int > maptrimil, maptrizmax, maptrizmin;
-	  map< int, int > mapemil, mapezmax, mapezmin;
-	   
-	  build_layer_map_tetrahedra( Th, maptet );
-	  build_layer_map_triangle( Th, maptrimil, maptrizmax, maptrizmin );
-	  build_layer_map_edge( Th, mapemil, mapezmax, mapezmin );
-	  
-	  Mesh3 *Th3= build_layer(Th, nlayer, ni, zmin, zmax, maptet, maptrimil, maptrizmax, maptrizmin, mapemil, mapezmax, mapezmin);
-	  */
-      
-     // Th3->BuildBound();
-     // Th3->BuildAdj();
-     // Th3->Buildbnormalv();  
-     // Th3->BuildjElementConteningVertex();
-      
-      Th3->BuildGTree(); //A decommenter
-
-      Add2StackOfPtr2FreeRC(stack,Th3);
-      *mp=mps;
-      return Th3;
-    }
-  else
-    {  
-      //Mesh3 *Th3= build_layer(Th, nlayer, ni, zmin, zmax);
-	  
-      KN<double> txx(Th3->nv), tyy(Th3->nv), tzz(Th3->nv);
-      KN<int> takemesh(Th3->nv);
-      //MeshPoint *mp3(MeshPointStack(stack)); 
-	  
-      takemesh=0;  
-      Mesh3 &rTh3 = *Th3;
-      for (int it=0;it<Th3->nt;++it){
-	for( int iv=0; iv<4; ++iv){
-	  int i=(*Th3)(it,iv);  
-	  if(takemesh[i]==0){
-	    mp->setP(Th3,it,iv);
-	    if(xx){ txx[i]=GetAny<double>((*xx)(stack));}
-	    if(yy){ tyy[i]=GetAny<double>((*yy)(stack));}
-	    if(zz){ tzz[i]=GetAny<double>((*zz)(stack));}
-
-	    takemesh[i] = takemesh[i]+1;
-	  }
-	}
-      }
-		
-      int border_only = 0;
-      int recollement_elem=0, recollement_border=1; 
-      if(point_confondus_ok == 2){
-	recollement_border = 0;
-	point_confondus_ok = 1;
-      }
-
-        Mesh3 *T_Th3=Transfo_Mesh3( precis_mesh, rTh3, txx, tyy, tzz, border_only, recollement_elem, recollement_border, point_confondus_ok,1);
-		  
-      
-      // T_Th3->BuildBound();
-      //  T_Th3->BuildAdj();
-      // T_Th3->Buildbnormalv();  
-      // T_Th3->BuildjElementConteningVertex();
-      
-      
-      T_Th3->BuildGTree(); //A decommenter
-      
-      delete Th3;
-      Add2StackOfPtr2FreeRC(stack,T_Th3);
-      *mp=mps;
-      return T_Th3;
-
-    }
-}
-
-
-// function nouveau nom de fonction
-
-class Movemesh2D_3D_surf_cout_Op : public E_F0mps 
-{
-public:
-  Movemesh2D_3D_surf_cout_Op(const basicAC_F0 &  args,Expression tth)  
-  {
-    CompileError("The keyword movemesh2D3Dsurf is remplaced now by the keyword movemesh23 (see Manual) ::: Moreover, the parameter mesuremesh are denoted now orientation ");
-  } 
-   AnyType operator()(Stack stack)const { return 0L; }
-  
-};
-
-
-
-
-class Movemesh2D_3D_surf_cout : public OneOperator { public:  
-typedef Mesh *pmesh;
-typedef Mesh3 *pmesh3;
-    
-  Movemesh2D_3D_surf_cout() : OneOperator(atype<pmesh3>(),atype<pmesh>() ) {}
-    E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new Movemesh2D_3D_surf_cout_Op(args,t[0]->CastTo(args[0]));  // CastTo(args[]); // plus tard
-  }
-};
-
-
-/***********************************************/
-
-class Movemesh3D_cout_Op : public E_F0mps 
-{
- 
-public:
-  Movemesh3D_cout_Op(const basicAC_F0 &  args,Expression tth)  
- 
-  {
-    CompileError("The keyword movemesh3D is remplaced in this new version of freefem++ by the keyword movemesh3 (see manual)");
-  } 
-  
-  AnyType operator()(Stack stack)  const {return 0L;}
-  
-};
-
-
-
-
-class Movemesh3D_cout : public OneOperator { public:  
-typedef Mesh *pmesh;
-typedef Mesh3 *pmesh3;
-    
-  Movemesh3D_cout() : OneOperator(atype<pmesh3>(),atype<pmesh>() ) {}
-    E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new Movemesh3D_cout_Op(args,t[0]->CastTo(args[0]));  // CastTo(args[]); // plus tard
-  }
-};
-
-
-//
-
-class DeplacementTab_Op : public E_F0mps 
-{
-public:
-  Expression eTh;
-  //Expression xx,yy,zz;
-  static const int n_name_param =6; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long  arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-public:
-  DeplacementTab_Op(const basicAC_F0 &  args,Expression tth) 
-    : eTh(tth)  //, xx(0) , yy(0) , zz(0)
-  {
-    args.SetNameParam(n_name_param,name_param,nargs);
-   
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type DeplacementTab_Op::name_param[]= {
-  {  "deltax", &typeid(KN_<double>)},
-  {  "deltay", &typeid(KN_<double>)},
-  {  "deltaz", &typeid(KN_<double>)},
-  {  "ptmerge", &typeid(double)},
-  {  "facemerge", &typeid(long)},
-  {  "boolsurface",&typeid(long)}
-};
-
-AnyType DeplacementTab_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  
-  ffassert(pTh);
-  Mesh3 &Th=*pTh;
-  Mesh3 *m= pTh;   // question a quoi sert *m ??
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int nbe=Th.nbe; // nombre d'aretes fontiere
-  if(verbosity>5)
-  cout << "before movemesh: Vertex " << nbv<< " Tetrahedra " << nbt << " triangles "<< nbe << endl; 
- 
- // lecture des references
-   
-  KN<double> zzempty;
-  KN<double> dx (arg(0,stack,zzempty));
-  KN<double> dy (arg(1,stack,zzempty));
-  KN<double> dz (arg(2,stack,zzempty));
-  double precis_mesh( arg(3,stack,1e-7));
-
-  ffassert( dx.N() == Th.nv);
-  ffassert( dy.N() == Th.nv);
-  ffassert( dz.N() == Th.nv);
-    
-  // realisation de la map par default
- 
-  KN<double> txx(Th.nv), tyy(Th.nv), tzz(Th.nv);
-  // loop over tetrahedral 
-  for (int i=0;i<Th.nv;++i){   
-    txx[i]=Th.vertices[i].x+dx[i];
-    tyy[i]=Th.vertices[i].y+dy[i];
-    tzz[i]=Th.vertices[i].z+dz[i];
-  }
-  
-  int border_only = 0;
-  int recollement_elem=0;
-  int recollement_border,point_confondus_ok;
-  
-  int  mergefacemesh( arg(4,stack,0L) );
-  long  flagsurfaceall( arg(5,stack,1L) );
-
-   if(mergefacemesh == 0)
-    {
-      recollement_border=0;
-      point_confondus_ok=0;
-    }
-  if(mergefacemesh == 1)
-    { 
-      recollement_border=1;
-      point_confondus_ok=0;
-    }
-  if(mergefacemesh == 2)
-    { 
-      recollement_border=1;
-      point_confondus_ok=1;
-    }
-
-  Mesh3 *T_Th3=Transfo_Mesh3( precis_mesh,Th, txx, tyy, tzz, border_only, 
-			      recollement_elem, recollement_border, point_confondus_ok,1);
-  
-  if(nbt != 0)
-    {
-      //T_Th3->BuildBound();
-    
-      //T_Th3->BuildAdj();
-
-      if(flagsurfaceall==1) T_Th3->BuildBoundaryElementAdj();
-      
-      //T_Th3->Buildbnormalv();  
-
-     // T_Th3->BuildjElementConteningVertex();
-      
-      T_Th3->BuildGTree();
-      
-      //	T_Th3->decrement(); 
-    }
-  else
-    {
-       if(flagsurfaceall==1) T_Th3->BuildBoundaryElementAdj();
-    }
-  Add2StackOfPtr2FreeRC(stack,T_Th3);
- 
-  *mp=mps;
-  return T_Th3;
-}
-
-class  DeplacementTab : public OneOperator { public:  
-    DeplacementTab() : OneOperator(atype<pmesh3>(),atype<pmesh3>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  {
-	return  new DeplacementTab_Op(args,t[0]->CastTo(args[0])); 
-  }
-
-};
-
-// CheckSurfaceMesh ==> 
-
-int  GetBEManifold( Expression bb,  Expression &label, Expression &orient);
-void GetNumberBEManifold( Expression surf, int & mani_nbe);
-
-void GetManifolds( Expression mani, int & nbcmanifold,  int * &mani_nbe, Expression * &manifold)
-{
-  if ( mani ) 
-    {
-      int i,j;
-      const E_Array * a= dynamic_cast<const  E_Array *>(mani);
-      ffassert(a);
-      int n = a->size();
-      if( verbosity>1) 
-	cout << "    the number of manifold " << n << endl;
-      
-      nbcmanifold = n;  // nombre de manifold d�finis
-      
-      //manifold = new Expression[n]; 
-      mani_nbe = new int[n];
-      int size = 0;
-      for ( i=0; i<n; i++){
-	GetNumberBEManifold( (*a)[i], mani_nbe[i]);
-	cout << "number of manifold = " << n << "manifold i=" << i << "nb BE label=" << mani_nbe[i] << endl;
-	size=size+mani_nbe[i];
-      }
-   
-      manifold = new Expression[size*2];
-      int count=0;
-      for ( i=0; i<n; i++){
-	Expression tmp=(*a)[i];
-	const E_Array * aa = dynamic_cast<const  E_Array *>( tmp );
-	for( j=0; j< mani_nbe[i]; j++){
-	  if(GetBEManifold( (*aa)[j], manifold[count], manifold[count+1] ) ==0)   
-	    CompileError(" a manifold is defined by a pair of [label, orientation ]");
-	  count=count+2;
-	}
-      }
-      assert(count == 2*size);
-    }  
-}
-
-void GetNumberBEManifold( Expression surf, int & mani_nbe)
-{
-  if ( surf ) 
-    {
-      int i,j;
-      if( verbosity>1) 
-	cout << "  -- Manifoldal Condition to do" << endl;
-      const E_Array * a= dynamic_cast<const  E_Array *>(surf);
-      ffassert(a);
-      mani_nbe = a->size();
-      
-    }
-}
-
-
-// void GetManifold( Expression surf, int & mani_nbe, Expression * &manifold)
-// {
-//   if ( surf ) 
-//     {
-//       int i,j;
-//       if( verbosity>1) 
-// 	cout << "  -- Manifoldal Condition to do" << endl;
-//       const E_Array * a= dynamic_cast<const  E_Array *>(surf);
-//       ffassert(a);
-//       int n = a->size()/2;
-//       mani_nbe = n;
-//       if( verbosity>1) 
-// 	cout << "    the number of face label in a manifold " << n << endl;
-//       if( n*2 != a->size() )
-// 	CompileError(" a manifold is defined by a pair of [label, orientation ]");
-//       manifold = new Expression[n*2]; 
-//       for ( i=0,j=0;i<n;i++,j+=2)
-// 	if (GetBEManifold((*a)[i],manifold[j],manifold[j+1])==0)
-// 	  CompileError(" a sub array of a sub manifold must be [label, orientation ]");
-//     }
-// }
-
-int GetBEManifold( Expression bb, Expression &label, Expression &orient)
-{
-  
-  const E_Array * a= dynamic_cast<const  E_Array *>(bb);
-  if( a &&  a->size() == 2 ){
-    label  =  to<long>((*a)[0]);
-    orient =  to<long>((*a)[1]);
-    
-    return 1;
-  }
-  else
-    return 0;
-}
-
-class CheckManifoldMesh_Op : public E_F0mps 
-{
-public:
-  Expression eTh;
-  static const int n_name_param =1; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  int nbmanifold;
-  int *mani_nbe;
-  Expression *manifolds;
-
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long  arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-public:
-  CheckManifoldMesh_Op(const basicAC_F0 &  args,Expression tth) 
-    : eTh(tth)
-  {
-    args.SetNameParam(n_name_param,name_param,nargs);
-    if(nargs[0])   
-      GetManifolds(nargs[0],nbmanifold, mani_nbe, manifolds);
-    else
-      CompileError("check ::: no definition of manifold");
-   
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type CheckManifoldMesh_Op::name_param[]= {
-  {  "manifolds", &typeid(E_Array)}
-  // option a rajouter
-  // facemerge 0,1 + label
-};
-
-AnyType CheckManifoldMesh_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-
-
-  int size=0;
-  KN<int> BeginManifold(nbmanifold+1);
-  
-  for (int i=0; i< nbmanifold; i++){
-    BeginManifold[i]=size;
-    size=size+mani_nbe[i];
-  }
-  BeginManifold[nbmanifold]=size;
-  
-  KN<int> TabLabelManifold(size ), OrientLabelManifold(size );
-    
-  int count=0;
-  for (int i=0; i< nbmanifold; i++){
-    for(int j=0; j< mani_nbe[i]; j++){
-      TabLabelManifold   [count]  = GetAny< long > ( ( *manifolds[2*count] )(stack) ); 
-      OrientLabelManifold [count] = GetAny< long > ( ( *manifolds[2*count+1] )(stack) ); 
-      count++;
-    }
-  }
-  assert(count == size);
-
-//   int count=0;
-//   for(int ii=0; ii<nbvariete; ii++)
-//     {
-//       beginvariete[ii]=count;
-//       for(int jj=0; jj<labelvariete[ii]; jj++)
-// 	{
-// 	  TabLabelVariete    [count] = GetAny< long > ( (*surface[2*ii+1][2*jj])(stack) ); 
-// 	  OrientLabelVariete [count] = GetAny< long > ( (*surface[2*ii+1][2*jj+1])(stack) ); 
-// 	  count++;
-// 	}
-//     }
-//   beginvariete[nbvariete]=count;
-  
-  long resultat=1;
-  pTh->BuildBoundaryElementAdj( nbmanifold, BeginManifold,TabLabelManifold,OrientLabelManifold); // nbvariete, beginvariete, TabLabelVariete, OrientLabelVariete);
-  
-  cout << "utilisation V2" << endl;
-  *mp=mps;
-  return resultat;
-}
-      
-
-class  CheckManifoldMesh : public OneOperator { public:  
-    CheckManifoldMesh() : OneOperator(atype<long>(),atype<pmesh3>() ) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  {
-	return  new CheckManifoldMesh_Op(args,t[0]->CastTo(args[0])); 
-  }
-};
-
-
-
-
-Mesh3 * truncmesh(const Mesh3 &Th,const long &kksplit,int *split, bool kk, const int newbelabel);
-
-struct Op_trunc_mesh3 : public OneOperator {
-  typedef Mesh3 *pmesh3;
-  class Op: public E_F0mps   { 
-  public:
-    static basicAC_F0::name_and_type name_param[] ;
-    static const int n_name_param =4;
-    Expression nargs[n_name_param];
-    
-    Expression getmesh,bbb;
-    long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-    KN<long> *  arg(int i,Stack stack) const{ return nargs[i] ? GetAny<KN<long> *>( (*nargs[i])(stack) ): 0;}
-      
-    Op(const basicAC_F0 &  args,Expression t,Expression b) : getmesh(t),bbb(b) 
-    { args.SetNameParam(n_name_param,name_param,nargs); }
-    AnyType operator()(Stack s)  const ;
-  };
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { return new Op(args,t[0]->CastTo(args[0]),t[1]->CastTo(args[1])); }
-  Op_trunc_mesh3() : 
-    OneOperator(atype<pmesh3>(),atype<pmesh3>(),atype<bool>()) {};     
-};
-
-basicAC_F0::name_and_type Op_trunc_mesh3::Op::name_param[Op_trunc_mesh3::Op::n_name_param] =
- {
-   {  "split",             &typeid(long)},
-   {  "label",             &typeid(long)},
-     { "new2old", &typeid(KN<long>*)},  //  ajout FH pour P. Jovilet jan 2014
-     { "old2new", &typeid(KN<long>*)}   //  ajout FH pour P. Jovilet jan 2014
-
- };
-
-
-Mesh3 * truncmesh(const Mesh3 &Th,const long &kksplit,int *split, bool kk, const int newbelabel)
-{
-    
-    static const int FaceTriangle[4]={3,0,1,2};  //={{3,2,1}, {0,2,3},{ 3,1,0},{ 0,1,2}}
-    
-    
-    // computation of number of border elements and vertex without split
-    int nbe = 0;
-    int nt  = 0;
-    int nv  = 0;
-    int nvtrunc =0;
-    int nedge=0;
-    int nface=0;
-    double hmin=1e100;
-    R3 bmin,bmax;
-    int nbeee=0,nbfi=0;
-    const int kksplit2 = kksplit*kksplit;
-    const int kksplit3 = kksplit2*kksplit;
-    int ntsplit =0;
-    int tagb[4]={1,2,4,8} ;
-    KN<int> tagTonB(Th.nt);
-    tagTonB=0;
-    
-    for( int ibe=0; ibe < Th.nbe; ibe++)
-    {
-        int iff;
-        int it=Th.BoundaryElement(ibe,iff);
-        tagTonB[it]|= tagb[iff];
-        int ifff=iff,itt=Th.ElementAdj(it,ifff);
-        if(itt >=0 &&  itt != it)
-            tagTonB[itt]|= tagb[ifff];
-    }
-    
-    for (int i=0;i<Th.nt;i++)
-        if(split[i])
-        {
-            ++ntsplit;
-            // computation of number of tetrahedrons
-            nt=nt+kksplit3;
-            // computation of number of border elements
-            for (int j=0;j<4;j++)
-            {
-                int jt=j,it=Th.ElementAdj(i,jt);
-                if ( (it==i || it <0)  || ! split[it]) nbeee++;// boundary face ...
-                else nbfi++; // internal face count 2 times ...
-                if(it==i || it <0) nbe += kksplit2;  //on est sur la frontiere
-                else if (!split[it]) nbe += kksplit2; //le voisin ne doit pas etre decoupe
-                else if ( (tagTonB[i]&tagb[j] ) != 0 && i<it) nbe += kksplit2; // internal boundary ..
-            }
-            
-            for (int e=0;e<6;e++){
-                hmin=min(hmin,Th[i].lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-            }
-        }
-    ffassert( nbfi %2 ==0) ;
-    nface = nbeee + nbfi/2;
-    double hseuil = (hmin/kksplit)/1000.;
-    if(verbosity>5)
-        cout << "  number of  not intern boundary faces = " << nbeee << ",  all faces  =  " << nbe << ", hseuil=" << hseuil <<endl;
-    
-    /* determination de bmin, bmax et hmin */
-    
-    KN<int> takevertex(Th.nv,-1);
-    
-    for(int i=0; i<Th.nt; i++){
-        if(split[i])
-        {
-            const Tet &K(Th.elements[i]);
-            for(int ii=0; ii<4; ii++)
-            {
-                int iv= Th.operator()( K[ii] );
-                if( takevertex[iv] == -1 )
-                {
-                    bmin=Minc(Th.vertices[iv],bmin);
-                    bmax=Maxc(Th.vertices[iv],bmax);
-                    takevertex[iv]=nvtrunc++;
-                }
-            }
-            
-        }
-    }
-    
-    if( kksplit > 1 )
-    { // compute the number of slip edge ...
-        nedge=0;
-        HashTable<SortArray<int,2>,int> edges(3*nface,nface);
-        for(int i=0; i<Th.nt; i++){
-            if(split[i])
-            {
-                const Tet &K(Th.elements[i]);
-                for(int e=0;e<6;++e)
-                {
-                    
-                    int e1 = Th( K[ Th[i].nvedge[e][0] ] );
-                    int e2 = Th( K[ Th[i].nvedge[e][1] ] );
-                    SortArray<int,2> key(e1,e2);
-                    if(!edges.find(key) )
-                        edges.add(key,nedge++);
-                }
-            }
-        }
-    }
-    if(verbosity>10) cout << "    -- nvertex  " << nvtrunc << ", nedges = "<< nedge
-        << ", nfaces = " << nface << " ntet =" << ntsplit
-        << endl
-        << "    -- Euler/Poincare constante = " << nvtrunc-nedge+nface-ntsplit
-        << endl;
-    
-    /* determination des vertex, triangles et tetrahedre obtenue apres splitting dans le Simplex */
-    
-    int nfacesub = kksplit2;
-    int ntetsub = kksplit3;
-    int nvsub = (kksplit+1)*(kksplit+2)*(kksplit+3)/6;
-    int ntrisub = 4*kksplit2;
-    
-    R3 *vertexsub; //[nvsub];
-    int *tetsub;   //[4*ntetsub];
-    int *trisub;   //[4*kksplit*kksplit];
-    
-    SplitSimplex<R3>( kksplit, nvsub, vertexsub, ntetsub, tetsub);
-    SplitSurfaceSimplex( kksplit, ntrisub, trisub);
-    
-    if(verbosity>3)
-        cout << "  -- trunc (3d) : Th.nv= " << Th.nv << "kksplit="<< kksplit << endl;
-    
-    int ntnosplit  = nt/kksplit3;
-    int nbenosplit = nbe/kksplit2;
-    int nfacenosplit = (4*ntnosplit+nbenosplit)/2;
-    nv = ntnosplit*(nvsub - 4*( (kksplit+1)*(kksplit+2)/2 - 3*(kksplit-1) -3 ) - 6*( kksplit-1 ) - 4);
-    if(verbosity>100) cout << "       1) nv= " << nv << endl;
-    nv = nv + nfacenosplit*( (kksplit+1)*(kksplit+2)/2 - 3*(kksplit-1) -3 );
-    if(verbosity>100) cout << "       2) nv= " << nv << endl;
-    nv = nv + nedge*( kksplit-1 );
-    if(verbosity>100) cout << "       3) nv= " << nv << endl;
-    nv = nv + nvtrunc;
-    if(verbosity>100) cout << "       4) nv= " << nv << endl;
-    
-    
-    
-    int itt=0;
-    int ie=0;
-    
-    
-    Vertex3 *v=new Vertex3[nv];
-    Tet *t = new Tet[nt];
-    Tet *tt = t;
-    
-    Triangle3 *b  = new Triangle3[nbe];
-    Triangle3 *bb = b;
-    R3 hh = (bmax-bmax)/10.;
-    EF23::GTree<Vertex3> *gtree = new EF23::GTree<Vertex3>(v,bmin-hh,bmax+hh,0);
-    const R3 * pP[4];
-    int np=0; // nb of new points .. 
-
-    {
-        KN<R3>  vertextetsub(nvsub);
-        KN<int> newindex (nvsub);
-        
-        for(int i=0; i<Th.nt; i++)
-            if(split[i])
-            {
-                const Tet &K(Th.elements[i]);
-                
-                for(int ii=0; ii< 4; ii++)
-                    pP[ii] = & K[ii];
-                
-                for( int iv=0; iv<nvsub; iv++)
-                    (R3&) vertextetsub[iv]= vertexsub[iv].Bary(pP);
-                
-                for( int iv=0; iv<nvsub; iv++)
-                {
-                    Vertex3 * pvi=gtree->ToClose(vertextetsub[iv],hseuil);
-                    
-                    if(!pvi)
-                    {
-                        (R3&) v[np]   = vertextetsub[iv];
-                        v[np].lab = K.lab;
-                        newindex[iv] = np;
-                        gtree->Add( v[np] );
-                        np++;
-                    }
-                    else
-                        newindex[iv] = pvi-v;
-                    
-                    ffassert( np <= nv );
-                }
-                
-                for( int ii=0; ii<ntetsub; ii++)
-                {
-                    int ivt[4];
-                    for( int jj=0; jj< 4; jj++)
-                    {
-                        ivt[jj] = newindex[tetsub[4*ii+jj]];
-                        assert( tetsub[4*ii+jj] < nvsub );
-                        assert( ivt[jj] < np );
-                    }
-                    (tt++)->set( v, ivt, K.lab);
-                    itt++;
-                    assert( itt <= nt );
-                }
-                
-                for (int j=0;j<4;j++)
-                {
-                    int jt=j,it=Th.ElementAdj(i,jt);
-                    
-                    if ( ( (tagTonB[i]&tagb[j]) ==0 ) &&  !(it==i || it <0)  && !split[it])
-                    {
-                        // new border not on boundary
-                        int ivb[3];
-                        
-                        for( int ii=0; ii<nfacesub; ii++)
-                        {
-                            int iface = 3*FaceTriangle[j]*nfacesub+3*ii;
-                            
-                            for( int jjj=0; jjj<3; jjj++)
-                            {
-                                ivb[jjj] = newindex[ trisub[iface+jjj] ];
-                                assert( trisub[ iface+jjj ] < nvsub );
-                                assert( ivb[jjj] < np );
-                            }
-                            
-                            (bb++)->set( v, ivb, newbelabel);
-                            ie++;
-                        }
-                    }
-                    assert( ie <= nbe);
-                    
-                }
-            }
-    }
-    if(verbosity>10)
-        cout  << "    ++ np=" << np << "==  nv=" << nv << endl;
-    ffassert( np == nv); 
-    if(verbosity>8)
-        cout << "   -- Number of new  border face not on Border " << ie << endl;
-    delete [] vertexsub; //[nvsub];
-    delete [] tetsub;   //[4*ntetsub];
-    delete [] trisub;   //[4*kksplit*kksplit];
-    
-    // split border elements
-    int nv2Dsub   = (kksplit+1)*(kksplit+2)/4;
-    int ntri2Dsub = kksplit2;
-    R2 *vertex2Dsub; //[nvsub];
-    int *tri2Dsub;   //[4*kksplit*kksplit];
-    
-    SplitSimplex<R2>( kksplit, nv2Dsub, vertex2Dsub, ntri2Dsub, tri2Dsub);
-    
-    
-    for( int ibe=0; ibe < Th.nbe; ibe++)
-    {
-        int iff;
-        int it=Th.BoundaryElement(ibe,iff);
-        int ifff=iff,itt=Th.ElementAdj(it,ifff);
-        if(itt<0) itt=it;
-        if( split[it] == 0 && split[itt] == 0) continue; // boundary not on one element
-        
-        const Triangle3 &K(Th.be(ibe));
-        int ivv[3];
-        
-        ivv[0] = Th.operator()(K[0]);
-        ivv[1] = Th.operator()(K[1]);
-        ivv[2] = Th.operator()(K[2]);
-        
-        R3 *vertextrisub = new R3  [nv2Dsub];
-        int *newindex = new int[nv2Dsub];
-        for( int iv=0; iv<nv2Dsub; iv++)
-        {
-            double alpha=vertex2Dsub[iv].x;
-            double beta=vertex2Dsub[iv].y;
-            
-            vertextrisub[iv].x = (1-alpha-beta)*Th.vertices[ivv[0]].x + alpha*Th.vertices[ivv[1]].x + beta*Th.vertices[ivv[2]].x;
-            vertextrisub[iv].y = (1-alpha-beta)*Th.vertices[ivv[0]].y + alpha*Th.vertices[ivv[1]].y + beta*Th.vertices[ivv[2]].y;
-            vertextrisub[iv].z = (1-alpha-beta)*Th.vertices[ivv[0]].z + alpha*Th.vertices[ivv[1]].z + beta*Th.vertices[ivv[2]].z;
-            
-        }
-        
-        for( int iv=0; iv<nv2Dsub; iv++)
-        {
-            const Vertex3 &vi( vertextrisub[iv] );
-            Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-            assert(pvi);
-            newindex[iv] = pvi-v;
-        }
-        
-        for( int ii=0; ii<nfacesub; ii++)
-        {
-            int ivb[3];
-            for( int jjj=0; jjj<3; jjj++)
-            {
-                ivb[jjj] = newindex[ tri2Dsub[3*ii+jjj] ];
-                assert( tri2Dsub[ 3*ii+jjj  ] < nvsub );
-                if(verbosity > 199 ) cout << "        " << ivb[jjj] << " np:" << np<< endl;
-                assert( ivb[jjj] < np );
-            }
-            
-            (bb++)->set( v, ivb, K.lab);
-            ie++;
-            assert( ie <= nbe);
-        }
-        delete [] vertextrisub;
-        delete [] newindex;
-        
-        
-    }
-    
-    delete [] vertex2Dsub;   //[4*ntetsub];
-    delete [] tri2Dsub;   //[4*kksplit*kksplit];
-    
-    
-    if(verbosity>99)
-    {
-        cout << "nbofv initial" << Th.nv << endl;
-        cout << "nv=" << nv << " np=" << np << endl;
-        cout << "itt=" << itt << " nt=" << nt << endl;
-        cout << "ie=" << ie << " nbe=" << nbe << endl;
-    }
-    ffassert( nv == np );
-    ffassert( ie ==nbe);
-    ffassert( itt == nt );
-    
-    //delete gtree;
-    
-    Mesh3 *Tht = new Mesh3( nv, nt, nbe, v, t, b);
-    Tht->BuildGTree(); // Add JM. Oct 2010
-    delete gtree;
-    
-    
-    return Tht;
-}
-
-
-AnyType Op_trunc_mesh3::Op::operator()(Stack stack)  const {
-    
-  Mesh3 *pTh = GetAny<Mesh3 *>((*getmesh)(stack));
-  Mesh3 &Th = *pTh;
-  long kkksplit =arg(0,stack,1L);
-  long label =arg(1,stack,2L);
-   KN<long> * pn2o =  arg(2,stack);
-KN<long> * po2n =  arg(3,stack);
-
-  KN<int> split(Th.nt);
-  split=kkksplit;
-  MeshPoint *mp= MeshPointStack(stack),mps=*mp;
-  long kk=0;
-  long ks=kkksplit*kkksplit*kkksplit;
-  for (int k=0;k<Th.nt;k++)
-    { 
-      const Tet & K( Th.elements[k] );
-      R3 B(1./4.,1./4.,1./4.);  // 27/09/10 : J.Morice error in msh3.cpp
-      mp->set(Th,K(B),B,K,0);
-      if (  GetAny<bool>( (*bbb)(stack) )  ) kk++;
-      else  split[k]=0  ;    
-    }
-  //*mp=mps;
-  if (verbosity>1) 
-    cout << "  -- Trunc mesh: Nb of Tetrahedrons = " << kk << " label=" <<label <<endl;
-  Mesh3 * Tht = truncmesh(Th,kkksplit,split,false,label);
-  
-    if(pn2o)
-    {
-        pn2o->resize(kk*ks);
-        KN<long> &n2o(*pn2o);
-        int l=0;
-        for(int k=0; k< Th.nt; ++k)
-            if( split[k] )
-                for(int i=0; i< ks; ++i)
-                    n2o[l++] = k;
-    }
-    if(po2n)
-    {
-        po2n->resize(Th.nt);
-        KN<long> &o2n(*po2n);
-        int l=0;
-        for(int k=0; k< Th.nt; ++k)
-            if( split[k] )
-            {
-                o2n[k] = l;
-                l+=ks;
-            }
-            else o2n[k]=-1;
-    }
-
-  Add2StackOfPtr2FreeRC(stack,Tht);//  07/2008 FH
-  *mp=mps;
-  return Tht;
- };
- 
-//////////////////
-// new functions added by J. Morice 05/10
-//  --  extractmesh2D
-//  --  extractmesh
-//  --  movemesh32       // projection
-
-class ExtractMesh2D_Op : public E_F0mps 
-	{
-	public:
-		Expression eTh;
-		static const int n_name_param = 4; // 
-		static basicAC_F0::name_and_type name_param[] ;
-		Expression nargs[n_name_param];
-		KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-		{ return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-	        KN_<long>  arg(int i,int j,Stack stack,KN_<long> a ) const
-	        { 
-		  if( nargs[i]) 
-		    return GetAny<KN_<long> >( (*nargs[i])(stack) );
-		  else 
-		    return nargs[j] ? GetAny<KN_<long> >( (*nargs[j])(stack) ): a;
-		}
-		double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-		//long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-		long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-	public:
-		ExtractMesh2D_Op(const basicAC_F0 &  args,Expression tth) 
-		: eTh(tth)
-		{
-			if(verbosity >1) cout << "construction par ExtractMesh_Op" << endl;
-			args.SetNameParam(n_name_param,name_param,nargs); 
-			if( nargs[1] && nargs[3] ) 
-			  CompileError("uncompatible extractmesh (Th, region= , reft=  ");
-			if( nargs[0] && nargs[2] ) 
-			  CompileError("uncompatible extractmesh (Th, label= , refe=  ");
-		} 
-		
-		AnyType operator()(Stack stack)  const ;
-	};
-
-basicAC_F0::name_and_type ExtractMesh2D_Op::name_param[]= {
-{  "refe", &typeid(KN_<long>)},
-{  "reft", &typeid(KN_<long>)},
-{  "label", &typeid(KN_<long>)},
-{  "region", &typeid(KN_<long>)}
-};
-
-
-class   ExtractMesh2D : public OneOperator { public:  
-    ExtractMesh2D() : OneOperator(atype<pmesh>(),atype<pmesh>()) {}
-	
-	E_F0 * code(const basicAC_F0 & args) const 
-	{
-		return  new ExtractMesh2D_Op(args,t[0]->CastTo(args[0])); 
-	}
-};
-
-AnyType ExtractMesh2D_Op::operator()(Stack stack)  const 
-{
-	MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-	Mesh * pTh= GetAny<Mesh *>((*eTh)(stack));
-	Mesh &Th=*pTh;
-	
-	int nbv=Th.nv; // nombre de sommet 
-	int nbt=Th.nt; // nombre de triangles
-	int nbe=Th.neb; // nombre d'aretes fontiere
-	
-	KN<long> zzempty(0);
-	// recuperation des labels pour les surfaces et les elements
-	KN<long> labelface (arg(0,2,stack,zzempty));  
-	KN<long> labelelement (arg(1,3,stack,zzempty));  
-	
-	// a trier les tableaux d'entier 
-	
-	int nv=0, nt=0, ns=0;
-	int boolsurf=0;
-	int boolelement=0;
-	if( nargs[0] || nargs[2]){
-	  boolsurf=1;
-	}
-	if( nargs[1] || nargs[3]){
-	  boolelement=1;
-	  if( boolsurf == 0){ 
-	    cerr << "we need edge label to extract the mesh "<< " (This will be changed in a new version of freefem++)" << endl;
-	    exit(1);
-	  }
-	  // a prevoir une fonction pour recalculer les differents labels des surfaces	  
-	}
-	
-	if( boolsurf==1 && boolelement==1 ){
-		// Volumetric mesh
-		
-		KN<int> takevertex(Th.nv,-1);
-		KN<int> takeelem(Th.nt,0);
-		KN<int> takebe(Th.neb,0);
-		int neLab=0;
-		for(int ie=0; ie<Th.nt; ie++){
-		  const Mesh::Triangle & K(Th.t(ie));			
-		  for(int ii=0; ii<labelelement.N(); ii++){
-		    if( K.lab == labelelement[ii] ){
-		      neLab++;
-		      takeelem[ie] = 1;
-		      for(int jj=0; jj<3; jj++){
-			if( takevertex[ Th.operator()(K[jj]) ] != -1) continue;
-			takevertex[ Th.operator()(K[jj]) ] = nv;
-			nv++;
-		      }
-		      break;		      
-		    }
-		  }
-		}
-		
-		
-		int nbeLab=0;
-		for(int ibe=0; ibe<Th.neb; ibe++){
-		  const Mesh::BorderElement & K(Th.be(ibe));			
-		  for(int ii=0; ii<labelface.N(); ii++){
-		    if( K.lab == labelface[ii] ){
-		      nbeLab++;
-		      takebe[ibe] = 1;
-		      for(int jj=0; jj<2; jj++){
-			if( takevertex[ Th.operator()(K[jj]) ] == -1){
-			  cerr << "Volumetric extract mesh: error in the definition of surface mesh " <<endl;
-			  cerr << "The edges of label "<< labelface[ii]  << " is not the extract mesh " << endl;
-			}
-		      }
-		      break;
-		    }
-		  }
-		}
-		
-		ns = nbeLab;
-		nt = neLab;
-		
-		if( nt == 0) { cerr << " The label of 2D element is not correct :: there is no element" << endl; exit(1); } 
-		Mesh::Vertex   *v  = new Mesh::Vertex[nv]; 
-		Mesh::Triangle *t  = new Mesh::Triangle[nt];
-		Mesh::Triangle *tt = t;
-		Mesh::BorderElement *b  = new Mesh::BorderElement[ns];
-		Mesh::BorderElement *bb = b;
-		
-		for(int ii=0; ii<Th.nv; ii++){
-		  if( takevertex[ ii ] == -1) continue;
-		  int iv = takevertex[ii];
-		  assert(iv>=0 && iv< nv);
-		  v[iv].x = Th.vertices[ii].x;
-		  v[iv].y = Th.vertices[ii].y;
-		  v[iv].lab = Th.vertices[ii].lab;
-		}
-		
-		for(int ie=0; ie<Th.nt; ie++){
-		  if( takeelem[ ie ] != 1) continue;
-		  const Mesh::Triangle & K(Th.t(ie));	
-		  int ivv[3];
-		  for(int jj=0; jj<3; jj++) ivv[jj] =  takevertex[ Th.operator()(K[jj]) ];      
-		  (tt++)->set(v,ivv[0],ivv[1],ivv[2],K.lab);
-		}
-		
-		
-		for(int ibe=0; ibe<Th.neb; ibe++){
-		  if( takebe[ ibe ] != 1) continue;
-		  const Mesh::BorderElement &K( Th.be(ibe) );
-		  int ivv[2];
-		  for(int jj=0; jj<2; jj++) ivv[jj] =  takevertex[ Th.operator()(K[jj]) ];      
-		  (bb++)->set(v,ivv[0],ivv[1],K.lab);
-		}
-		
-		
-		Mesh *pThnew = new Mesh(nv,nt,ns,v,t,b);  // attention aux composantes connexes.
-		//Lorenzo
-		R2 Pn,Px;
-		pThnew->BoundingBox(Pn,Px);
-		if(!pThnew->quadtree)
-			pThnew->quadtree=new Fem2D::FQuadTree(pTh,Pn,Px,pTh->nv);
-		//Lorenzo
-				
-		return pThnew;
-		
-	}
-	
-	
-	
-	
-	if( boolsurf==1 && boolelement==0 ){
-		// case only surface mesh
-		// demander � F. pour la pertinence
-		KN<int> takevertex(Th.nv,-1);
-		KN<int> takebe(Th.neb,0);
-		int nbeLab=0;
-		for(int ibe=0; ibe<Th.neb; ibe++){
-		  const Mesh::BorderElement & K(Th.be(ibe));			
-		  for(int ii=0; ii<labelface.N(); ii++){
-		    if( K.lab == labelface[ii] ){
-		      nbeLab++;
-		      takebe[ibe] = 1;
-		      for(int jj=0; jj<2; jj++){
-			if( takevertex[ Th.operator()(K[jj]) ] != -1) continue;
-			takevertex[ Th.operator()(K[jj]) ] = nv;
-			nv++;
-		      }
-		      break;
-		    }
-		  }
-		}
-		
-		ns = nbeLab;
-		
-		Mesh::Vertex        *v  = new Mesh::Vertex[nv]; 
-		Mesh::BorderElement *b  = new Mesh::BorderElement[ns];
-		Mesh::BorderElement *bb = b;
-		
-		for(int ii=0; ii<Th.nv; ii++){
-			if( takevertex[ ii ] == -1) continue;
-			int iv = takevertex[ii];
-			assert(iv>=0 && iv< nv);
-			v[iv].x = Th.vertices[ii].x;
-			v[iv].y = Th.vertices[ii].y;
-			v[iv].lab = Th.vertices[ii].lab;
-		}
-		
-		for(int ibe=0; ibe<Th.neb; ibe++){
-		  if( takebe[ ibe ] != 1) continue;
-		  const Mesh::BorderElement &K( Th.be(ibe) );
-		  int ivv[2];
-		  for(int jj=0; jj<2; jj++) ivv[jj] =  takevertex[ Th.operator()(K[jj]) ];      
-		  (bb++)->set(v,ivv[0],ivv[1],K.lab);
-		}
-		
-		
-		Mesh *pThnew =0; //= new Mesh(nv,ns,v,b);  // a definir
-		// attention aux composantes connexes.
-		ffassert(0); 
-		
-		return pThnew;
-		
-	}
-	return (Mesh*) 0;
-	
-}
-
-//////////////////////////////////
-//
-//
-//      Fin du 2D
-//
-//
-//////////////////////////////////
-
-//////////////////////////////////
-//
-//
-//      Debut du 3D
-//
-//
-///////////////////////////////////////////////////////////
-//  recuperer une partie du maillage � l'aide des labels
-
-class ExtractMesh_Op : public E_F0mps 
-{
-public:
-  Expression eTh;
-  static const int n_name_param = 4; // 
-  static basicAC_F0::name_and_type name_param[];
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<long>  arg(int i,int j,Stack stack,KN_<long> a ) const
-  { 
-    if( nargs[i]) 
-      return GetAny<KN_<long> >( (*nargs[i])(stack) );
-    else 
-      return nargs[j] ? GetAny<KN_<long> >( (*nargs[j])(stack) ): a;
-  }
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long    arg(int i,Stack stack,long a ) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-public:
-  ExtractMesh_Op(const basicAC_F0 &  args,Expression tth) 
-    : eTh(tth)
-  {
-    if(verbosity >1) cout << "construction par ExtractMesh_Op" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);    
-
-    if( nargs[1] && nargs[3] ) 
-      CompileError("uncompatible extractmesh (Th, region= , reftet=  ");
-    if( nargs[0] && nargs[2] ) 
-      CompileError("uncompatible extractmesh (Th, label= , refface=  ");
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-basicAC_F0::name_and_type ExtractMesh_Op::name_param[]= {
-  {  "refface", &typeid(KN_<long>)},
-  {  "reftet", &typeid(KN_<long>)},
-  {  "label", &typeid(KN_<long>)},
-  {  "region", &typeid(KN_<long>)},
-};
-
-
-class   ExtractMesh : public OneOperator { public:  
-    ExtractMesh() : OneOperator(atype<pmesh3>(),atype<pmesh3>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  {
-    return  new ExtractMesh_Op(args,t[0]->CastTo(args[0])); 
-  }
-};
-
-AnyType ExtractMesh_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 *pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  Mesh3  &Th=*pTh;
-  
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int nbe=Th.nbe; // nombre d'aretes fontiere
-  
-  KN<long> zzempty(0);
-  KN<long> labelface (arg(0,2,stack,zzempty));  
-  KN<long> labelelement  (arg(1,3,stack,zzempty));  
- 
-  // a trier les tableaux d'entier 
-
-  int nv=0, nt=0, ns=0;
-  int boolsurf=0;
-  int boolelement=0;
-  if( nargs[0] || nargs[2] ){
-    boolsurf=1;
-  }
-  if( nargs[1] || nargs[3] ){
-    boolelement=1;
-  }
-  cout << " labelface.N()  " << labelface.N() << endl;
-  for(int ii=0; ii<labelface.N(); ii++)
-    cout << ii << " " << labelface[ii] << endl;
- 
-  cout << " labelelement.N()  " << labelelement.N() << endl;
-  for(int ii=0; ii<labelelement.N(); ii++)
-    cout << ii << " " << labelelement[ii] << endl;
-
-
-  if( boolsurf==1 && boolelement==1 ){
-    // case only surface mesh
-    KN<int> takevertex(Th.nv,-1);
-    KN<int> takeelem(Th.nt,0);
-    KN<int> takebe(Th.nbe,0);
-    int neLab=0;
-
-    for(int ie=0; ie<Th.nt; ie++){
-      const Tet & K(Th.elements[ie]);		
-      for(int ii=0; ii<labelelement.N(); ii++){
-	if( K.lab == labelelement[ii] ){	  
-	  neLab++;
-	  takeelem[ie] = 1;
-	  for(int jj=0; jj<4; jj++){
-	    if( takevertex[ Th.operator()(K[jj]) ] != -1) continue;
-	    takevertex[ Th.operator()(K[jj]) ] = nv;
-	    nv++;
-	  }
-	  break;
-	}
-      }
-    }
-        
-    int nbeLab=0;
-    for(int ibe=0; ibe<Th.nbe; ibe++){
-      const Triangle3 & K(Th.be(ibe));			
-      for(int ii=0; ii<labelface.N(); ii++){
-	if( K.lab == labelface[ii] ){
-	  nbeLab++;
-	  takebe[ibe] = 1;
-	  for(int jj=0; jj<3; jj++){
-	    if( takevertex[ Th.operator()(K[jj]) ] == -1){
-	      int iivv=Th.operator()(K[jj]);
-	      cerr << "Error(Extract Mesh):: the vertex ("<< Th.vertices[iivv].x  << ", " <<Th.vertices[iivv].y << ", " <<Th.vertices[iivv].z <<") is not in the volume mesh" << endl;
-	    }
-	    //continue;
-	    //takevertex[ Th.operator()(K[jj]) ] = nv;
-	    //nv++;
-	  }
-	  break;
-	}
-      }
-    }
-    
-    ns = nbeLab;
-    nt = neLab;
-    cout << nt <<" " << ns << endl;
-    if( nt == 0) { cerr << " The label of 3D element is not correct :: there is no element" << endl; exit(1); } 
-    Vertex3 *v  = new Vertex3[nv]; 
-    Tet *t  = new Tet[nt];
-    Tet *tt = t;
-    Triangle3 *b  = new Triangle3[ns];
-    Triangle3 *bb = b;
-    
-    for(int ii=0; ii<Th.nv; ii++){
-      if( takevertex[ ii ] == -1) continue;
-      int iv = takevertex[ii];
-      assert(iv>=0 && iv< nv);
-      v[iv].x = Th.vertices[ii].x;
-      v[iv].y = Th.vertices[ii].y;
-      v[iv].z = Th.vertices[ii].z;
-      v[iv].lab = Th.vertices[ii].lab;
-    }
-    
-    for(int ie=0; ie<Th.nt; ie++){
-      if( takeelem[ ie ] != 1) continue;
-      const Tet & K(Th.elements[ie]);	
-      int ivv[4];
-      for(int jj=0; jj<4; jj++) ivv[jj] =  takevertex[ Th.operator()(K[jj]) ];      
-      (tt++)->set(v,ivv,K.lab);
-    }
-		
-    
-    for(int ibe=0; ibe<Th.nbe; ibe++){
-      if( takebe[ ibe ] != 1) continue;
-      const Triangle3 &K( Th.be(ibe) );
-      int ivv[3];
-      for(int jj=0; jj<3; jj++) ivv[jj] =  takevertex[ Th.operator()(K[jj]) ];      
-      (bb++)->set(v,ivv,K.lab);
-    }
-    
-    
-    Mesh3 *pThnew = new Mesh3(nv,nt,ns,v,t,b);  // peut etre a définir ???
-    // attention aux composantes connexes.
-	pThnew->BuildGTree();  //Lorenzo
-    
-    return pThnew;
-    
-  }
-  
-  if( boolsurf==1 && boolelement==0 ){
-		
-		
-    KN<int> takevertex(Th.nv,-1);
-    for(int iv=0; iv<Th.nv; iv++) takevertex[iv]=-1;
-    KN<int> takebe(Th.nbe,-1);
-    for(int iv=0; iv<Th.nv; iv++) takebe[iv]=-1;
-    int nbeLab=0;
-    for(int ibe=0; ibe<Th.nbe; ibe++){
-      const Triangle3 &K( Th.be(ibe) );
-      
-      for(int ii=0; ii<labelface.N(); ii++){
-	
-	if( K.lab == labelface[ii] ){
-	  nbeLab++;
-	  cout << "takeface" << endl;
-	  takebe[ibe] = 1;
-	  for(int jj=0; jj<3; jj++){
-	    if( takevertex[ Th.operator()(K[jj]) ] != -1) continue;
-	    takevertex[ Th.operator()(K[jj]) ] = nv;
-	    nv++;
-	  }
-					
-	  //break;
-	}
-      }
-    }
-    
-    ns = nbeLab;
-    
-    Vertex3   *v  = new Vertex3[nv]; 
-    Triangle3 *b  = new Triangle3[ns];
-    Triangle3 *bb = b;
-    
-    for(int ii=0; ii<Th.nv; ii++){
-      if( takevertex[ ii ] == -1) continue;
-      int iv = takevertex[ii];
-      assert(iv>=0 && iv< nv);
-      v[iv].x = Th.vertices[ii].x;
-      v[iv].y = Th.vertices[ii].y;
-      v[iv].z = Th.vertices[ii].z;
-		  v[iv].lab = Th.vertices[ii].lab;
-    }
-    
-    for(int ibe=0; ibe<Th.nbe; ibe++){
-      if( takebe[ ibe ] != 1) continue;
-      const Triangle3 &K( Th.be(ibe) );
-      int ivv[3];
-      for(int jj=0; jj<3; jj++) ivv[jj] =  takevertex[ Th.operator()(K[jj]) ];      
-      (bb++)->set(v,ivv,K.lab);
-    }
-    
-    
-    cout <<" nv" << nv << " ns " << endl;  
-    Mesh3 *pThnew = new Mesh3(nv,ns,v,b);  
-	pThnew->BuildGTree();  //Lorenzo	
-    return pThnew;    
-  }
-   
-  Mesh3 *pThnew = NULL;
-  return pThnew;    
-}
-
-bool AddLayers(Mesh3 * const & pTh, KN<double> * const & psupp, long const & nlayer,KN<double> * const & pphi)
-{
-    ffassert(pTh && psupp && pphi);
-    const int nve = Mesh3::Element::nv;
-    Mesh3 & Th= *pTh;
-    const int nt = Th.nt;
-    const int nv = Th.nv;
-    
-    KN<double> & supp(*psupp);
-    KN<double> u(nv), s(nt);
-    KN<double> & phi(*pphi);
-    ffassert(supp.N()==nt);//P0
-    ffassert(phi.N()==nv); // P1
-    s = supp;
-    phi=0.;
-    // supp = 0.;
-    // cout << " s  " << s << endl;
-    
-    for(int step=0; step < nlayer; ++ step)
-    {
-        
-        
-        u = 0.;
-        for(int k=0; k<nt; ++k)
-            for(int i=0; i<nve; ++i)
-                u[Th(k,i)] += s[k];
-        
-        for(int v=0; v < nv; ++v)
-            u[v] = u[v] >0.;
-        // cout << " u  " << u << endl;
-        
-        phi += u;
-        
-        s = 0.;
-        for(int k=0; k<nt; ++k)
-            for(int i=0; i<nve; ++i)
-                s[k] += u[Th(k,i)];
-        
-        for(int k=0; k < nt; ++k)
-            s[k] = s[k] > 0.;
-        supp += s;
-        // cout << " s  " << s << endl;
-    }
-    // cout << " phi  " << phi << endl;
-    phi *= (1./nlayer);
-    // supp =s;
-    return true;
-}
-
-
-
-
-// because i include this file in tetgen.cpp (very bad)
-#ifndef WITH_NO_INIT
-<<<<<<< HEAD
-
-static void Load_Init()
-{  
-=======
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  
-  Dcl_Type<listMesh3>();
-  typedef Mesh *pmesh;
-  typedef Mesh3 *pmesh3;
-  
-  if (verbosity && mpirank == 0)
-    cout << " load: msh3  " << endl;
-  
-  TheOperators->Add("+",new OneBinaryOperator_st< Op3_addmesh<listMesh3,pmesh3,pmesh3>  >      );
-  TheOperators->Add("+",new OneBinaryOperator_st< Op3_addmesh<listMesh3,listMesh3,pmesh3>  >      );
-  //TheOperators->Add("=",new OneBinaryOperator< Op3_setmesh<false,pmesh3*,pmesh3*,listMesh3>  >     );
-  //TheOperators->Add("<-",new OneBinaryOperator< Op3_setmesh<true,pmesh3*,pmesh3*,listMesh3>  >     );
-  
-  TheOperators->Add("=",new OneBinaryOperator_st< Op3_setmesh<false,pmesh3*,pmesh3*,listMesh3>  >     );
-  TheOperators->Add("<-",new OneBinaryOperator_st< Op3_setmesh<true,pmesh3*,pmesh3*,listMesh3>  >     );
-
-
-  Global.Add("change","(",new SetMesh3D);
-  Global.Add("movemesh23","(",new Movemesh2D_3D_surf);
-  Global.Add("movemesh2D3Dsurf","(",new Movemesh2D_3D_surf_cout);// 
-  Global.Add("movemesh3","(",new Movemesh3D);
-  Global.Add("movemesh","(",new Movemesh3D(1));
-  Global.Add("movemesh3D","(", new Movemesh3D_cout);
-  Global.Add("deplacement","(",new DeplacementTab);
-  Global.Add("checkbemesh","(",new CheckManifoldMesh);  
-  Global.Add("buildlayers","(",new  BuildLayerMesh);  
-  Global.Add("trunc","(", new Op_trunc_mesh3);
-
-  Global.Add("extract","(",new ExtractMesh);
-  Global.Add("extract","(",new ExtractMesh2D);
-    
-  Global.Add("AddLayers","(",new OneOperator4_<bool, Mesh3 * , KN<double> *,long, KN<double> * >(AddLayers));
-<<<<<<< HEAD
-  typedef Mesh3 *pmesh3;
- // Global.Add("trunc","(", new Op_trunc_mesh3);
-}
-LOADFUNC(Load_Init)
-#endif
-
-=======
-    
-}
-/*
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-  
-  typedef Mesh3 *pmesh3;
-  Global.Add("trunc","(", new Op_trunc_mesh3);
-
-}
-*/
-#endif
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/mshmet.cpp.orig b/examples++-load/mshmet.cpp.orig
deleted file mode 100644
index 8af4723..0000000
--- a/examples++-load/mshmet.cpp.orig
+++ /dev/null
@@ -1,770 +0,0 @@
-// ORIG-DATE:     Fev 2010
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : liaison medit freefem++ : adaptmesh in 3d 
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep:  mshmet libMesh
-//ff-c++-cpp-dep:
-//  
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-// ./ff-c++ mshmet.cpp -I/Users/morice/Desktop/adaptmesh3d/mshmet.2009.09.16/sources -L/Users/morice/Desktop/adaptmesh3d/mshmet.2009.09.16/objects/i386/ -lmshmet -L/Users/morice/work/postdoc/freefem++prod/src/libMesh/ -lMesh
-
-// ./ff-c++ mshmet.cpp -I../download/include/mshmet/ -L../download/lib/mshmet/ -lmshmet -L/Users/morice/work/postdoc/freefem++prod/src/libMesh/ -lMesh
-
-#include "ff++.hpp" 
-#include "msh3.hpp"
-//#define ADAPTLIBRARY
-//#include "libmesh5.h"
-#include "mshmetlib.h"
-
-using namespace  Fem2D;
-using namespace  mshmet;
-
-// 2d mesh function
-//  Add FH thank to I. Bajc.  (iztok.bajc at fmf.uni-lj.si) 03/14
-//
-static void myMSHMET_free( MSHMET_pMesh mesh, MSHMET_pSol sol)
-{
-    /* free mem */
-    free(mesh->point);
-    if ( mesh->nt )  free(mesh->tria);
-    if ( mesh->ne )  free(mesh->tetra);
-    free(mesh->adja);
-    free(mesh);
-    free(sol->sol);
-    free(sol->met);
-    free(sol);
-   }
-
-MSHMET_pMesh mesh_to_MSHMET_pMesh( const Mesh &Th ){
-  MSHMET_pMesh meshMSHMET;
-  meshMSHMET = (MSHMET_pMesh)calloc(1,sizeof(MSHMET_Mesh)) ;
-  
-  meshMSHMET->dim = 2;
-  meshMSHMET->np = Th.nv;
-  meshMSHMET->nt = Th.nt;
-  meshMSHMET->ne = 0;
-
-  meshMSHMET->point = (MSHMET_pPoint)calloc(meshMSHMET->np+1,sizeof(MSHMET_Point));
-  meshMSHMET->tria = (MSHMET_pTria)calloc(meshMSHMET->nt+1,sizeof(MSHMET_Tria));
-  meshMSHMET->adja = (int*)calloc(3*meshMSHMET->nt+5,sizeof(int)); 
-  
-  int k;
-  MSHMET_pPoint ppt;
-  for (k=1; k<=meshMSHMET->np; k++) {
-    ppt = &meshMSHMET->point[k];
-    ppt->c[0] = Th.vertices[k-1].x;
-    ppt->c[1] = Th.vertices[k-1].y;
-    ppt->c[2] = 0.;
-    //ppt->mark  = Th.vertices[k-1].lab;
-  }
-
- 
-  MSHMET_pTria ptriangle;
-  MSHMET_pPoint p0,p1,p2;
-  double       ux,uy,h1,h2,h3,pe,rins;
-  int i;
-  for (k=1; k<=meshMSHMET->nt; k++) {
-    const Mesh::Triangle  & K(Th.t(k-1));
-    ptriangle = &meshMSHMET->tria[k];
-    ptriangle->v[0] = Th.operator()(K[0])+1;
-    ptriangle->v[1] = Th.operator()(K[1])+1;
-    ptriangle->v[2] = Th.operator()(K[2])+1;
-    //ptriangle->mark = K.lab;
-
-    for (i=0; i<3; i++) {    
-      ppt = &meshMSHMET->point[ptriangle->v[i]];
-        if ( !ppt->s )  ppt->s = k;
-      }
-      p0 = &meshMSHMET->point[ptriangle->v[0]];
-      p1 = &meshMSHMET->point[ptriangle->v[1]];
-      p2 = &meshMSHMET->point[ptriangle->v[2]];
-
-      ux = p1->c[0] - p0->c[0];
-      uy = p1->c[1] - p0->c[1];
-      h1 = sqrt(ux*ux + uy*uy);
-
-      ux = p2->c[0] - p0->c[0];
-      uy = p2->c[1] - p0->c[1];
-      h2 = sqrt(ux*ux + uy*uy);
-
-      ux = p2->c[0] - p1->c[0];
-      uy = p2->c[1] - p1->c[1];
-      h3 = sqrt(ux*ux + uy*uy);
-      /*
-      pe        = 0.5 * (h1 + h2 + h3);
-      double aire = pe * (pe-h1) * (pe-h2) * (pe-h3);
-      //aire = sqrt(ptriangle->aire);
-      //rins      = 2.0 * aire / pe;
-
-      //p0->aire += ptriangle->aire;
-      //p0->rins += rins;
-
-      //p1->aire += ptriangle->aire;
-      //p1->rins += rins;
-
-      //p2->aire += ptriangle->aire;
-      //p2->rins += rins;
-      */
-  }
-  
-  return meshMSHMET;
-}
-
-
-// 3d mesh function
-
-MSHMET_pMesh mesh3_to_MSHMET_pMesh( const Mesh3 &Th3 ){
-  MSHMET_pMesh meshMSHMET;
-  meshMSHMET = (MSHMET_pMesh)calloc(1,sizeof(MSHMET_Mesh)) ;
-  
-  meshMSHMET->dim = 3;
-  meshMSHMET->np = Th3.nv;
-  meshMSHMET->nt = 0;
-  meshMSHMET->ne = Th3.nt;
-
-  meshMSHMET->point = (MSHMET_pPoint)calloc(meshMSHMET->np+1,sizeof(MSHMET_Point));
-  meshMSHMET->tetra = (MSHMET_pTetra)calloc(meshMSHMET->ne+1,sizeof(MSHMET_Tetra));
-  meshMSHMET->adja = (int*)calloc(4*meshMSHMET->ne+5,sizeof(int)); 
-  
-  int k;
-  MSHMET_pPoint ppt;
-  for (k=1; k<=meshMSHMET->np; k++) {
-    ppt = &meshMSHMET->point[k];
-    ppt->c[0] = Th3.vertices[k-1].x;
-    ppt->c[1] = Th3.vertices[k-1].y;
-    ppt->c[2] = Th3.vertices[k-1].z;
-    //ppt->mark  = 0; //Th3.vertices[k-1].lab;
-  }
-
-
-
-  int i;
-  MSHMET_pTetra ptetra;
-  for (k=1; k<=meshMSHMET->ne; k++) {
-    const Tet & K(Th3.elements[k-1]);
-    ptetra = &meshMSHMET->tetra[k];
-    ptetra->v[0] = Th3.operator()(K[0])+1;
-    ptetra->v[1] = Th3.operator()(K[1])+1;
-    ptetra->v[2] = Th3.operator()(K[2])+1;
-    ptetra->v[3] = Th3.operator()(K[3])+1;
-    //ptetra->mark = 0;//K.lab;
-    
-    for (i=0; i<4; i++) {
-      ppt = &meshMSHMET->point[ptetra->v[i]];
-      if ( meshMSHMET->dim == 3 && !ppt->s )  ppt->s = k;
-    }
-
-  }
-
-  return meshMSHMET;
-}
-
-
-
-MSHMET_pSol sol_mshmet(const int &dim, const int & np, const int &type, const int &size, int *typtab, const KN<double> &solutions){
-  static const int wrapperMetric[6]={0,1,3,2,4,5};
-  MSHMET_pSol sol;
-  int k,ia,i;
-
-  sol= (MSHMET_pSol)calloc(1,sizeof(MSHMET_Sol)) ;
-  sol->ver = 0;
-  sol->np  = np;
-  sol->dim = dim;
-  sol->type = type;      // nombre de solutions differentes
-  sol->size = size;
-  for(i=0; i<sol->type; i++)
-    sol->typtab[i] = typtab[i];  // types des differentes solutions
-
-  sol->sol = (double*) calloc(sol->np+1,sol->size*sizeof(double));
-  assert(sol->sol);
-
-  for (k=1; k<=sol->np; k++) {
-    ia = (k-1)*sol->size + 1;
-    for (i=0; i<sol->size; i++){
-      sol->sol[ia+i] = solutions[(ia-1)+i]; 
-    }
-  }
-
-  return sol;
-}
-
-void metric_mshmet( MSHMET_pSol sol, MSHMET_Info *info, const KN<double> &metric){
-  static const int wrapperMetric[6]={0,1,3,2,4,5};
-  int k,ia,i;
-  
-  cout << " info->iso " << info->iso << endl;
-  if( info->iso == 1 ){
-    cout << " info->iso 11 " << info->iso << endl;
-    sol->met = (double*)calloc(sol->np+1,sizeof(double));
-    assert(sol->met);
-    // isotrope
-    for (k=1; k<=sol->np; k++) {
-      sol->met[k] = metric[ k-1 ]; 
-    }
-  }
-  else{
-    // anisotropie :: Hessian
-    sol->met = (double*)calloc(sol->np+1,6*sizeof(double));
-    assert(sol->met);
-  
-    for (k=1; k<=sol->np; k++) {
-      ia = (k-1)*6 + 1;
-      for (i=0; i<6; i++){
-	sol->met[ia+i] = metric[ (ia-1)+wrapperMetric[i] ]; 
-      }
-    }
-  }
-  
-}
-
-
-void metric_mshmet_to_ff_metric(MSHMET_pSol sol, MSHMET_Info *info, KN<double> &metric){
-  static const int invwrapperMetric[6]={0,1,3,2,4,5};
-  int k,ia,i;
-  if( info->iso == 1 ){
-    cout << " info->iso " << " metric "<< metric.N() <<" " << sol->np << endl;
-    // isotrope
-    for (k=1; k<=sol->np; k++) {
-      metric[ k-1 ] = sol->met[k]; 
-      //cout << "k " << k << " " << sol->met[k] << endl;
-    }
-  }
-  else{
-    for (k=1; k<=sol->np; k++) {
-      ia = (k-1)*6 + 1;
-      for (i=0; i< 6; i++)
-	metric[(ia-1)+i]= sol->met[ia + invwrapperMetric[i]];
-    }
-  }
-}
-
-
-class mshmet3d_Op: public E_F0mps 
-{
-public:
-  typedef KN_<double>  Result;
-  Expression eTh;
-  int nbsol;
-  int nbsolsize;
-  int typesol[GmfMaxTyp];
-  int dim;
-  vector<Expression> sol;
-
-  static const int n_name_param = 12; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  int  arg(int i,Stack stack, int a ) const{ return nargs[i] ? GetAny< long  >( (*nargs[i])(stack) ): a;}
-  int  arg(int i,Stack stack, bool a ) const{ return nargs[i] ? GetAny< bool  >( (*nargs[i])(stack) ): a;}
-  
-  
-public:
-  mshmet3d_Op(const basicAC_F0 &  args) : sol( args.size()-1 )
-  {
-    
-    //cout << "mshmet3d"<< endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    eTh=to<pmesh3>(args[0]); 
-    dim=3;
-    nbsol = args.size()-1;
-    int ksol=0; 
-    ffassert(nbsol<GmfMaxTyp);
-
-    for (int i=1;i<nbsol+1;i++)       
-      if (args[i].left()==atype<E_Array>())
-	{
-	  const E_Array * a = dynamic_cast<const E_Array *>(args[i].LeftValue());
-	  ffassert(a);
-	  ksol+=a->size(); 
-	}
-      else
-	ksol++;
-    sol.resize(ksol); 
-
-    // typesol :: 1 sca, 2 vector, 3 symtensor
-
-    ksol=0; 
-    nbsolsize=0;
-    for (int i=1;i<nbsol+1;i++)       
-      if (args[i].left()==atype<E_Array>())
-	{
-	  const E_Array * a = dynamic_cast<const E_Array *>(args[i].LeftValue());
-	  ffassert(a);
-	  int N=a->size();
-	  nbsolsize=nbsolsize+N;
-	  switch (N){
-	  
-	  case 3 :
-	    typesol[i-1]=2; 
-	    for (int j=0;j<N;j++)             
-	      sol[ksol++]=to<double>((*a)[j]);
-	    break;
-	  case 6 :
-	    typesol[i-1]=3;   
-	    for (int j=0;j<N;j++)             
-	      sol[ksol++]=to<double>((*a)[j]); 
-	    break;
-	  default :
-	    CompileError(" 3D solution for mshmest is vector (3 comp) or symetric tensor (6 comp)");
-	    break;
-	  }
-	}
-      else 
-	{
-	  typesol[i-1]=1;
-	  nbsolsize=nbsolsize+1;
-	  sol[ksol++]=to<double>(args[i]);
-	} 
-  }
-    
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype< pmesh3 >(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new mshmet3d_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-  operator aType () const { return atype< KN_<double> >();} 
-};
-
-
-basicAC_F0::name_and_type  mshmet3d_Op::name_param[]= {
-  {  "loptions", &typeid(KN_<long>)}, //0
-  {  "doptions", &typeid(KN_<double>)},
-  {  "metric", &typeid(KN_<double>)},
-  {  "normalization", &typeid(bool)},
-  {  "aniso", &typeid(bool)},
-  {  "levelset", &typeid(bool)},// 5
-  {  "verbosity", &typeid(long)},
-  {  "nbregul", &typeid(long)},
-  {  "hmin", &typeid(double)},
-  {  "hmax", &typeid(double)},//9
-  {  "err", &typeid(double)},//10
-  {  "width", &typeid(double)}//11
-
-};
-
-template<class T>
-ostream & dumpp(const T * p,int n,ostream & f)
-{
-  for(int i=0;i<n;++i)
-    f << p[i] << " ";
-  return f; 
-}
-
-AnyType mshmet3d_Op::operator()(Stack stack)  const 
-{
-  // initialisation
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  ffassert( pTh );
-  Mesh3 &Th3=*pTh;
-  int nv=Th3.nv;
-  int nt=Th3.nt;
-  int nbe=Th3.nbe;
-
- 
-  KN<double> defaultfopt(4);
-  /*
-  info->hmin   = fopt[0]; // 0.01;
-  info->hmax   = fopt[1]; // 1.0;
-  info->eps    = fopt[2]; // 0.01;
-  info->width  = fopt[3]; // 0.05;
-  */
-  defaultfopt(0)= 0.01;
-  defaultfopt(1)= 1.0;
-  defaultfopt(2)= 0.01;
-  defaultfopt(3)= 0.00;
-  KN<long> defaultintopt(7);
-  /*
-    info->nnu    = intopt[0]; //  0;
-    info->iso    = intopt[1]; //  1;
-    info->ls     = intopt[2]; //  0;
-    info->ddebug = intopt[3]; //  0;
-    info->imprim = intopt[4]; // 10;
-    info->nlis   = intopt[5]; //  0;
-    info->metric =  intopt[6]; // 0; // metric given besoin ???
-  */  
-  defaultintopt(0)= 1;
-  defaultintopt(1)= 1;
-  defaultintopt(2)= 0;
-  defaultintopt(3)= 0; 
-  defaultintopt(4)= verbosity;
-  defaultintopt(5)= 0;
-  defaultintopt(6)= 0;
-  if(nargs[11]) {defaultintopt[2]=1;defaultfopt[3]=0;}//  level set ...  
-  KN<int> intopt(arg(0,stack,defaultintopt));
-  KN<double> fopt(arg(1,stack,defaultfopt));
-  KN<double> *pmetric=new KN<double>(Th3.nv);
-  KN<double> &metric=*pmetric;
-
-
-  intopt[0]=arg(3,stack, intopt[0]!=0);// normaliz
-  intopt[1]=!arg(4,stack,intopt[1]==0);//  aniso
-  intopt[2]=arg(5,stack,intopt[2]!=0);// levelset 
-  intopt[4]=arg(6,stack,intopt[4]); // verbo
-  intopt[5]=arg(7,stack,intopt[5]); // nbregul
-  fopt[0]=arg(8,stack,fopt[0]); //hmin
-  fopt[1]=arg(9,stack,fopt[1]); //hmax
-  fopt[2]=arg(10,stack,fopt[2]);// err
-  fopt[3]=arg(11,stack,fopt[3]);// width
-
-
-  if(verbosity>2) 
-    {
-      cout<< "    -- mshmet : lopt " ;  dumpp((int*) intopt,intopt.N(),cout)  <<endl;
-      cout<< "              : dopt " ; dumpp((double*)fopt,fopt.N(),cout)  <<endl;
-    }
-
-  metric=0.;
-  if(intopt.N() != 7 )
-    ExecError(" Size of array of loption are wrong != 7");
-  if(fopt.N() != 4 )
-    ExecError(" Size of array of doption are wrong != 4");
-
-
-  if( intopt[1]==0){ 
-    metric.resize(6*Th3.nv);
-    metric=0.;
-  }
-
-  // definiton d'une metric par default
-  if( nargs[2]  ){ 
-    metric = GetAny<KN_<double> >( (*nargs[2])(stack) ); 
-    assert(metric.N()==Th3.nv || metric.N()==6*Th3.nv);
-    intopt[6]=1;
-    if(metric.N()==Th3.nv) intopt[1]=1;
-    if(metric.N()==6*Th3.nv) intopt[1]=0;
-  }
-
-
-  MSHMET_pMesh mshmetmesh = mesh3_to_MSHMET_pMesh( Th3 );
-  int TypTab[nbsol];
-  for(int ii=0; ii<nbsol;ii++)
-    TypTab[ii] = typesol[ii];
-
-
-  KN<double> tabsol(nbsolsize*nv);
-  tabsol=0.;
-  {
-    MeshPoint *mp3(MeshPointStack(stack)); 
-    
-    KN<bool> takemesh(nv);
-    takemesh=false;
-    for(int it=0;it<nt;it++){
-      for(int iv=0;iv<4;iv++){
-	int i=Th3(it,iv);
-	
-	if(takemesh[i]==false){
-	  mp3->setP(&Th3,it,iv);
-	  
-	  for(int ii=0;ii<nbsolsize;ii++){
-	    tabsol[i*nbsolsize+ii] = GetAny< double >( (*sol[ii])(stack) );
-	  }
-	  takemesh[i] = true; 
-	}
-      }
-    }
-  }
-  if(verbosity>5)
-    cout << "    min/max tabsol:  " << tabsol.min() << " " <<tabsol.max() << endl;
-  MSHMET_pSol mshmetsol = sol_mshmet(dim, nv, nbsol, nbsolsize, TypTab, tabsol);
-  if( intopt[1] == 1) 
-    mshmetmesh->info.iso = 1;
-  else
-    mshmetmesh->info.iso = 0;
-  if( nargs[2]  ) metric_mshmet( mshmetsol, &mshmetmesh->info, metric);
-
-  int res = MSHMET_mshmet(intopt, fopt, mshmetmesh, mshmetsol);
-  
-  if( res > 0){
-    cout << " problem with mshmet :: error " <<  res << endl; 
-    exit(1);
-  }
-  
-  metric_mshmet_to_ff_metric( mshmetsol, &mshmetmesh->info, metric);
-  
-  // faire les free
-    
-  myMSHMET_free( mshmetmesh, mshmetsol);
-
-  Add2StackOfPtr2Free(stack,pmetric);
-  *mp=mps;
-  return SetAny< KN<double> >(metric);
-}
-
-
-
-
-// mshmet2d
-class mshmet2d_Op: public E_F0mps 
-{
-public:
-  typedef KN_<double>  Result;
-  Expression eTh;
-  int nbsol;
-  int nbsolsize;
-  int typesol[GmfMaxTyp];
-  int dim;
-  vector<Expression> sol;
-
-  static const int n_name_param = 12; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long  arg(int i,Stack stack, long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  
-  
-public:
-  mshmet2d_Op(const basicAC_F0 &  args) : sol( args.size()-1 )
-  {
-    
-    cout << "mshmet2d"<< endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    eTh=to<pmesh>(args[0]); 
-    dim=3;
-    nbsol = args.size()-1;
-    int ksol=0; 
-    ffassert(nbsol<GmfMaxTyp);
-
-    for (int i=1;i<nbsol+1;i++)       
-      if (args[i].left()==atype<E_Array>())
-	{
-	  const E_Array * a = dynamic_cast<const E_Array *>(args[i].LeftValue());
-	  ffassert(a);
-	  ksol+=a->size(); 
-	}
-      else
-	ksol++;
-    sol.resize(ksol); 
-
-    // typesol :: 1 sca, 2 vector, 3 symtensor
-
-    ksol=0; 
-    nbsolsize=0;
-    for (int i=1;i<nbsol+1;i++)       
-      if (args[i].left()==atype<E_Array>())
-	{
-	  const E_Array * a = dynamic_cast<const E_Array *>(args[i].LeftValue());
-	  ffassert(a);
-	  int N=a->size();
-	  nbsolsize=nbsolsize+N;
-	  switch (N){
-	  case 2 :
-	    typesol[i-1]=2; 
-	    for (int j=0;j<N;j++)             
-	      sol[ksol++]=to<double>((*a)[j]);
-	    break;
-	  case 3 :
-	    typesol[i-1]=3;   
-	    for (int j=0;j<N;j++)             
-	      sol[ksol++]=to<double>((*a)[j]); 
-	    break;
-	  default :
-	    CompileError(" 2D solution for mshmest is vector (2 comp) or symetric tensor (3 comp)");
-	    break;
-	  }
-	}
-      else 
-	{
-	  typesol[i-1]=1;
-	  nbsolsize=nbsolsize+1;
-	  sol[ksol++]=to<double>(args[i]);
-	} 
-  }
-    
-  static ArrayOfaType  typeargs() { return  ArrayOfaType( atype< pmesh >(), true); }// all type
-  static  E_F0 * f(const basicAC_F0 & args) { return new mshmet2d_Op(args);} 
-  AnyType operator()(Stack stack)  const ;
-  operator aType () const { return atype< KN_<double> >();} 
-};
-
-
-basicAC_F0::name_and_type  mshmet2d_Op::name_param[]= {
-  {  "loptions", &typeid(KN_<long>)},
-  {  "doptions", &typeid(KN_<double>)},
-  {  "metric", &typeid(KN_<double>)}
-};
-
-AnyType mshmet2d_Op::operator()(Stack stack)  const 
-{
-  // initialisation
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh * pTh= GetAny<Mesh *>((*eTh)(stack));
-  ffassert( pTh );
-  Mesh &Th=*pTh;
-  int nv=Th.nv;
-  int nt=Th.nt;
-  int nbe=Th.neb;
-
- 
-  KN<double> defaultfopt(4);
-  /*
-  info->hmin   = fopt[0]; // 0.01;
-  info->hmax   = fopt[1]; // 1.0;
-  info->eps    = fopt[2]; // 0.01;
-  info->width  = fopt[3]; // 0.05;
-  */
-  defaultfopt(0)= 0.01;
-  defaultfopt(1)= 1.0;
-  defaultfopt(2)= 0.01;
-  defaultfopt(3)= 0.05;
-  KN<long> defaultintopt(7);
-  /*
-    info->nnu    = intopt[0]; //  0;
-    info->iso    = intopt[1]; //  1;
-    info->ls     = intopt[2]; //  0;
-    info->ddebug = intopt[3]; //  0;
-    info->imprim = intopt[4]; // 10;
-    info->nlis   = intopt[5]; //  0;
-    info->metric =  intopt[6]; // 0; // metric given besoin ???
-  */  
-  defaultintopt(0)= 0;
-  defaultintopt(1)= 1;
-  defaultintopt(2)= 0;
-  defaultintopt(3)= 1;
-  defaultintopt(4)= 10;
-  defaultintopt(5)= 0;
-  defaultintopt(6)= 0;
-
-  KN<int> intopt(arg(0,stack,defaultintopt));
-  KN<double> fopt(arg(1,stack,defaultfopt));
-  
-  KN<double> *pmetric = new KN<double>(Th.nv);
-  KN<double> &metric = *pmetric; 
- 
-  if( intopt[1]== 1){
-    metric.resize(6*Th.nv);
-    metric=0.;
-  }
- 
-  // definiton d'une metric par default
-  if( nargs[2]  ){ 
-    metric = GetAny<KN_<double> >( (*nargs[2])(stack) ); 
-    assert(metric.N()==Th.nv || metric.N()==6*Th.nv);
-    intopt[6]=1;
-    if(metric.N()==Th.nv) intopt[1]=1;
-    if(metric.N()==6*Th.nv) intopt[1]=0;
-  }
-
-
-  MSHMET_pMesh mshmetmesh = mesh_to_MSHMET_pMesh( Th );
-  int TypTab[nbsol];
-  for(int ii=0; ii<nbsol;ii++)
-    TypTab[ii] = typesol[ii];
-
-  KN<double> tabsol(nbsolsize*nv);
-  tabsol=0.;
-  {
-    MeshPoint *mp3(MeshPointStack(stack)); 
-    
-    KN<bool> takemesh(nv);
-    takemesh=false;
-    for(int it=0;it<nt;it++){
-      for(int iv=0;iv<3;iv++){
-	int i=Th(it,iv);
-	
-	if(takemesh[i]==false){
-	  mp3->setP(&Th,it,iv);
-	  
-	  for(int ii=0;ii<nbsolsize;ii++){
-	    tabsol[i*nbsolsize+ii] = GetAny< double >( (*sol[ii])(stack) );
-	  }
-	  takemesh[i] = true; 
-	}
-      }
-    }
-  }
-  MSHMET_pSol mshmetsol = sol_mshmet(dim, nv, nbsol, nbsolsize, TypTab, tabsol);
-  if( intopt[1] == 1) 
-    mshmetmesh->info.iso = 1;
-  else
-    mshmetmesh->info.iso = 0;
-  if( nargs[2]  ) metric_mshmet( mshmetsol, &mshmetmesh->info, metric);
-
-  int res = MSHMET_mshmet(intopt, fopt, mshmetmesh, mshmetsol);
-  
-  if( res > 0){
-    cout << " problem with mshmet :: error " <<  res << endl; 
-    exit(1);
-  }
-  
-  metric_mshmet_to_ff_metric( mshmetsol, &mshmetmesh->info, metric);
-  
-  // faire les free
-  myMSHMET_free( mshmetmesh, mshmetsol);
-  *mp=mps;
-
-  Add2StackOfPtr2Free(stack,pmetric);
-  return SetAny< KN<double> >(metric);
-}
-
-
-
-<<<<<<< HEAD
-/*  class Init1 { public:
-  Init1();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init1 { public:
-  Init1();
-};
-
-LOADINIT(Init1)  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init1::Init1(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  
-  //if (verbosity)
-  if(verbosity) cout << " load: mshmet  " << endl;
-  
-  Global.Add("mshmet","(",new OneOperatorCode<mshmet2d_Op>);
-  Global.Add("mshmet","(",new OneOperatorCode<mshmet3d_Op>);
-  //Global.Add("mshmet","(",new OneOperatorCode<mshmet2d_Op> );
-  
-}
-
-
-#define  WITH_NO_INIT
-#include "msh3.hpp" 
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/myfunction2.cpp.orig b/examples++-load/myfunction2.cpp.orig
deleted file mode 100644
index 3b1a6c0..0000000
--- a/examples++-load/myfunction2.cpp.orig
+++ /dev/null
@@ -1,32 +0,0 @@
-// Example C++ function "myfunction", dynamically loaded into "load.edp"
-// ---------------------------------------------------------------------
-// $Id$
-#include <ff++.hpp>
-using namespace Fem2D;
-double myf(string * s) {
-  cout << *s << endl;
-  return 0.;
-}
-double f(const double& x) { return x*x+1;} 
-//  Hack to do something at initialisation time
-//   to add the name myfunction to the freefem++ table 
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-$1 */
-static void Load_Init(){
-  Global.Add("Why","(",new OneOperator1<double,string*>(myf));
-  Global.Add("f","(",new OneOperator1_<double,double>(f));
-}
-LOADFUNC(Load_Init)
-=======
-class Init { public:
-  Init();
-};
-LOADINIT(Init);
-Init::Init(){
-  Global.Add("Why","(",new OneOperator1<double,string*>(myf));
-  Global.Add("f","(",new OneOperator1_<double,double>(f));
-}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/pcm2rnm.cpp.orig b/examples++-load/pcm2rnm.cpp.orig
deleted file mode 100644
index f33dca8..0000000
--- a/examples++-load/pcm2rnm.cpp.orig
+++ /dev/null
@@ -1,133 +0,0 @@
-// SUMMARY  :   add interface to read pcm or pmm  bitmap imahe  image 
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : F. Hecht
-// E-MAIL   : F. Hecht <hecht at ljll.math.upmc.fr>
-//  date : 2008  ????
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- */
-//  for auto dependance ... 
-//ff-c++-cpp-dep:pcm.cpp
-
-//   tools to read ppm file 
-/*  use in freefem++ edp
-  see :
-  real[int,int] ff1("tt.pmm"); // read  image and set to an array. 
-  real[int]  ff(ff1.nx*ff1.ny);
-  ff=ff1; 
- */
-//   tools to read ppm file 
-/*  use in freefem++ edp file:
-  -----------------------------
-  complex[int,int] cc(1,1);
-  readpcm("tt.pcm",cc); // read  the flow image and set to un complex matrix array. 
-  or 
-  real[int,int] u(1,1),v(1,1);
-  readpcm("tt.pcm",u,v); // read the flow image and set to 2  real  matrix array. 
-*/
-#include "pcm.hpp"
-#include  <iostream>
-#include  <cfloat>
-
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-using namespace std;  
-
-#include "RNM.hpp"
-#include <cmath>
-
-
-long read1(const long& ,const long&){
-    return 1;
-}
-
-    
-KNM<Complex> * read_pcm(string * filename,KNM<Complex> * p)
-    {
-      
-      PCM pcm(filename->c_str());
-      p->resize(pcm.width,pcm.height);
-      pcm_complex *pc=pcm.image;
-      for(int j=0;j<pcm.height;++j)
-      for(int i=0;i<pcm.width;++i,pc++)
-	      (*p)(i,j)= Complex(pc->r,pc->i);
-	      
-
-      return p;	  
-    }
-long read_pcm(string * const &filename,KNM<double> * const &u,KNM<double> * const &v)
-{
-    
-    PCM pcm(filename->c_str());
-    cout << " pcm  " << filename->c_str() << " : " <<pcm.width << " x " << pcm.height << endl;
-    u->resize(pcm.width,pcm.height);
-    v->resize(pcm.width,pcm.height);
-    pcm_complex *pc;
-    float x1=-1e+30,x2=-1e+30;
-    for(int j=0;j<pcm.height;++j)
-	for(int i=0;i<pcm.width;++i)
-	  {
-	    pc = pcm.Get(i,j);
-	    if(pc)
-	      {
-		
-	      
-	    (*u)(i,j)= pc->r;
-	    (*v)(i,j)= pc->i;
-	    
-	    x1 = max(x1,pc->r);
-	    x2 = max(x2,pc->i);
-	    if(i<0 && j < 0)
-	    cout << i << " " << j << " " << pc->r << " " << pc->i << endl;
-	       }
-	  }
-    cout << " max uv : " << x1 << " " << x2 << endl;
-    return pcm.width*pcm.height;	  
-}
-
-<<<<<<< HEAD
- /*  class Init { public:
-  Init();
-};
-
-$1 */
-static void Load_Init(){
-=======
- class Init { public:
-  Init();
-};
-
-LOADINIT(Init);
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  cout << " load: init pcm2rmn  " << endl;
- 
-
-    Global.Add("readpcm", "(",
-    new OneOperator2<KNM<Complex> *,string*,KNM<Complex> * >(&read_pcm),
-    new OneOperator3_<long,string*,KNM<double> *,KNM<double> * >(&read_pcm)
-		    );
-  
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/ppm2rnm.cpp.orig b/examples++-load/ppm2rnm.cpp.orig
deleted file mode 100644
index 76e68de..0000000
--- a/examples++-load/ppm2rnm.cpp.orig
+++ /dev/null
@@ -1,338 +0,0 @@
-//   tools to read ppm file 
-/*  use in freefem++ edp
-  see :
-  real[int,int] ff1("tt.pmm"); // read  image and set to an array. 
-  real[int]  ff(ff1.nx*ff1.ny);
-  ff=ff1; 
- */
-#include  <iostream>
-#include  <cfloat>
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-using namespace std;  
-
-#include "RNM.hpp"
-#include <cmath>
-typedef KNM<double> * pRnm;
-typedef KN<double> * pRn;
-typedef string * pstring;
-#include "ppmimg.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-    
-    
-    
-    PPMimage *loadPPM(const char *imgname,ubyte *type,ubyte quiet) {
-	pPPMimage  result;
-	FILE      *fp;
-	int        i,k,typimg,ret,r,g,b,s,maxval,bitsize;
-	const char      *ptr;
-	char c,buff[1024],data[256];
-	
-	/* search for image */
-	fprintf(stdout," Loading image: %s\n",imgname);
-	ptr = strstr(imgname,".ppm");
-	strcpy(data,imgname);
-	if ( !ptr ) {
-	    ptr = strstr(imgname,".pgm");
-	    if ( !ptr )  strcat(data,".ppm");
-	    fp = fopen(data,"rb");
-	} 
-	else
-	    fp = fopen(data,"rb");
-	if ( !fp ) {
-	    fprintf(stderr,"  ## UNABLE TO OPEN FILE %s.\n",data);
-	    return(0);
-	}
-	if ( !quiet )
-	    fprintf(stdout,"  opening %s\n",data);
-	
-	if ( !fgets(buff,sizeof(buff),fp) ) {
-	    fprintf(stderr,"  ## INVALID HEADER.\n");
-	    return(0);
-	}
-	
-	/* check header file */
-	if ( buff[0] != 'P' ) {
-	    fprintf(stderr,"  ## INVALID IMAGE FORMAT (MUST BE 'PX').\n");
-	    return(0);
-	}
-	
-	switch(buff[1]) {
-	    case '2': typimg = P2;  break;
-	    case '3': typimg = P3;  break;
-	    case '4': typimg = P4;  break;
-	    case '5': typimg = P5;  break;
-	    case '6': typimg = P6;  break;
-	    default:
-		fprintf(stderr,"  ## INVALID IMAGE FORMAT (MUST BE 'PX').\n");
-		return(0);
-	}
-	
-	/* allocate memory to store imagee */
-	result = (PPMimage*) malloc(sizeof(PPMimage));
-	assert(result);
-	
-	do {
-	    ret = fscanf(fp,"%s",buff);
-	    if ( ret == EOF ) break;
-	    /* check and strip comments */
-	    if ( buff[0] == '#' )
-		do
-		    c = getc(fp);
-	    while ( c != '\n' );
-	    else break;
-	}
-	while (1);
-	
-	/* read columns + lines */
-	ret  = sscanf(buff,"%d",&s);
-	result->sizeX = (short)s;
-	ret += fscanf(fp,"%d",&s);
-	result->sizeY = (short)s;
-	if ( ret != 2 ) {
-	    fprintf(stderr,"  ## ERROR LOADING IMAGE.\n");
-	    free(result);
-	    return(0);
-	}
-	if ( fscanf(fp,"%d",&maxval) != 1 ) {
-	    fprintf(stderr,"  ## INVALID IMAGE SIZE.\n");
-	    free(result);
-	    return(0);
-	}
-	
-	/* strip line */
-	while ( fgetc(fp) != '\n' ) ;
-	
-	/* size based on type */
-	if ( typimg == P2 || typimg == P5 || typimg == P4 )
-	    bitsize = result->sizeX*result->sizeY;
-	else
-	    bitsize = 3*result->sizeX*result->sizeY;
-	if ( !quiet )
-	    fprintf(stdout,"   image size: %dx%d  %d bytes\n",
-		    result->sizeX,result->sizeY,bitsize);
-	
-	result->data = (ubyte*)malloc(1+bitsize*sizeof(ubyte));
-	assert(result->data);
-	
-	/* read data file */
-	switch( typimg ) {
-	    case P2:  /* ascii file (grey)  */
-	    case P3:  /* ascii file (color) */
-		for (i=0; i<bitsize; i++) {
-		    int rr=fscanf(fp,"%d",&r);
-		    result->data[i] = (ubyte)r;
-		}
-		break;
-		
-	    case P5:  /* binary file (grey) */
-	    case P6:  /* binary file (color) */
-		ret = fread(result->data,sizeof(ubyte),bitsize,fp);
-		if ( ret != bitsize ) {
-		    fprintf(stderr,"  ## ERROR LOADING IMAGE.\n");
-		    free(result->data);
-		    free(result);
-		    return(0);
-		}
-		break;
-	}
-	fclose(fp);
-	
-	if ( *type == DEFAULT )
-	    if ( typimg == P2 || typimg == P5 )
-		*type = GREY;
-	    else
-		*type = COLOR;
-	
-	/* convert to grey levels */
-	    else if ( *type == GREY && (typimg == P3 || typimg == P6) ) {
-		fprintf(stdout,"  converting to grey levels\n");
-		for (i=0,k=0; i<bitsize; i+=3,k++) {
-		    r = (int)result->data[i];
-		    g = (int)result->data[i+1];
-		    b = (int)result->data[i+2];
-		    result->data[k] = (ubyte)(0.3*r+0.59*g+0.11*b);
-		}
-		result->data = (ubyte*)realloc(result->data,sizeof(ubyte)*bitsize/3+1);
-	    }
-	
-	return(result);
-    }
-    
-    
-    int savePPM(const char *imgname,pPPMimage img,int typimg) {
-	FILE      *out;
-	int        i,c,bitsize;
-	
-	/* open file */
-	out = fopen(imgname,"w");
-	if ( !out ) {
-	    fprintf(stderr,"  ## UNABLE TO OPEN FILE %s.\n",imgname);
-	    return 0;
-	}
-	
-	/* write out image file */
-	bitsize = img->sizeX*img->sizeY;
-	switch(typimg) {
-	    case P2:
-		fprintf(out,"P2\n");
-		fprintf(out,"# CREATOR: QIZIP Version 1, Rev. 2/2003, (c) INRIA\n");
-		fprintf(out,"%d %d\n",img->sizeX,img->sizeY);
-		fprintf(out,"255\n");
-		c = 0;
-		for (i=0; i<img->sizeX*img->sizeY; i++) {
-		    fprintf(out,"%3d ",(int)img->data[i]);
-		    if ( ++c == 17 ) { 
-			c = 0; 
-			fprintf(out,"\n");
-		    }
-		}
-		fprintf(out,"\n");
-		break;
-	    case P5:
-		fprintf(out,"P5\n");
-		fprintf(out,"# CREATOR: QIZIP Version 1, Rev. 2/2003, (c) INRIA\n");
-		fprintf(out,"%d %d\n",img->sizeX,img->sizeY);
-		fprintf(out,"255\n");
-		fwrite(img->data,sizeof(ubyte),bitsize,out);
-		break;
-	    case P6:
-		fprintf(out,"P6\n");
-		fprintf(out,"# CREATOR: QIZIP Version 1, Rev. 2/2003, (c) INRIA\n");
-		fprintf(out,"%d %d\n",img->sizeX,img->sizeY);
-		fprintf(out,"255\n");
-		fwrite(img->data,sizeof(ubyte),3*bitsize,out);
-		break;
-	}
-	fclose(out);
-	
-	return(1);
-    }
-    
-    /* compute difference image */
-    pPPMimage diffImg(pPPMimage bits,pPPMimage img,ubyte itype) {
-	pPPMimage  dif;
-	double     psnr,dd;
-	int        i,bitsize,dmax;
-	
-	fprintf(stdout,"  Difference image\n");
-	bitsize = (int)bits->sizeX*bits->sizeY;
-	if ( itype == COLOR )  bitsize *= 3;
-	
-	dif = (PPMimage *)malloc(sizeof(PPMimage));
-	if ( !dif ) {
-	    fprintf(stderr,"  Sorry, not enough memory. Bye.\n");
-	    return 0;
-	}
-	dif->sizeX = bits->sizeX; 
-	dif->sizeY = bits->sizeY;
-	dif->data = (ubyte*)malloc(bitsize*sizeof(ubyte));
-	if ( !dif->data ) {
-	    fprintf(stderr,"  Sorry, not enough memory. Bye.\n");
-	    free(dif);
-	    return 0;
-	}
-	
-	dmax = 0;
-	psnr = 0.0f;
-	for (i=0; i<bitsize; i++) {
-	    dd    = abs((int)(bits->data[i]-img->data[i]));
-	    dmax  = max(dmax,dd);
-	    psnr += (double)dd*dd;
-	    dif->data[i] = (ubyte)(255-dd);
-	}
-	if ( psnr == 0.0f )  fprintf(stderr,"    PSNR problem!");
-	else {
-	    psnr = 65025.0f / psnr;
-	    psnr = 10.0 * log10(bitsize*psnr);
-	}
-	fprintf(stdout,"    PSNR = %.2f    dmax = %d\n",psnr,dmax);
-	
-	return(dif);
-    }
-    
-    
-#ifdef __cplusplus
-}
-#endif
-
-
-pRnm  read_image( pRnm  const & a,const pstring & b)
-{
-  ubyte type,quiet=1;
-  PPMimage * image =loadPPM(b->c_str(),&type, quiet);
-  if(!image) {
-    std::cerr << " error loadPPM image "<< *b  << endl;
-    CompileError("error loadPPM image ");
-    return a;
-  }
-  if(verbosity)   
-  cout << " size of image : " << image->sizeX << " x " << image->sizeY << " type =" <<  (int) type << endl; 
-  int n = image->sizeX;
-  int m = image->sizeY ;
-  a->init(n,m);
-  ubyte * dd= image->data;
-
-  //  cout << (double) dd[0] / 256. << " "
-  //     << (double) dd[250] / 256. << " "
-  //     << (double) dd[500] / 256. << "\n "
-  //  ;
-  int k=0;
-  double *mm=*a;
-  for(int i=0;i<n;++i)
-    for(int j=0;j<m;++j)
-      *mm++= (double) dd[k++] / 256. ;
-  KN_<double> aa=*a;
-  // cout << aa[0] << " "<< aa[250] << "" << aa[500] << endl;
-  assert(k==n*m);
-  free(image->data);
-  free(image);
-  return a;
-}
-pRn  seta( pRn  const & a,const pRnm & b)
-{
-  *a=*b;
-  KN_<double> aa=*a;
-  //  cout << aa[0] << " "<< aa[250] << "" << aa[500] << endl;
-  return a;
-}
-<<<<<<< HEAD
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-static void Load_Init(){
-=======
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  cout << " lood: init ppm2rmn  " << endl;
-
-
-  TheOperators->Add("<-", 
-		    new OneOperator2_<KNM<double> *,KNM<double> *,string*>(&read_image)
-		    );
-  TheOperators->Add("=", 
-		    new OneOperator2_<KN<double> *,KN<double> *,KNM<double>* >(seta)
-		    );
-  /*
-  map_type[typeid(KN<double> ).name()]->AddCast(
-						new E_F1_funcT<KN<double>,KNM<double>*>(UnRef<KN<double>,KNM<double> >));
-					      //  map_type[typeid(KN<double> ).name()]->AddCast(
-						//new E_F1_funcT<KN<double>*,KNM<double>*>(Cast<KN<double>*,KNM<double>*>));
-					       
-						*/
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/qf11to25.cpp.orig b/examples++-load/qf11to25.cpp.orig
deleted file mode 100644
index 1d81cd7..0000000
--- a/examples++-load/qf11to25.cpp.orig
+++ /dev/null
@@ -1,883 +0,0 @@
-#include <stdlib.h>
-#include <math.h>
-#include <iostream>
-#include <fstream>
-#include "error.hpp"
-#include "AFunction.hpp"
-using namespace std;
-
-
-#include "RNM.hpp"
-#include "rgraph.hpp"
-#include "fem.hpp"
-#include "QuadratureFormular.hpp"
-using  namespace Fem2D ; 
-/* awk -F[ t=:]* -f tt.awk  coords.txt >QF.cpp
-
-/integration/ { if(ii) {print "};" 
-  print "const QuadratureFormular QuadratureFormular_T_" ii "(3," ii " ," N ",P_QuadratureFormular_T_" ii ");"
-  print ""
-  print ""			 
-};ii=$3;N=$5;
- print "static const QuadraturePoint P_QuadratureFormular_T_" $3 "[] = {";}
-!/integration/ {print "QuadraturePoint(" $4 "/2," $2"," $3"),"}
-END {print "};";
-  print "const QuadratureFormular QuadratureFormular_T_" ii "(3," ii " ," N ",P_QuadratureFormular_T_" ii ");"
-  print ""
-    print ""			 
-}
-*/
-/* 
-static const QuadraturePoint P_QuadratureFormular_T_2[] = {
-QuadraturePoint(0.6666666666667/2,0.1666666666667,0.6666666666667),
-QuadraturePoint(0.6666666666667/2,0.6666666666667,0.1666666666667),
-QuadraturePoint(0.6666666666667/2,0.1666666666667,0.1666666666667),
-};
-const QuadratureFormular QuadratureFormular_T_2(3,2 ,3,P_QuadratureFormular_T_2);
-
-
-static const QuadraturePoint P_QuadratureFormular_T_4[] = {
-QuadraturePoint(0.2199034873106/2,0.0915762135098,0.0915762135098),
-QuadraturePoint(0.2199034873106/2,0.8168475729805,0.0915762135098),
-QuadraturePoint(0.2199034873106/2,0.0915762135098,0.8168475729805),
-QuadraturePoint(0.4467631793560/2,0.1081030181681,0.4459484909160),
-QuadraturePoint(0.4467631793560/2,0.4459484909160,0.1081030181681),
-QuadraturePoint(0.4467631793560/2,0.4459484909160,0.4459484909160),
-};
-const QuadratureFormular QuadratureFormular_T_4(3,4 ,6,P_QuadratureFormular_T_4);
-
-
-static const QuadraturePoint P_QuadratureFormular_T_5[] = {
-QuadraturePoint(0.0262712099504/2,0.0000000000000,1.0000000000000),
-QuadraturePoint(0.0262716612068/2,1.0000000000000,0.0000000000000),
-QuadraturePoint(0.0274163947600/2,0.0000000000000,0.0000000000000),
-QuadraturePoint(0.2348383865823/2,0.2673273531185,0.6728199218710),
-QuadraturePoint(0.2348412238268/2,0.6728175529461,0.2673288599482),
-QuadraturePoint(0.2480251793114/2,0.0649236350054,0.6716530111494),
-QuadraturePoint(0.2480304922521/2,0.6716498539042,0.0649251690029),
-QuadraturePoint(0.2518604605529/2,0.0654032456800,0.2693789366453),
-QuadraturePoint(0.2518660533658/2,0.2693767069140,0.0654054874919),
-QuadraturePoint(0.4505789381914/2,0.3386738503896,0.3386799893027),
-};
-const QuadratureFormular QuadratureFormular_T_5(3,5 ,10,P_QuadratureFormular_T_5);
-
-
-static const QuadraturePoint P_QuadratureFormular_T_7[] = {
-QuadraturePoint(0.0102558174092/2,1.0000000000000,0.0000000000000),
-QuadraturePoint(0.0102558174092/2,0.0000000000000,0.0000000000000),
-QuadraturePoint(0.0102558174092/2,0.0000000000000,1.0000000000000),
-QuadraturePoint(0.1116047046647/2,0.7839656651012,0.0421382841642),
-QuadraturePoint(0.1116047046647/2,0.1738960507345,0.7839656651012),
-QuadraturePoint(0.1116047046647/2,0.1738960507345,0.0421382841642),
-QuadraturePoint(0.1116047046647/2,0.0421382841642,0.1738960507345),
-QuadraturePoint(0.1116047046647/2,0.7839656651012,0.1738960507345),
-QuadraturePoint(0.1116047046647/2,0.0421382841642,0.7839656651012),
-QuadraturePoint(0.1679775595335/2,0.4743880861752,0.4743880861752),
-QuadraturePoint(0.1679775595335/2,0.4743880861752,0.0512238276497),
-QuadraturePoint(0.1679775595335/2,0.0512238276497,0.4743880861752),
-QuadraturePoint(0.2652238803946/2,0.2385615300181,0.5228769399639),
-QuadraturePoint(0.2652238803946/2,0.5228769399639,0.2385615300181),
-QuadraturePoint(0.2652238803946/2,0.2385615300181,0.2385615300181),
-};
-const QuadratureFormular QuadratureFormular_T_7(3,7 ,15,P_QuadratureFormular_T_7);
-
-
-static const QuadraturePoint P_QuadratureFormular_T_9[] = {
-QuadraturePoint(0.0519871420646/2,0.0451890097844,0.0451890097844),
-QuadraturePoint(0.0519871420646/2,0.0451890097844,0.9096219804312),
-QuadraturePoint(0.0519871420646/2,0.9096219804312,0.0451890097844),
-QuadraturePoint(0.0707034101784/2,0.7475124727339,0.0304243617288),
-QuadraturePoint(0.0707034101784/2,0.2220631655373,0.0304243617288),
-QuadraturePoint(0.0707034101784/2,0.7475124727339,0.2220631655373),
-QuadraturePoint(0.0707034101784/2,0.2220631655373,0.7475124727339),
-QuadraturePoint(0.0707034101784/2,0.0304243617288,0.7475124727339),
-QuadraturePoint(0.0707034101784/2,0.0304243617288,0.2220631655373),
-QuadraturePoint(0.0909390760952/2,0.1369912012649,0.2182900709714),
-QuadraturePoint(0.0909390760952/2,0.6447187277637,0.2182900709714),
-QuadraturePoint(0.0909390760952/2,0.1369912012649,0.6447187277637),
-QuadraturePoint(0.0909390760952/2,0.2182900709714,0.6447187277637),
-QuadraturePoint(0.0909390760952/2,0.2182900709714,0.1369912012649),
-QuadraturePoint(0.0909390760952/2,0.6447187277637,0.1369912012649),
-QuadraturePoint(0.1032344051380/2,0.0369603304334,0.4815198347833),
-QuadraturePoint(0.1032344051380/2,0.4815198347833,0.0369603304334),
-QuadraturePoint(0.1032344051380/2,0.4815198347833,0.4815198347833),
-QuadraturePoint(0.1881601469167/2,0.4036039798179,0.1927920403641),
-QuadraturePoint(0.1881601469167/2,0.4036039798179,0.4036039798179),
-QuadraturePoint(0.1881601469167/2,0.1927920403641,0.4036039798179),
-};
-const QuadratureFormular QuadratureFormular_T_9(3,9 ,21,P_QuadratureFormular_T_9);
-*/
-
-static  QuadraturePoint P_QuadratureFormular_T_11[] = {
-QuadraturePoint(0.0114082494033/2,0.0000000000000,0.9451704450174),
-QuadraturePoint(0.0114082494033/2,0.9451704450173,0.0000000000000),
-QuadraturePoint(0.0132691285720/2,0.9289002405719,0.0685505797224),
-QuadraturePoint(0.0132691285720/2,0.0685505797224,0.9289002405717),
-QuadraturePoint(0.0155865773350/2,0.0243268355615,0.0243268355616),
-QuadraturePoint(0.0408274780428/2,0.1279662835335,0.0277838749488),
-QuadraturePoint(0.0408274780429/2,0.0277838749488,0.1279662835337),
-QuadraturePoint(0.0579849665116/2,0.0287083428360,0.7498347588657),
-QuadraturePoint(0.0579849665116/2,0.7498347588656,0.0287083428360),
-QuadraturePoint(0.0601385247663/2,0.7228007909707,0.2497602062385),
-QuadraturePoint(0.0601385247663/2,0.2497602062386,0.7228007909707),
-QuadraturePoint(0.0625273888433/2,0.0865562992839,0.8325513856997),
-QuadraturePoint(0.0625273888433/2,0.8325513856998,0.0865562992839),
-QuadraturePoint(0.0639684321504/2,0.3061619157672,0.0303526617491),
-QuadraturePoint(0.0639684321504/2,0.0303526617491,0.3061619157675),
-QuadraturePoint(0.0661325872161/2,0.4868610595047,0.4868610595047),
-QuadraturePoint(0.0668503236820/2,0.6657904293017,0.1765456154219),
-QuadraturePoint(0.0668503236821/2,0.1765456154221,0.6657904293016),
-QuadraturePoint(0.0686904305977/2,0.0293121007360,0.5295657488669),
-QuadraturePoint(0.0686904305977/2,0.5295657488667,0.0293121007360),
-QuadraturePoint(0.1002717543859/2,0.1444673824391,0.1444673824391),
-QuadraturePoint(0.1143136784099/2,0.3299740111411,0.5361815729050),
-QuadraturePoint(0.1143136784099/2,0.5361815729052,0.3299740111409),
-QuadraturePoint(0.1223648146752/2,0.5511507516862,0.1437790861923),
-QuadraturePoint(0.1223648146752/2,0.1437790861923,0.5511507516862),
-QuadraturePoint(0.1394422334178/2,0.3348066587327,0.1529619437161),
-QuadraturePoint(0.1394422334178/2,0.1529619437161,0.3348066587327),
-QuadraturePoint(0.1744377829182/2,0.3430183498147,0.3430183498147),
-};
-const QuadratureFormular QuadratureFormular_T_11(11 ,28,P_QuadratureFormular_T_11);
-
-
-static  QuadraturePoint P_QuadratureFormular_T_13[] = {
-QuadraturePoint(0.0166240998757/2,0.0242935351590,0.9493059293846),
-QuadraturePoint(0.0166811699778/2,0.0265193427722,0.0242695130640),
-QuadraturePoint(0.0166830569067/2,0.9492126023551,0.0265067966437),
-QuadraturePoint(0.0175680870083/2,0.0033775763749,0.4767316412363),
-QuadraturePoint(0.0184474661845/2,0.4757672298101,0.5198921829102),
-QuadraturePoint(0.0197942410188/2,0.5190783193471,0.0055912706202),
-QuadraturePoint(0.0203540395855/2,0.8616839745321,0.0133996048618),
-QuadraturePoint(0.0206852863940/2,0.1249209759926,0.8613054321334),
-QuadraturePoint(0.0208271366086/2,0.0138565453861,0.1247733717358),
-QuadraturePoint(0.0317819778279/2,0.0211887064222,0.8438438351223),
-QuadraturePoint(0.0320472035241/2,0.8432296787219,0.1354563645830),
-QuadraturePoint(0.0320607681146/2,0.1354231797865,0.0213482820656),
-QuadraturePoint(0.0430765959183/2,0.3088853510679,0.0221919663014),
-QuadraturePoint(0.0438473415339/2,0.6685057595169,0.3089012879389),
-QuadraturePoint(0.0439209672733/2,0.0226545012557,0.6691709943321),
-QuadraturePoint(0.0479951923691/2,0.2808515408772,0.6924718155106),
-QuadraturePoint(0.0483806260733/2,0.6922446749051,0.0268723345026),
-QuadraturePoint(0.0484867423375/2,0.0268617447119,0.2810093973222),
-QuadraturePoint(0.0556964488024/2,0.1141778485470,0.7973581413586),
-QuadraturePoint(0.0561026364356/2,0.7974807922061,0.0879806508791),
-QuadraturePoint(0.0565190123693/2,0.0892807293894,0.1145020561128),
-QuadraturePoint(0.0689289890670/2,0.1052487892455,0.6686904119922),
-QuadraturePoint(0.0717213336089/2,0.6663022280740,0.2275051631832),
-QuadraturePoint(0.0727453920976/2,0.2307803737547,0.1054572561221),
-QuadraturePoint(0.0788807336737/2,0.1705059157540,0.5174064398658),
-QuadraturePoint(0.0810114345512/2,0.5086593973043,0.3170523855209),
-QuadraturePoint(0.0825725299055/2,0.3141823862281,0.1810706361659),
-QuadraturePoint(0.0842044567330/2,0.4617460817864,0.4678594539804),
-QuadraturePoint(0.0843585533305/2,0.0693087496081,0.4622856042085),
-QuadraturePoint(0.0851969868488/2,0.4651955259268,0.0724357805669),
-QuadraturePoint(0.0902845328052/2,0.2578625857893,0.6131395039177),
-QuadraturePoint(0.0914283143485/2,0.6112627766779,0.1300360834609),
-QuadraturePoint(0.0916279065409/2,0.1305182135934,0.2581713828884),
-QuadraturePoint(0.1025573374896/2,0.4281437991828,0.2362005969817),
-QuadraturePoint(0.1033159661413/2,0.3356995783730,0.4311026308588),
-QuadraturePoint(0.1035854367193/2,0.2305424298836,0.3456013949376),
-};
-const QuadratureFormular QuadratureFormular_T_13(13 ,36,P_QuadratureFormular_T_13);
-
-
-static  QuadraturePoint P_QuadratureFormular_T_14[] = {
-QuadraturePoint(0.0010616711990/2,0.0000000000000,1.0000000000000),
-QuadraturePoint(0.0010616711990/2,1.0000000000000,0.0000000000000),
-QuadraturePoint(0.0010616711990/2,0.0000000000000,0.0000000000000),
-QuadraturePoint(0.0131460236101/2,0.0573330873026,0.0151382269814),
-QuadraturePoint(0.0131460236101/2,0.0573330873026,0.9275286857160),
-QuadraturePoint(0.0131460236101/2,0.9275286857160,0.0573330873026),
-QuadraturePoint(0.0131460236101/2,0.0151382269814,0.0573330873026),
-QuadraturePoint(0.0131460236101/2,0.9275286857160,0.0151382269814),
-QuadraturePoint(0.0131460236101/2,0.0151382269814,0.9275286857160),
-QuadraturePoint(0.0242881926949/2,0.8159625040711,0.1659719969565),
-QuadraturePoint(0.0242881926949/2,0.8159625040711,0.0180654989724),
-QuadraturePoint(0.0242881926949/2,0.1659719969565,0.8159625040711),
-QuadraturePoint(0.0242881926949/2,0.0180654989724,0.8159625040711),
-QuadraturePoint(0.0242881926949/2,0.1659719969565,0.0180654989724),
-QuadraturePoint(0.0242881926949/2,0.0180654989724,0.1659719969565),
-QuadraturePoint(0.0316799866332/2,0.3165475556378,0.0186886898773),
-QuadraturePoint(0.0316799866332/2,0.6647637544849,0.0186886898773),
-QuadraturePoint(0.0316799866332/2,0.0186886898773,0.6647637544849),
-QuadraturePoint(0.0316799866332/2,0.0186886898773,0.3165475556378),
-QuadraturePoint(0.0316799866332/2,0.3165475556378,0.6647637544849),
-QuadraturePoint(0.0316799866332/2,0.6647637544849,0.3165475556378),
-QuadraturePoint(0.0349317947036/2,0.0192662192492,0.4903668903754),
-QuadraturePoint(0.0349317947036/2,0.4903668903754,0.0192662192492),
-QuadraturePoint(0.0349317947036/2,0.4903668903754,0.4903668903754),
-QuadraturePoint(0.0383664533945/2,0.0875134669581,0.8249730660837),
-QuadraturePoint(0.0383664533945/2,0.0875134669581,0.0875134669581),
-QuadraturePoint(0.0383664533945/2,0.8249730660837,0.0875134669581),
-QuadraturePoint(0.0578369491210/2,0.0935526036219,0.2079865423167),
-QuadraturePoint(0.0578369491210/2,0.0935526036219,0.6984608540613),
-QuadraturePoint(0.0578369491210/2,0.2079865423167,0.0935526036219),
-QuadraturePoint(0.0578369491210/2,0.6984608540613,0.0935526036219),
-QuadraturePoint(0.0578369491210/2,0.6984608540613,0.2079865423167),
-QuadraturePoint(0.0578369491210/2,0.2079865423167,0.6984608540613),
-QuadraturePoint(0.0725821687394/2,0.0974892983467,0.5380088595149),
-QuadraturePoint(0.0725821687394/2,0.3645018421383,0.0974892983467),
-QuadraturePoint(0.0725821687394/2,0.5380088595149,0.0974892983467),
-QuadraturePoint(0.0725821687394/2,0.5380088595149,0.3645018421383),
-QuadraturePoint(0.0725821687394/2,0.3645018421383,0.5380088595149),
-QuadraturePoint(0.0725821687394/2,0.0974892983467,0.3645018421383),
-QuadraturePoint(0.0897856524107/2,0.2217145894873,0.5565708210253),
-QuadraturePoint(0.0897856524107/2,0.5565708210253,0.2217145894873),
-QuadraturePoint(0.0897856524107/2,0.2217145894873,0.2217145894873),
-QuadraturePoint(0.1034544533617/2,0.3860471669296,0.2279056661408),
-QuadraturePoint(0.1034544533617/2,0.2279056661408,0.3860471669296),
-QuadraturePoint(0.1034544533617/2,0.3860471669296,0.3860471669296),
-};
-const QuadratureFormular QuadratureFormular_T_14(14 ,45,P_QuadratureFormular_T_14);
-
-
-static  QuadraturePoint P_QuadratureFormular_T_16[] = {
-QuadraturePoint(0.0006202599851/2,1.0000000000000,0.0000000000000),
-QuadraturePoint(0.0006315174712/2,0.0000000000000,1.0000000000000),
-QuadraturePoint(0.0007086601559/2,0.0000000000000,0.0000000000000),
-QuadraturePoint(0.0055163716168/2,0.9398863583577,0.0049848744634),
-QuadraturePoint(0.0062692407656/2,0.0543806683058,0.9386405618617),
-QuadraturePoint(0.0078531408826/2,0.0093940049164,0.0526424462697),
-QuadraturePoint(0.0094551483864/2,0.0164345086362,0.9469035517351),
-QuadraturePoint(0.0097824511271/2,0.9469487269862,0.0363373677167),
-QuadraturePoint(0.0099861643489/2,0.0426604005768,0.0151224541799),
-QuadraturePoint(0.0137553818816/2,0.0122269495439,0.8693773510664),
-QuadraturePoint(0.0140979178040/2,0.8673696521047,0.1204917285774),
-QuadraturePoint(0.0149646864337/2,0.8456744021389,0.0157763967870),
-QuadraturePoint(0.0156097503612/2,0.1395759632103,0.8448120870375),
-QuadraturePoint(0.0157683693348/2,0.1317821743231,0.0135009605584),
-QuadraturePoint(0.0175794546383/2,0.0157955126300,0.1455274938536),
-QuadraturePoint(0.0204113840270/2,0.7365462884436,0.0155697540908),
-QuadraturePoint(0.0209562878616/2,0.0139688430330,0.7379836894450),
-QuadraturePoint(0.0210713412998/2,0.2547895186039,0.7297615689771),
-QuadraturePoint(0.0217646760202/2,0.7316386522555,0.2543076683315),
-QuadraturePoint(0.0222288408699/2,0.0157253728951,0.2696239795791),
-QuadraturePoint(0.0224186693682/2,0.2662302843647,0.0144783956308),
-QuadraturePoint(0.0230122616993/2,0.8673504065214,0.0591679410400),
-QuadraturePoint(0.0236813902500/2,0.0741493666957,0.8634782575061),
-QuadraturePoint(0.0257464643368/2,0.0159285948360,0.4191238955238),
-QuadraturePoint(0.0257956801608/2,0.0156061028068,0.5809222921146),
-QuadraturePoint(0.0258072327610/2,0.5910094817484,0.0159251452651),
-QuadraturePoint(0.0260343232059/2,0.4034771496889,0.5806700368104),
-QuadraturePoint(0.0265768141609/2,0.5694745628526,0.4149495146302),
-QuadraturePoint(0.0265784761831/2,0.0678493700650,0.0761218678591),
-QuadraturePoint(0.0267532329238/2,0.4265968590272,0.0157509692312),
-QuadraturePoint(0.0375787806641/2,0.0670982507890,0.7741898312421),
-QuadraturePoint(0.0383065894195/2,0.7528310231480,0.0819119495639),
-QuadraturePoint(0.0384849695025/2,0.7753727783557,0.1577128457292),
-QuadraturePoint(0.0389619825852/2,0.1689073157787,0.7503943099742),
-QuadraturePoint(0.0394604111547/2,0.1687335832919,0.0708311507268),
-QuadraturePoint(0.0412364778098/2,0.0821244708436,0.1762996626771),
-QuadraturePoint(0.0512872438483/2,0.6288705363345,0.0807744953317),
-QuadraturePoint(0.0516405641935/2,0.0811413015266,0.3054373589776),
-QuadraturePoint(0.0518230042269/2,0.2969112065080,0.6227485988871),
-QuadraturePoint(0.0528527988181/2,0.0767542314171,0.6247247149546),
-QuadraturePoint(0.0538505573027/2,0.6223022333845,0.3011485821166),
-QuadraturePoint(0.0541895329319/2,0.3103786288051,0.0779098365079),
-QuadraturePoint(0.0584737146444/2,0.0819218215187,0.4603633038351),
-QuadraturePoint(0.0592863168363/2,0.4717022665013,0.0821554006797),
-QuadraturePoint(0.0594358276749/2,0.4546603415250,0.4637565033890),
-QuadraturePoint(0.0631800255863/2,0.1701091339237,0.6422277808188),
-QuadraturePoint(0.0632926845153/2,0.6406004329487,0.1898293537256),
-QuadraturePoint(0.0640707361772/2,0.1912267583717,0.1739955685343),
-QuadraturePoint(0.0812040595918/2,0.1885315767070,0.4798914070406),
-QuadraturePoint(0.0814437513530/2,0.4772929957691,0.3348356598119),
-QuadraturePoint(0.0814679201241/2,0.3126974621760,0.4957972197259),
-QuadraturePoint(0.0815050548084/2,0.4961225945946,0.1927553668904),
-QuadraturePoint(0.0815164664939/2,0.1928805312867,0.3161015807261),
-QuadraturePoint(0.0816931059623/2,0.3360041453816,0.1894892801290),
-QuadraturePoint(0.0923218334531/2,0.3337280550848,0.3343571021811),
-};
-const QuadratureFormular QuadratureFormular_T_16(16 ,55,P_QuadratureFormular_T_16);
-
-
-static QuadraturePoint P_QuadratureFormular_T_18[] = {
-QuadraturePoint(0.0025165756986/2,0.0116731059668,0.9812565951289),
-QuadraturePoint(0.0025273452007/2,0.9810030858388,0.0071462504863),
-QuadraturePoint(0.0033269295333/2,0.0106966317092,0.0115153933376),
-QuadraturePoint(0.0081503492125/2,0.9382476983551,0.0495570591341),
-QuadraturePoint(0.0086135525742/2,0.0126627518417,0.9370123620615),
-QuadraturePoint(0.0087786746179/2,0.0598109409984,0.0121364578922),
-QuadraturePoint(0.0097099585562/2,0.0137363297927,0.0612783625597),
-QuadraturePoint(0.0102466211915/2,0.9229527959405,0.0141128270602),
-QuadraturePoint(0.0108397688341/2,0.0633107354993,0.9220197291727),
-QuadraturePoint(0.0129385390176/2,0.0117265100335,0.1500520475229),
-QuadraturePoint(0.0136339823583/2,0.1554720587323,0.8325147121589),
-QuadraturePoint(0.0138477328147/2,0.8343293888982,0.0125228158759),
-QuadraturePoint(0.0139421540105/2,0.8501638031957,0.1371997508736),
-QuadraturePoint(0.0144121399968/2,0.0128816350522,0.8477627063479),
-QuadraturePoint(0.0153703455534/2,0.1510801608959,0.0136526924039),
-QuadraturePoint(0.0162489802253/2,0.0101917879217,0.5770438618345),
-QuadraturePoint(0.0169718304280/2,0.2813372399303,0.7066853759623),
-QuadraturePoint(0.0170088532421/2,0.7124374628501,0.0124569780990),
-QuadraturePoint(0.0170953520675/2,0.2763025250863,0.0121741311386),
-QuadraturePoint(0.0173888854559/2,0.0109658368561,0.4194306712466),
-QuadraturePoint(0.0174543962439/2,0.4289110517884,0.5599616067469),
-QuadraturePoint(0.0178406757287/2,0.4215420555115,0.0116475994785),
-QuadraturePoint(0.0178446863879/2,0.5711258590444,0.0118218313989),
-QuadraturePoint(0.0179046337552/2,0.5826868270511,0.4057889581177),
-QuadraturePoint(0.0181259756201/2,0.0130567806713,0.2725023750868),
-QuadraturePoint(0.0184784838882/2,0.0130760400964,0.7224712523233),
-QuadraturePoint(0.0185793564371/2,0.7263437062407,0.2602984019251),
-QuadraturePoint(0.0203217151777/2,0.0687230068637,0.0631417277210),
-QuadraturePoint(0.0213771661809/2,0.8652302101529,0.0720611837338),
-QuadraturePoint(0.0231916854098/2,0.0648599071037,0.8590433543910),
-QuadraturePoint(0.0274426710859/2,0.1483494943362,0.7888788352240),
-QuadraturePoint(0.0290301922340/2,0.0624359898396,0.1493935499354),
-QuadraturePoint(0.0294522738505/2,0.7871369011735,0.0656382042757),
-QuadraturePoint(0.0299436251629/2,0.0519104921610,0.5255635695605),
-QuadraturePoint(0.0307026948119/2,0.1543129927444,0.0716383926917),
-QuadraturePoint(0.0325263365863/2,0.2617842745603,0.0621479485288),
-QuadraturePoint(0.0327884208506/2,0.7667257872813,0.1658211554831),
-QuadraturePoint(0.0331234675192/2,0.2582103676627,0.6800119766139),
-QuadraturePoint(0.0346167526875/2,0.0679065925147,0.7571515437782),
-QuadraturePoint(0.0347081373976/2,0.5293578274804,0.4121503841107),
-QuadraturePoint(0.0347372049404/2,0.0666036150484,0.2612513087886),
-QuadraturePoint(0.0348528762454/2,0.0585675461899,0.3902236114535),
-QuadraturePoint(0.0348601561186/2,0.0644535360411,0.6373626559761),
-QuadraturePoint(0.0355471569975/2,0.6748138429151,0.0637583342061),
-QuadraturePoint(0.0360182996383/2,0.3914602310369,0.5503238090563),
-QuadraturePoint(0.0362926285843/2,0.6487701492307,0.2836728360263),
-QuadraturePoint(0.0381897702083/2,0.3946498220408,0.0605175522554),
-QuadraturePoint(0.0392252800118/2,0.5390137151933,0.0611990176936),
-QuadraturePoint(0.0482710125888/2,0.1627895082785,0.6861322141035),
-QuadraturePoint(0.0489912121566/2,0.6812436322641,0.1567968345899),
-QuadraturePoint(0.0497220833872/2,0.1542832878020,0.1667512624020),
-QuadraturePoint(0.0507065736986/2,0.2522727750445,0.2504803933395),
-QuadraturePoint(0.0509771994043/2,0.2547981532407,0.4994090649043),
-QuadraturePoint(0.0521360063667/2,0.1485580549194,0.5756023096087),
-QuadraturePoint(0.0523460874925/2,0.2930239606436,0.5656897354162),
-QuadraturePoint(0.0524440683552/2,0.2808991272310,0.1437921574248),
-QuadraturePoint(0.0527459644823/2,0.4820989592971,0.2518557535865),
-QuadraturePoint(0.0529449063728/2,0.5641878245444,0.1462966743153),
-QuadraturePoint(0.0542395594501/2,0.1307699644344,0.4489577586117),
-QuadraturePoint(0.0543470203419/2,0.1479692221948,0.3001174386829),
-QuadraturePoint(0.0547100548639/2,0.5638684222946,0.2813772089298),
-QuadraturePoint(0.0557288345913/2,0.4361157428790,0.4252053446420),
-QuadraturePoint(0.0577734264233/2,0.3603263935285,0.2599190004889),
-QuadraturePoint(0.0585393781623/2,0.4224188334674,0.1453238443303),
-QuadraturePoint(0.0609039250680/2,0.3719001833052,0.3780122703567),
-QuadraturePoint(0.0637273964449/2,0.2413645006928,0.3847563284940),
-};
-const QuadratureFormular QuadratureFormular_T_18(18 ,66,P_QuadratureFormular_T_18);
-
-
-static  QuadraturePoint P_QuadratureFormular_T_20[] = {
-QuadraturePoint(0.0021744545399/2,0.0089411337112,0.0086983293702),
-QuadraturePoint(0.0028987135265/2,0.9792622629807,0.0102644133744),
-QuadraturePoint(0.0030846029337/2,0.0105475382112,0.9785514202515),
-QuadraturePoint(0.0034401633104/2,0.0023777061947,0.0636551098604),
-QuadraturePoint(0.0041898472012/2,0.0630425115795,0.0041506347509),
-QuadraturePoint(0.0044738051498/2,0.9308422496730,0.0048053482263),
-QuadraturePoint(0.0047054420814/2,0.0629076555490,0.9316790069481),
-QuadraturePoint(0.0048867935750/2,0.9315962246381,0.0626264881801),
-QuadraturePoint(0.0051927643369/2,0.0061951689415,0.9293587058564),
-QuadraturePoint(0.0074073058981/2,0.0287125819237,0.0310202122997),
-QuadraturePoint(0.0079755410301/2,0.9293844478305,0.0342152968219),
-QuadraturePoint(0.0083550522910/2,0.0375457566621,0.9257868884669),
-QuadraturePoint(0.0096166660864/2,0.0086895739064,0.1584971251510),
-QuadraturePoint(0.0096318257850/2,0.1547597053965,0.8363606657688),
-QuadraturePoint(0.0098577460758/2,0.8331025294185,0.0089257244824),
-QuadraturePoint(0.0102657880301/2,0.8374231073526,0.1529167304078),
-QuadraturePoint(0.0103188103111/2,0.1559362505234,0.0094966240058),
-QuadraturePoint(0.0106291001630/2,0.0098599642095,0.8342211493596),
-QuadraturePoint(0.0106881306895/2,0.4055873733289,0.0074389302008),
-QuadraturePoint(0.0106969021010/2,0.5964727898618,0.3956330809311),
-QuadraturePoint(0.0109026461714/2,0.0080747800416,0.4031319425903),
-QuadraturePoint(0.0109899783575/2,0.0075073977721,0.5851609594681),
-QuadraturePoint(0.0113423055229/2,0.3936764519237,0.5974896592899),
-QuadraturePoint(0.0120535642930/2,0.5846530726212,0.0087250464968),
-QuadraturePoint(0.0139619193821/2,0.4870804112120,0.0202129229912),
-QuadraturePoint(0.0141147991536/2,0.2683512811785,0.7202340088668),
-QuadraturePoint(0.0141930347046/2,0.7223956288748,0.2662399366456),
-QuadraturePoint(0.0144212676268/2,0.2716826742357,0.0112882698808),
-QuadraturePoint(0.0144704346855/2,0.0112580842046,0.7169695963325),
-QuadraturePoint(0.0144949769872/2,0.0115034734370,0.2740067110166),
-QuadraturePoint(0.0145386775694/2,0.7140525900564,0.0113511560497),
-QuadraturePoint(0.0145964190926/2,0.4902871053112,0.4936491841468),
-QuadraturePoint(0.0147314578466/2,0.0201423425209,0.4832573459601),
-QuadraturePoint(0.0167463963304/2,0.0361107464859,0.0935679501582),
-QuadraturePoint(0.0168955500458/2,0.8607998819851,0.0397379067075),
-QuadraturePoint(0.0169422662884/2,0.1005891526001,0.8586343419352),
-QuadraturePoint(0.0173070172095/2,0.0918740717058,0.0395513001973),
-QuadraturePoint(0.0174524546493/2,0.8604888296191,0.0966224057079),
-QuadraturePoint(0.0177217222159/2,0.0439842178673,0.8561886349107),
-QuadraturePoint(0.0282824024023/2,0.2011017606735,0.7449115835626),
-QuadraturePoint(0.0284996712488/2,0.7449993726263,0.0536865638166),
-QuadraturePoint(0.0285005646539/2,0.0532186641310,0.1963754275935),
-QuadraturePoint(0.0300647223478/2,0.7453984647401,0.1982065805550),
-QuadraturePoint(0.0302031277082/2,0.1957289932876,0.0555713833156),
-QuadraturePoint(0.0303987136077/2,0.1092532057988,0.6100036182413),
-QuadraturePoint(0.0305668796074/2,0.0567625702001,0.7409121894959),
-QuadraturePoint(0.0306067413002/2,0.0483837933475,0.6075135660978),
-QuadraturePoint(0.0309330068201/2,0.1080612809760,0.1122081510437),
-QuadraturePoint(0.0309773820835/2,0.6185605900991,0.2698753703035),
-QuadraturePoint(0.0313146250545/2,0.7721296013497,0.1114117395333),
-QuadraturePoint(0.0313573493392/2,0.6115734801133,0.3389367677931),
-QuadraturePoint(0.0314320469287/2,0.3381326103376,0.0494693938787),
-QuadraturePoint(0.0315182143894/2,0.1173084128254,0.7696451309795),
-QuadraturePoint(0.0324248137985/2,0.2674551260596,0.1115718808154),
-QuadraturePoint(0.0347512152386/2,0.6542100160026,0.1906548314700),
-QuadraturePoint(0.0350393454927/2,0.0538297481158,0.3358616826849),
-QuadraturePoint(0.0350717420310/2,0.1848840324117,0.1551831523851),
-QuadraturePoint(0.0352129215334/2,0.3376267104744,0.6081402596294),
-QuadraturePoint(0.0352615504981/2,0.6067102034499,0.0542632795598),
-QuadraturePoint(0.0366403220343/2,0.4612614085496,0.0688176670722),
-QuadraturePoint(0.0367733107670/2,0.1525465365671,0.6510240845749),
-QuadraturePoint(0.0371675662937/2,0.0700582543543,0.4661904392742),
-QuadraturePoint(0.0373371571606/2,0.4704201379032,0.4634826455353),
-QuadraturePoint(0.0403973346588/2,0.1216461693746,0.2381494875516),
-QuadraturePoint(0.0413580040638/2,0.6371404052702,0.1238399384513),
-QuadraturePoint(0.0421957791870/2,0.2379904515119,0.6370216452326),
-QuadraturePoint(0.0495451004037/2,0.1483929857177,0.4894188577780),
-QuadraturePoint(0.0500419261141/2,0.3598069571550,0.1452880866253),
-QuadraturePoint(0.0505794587115/2,0.4941441055095,0.3610216383818),
-QuadraturePoint(0.0520037210188/2,0.1440630687981,0.3513508341887),
-QuadraturePoint(0.0521533567886/2,0.5019764440004,0.1435491663293),
-QuadraturePoint(0.0524899152358/2,0.3555423834298,0.5016491599502),
-QuadraturePoint(0.0599159762516/2,0.2443439540771,0.2406052129104),
-QuadraturePoint(0.0599609997426/2,0.2437064989342,0.5109017277055),
-QuadraturePoint(0.0599915272129/2,0.5122200807321,0.2452737973543),
-QuadraturePoint(0.0634133183449/2,0.2526038315178,0.3700319555094),
-QuadraturePoint(0.0635311861108/2,0.3759895652851,0.2505406611631),
-QuadraturePoint(0.0637206605672/2,0.3729077987144,0.3753750277549),
-};
-const QuadratureFormular QuadratureFormular_T_20(20 ,78,P_QuadratureFormular_T_20);
-
-
-static  QuadraturePoint P_QuadratureFormular_T_21[] = {
-QuadraturePoint(0.0006704436439/2,0.0035524391922,0.0035524391922),
-QuadraturePoint(0.0006704436439/2,0.0035524391922,0.9928951216156),
-QuadraturePoint(0.0006704436439/2,0.9928951216156,0.0035524391922),
-QuadraturePoint(0.0045472608074/2,0.9553548273730,0.0087898929093),
-QuadraturePoint(0.0045472608074/2,0.0358552797177,0.0087898929093),
-QuadraturePoint(0.0045472608074/2,0.9553548273730,0.0358552797177),
-QuadraturePoint(0.0045472608074/2,0.0087898929093,0.0358552797177),
-QuadraturePoint(0.0045472608074/2,0.0087898929093,0.9553548273730),
-QuadraturePoint(0.0045472608074/2,0.0358552797177,0.9553548273730),
-QuadraturePoint(0.0052077585320/2,0.8865264879047,0.1082329745017),
-QuadraturePoint(0.0052077585320/2,0.8865264879047,0.0052405375935),
-QuadraturePoint(0.0052077585320/2,0.0052405375935,0.1082329745017),
-QuadraturePoint(0.0052077585320/2,0.0052405375935,0.8865264879047),
-QuadraturePoint(0.0052077585320/2,0.1082329745017,0.8865264879047),
-QuadraturePoint(0.0052077585320/2,0.1082329745017,0.0052405375935),
-QuadraturePoint(0.0065435432887/2,0.0466397432150,0.9067205135700),
-QuadraturePoint(0.0065435432887/2,0.0466397432150,0.0466397432150),
-QuadraturePoint(0.0065435432887/2,0.9067205135700,0.0466397432150),
-QuadraturePoint(0.0092737841533/2,0.2075720456946,0.0082759241284),
-QuadraturePoint(0.0092737841533/2,0.2075720456946,0.7841520301770),
-QuadraturePoint(0.0092737841533/2,0.7841520301770,0.2075720456946),
-QuadraturePoint(0.0092737841533/2,0.0082759241284,0.7841520301770),
-QuadraturePoint(0.0092737841533/2,0.0082759241284,0.2075720456946),
-QuadraturePoint(0.0092737841533/2,0.7841520301770,0.0082759241284),
-QuadraturePoint(0.0095937782623/2,0.0858119489725,0.0314836947701),
-QuadraturePoint(0.0095937782623/2,0.8827043562574,0.0314836947701),
-QuadraturePoint(0.0095937782623/2,0.0314836947701,0.0858119489725),
-QuadraturePoint(0.0095937782623/2,0.0858119489725,0.8827043562574),
-QuadraturePoint(0.0095937782623/2,0.8827043562574,0.0858119489725),
-QuadraturePoint(0.0095937782623/2,0.0314836947701,0.8827043562574),
-QuadraturePoint(0.0114247809167/2,0.6688778233826,0.0095150760625),
-QuadraturePoint(0.0114247809167/2,0.0095150760625,0.3216071005550),
-QuadraturePoint(0.0114247809167/2,0.0095150760625,0.6688778233826),
-QuadraturePoint(0.0114247809167/2,0.6688778233826,0.3216071005550),
-QuadraturePoint(0.0114247809167/2,0.3216071005550,0.6688778233826),
-QuadraturePoint(0.0114247809167/2,0.3216071005550,0.0095150760625),
-QuadraturePoint(0.0117216964174/2,0.4379999543113,0.0099859785681),
-QuadraturePoint(0.0117216964174/2,0.0099859785681,0.5520140671206),
-QuadraturePoint(0.0117216964174/2,0.4379999543113,0.5520140671206),
-QuadraturePoint(0.0117216964174/2,0.0099859785681,0.4379999543113),
-QuadraturePoint(0.0117216964174/2,0.5520140671206,0.4379999543113),
-QuadraturePoint(0.0117216964174/2,0.5520140671206,0.0099859785681),
-QuadraturePoint(0.0188197155232/2,0.7974931072148,0.0405093994119),
-QuadraturePoint(0.0188197155232/2,0.0405093994119,0.1619974933734),
-QuadraturePoint(0.0188197155232/2,0.0405093994119,0.7974931072148),
-QuadraturePoint(0.0188197155232/2,0.1619974933734,0.7974931072148),
-QuadraturePoint(0.0188197155232/2,0.7974931072148,0.1619974933734),
-QuadraturePoint(0.0188197155232/2,0.1619974933734,0.0405093994119),
-QuadraturePoint(0.0235260980271/2,0.3864215551955,0.3864215551955),
-QuadraturePoint(0.0235260980271/2,0.3864215551955,0.2271568896090),
-QuadraturePoint(0.0235260980271/2,0.2271568896090,0.3864215551955),
-QuadraturePoint(0.0235571466151/2,0.8090129379329,0.0954935310336),
-QuadraturePoint(0.0235571466151/2,0.0954935310336,0.8090129379329),
-QuadraturePoint(0.0235571466151/2,0.0954935310336,0.0954935310336),
-QuadraturePoint(0.0268246207430/2,0.2745425238718,0.0479840480721),
-QuadraturePoint(0.0268246207430/2,0.0479840480721,0.6774734280561),
-QuadraturePoint(0.0268246207430/2,0.6774734280561,0.0479840480721),
-QuadraturePoint(0.0268246207430/2,0.6774734280561,0.2745425238718),
-QuadraturePoint(0.0268246207430/2,0.2745425238718,0.6774734280561),
-QuadraturePoint(0.0268246207430/2,0.0479840480721,0.2745425238718),
-QuadraturePoint(0.0314289776779/2,0.4053472446667,0.5429849622344),
-QuadraturePoint(0.0314289776779/2,0.0516677930989,0.4053472446667),
-QuadraturePoint(0.0314289776779/2,0.4053472446667,0.0516677930989),
-QuadraturePoint(0.0314289776779/2,0.5429849622344,0.0516677930989),
-QuadraturePoint(0.0314289776779/2,0.0516677930989,0.5429849622344),
-QuadraturePoint(0.0314289776779/2,0.5429849622344,0.4053472446667),
-QuadraturePoint(0.0337196192159/2,0.1877738615539,0.1068148267588),
-QuadraturePoint(0.0337196192159/2,0.7054113116872,0.1877738615539),
-QuadraturePoint(0.0337196192159/2,0.7054113116872,0.1068148267588),
-QuadraturePoint(0.0337196192159/2,0.1068148267588,0.7054113116872),
-QuadraturePoint(0.0337196192159/2,0.1877738615539,0.7054113116872),
-QuadraturePoint(0.0337196192159/2,0.1068148267588,0.1877738615539),
-QuadraturePoint(0.0427745294213/2,0.1195059712009,0.3057122990643),
-QuadraturePoint(0.0427745294213/2,0.1195059712009,0.5747817297348),
-QuadraturePoint(0.0427745294213/2,0.5747817297348,0.1195059712009),
-QuadraturePoint(0.0427745294213/2,0.5747817297348,0.3057122990643),
-QuadraturePoint(0.0427745294213/2,0.3057122990643,0.5747817297348),
-QuadraturePoint(0.0427745294213/2,0.3057122990643,0.1195059712009),
-QuadraturePoint(0.0441138932737/2,0.5981245743363,0.2009377128319),
-QuadraturePoint(0.0441138932737/2,0.2009377128319,0.5981245743363),
-QuadraturePoint(0.0441138932737/2,0.2009377128319,0.2009377128319),
-QuadraturePoint(0.0461469594684/2,0.2160775200005,0.3121360256673),
-QuadraturePoint(0.0461469594684/2,0.3121360256673,0.2160775200005),
-QuadraturePoint(0.0461469594684/2,0.2160775200005,0.4717864543321),
-QuadraturePoint(0.0461469594684/2,0.3121360256673,0.4717864543321),
-QuadraturePoint(0.0461469594684/2,0.4717864543321,0.3121360256673),
-QuadraturePoint(0.0461469594684/2,0.4717864543321,0.2160775200005),
-QuadraturePoint(0.0469152468624/2,0.4376579903849,0.4376579903849),
-QuadraturePoint(0.0469152468624/2,0.4376579903849,0.1246840192303),
-QuadraturePoint(0.0469152468624/2,0.1246840192303,0.4376579903849),
-QuadraturePoint(0.0551199980347/2,0.3333333333333,0.3333333333333),
-};
-const QuadratureFormular QuadratureFormular_T_21(21 ,91,P_QuadratureFormular_T_21);
-
-
-static  QuadraturePoint P_QuadratureFormular_T_23[] = {
-QuadraturePoint(0.0006438298261/2,0.0087809303836,0.9903676436772),
-QuadraturePoint(0.0006438413076/2,0.9903675314220,0.0087809216232),
-QuadraturePoint(0.0010134735710/2,0.0027029276450,0.0335914404439),
-QuadraturePoint(0.0010134752576/2,0.0335909214524,0.0027028946710),
-QuadraturePoint(0.0019679929935/2,0.0091675068606,0.0091676353051),
-QuadraturePoint(0.0033467313784/2,0.9675568182558,0.0084737176656),
-QuadraturePoint(0.0033467339208/2,0.0084737200688,0.9675569435345),
-QuadraturePoint(0.0042873323375/2,0.0078781948792,0.0676784943862),
-QuadraturePoint(0.0042873459885/2,0.0676785477700,0.0078781659291),
-QuadraturePoint(0.0043003801372/2,0.9470266955047,0.0442974541187),
-QuadraturePoint(0.0043003849098/2,0.0442974755680,0.9470266676487),
-QuadraturePoint(0.0056934629205/2,0.9144243214882,0.0081735455132),
-QuadraturePoint(0.0056934640134/2,0.0081735424459,0.9144244234031),
-QuadraturePoint(0.0061643868015/2,0.2497452292741,0.3833232434720),
-QuadraturePoint(0.0061644756418/2,0.3833232646055,0.2497451268005),
-QuadraturePoint(0.0062014513591/2,0.8876850353557,0.1035328809446),
-QuadraturePoint(0.0062014531952/2,0.1035329228297,0.8876849931840),
-QuadraturePoint(0.0069636330294/2,0.0077255923618,0.1403190991974),
-QuadraturePoint(0.0069636331842/2,0.1403192425107,0.0077255934624),
-QuadraturePoint(0.0075066257720/2,0.8104591009652,0.1809642523926),
-QuadraturePoint(0.0075066264565/2,0.1809643003717,0.8104590515334),
-QuadraturePoint(0.0079074768339/2,0.8330767948684,0.0083010939677),
-QuadraturePoint(0.0079074772485/2,0.0083010907126,0.8330768545392),
-QuadraturePoint(0.0080353344623/2,0.0348407706147,0.0348406969482),
-QuadraturePoint(0.0087963441074/2,0.2740287679608,0.7173981847948),
-QuadraturePoint(0.0087963448112/2,0.7173982224778,0.2740287304386),
-QuadraturePoint(0.0091304195716/2,0.2394976858234,0.0081859182262),
-QuadraturePoint(0.0091304213611/2,0.0081859185845,0.2394975566677),
-QuadraturePoint(0.0092821748751/2,0.0068836152075,0.4843740892687),
-QuadraturePoint(0.0092821815662/2,0.4843741485699,0.0068836232949),
-QuadraturePoint(0.0094499806178/2,0.4960767772741,0.4960767529507),
-QuadraturePoint(0.0094627468484/2,0.6112936776245,0.3804323691239),
-QuadraturePoint(0.0094627485294/2,0.3804323980345,0.6112936466533),
-QuadraturePoint(0.0095555772285/2,0.7303890713524,0.0083987179701),
-QuadraturePoint(0.0095555792843/2,0.0083987168639,0.7303890895407),
-QuadraturePoint(0.0096138842488/2,0.6128525675612,0.0075475979695),
-QuadraturePoint(0.0096138846826/2,0.0075475961037,0.6128525484582),
-QuadraturePoint(0.0099991524212/2,0.0079525316513,0.3559773826721),
-QuadraturePoint(0.0099991551850/2,0.3559774870460,0.0079525358502),
-QuadraturePoint(0.0100301319277/2,0.9110236977966,0.0437233665345),
-QuadraturePoint(0.0100301346636/2,0.0437233605166,0.9110236807446),
-QuadraturePoint(0.0124936676185/2,0.0388480061835,0.0967030908282),
-QuadraturePoint(0.0124936726125/2,0.0967032117936,0.0388479942386),
-QuadraturePoint(0.0140197309137/2,0.0873226911312,0.0873226620391),
-QuadraturePoint(0.0143336216896/2,0.0421445202084,0.8485617789108),
-QuadraturePoint(0.0143336272125/2,0.8485617974961,0.0421445420915),
-QuadraturePoint(0.0153604142740/2,0.8477921333864,0.1067435942472),
-QuadraturePoint(0.0153604183425/2,0.1067435889398,0.8477921328146),
-QuadraturePoint(0.0184523825614/2,0.1833966521991,0.0416340521608),
-QuadraturePoint(0.0184523863146/2,0.0416340541167,0.1833965196930),
-QuadraturePoint(0.0195833983573/2,0.7611632251560,0.1941599202852),
-QuadraturePoint(0.0195834019994/2,0.1941599254144,0.7611632153938),
-QuadraturePoint(0.0197632751342/2,0.7579378747173,0.0439826608586),
-QuadraturePoint(0.0197632766677/2,0.0439826512395,0.7579378242308),
-QuadraturePoint(0.0198806391019/2,0.0369760535918,0.5363186076436),
-QuadraturePoint(0.0198806485776/2,0.5363187134342,0.0369760780935),
-QuadraturePoint(0.0207181838484/2,0.1001256948921,0.7912267093545),
-QuadraturePoint(0.0207181934893/2,0.7912266693524,0.1001257554673),
-QuadraturePoint(0.0208943071440/2,0.0379866714177,0.4157413128558),
-QuadraturePoint(0.0208943251956/2,0.4157414028965,0.0379867061535),
-QuadraturePoint(0.0214864573885/2,0.6507106491463,0.0420141226713),
-QuadraturePoint(0.0214864586007/2,0.0420141133438,0.6507105645084),
-QuadraturePoint(0.0222218133036/2,0.0425548444254,0.2920626023484),
-QuadraturePoint(0.0222218160203/2,0.2920627107240,0.0425548546753),
-QuadraturePoint(0.0223345305455/2,0.5389729538180,0.4193031469005),
-QuadraturePoint(0.0223345378739/2,0.4193031828489,0.5389729093610),
-QuadraturePoint(0.0224758924946/2,0.6549472009700,0.3007352636162),
-QuadraturePoint(0.0224758980440/2,0.3007352790917,0.6549471812731),
-QuadraturePoint(0.0229701395845/2,0.3752400771585,0.3453980130752),
-QuadraturePoint(0.0229703394438/2,0.3453980282786,0.3752400695673),
-QuadraturePoint(0.0232798376102/2,0.0994532168761,0.1598308695187),
-QuadraturePoint(0.0232798427506/2,0.1598309359585,0.0994531960132),
-QuadraturePoint(0.0269483199647/2,0.1797326661667,0.7124585430924),
-QuadraturePoint(0.0269483307107/2,0.7124584461943,0.1797327722240),
-QuadraturePoint(0.0280438758010/2,0.1066065678636,0.7001701784175),
-QuadraturePoint(0.0280438764607/2,0.7001701904096,0.1066065855677),
-QuadraturePoint(0.0287526270172/2,0.0993303629801,0.6065647984796),
-QuadraturePoint(0.0287526387271/2,0.6065648052521,0.0993303896769),
-QuadraturePoint(0.0298980829063/2,0.1023223542704,0.2533381579528),
-QuadraturePoint(0.0298980922759/2,0.2533382324938,0.1023223826189),
-QuadraturePoint(0.0309004358516/2,0.6166226715217,0.2769502060575),
-QuadraturePoint(0.0309004385956/2,0.2769500693109,0.6166227900624),
-QuadraturePoint(0.0314031017088/2,0.0904184571873,0.4981522637001),
-QuadraturePoint(0.0314031073955/2,0.4981522767248,0.0904185045149),
-QuadraturePoint(0.0319191553024/2,0.0928231860168,0.3738418516908),
-QuadraturePoint(0.0319191668378/2,0.3738418699229,0.0928232584790),
-QuadraturePoint(0.0321429924062/2,0.2521678840407,0.2521680925697),
-QuadraturePoint(0.0330395601388/2,0.5087500218708,0.3905580544330),
-QuadraturePoint(0.0330395631829/2,0.3905579116731,0.5087501437661),
-QuadraturePoint(0.0356169095589/2,0.1706141469096,0.5266738039554),
-QuadraturePoint(0.0356169276054/2,0.5266737761312,0.1706142257537),
-QuadraturePoint(0.0365741189998/2,0.3487581527629,0.2588055084886),
-QuadraturePoint(0.0365741515204/2,0.2588053596017,0.3487583491703),
-QuadraturePoint(0.0365977646990/2,0.1696614558053,0.3013522183964),
-QuadraturePoint(0.0365978053889/2,0.3013521806875,0.1696615963219),
-QuadraturePoint(0.0369945680114/2,0.2580202409759,0.4584741774478),
-QuadraturePoint(0.0369945775059/2,0.4584740860198,0.2580203819011),
-QuadraturePoint(0.0374053623787/2,0.1848898683498,0.1848898704551),
-QuadraturePoint(0.0375550258317/2,0.6130740338465,0.1921611994069),
-QuadraturePoint(0.0375550312530/2,0.1921611750994,0.6130740398389),
-QuadraturePoint(0.0388887693486/2,0.4180541160599,0.1650613336416),
-QuadraturePoint(0.0388887708342/2,0.1650612642036,0.4180541199244),
-QuadraturePoint(0.0392705643548/2,0.5159205739625,0.2982719005229),
-QuadraturePoint(0.0392705802517/2,0.2982718935750,0.5159205534362),
-QuadraturePoint(0.0398766879831/2,0.4098894602340,0.4098894317792),
-};
-const QuadratureFormular QuadratureFormular_T_23(23 ,105,P_QuadratureFormular_T_23);
-
-
-static  QuadraturePoint P_QuadratureFormular_T_25[] = {
-QuadraturePoint(0.0014873417859/2,0.0082881595033,0.9848202768869),
-QuadraturePoint(0.0014889035262/2,0.4618422030241,0.5381577969759),
-QuadraturePoint(0.0015005944380/2,0.0071066441239,0.0080842361390),
-QuadraturePoint(0.0015059208313/2,0.9847613141699,0.0070015755134),
-QuadraturePoint(0.0015318868715/2,0.5374447869049,0.4625552130951),
-QuadraturePoint(0.0023032634487/2,0.0000000000000,0.4887676880140),
-QuadraturePoint(0.0023649067042/2,0.4914131929361,0.0000000000000),
-QuadraturePoint(0.0028751143611/2,0.0070345937020,0.9574158053697),
-QuadraturePoint(0.0029862488735/2,0.9564734714228,0.0364655449485),
-QuadraturePoint(0.0030384162737/2,0.0370198792045,0.0070908577166),
-QuadraturePoint(0.0032092459688/2,0.1024124542747,0.8936125594937),
-QuadraturePoint(0.0037029598435/2,0.5928065811509,0.0049451705600),
-QuadraturePoint(0.0037407186035/2,0.0050948422371,0.0996676659189),
-QuadraturePoint(0.0038452543223/2,0.0081562023689,0.0415561148784),
-QuadraturePoint(0.0038670778668/2,0.0424936107568,0.9494865260352),
-QuadraturePoint(0.0039192555178/2,0.9495543500844,0.0081794507292),
-QuadraturePoint(0.0039573282688/2,0.8932787471239,0.0053224326262),
-QuadraturePoint(0.0044032251724/2,0.0069317612927,0.9065401020433),
-QuadraturePoint(0.0045907108173/2,0.9035839030665,0.0894771171077),
-QuadraturePoint(0.0047023669435/2,0.0905665738209,0.0070525342005),
-QuadraturePoint(0.0050014843818/2,0.0083929332787,0.6663179931111),
-QuadraturePoint(0.0052387830156/2,0.6261245686071,0.0092197583153),
-QuadraturePoint(0.0054422104092/2,0.0062801592979,0.8335207460527),
-QuadraturePoint(0.0056931248912/2,0.8272539257367,0.1665134939330),
-QuadraturePoint(0.0059107422989/2,0.0062005875353,0.7424693255229),
-QuadraturePoint(0.0059687967687/2,0.1676900311185,0.0065717743528),
-QuadraturePoint(0.0067262190287/2,0.7199353069567,0.0064354534962),
-QuadraturePoint(0.0068307848624/2,0.2749740090237,0.7185296120719),
-QuadraturePoint(0.0069531259112/2,0.0079257582005,0.1766411374714),
-QuadraturePoint(0.0072460270642/2,0.0069981220752,0.2704767254004),
-QuadraturePoint(0.0072728189613/2,0.8125248773263,0.0082299533210),
-QuadraturePoint(0.0073008930847/2,0.0073536969970,0.5934167875453),
-QuadraturePoint(0.0073604666776/2,0.7283665935411,0.2648817553752),
-QuadraturePoint(0.0074119923255/2,0.1800642304565,0.8115848976682),
-QuadraturePoint(0.0074892214336/2,0.2658102467762,0.0068553525429),
-QuadraturePoint(0.0078604067260/2,0.0070892364520,0.3757632659744),
-QuadraturePoint(0.0078621726423/2,0.3774054302043,0.6148573533757),
-QuadraturePoint(0.0080506361066/2,0.0369649608668,0.9210792302893),
-QuadraturePoint(0.0081442860473/2,0.9203194109805,0.0426025082114),
-QuadraturePoint(0.0081478804152/2,0.0425477806431,0.0372689941794),
-QuadraturePoint(0.0092444146612/2,0.6191278394983,0.3724055713809),
-QuadraturePoint(0.0094674635165/2,0.3762697209178,0.0081436422011),
-QuadraturePoint(0.0097132210137/2,0.0956111149690,0.8771098372601),
-QuadraturePoint(0.0099753581151/2,0.0302473410377,0.0943858903393),
-QuadraturePoint(0.0103367803673/2,0.8739905691754,0.0313198990883),
-QuadraturePoint(0.0112263277166/2,0.8604133734958,0.1049019782046),
-QuadraturePoint(0.0114309118745/2,0.0347307852352,0.8609856462886),
-QuadraturePoint(0.0115550567487/2,0.1043606608343,0.0357152881004),
-QuadraturePoint(0.0135575856957/2,0.7797622824754,0.1872318199265),
-QuadraturePoint(0.0135984962900/2,0.0185865164256,0.4834397678794),
-QuadraturePoint(0.0137754813837/2,0.0324585286618,0.7783474916042),
-QuadraturePoint(0.0137961015942/2,0.8371293901157,0.0804060570156),
-QuadraturePoint(0.0138408839904/2,0.0836602075315,0.8421414817051),
-QuadraturePoint(0.0140634019977/2,0.0784070242501,0.0849927089145),
-QuadraturePoint(0.0140991451009/2,0.4929238648458,0.4892855914710),
-QuadraturePoint(0.0142004111991/2,0.1870637584073,0.0345210858281),
-QuadraturePoint(0.0144518424517/2,0.4892636967025,0.0190774755077),
-QuadraturePoint(0.0150245979639/2,0.0401982618372,0.1691143187109),
-QuadraturePoint(0.0152817804122/2,0.7894259278865,0.0412206731484),
-QuadraturePoint(0.0155550724169/2,0.1686260456429,0.7894860640585),
-QuadraturePoint(0.0164570886000/2,0.3750901913174,0.5895318272013),
-QuadraturePoint(0.0165275759573/2,0.0356362876880,0.3681256217699),
-QuadraturePoint(0.0166847554451/2,0.5887548164804,0.0359968962541),
-QuadraturePoint(0.0167409312985/2,0.0373308082182,0.6790704673533),
-QuadraturePoint(0.0168674663361/2,0.2820769993374,0.0373639992361),
-QuadraturePoint(0.0168882230165/2,0.6819277603320,0.2803330345725),
-QuadraturePoint(0.0172087112691/2,0.0374938324382,0.2634016180014),
-QuadraturePoint(0.0174681068264/2,0.6984079204127,0.0364154673322),
-QuadraturePoint(0.0176663899614/2,0.2654390894079,0.6980717436193),
-QuadraturePoint(0.0182967621475/2,0.1429848440800,0.7612254618453),
-QuadraturePoint(0.0183576852459/2,0.7623554007647,0.0943741220275),
-QuadraturePoint(0.0186392569521/2,0.0934222022749,0.1479799836832),
-QuadraturePoint(0.0189781060590/2,0.5759004479923,0.3821329641698),
-QuadraturePoint(0.0191847922578/2,0.3822427332525,0.0426716362301),
-QuadraturePoint(0.0194080442044/2,0.0411414081675,0.5718082874432),
-QuadraturePoint(0.0194720072193/2,0.0802462538379,0.7702204382042),
-QuadraturePoint(0.0200855080495/2,0.7625229819410,0.1559420577362),
-QuadraturePoint(0.0201673909332/2,0.1524941445131,0.0842965421322),
-QuadraturePoint(0.0221742162761/2,0.0622159195833,0.4538181318873),
-QuadraturePoint(0.0229702440508/2,0.1109539036076,0.4586014071171),
-QuadraturePoint(0.0233465117399/2,0.4575627212057,0.4795313560210),
-QuadraturePoint(0.0234883135338/2,0.4322865136374,0.1230591237472),
-QuadraturePoint(0.0240682099018/2,0.5865002850241,0.0834119779793),
-QuadraturePoint(0.0240910792953/2,0.0869359250818,0.6755677013351),
-QuadraturePoint(0.0245677049481/2,0.0929594906936,0.2326500892727),
-QuadraturePoint(0.0246536315719/2,0.6661932141454,0.2448294007406),
-QuadraturePoint(0.0246756530052/2,0.4780306362227,0.0661749044835),
-QuadraturePoint(0.0249704602710/2,0.4372215294577,0.4442145585244),
-QuadraturePoint(0.0250026544082/2,0.6779224504669,0.0929096534577),
-QuadraturePoint(0.0250490869426/2,0.2423431255660,0.0889793655129),
-QuadraturePoint(0.0250936250125/2,0.2288925420305,0.6780053081672),
-QuadraturePoint(0.0251482076226/2,0.3315065049959,0.5847381559741),
-QuadraturePoint(0.0255010290447/2,0.3424200526607,0.5139245722736),
-QuadraturePoint(0.0256544511979/2,0.0862630046475,0.3340976249234),
-QuadraturePoint(0.0257974750630/2,0.5113188946635,0.1380154720554),
-QuadraturePoint(0.0270007753993/2,0.1538977841001,0.6788062619562),
-QuadraturePoint(0.0274431536844/2,0.6779951348472,0.1663358925269),
-QuadraturePoint(0.0277072401488/2,0.1664600469411,0.1582214504849),
-QuadraturePoint(0.0278284415364/2,0.0950910318888,0.5666590332543),
-QuadraturePoint(0.0287207381105/2,0.3436048136712,0.0978960873457),
-QuadraturePoint(0.0288826834956/2,0.5560417025366,0.3468917820947),
-QuadraturePoint(0.0293302729759/2,0.1452404029513,0.3599534491052),
-QuadraturePoint(0.0318902879557/2,0.1619685156238,0.5810131373330),
-QuadraturePoint(0.0319083660286/2,0.5800164844262,0.2560674640672),
-QuadraturePoint(0.0320938960329/2,0.2450201223288,0.5881469552102),
-QuadraturePoint(0.0321618608780/2,0.2557621891794,0.1652244065047),
-QuadraturePoint(0.0322424127534/2,0.2205239985511,0.3496507466106),
-QuadraturePoint(0.0327072446421/2,0.4940183111285,0.2549448448453),
-QuadraturePoint(0.0329946316695/2,0.2531570689798,0.2543369115017),
-QuadraturePoint(0.0331828096025/2,0.5846891116357,0.1666603916479),
-QuadraturePoint(0.0334857162651/2,0.1660333602278,0.2523240191705),
-QuadraturePoint(0.0335468472792/2,0.2505426292461,0.4959007627528),
-QuadraturePoint(0.0337049042988/2,0.3519336802182,0.1805380367800),
-QuadraturePoint(0.0340361462767/2,0.3502668835419,0.4358582329881),
-QuadraturePoint(0.0342465235323/2,0.4400892485512,0.2120576104941),
-QuadraturePoint(0.0345528817251/2,0.4680855471546,0.3552681570774),
-QuadraturePoint(0.0356782875703/2,0.1770237763947,0.4670352922266),
-QuadraturePoint(0.0364656225016/2,0.3900920779501,0.3323152819300),
-QuadraturePoint(0.0365172708706/2,0.2805847774120,0.3898041176680),
-QuadraturePoint(0.0371924811018/2,0.3361523347440,0.2778500044356),
-};
-const QuadratureFormular QuadratureFormular_T_25(25 ,120,P_QuadratureFormular_T_25);
-
-<<<<<<< HEAD
-=======
-//  Hack to do something at initialisation time
-//   to add the name myfunction to the freefem++ table 
-class Init { public:
-  Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-template<class Rd>
-const GQuadratureFormular<Rd> * BuilQFd(const long & nex,const KNM_<double> & qf) {
-  ffassert( qf.M()== Rd::d+1) ;
-  int np = qf.N(); 
-  GQuadraturePoint<Rd> *pq= new GQuadraturePoint<Rd>[np];
-  for(int i=0;i<np;++i)
-    {
-      pq[i].a = qf(i,0);
-      for(int j=0;j<Rd::d;++j)
-	pq[i][j]=qf(i,j+1);
-      // cout << i << " " << pq[i].a << " " << (const Rd&)  pq[i] << " " << qf(':',i) << endl;
-    }
-  return new GQuadratureFormular<Rd>(nex,np,pq,true) ;
-} 
-
-template<typename T > T* CCopy(T * pr,T  p)
-{
-  *pr = p;
-  return pr; 
-}
- 
-
-template<class Rd>
-const GQuadratureFormular<Rd> ** pBuilQFd(const GQuadratureFormular<Rd> ** const & pr,const long & nex,const KNM_<double> & qf) 
-{
-  // cout << "pBuilQFd " << pr << " " << *pr << endl; 
-  ffassert(pr );
-  *pr = BuilQFd<Rd>(nex,qf);
-  return pr; 
-}
-
- 
-<<<<<<< HEAD
-=======
-LOADINIT(Init);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-// to add new FreeFem++ type ... 
-
-#include "lex.hpp"
-extern  mylex *zzzfff;
-
-<<<<<<< HEAD
-static void Load_Init(){
-=======
-Init::Init(){
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  /*
-grep QuadratureFormular QF.cpp|grep ^const|awk -F"[_(]" '{print "Global.New(@qf" $3 "pT@,CConstant<const QuadratureFormular *>(&QuadratureFormular_T_"$3"));"}'|sed -e 's/@/"/g'
-   */
-	     Global.New("qf11pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_11));
-	     Global.New("qf13pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_13));
-	     Global.New("qf14pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_14));
-	     Global.New("qf16pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_16));
-	     Global.New("qf18pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_18));
-	     Global.New("qf20pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_20));
-	     Global.New("qf21pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_21));
-	     Global.New("qf23pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_23));
-	     Global.New("qf25pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_25));
-	     Global.New("qf11pE",CConstant<const QuadratureFormular1d *>(new QuadratureFormular1d(-1+2*11,11,GaussLegendre(11),true)));
-	     Global.New("qf12pE",CConstant<const QuadratureFormular1d *>(new QuadratureFormular1d(-1+2*12,12,GaussLegendre(12),true)));
-	     Global.New("qf13pE",CConstant<const QuadratureFormular1d *>(new QuadratureFormular1d(-1+2*13,13,GaussLegendre(13),true)));
-
-	     Global.Add("QF1d","(",new OneOperator2_<const GQuadratureFormular<R1> *,long,KNM_<double> >(BuilQFd<R1>));
-	     Global.Add("QF2d","(",new OneOperator2_<const GQuadratureFormular<R2> *,long,KNM_<double> >(BuilQFd<R2>));
-	     Global.Add("QF3d","(",new OneOperator2_<const GQuadratureFormular<R3> *,long,KNM_<double> >(BuilQFd<R3>));
-
-	     Dcl_Type<const GQuadratureFormular<R1> **>(::InitializePtr<const GQuadratureFormular<R1> *>,::DeletePtr<const GQuadratureFormular<R1> *>);
-	     Dcl_Type<const GQuadratureFormular<R2> **>(::InitializePtr<const GQuadratureFormular<R2> *>,::DeletePtr<const GQuadratureFormular<R2> *>);
-	     Dcl_Type<const GQuadratureFormular<R3> **>(::InitializePtr<const GQuadratureFormular<R3> *>,::DeletePtr<const GQuadratureFormular<R3> *>);
-
-	     zzzfff->Add("QF1",atype<const GQuadratureFormular<R1> ** >());
-	     zzzfff->Add("QF2",atype<const GQuadratureFormular<R2> ** >());
-	     zzzfff->Add("QF3",atype<const GQuadratureFormular<R3> ** >());
-
-	     TheOperators->Add("<-",
-			       new OneOperator3_<const GQuadratureFormular<R1> **,const GQuadratureFormular<R1> **,long,KNM_<double>  >(pBuilQFd<R1>),
-			       new OneOperator3_<const GQuadratureFormular<R2> **,const GQuadratureFormular<R2> **,long,KNM_<double>  >(pBuilQFd<R2>),
-			       new OneOperator3_<const GQuadratureFormular<R3> **,const GQuadratureFormular<R3> **,long,KNM_<double>  >(pBuilQFd<R3>)
-			       
-
-        
-			       );
-	     //  cast ** -> * 
-	     map_type[typeid(const GQuadratureFormular<R1> *).name()]->AddCast(   new E_F1_funcT<const GQuadratureFormular<R1> *,const GQuadratureFormular<R1> **>(UnRef<const GQuadratureFormular<R1> *>) );
-	     map_type[typeid(const GQuadratureFormular<R2> *).name()]->AddCast(   new E_F1_funcT<const GQuadratureFormular<R2> *,const GQuadratureFormular<R2> **>(UnRef<const GQuadratureFormular<R2> *>) );
-	     map_type[typeid(const GQuadratureFormular<R3> *).name()]->AddCast(   new E_F1_funcT<const GQuadratureFormular<R3> *,const GQuadratureFormular<R3> **>(UnRef<const GQuadratureFormular<R3> *>) );
- 
-
-}
-
- 
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/scotch.cpp.orig b/examples++-load/scotch.cpp.orig
deleted file mode 100644
index 504c6e0..0000000
--- a/examples++-load/scotch.cpp.orig
+++ /dev/null
@@ -1,164 +0,0 @@
-// SUMMARY  :   add interface with partionning library scotch 
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : P. Jolivet 
-// E-MAIL   : Pierre Jolivet <pierre.jolivet at ljll.math.upmc.fr>
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- */
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep: scotch
-//ff-c++-cpp-dep: 
-//
-//
-// P. Jolivet   april 2012
-// ----------------------------
-
-
-#include "ff++.hpp"
-#include <vector>
-#include <cmath>
-#include <scotch.h>
-
-template<class T, class V>
-class SCOTCH_Op : public E_F0mps {
-    public:
-        Expression partition;
-        Expression Th;
-        Expression lpartition;
-        static const int n_name_param = 1;
-        static basicAC_F0::name_and_type name_param[];
-        Expression nargs[n_name_param];
-        SCOTCH_Op(const basicAC_F0&  args, Expression param1, Expression param2, Expression param3) : partition(param1), Th(param2), lpartition(param3) {
-            args.SetNameParam(n_name_param, name_param, nargs);
-        }
-
-        AnyType operator()(Stack stack) const;
-};
-
-// FFCS - keywords/dumptable is not able to scan class names if they contain spaces, even in template arguments
-template<class T, class V>
-basicAC_F0::name_and_type SCOTCH_Op<T,V>::name_param[] = {
-    {"weight", &typeid(KN<long>*)}
-};
-
-
-template<class T, class V>
-class  SCOTCH : public OneOperator {
-    public:
-        SCOTCH() : OneOperator(atype<long>(), atype<KN<long>* >(), atype<V>(), atype<long>()) {}
-
-        E_F0* code(const basicAC_F0& args) const
-        {
-            return new SCOTCH_Op<T, V>(args, t[0]->CastTo(args[0]), t[1]->CastTo(args[1]), t[2]->CastTo(args[2]));
-        }
-};
-
-
-template<class T, class V>
-AnyType SCOTCH_Op<T, V>::operator()(Stack stack)  const {
-    T* pTh = GetAny<T*>((*Th)(stack));
-    ffassert(pTh);
-    int nt = pTh->nt;
-    KN<long>* part = GetAny<KN<long>* >((*partition)(stack));
-    ffassert(part);
-
-    int nve = T::Rd::d+1;
-    long lpart = GetAny<long>((*lpartition)(stack));
-    ffassert(lpart > 1 && part->n == nt && lpart < nt);
-
-    KN<long>* weight = nargs[0] ? GetAny<KN<long>* >((*nargs[0])(stack)) : (KN<long>*) 0;
-
-    SCOTCH_Graph GraphSCOTCH;
-    SCOTCH_Strat StratSCOTCH;
-    SCOTCH_graphInit(&GraphSCOTCH);
-    SCOTCH_stratInit(&StratSCOTCH);
-    SCOTCH_Num baseval = 0;
-    SCOTCH_Num vertnbr = nt;
-    SCOTCH_Num edgenbr;
-    SCOTCH_Num* verttab = new SCOTCH_Num[vertnbr + 1];
-    vector<SCOTCH_Num> edgevec;
-    SCOTCH_Num prev;
-    int cptNode = 0;
-    int cptEdge = 0;
-    int accum = 0;
-    verttab[cptNode++] = baseval;
-    for (int it = 0; it < nt; ++it) {
-        for (int jt = 0; jt < nve; ++jt) {
-            int jtt = jt, itt = pTh->ElementAdj(it, jtt);
-            if( (itt != it) && (itt >= 0) ) {
-                ++accum;
-                edgevec.push_back(baseval + itt);
-            }
-        }
-        verttab[cptNode++] = accum;
-    }
-    edgenbr = accum;
-    SCOTCH_Num* edgetab = &edgevec[0];
-    SCOTCH_Num* velotab;
-
-    if(weight) {
-        velotab = new SCOTCH_Num[nt];
-        for(int i = 0; i < nt; ++i)
-            velotab[i] = (SCOTCH_Num)(*weight)[i];
-    } else
-        velotab = NULL;
-
-    SCOTCH_Num* vendtab = NULL;
-    SCOTCH_Num* vlbltab = NULL;
-    SCOTCH_Num* edlotab = NULL;
-    SCOTCH_graphBuild(&GraphSCOTCH, baseval, vertnbr, verttab, vendtab, velotab, vlbltab, edgenbr, edgetab, edlotab);
-    SCOTCH_graphCheck(&GraphSCOTCH);
-
-    KN<SCOTCH_Num> epart(nt);
-    SCOTCH_graphPart(&GraphSCOTCH, lpart, &StratSCOTCH, epart);
-    SCOTCH_graphExit(&GraphSCOTCH);
-    SCOTCH_stratExit(&StratSCOTCH);
-    *part = epart;
-    delete[] verttab;
-    if(velotab)
-        delete[] velotab;
-
-    return 1L;
-}
-
-<<<<<<< HEAD
-/*  class Init {
-=======
-class Init {
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    public:
-        Init();
-};
-
-<<<<<<< HEAD
-Init init;*/
-static void Load_Init( ){
-    Global.Add("scotch", "(", new SCOTCH<Mesh, pmesh>);
-    Global.Add("scotch", "(", new SCOTCH<Mesh3, pmesh3>);
-}
-LOADFUNC(Load_Init)
-=======
-Init init;
-Init::Init( ){
-    Global.Add("scotch", "(", new SCOTCH<Mesh, pmesh>);
-    Global.Add("scotch", "(", new SCOTCH<Mesh3, pmesh3>);
-}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/splitedges.cpp.orig b/examples++-load/splitedges.cpp.orig
deleted file mode 100644
index 90b569f..0000000
--- a/examples++-load/splitedges.cpp.orig
+++ /dev/null
@@ -1,271 +0,0 @@
-<<<<<<< HEAD
-=======
-// $Id$
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-#include "ff++.hpp" 
-
-  using namespace  Fem2D;
-
-Mesh * Split_Edges(Fem2D::Mesh * const & pTh, long  *dK)
-{
-  bool  v10 = verbosity>10;
-  bool  vp = verbosity>1;
-  assert(pTh);
-  const Mesh & Th(*pTh);  // le maillage d'origne a decoupe
-  using  Fem2D::Triangle;
-  using  Fem2D::Vertex;
-  using  Fem2D::R2;
-  using  Fem2D::BoundaryEdge;
-  using  Fem2D::Mesh;
- // using  Fem2D::R;
-  int nbtn =Th.nt;
-  int nbvn =Th.nv;
-  int nebn =Th.neb;
-  for(int k=0;k<Th.nt;++k)
-    for(int e=0;e<3;++e)
-      if( dK[k] & (1<<e)) {
-	nbtn++;
-	int ee(e),kk;
-	kk=Th.ElementAdj(k,ee);
-	// if(kk<0 || kk==k) nebn++; // bug ?????????????????? cas de arete de bord interne ....
-	if (kk<=k) nbvn++;
-      }
-  // bug corrige ????
-  for (int i=0;i<Th.neb;i++)
-    {        
-      int ek,k=Th.BoundaryElement(i,ek);
-      if( dK[k] & (1<<ek)) nebn++; 
-    }
-  if(vp)
-    cout << " Split_Edges:  nbv " << nbvn << " nbtn = " << nbtn << " nebn = " <<  nebn << endl;      
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int neb=Th.neb; // nombre d'aretes fontiere
-  // allocation des nouveaux items du maillage  
-  Vertex * v= new Vertex[nbvn];
-  Triangle *t= new Triangle[nbtn];
-  BoundaryEdge *b= new BoundaryEdge[nebn];
-  // generation des nouveaus sommets 
-  Vertex *vv=v;
-  // copie des anciens sommets (remarque il n'y a pas operateur de copy des sommets)
-  for (int i=0;i<nbv;i++)
-   {
-     Vertex & V=Th(i);
-     vv->x=V.x;
-     vv->y=V.y;
-     vv->lab = V.lab;
-     vv++;      
-   }
-  KNM<int> NGP(3,nbt);
-  // generation des points barycentre dearete a decoupe 
-  for (int k=0;k<nbt;k++)
-    for(int e=0;e<3;++e)
-      if( dK[k] & (1<<e)) {
-	int ee(e),kk;
- 	kk=Th.ElementAdj(k,ee);
-	if (kk<=k) {
-	  Triangle & K=Th[k];
-	  int i0=(e+1)%3;
-	  int i1=(e+2)%3;
-	  R2 A = ( (R2) K[i0] + K[i1])  / 2.;
-	  vv->x=A.x;
-	  vv->y=A.y;
-	  vv->lab = 0;
-	  int j=vv-v;
-	  NGP(e,k)=j;
-	  if( (kk!=k) && (kk >=0 )) NGP(ee,kk)=j;
-	  vv++;
-	}
-      }
-  ffassert(vv-v==nbvn);
-  //  generation des triangles 
-  Triangle *tt= t; 
-  int nberr=0;
-   
-  for (int k=0;k<nbt;k++)
-    {
-      Triangle & K=Th[k];
-      int j0=Th(k,0),j1=Th(k,1),j2=Th(k,2);
-      int p[]={0,1,2} ; 
-      R Le[]={K.lenEdge2(0),K.lenEdge2(1),K.lenEdge2(2)};
-      if(Le[p[0]]<Le[p[1]]) Exchange(p[0],p[1]);
-      if(Le[p[1]]<Le[p[2]]) Exchange(p[1],p[2]);
-      if(Le[p[0]]<Le[p[1]]) Exchange(p[0],p[1]);
-      if(v10) cout << k << " \t " << j0 << " " << j1 << " " << j2 << " ------ " << tt-t << endl;
-      Triangle * t0[]={tt,tt,tt}; 
-      (*tt++).set(v,j0,j1,j2,Th[k].lab);
-      for(int ie=0;ie<3;++ie)
-	{
-	  int e = p[ie];
-	  int e1= (e+1)%3, e2=(e+2)%3;
-	  Triangle * td = t0[e], &Kd=*td;
-	  ffassert(td);
-
-	  if( dK[k] & (1<<e)) {
-	    Triangle *tn=tt++; 
-	    int iee=  NGP(e,k);
-	    int id[]={  int(&(Kd[0])-v),int(&(Kd[1])-v), int(&(Kd[2])-v)};
-	    int in[]={ id[0],id[1],id[2]};
-	    id[e1]=iee;
-	    in[e2]=iee;
-
-
-	    if(v10) cout << k << " \t " << in[0]  << " " << in[1] << " " <<in[2] << "  nn " << tn-t << " " << Le[e] << endl;
-	    (*td).set(v,id[0],id[1],id[2],Th[k].lab);
-	    if(v10) cout << k << " \t " << id[0]  << " " << id[1] << " " <<id[2] << "  dd " << td-t << endl;
-	    (*tn).set(v,in[0],in[1],in[2],Th[k].lab);
-	    t0[e]=0; // done ..
-	    if( t0[e1]  && t0[e2])
-	      {
-		t0[e1]= td;
-		t0[e2]= tn;
-	      }
-	  }}
-    } 
-  ffassert(tt-t==nbtn);
-  // les arete frontieres qui n'ont pas change
-  BoundaryEdge * bb=b;
-  for (int i=0;i<neb;i++)
-    {        
-      int ek,k=Th.BoundaryElement(i,ek);
-      int i1=Th(Th.bedges[i][0]);
-      int i2=Th(Th.bedges[i][1]);
-      int lab=Th.bedges[i].lab;     
-      if( dK[k] & (1<<ek)) {
-	int iee=  NGP(ek,k);
-	assert(iee>0);
-	if(v10) cout << " " << i1 << " " << iee << " " << i2 << " " << lab << " " << endl;
-	*bb++ = BoundaryEdge(v,i1,iee,lab);   
-	*bb++ = BoundaryEdge(v,iee,i2,lab);   
-      }
-      else 
-      *bb++ = BoundaryEdge(v,i1,i2,lab);   
-    }
-  ffassert(bb-b==nebn);
-  //  generation de la class Mesh a partir des 3 tableaux : v,t,b
-  {
-    Mesh * m = new Mesh(nbvn,nbtn,nebn,v,t,b);
-    R2 Pn,Px;
-    m->BoundingBox(Pn,Px);
-    m->quadtree=new Fem2D::FQuadTree(m,Pn,Px,m->nv);
-    m->decrement();
-    return m;
-  }
-}
-
-//  truc pour que la fonction 
-<<<<<<< HEAD
-// static void Load_Init() soit appele a moment du chargement dynamique
-// du fichier 
-//  
-/*  class Init { public:
-  Init();
-};
-*/
-=======
-// Init::Init() soit appele a moment du chargement dynamique
-// du fichier 
-//  
-class Init { public:
-  Init();
-};
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-class SplitEdges :  public E_F0mps 
-{
-public:
-  typedef pmesh  Result;
-  Expression expTh;
-  Expression spt;
-  
-  SplitEdges(const basicAC_F0 & args)
-  {
-
-    args.SetNameParam();
-    expTh= to<pmesh>(args[0]);  // a the expression to get the mesh
-    spt= to<double>(args[1]);  // a the expression to get the mesh
-  }
-  static ArrayOfaType  typeargs()
-  { return  ArrayOfaType(
-			 atype<pmesh>(),
-			 atype<double>());
-  }
-  static  E_F0 * f(const basicAC_F0 & args){ return new SplitEdges(args);}
-  AnyType operator()(Stack s) const ;
-
-};
-
-
-AnyType SplitEdges::operator()(Stack stack) const 
-  {
-    Mesh * pTh =  GetAny<pmesh>((*expTh)(stack));
-    MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-    bool v10= verbosity>10; 
-    ffassert(pTh);
-    Mesh & Th(*pTh);
-    KN<long> dK(Th.nt);
-    dK=0L;
-    int ne=0;
-    for (int k=0;k<Th.nt;k++)
-      for (int e=0;e<3;e++)
-	{
-	  Triangle &K=Th[k];
-	  int e1=(e+1)%3;
-	  int e2=(e+2)%3;
-	  R2 P1=K[e1],P2=K[e2];
-	  R2 P=(P1+P2)/2.;
-	  MeshPointStack(stack)->set(P.x,P.y);
-	  double de =  fabs(GetAny<double>((*spt)(stack)));
-	  bool be= fabs(de)>1e-30;
-          if(be) 
-	    {
-	      dK[k] += (1<<e); 
-	      ne++;
-	    }
-      
-	  if(v10) cout << k << " " << e << "   f " << P << " = " << de << " " << be << " " << dK[k] << " " << (1<<e) << endl;
-	  int ee(e),kk;
-	  kk=Th.ElementAdj(k,ee);
- 	  if( (kk<k) && (kk>=0))
-	    { 
-	      bool bee = dK[kk] & (1<<ee);
-	      if( bee != be) {
-		cout << " Bizarre edge right != compatible left " <<  k << " " << e << " P = " << P << " kk " << kk << " " << ee << " " << dK[kk] <<endl;
-		dK[k] = dK[k] |  (1<<e);
-		dK[kk] = dK[kk] |  (1<<ee);
-	      }}
-	}
-    if(verbosity>0)
-      cout << "  SplitEdges: nb split edge = " << ne << endl;
-    *mp=mps;
-    return SetAny<pmesh>( Split_Edges(pTh,(long *) dK));      
-  }
- 
-<<<<<<< HEAD
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  if (verbosity)
-    cout << " lood: Split3  " << endl;
-  Global.Add("SplitEdgeMesh","(", new OneOperatorCode<SplitEdges >( ));
-  // utilisation 
-  // mesh Th,Th3;
-  //  ... construction du maillage Th ici 
-  //   Th3=splitmesh3(Th);
-  /*  example complet : splitmesh3.edp
-      load "splitedge"
-      mesh Th=square(5,5);
-      mesh Th3=SplitEdgeMesh(Th,x<0.51 && y < 0.49 );
-      plot(Th3,wait=1);
-  */
-
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/splitmesh3.cpp.orig b/examples++-load/splitmesh3.cpp.orig
deleted file mode 100644
index f35ba9c..0000000
--- a/examples++-load/splitmesh3.cpp.orig
+++ /dev/null
@@ -1,131 +0,0 @@
-// $Id$
-
-#include  <iostream>
-#include  <cfloat>
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-using namespace std;  
-#include "rgraph.hpp"
-#include "RNM.hpp"
-#include <fem.hpp>
-#include <cmath>
-
-  using namespace  Fem2D;
-
-Mesh * SplitMesh3(Fem2D::Mesh * const & pTh)
-{
-  assert(pTh);
-  const Mesh & Th(*pTh);  // le maillage d'origne a decoupe
-  using  Fem2D::Triangle;
-  using  Fem2D::Vertex;
-  using  Fem2D::R2;
-  using  Fem2D::BoundaryEdge;
-  using  Fem2D::Mesh;
- // using  Fem2D::R;
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int neb=Th.neb; // nombre d'aretes fontiere
-  // allocation des nouveaux items du maillage  
-  Vertex * v= new Vertex[nbv+nbt];
-  Triangle *t= new Triangle[nbt*3];
-  BoundaryEdge *b= new BoundaryEdge[neb];
-  // generation des nouveaus sommets 
-  Vertex *vv=v;
-  // copie des anciens sommets (remarque il n'y a pas operateur de copy des sommets)
-  for (int i=0;i<nbv;i++)
-   {
-     Vertex & V=Th(i);
-     vv->x=V.x;
-     vv->y=V.y;
-     vv->lab = V.lab;
-     vv++;      
-   }
-  // generation des points barycentre de trianngles 
-  for (int k=0;k<nbt;k++)
-    {
-      Triangle & K=Th[k];
-      R2 G= ( (R2) K[0] + K[1] + K[2] )  / 3.;
-      vv->x=G.x;
-      vv->y=G.y;
-      vv->lab = 0;
-      vv++;
-    }   
-
-  //  generation des triangles 
-  Triangle *tt= t; 
-  int nberr=0;
-   
-  for (int i=0;i<nbt;i++)
-    {
-      int i0=Th(i,0), i1=Th(i,1),i2=Th(i,2);
-      int ii = nbv + i; // numero du 
-      // les 3 triangles par triangles origines 
-      (*tt++).set(v,ii,i1,i2,Th[i].lab);
-      (*tt++).set(v,i0,ii,i2,Th[i].lab);
-      (*tt++).set(v,i0,i1,ii,Th[i].lab);
-    }  
-
-  // les arete frontieres qui n'ont pas change
-  BoundaryEdge * bb=b;
-  for (int i=0;i<neb;i++)
-    {        
-      int i1=Th(Th.bedges[i][0]);
-      int i2=Th(Th.bedges[i][1]);
-      int lab=Th.bedges[i].lab;     
-      *bb++ = BoundaryEdge(v,i1,i2,lab);   
-    }
-  //  generation de la class Mesh a partir des 3 tableaux : v,t,b
-  {
-    Mesh * m = new Mesh(nbv+nbt,nbt*3,neb,v,t,b);
-    R2 Pn,Px;
-    m->BoundingBox(Pn,Px);
-    m->quadtree=new Fem2D::FQuadTree(m,Pn,Px,m->nv);
-    m->decrement();
-    return m;
-  }
-}
-
-//  truc pour que la fonction 
-<<<<<<< HEAD
-// static void Load_Init() soit appele a moment du chargement dynamique
-// du fichier 
-//  
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-// Init::Init() soit appele a moment du chargement dynamique
-// du fichier 
-//  
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  if (verbosity)
-    cout << " lood: Split3  " << endl;
-  Global.Add("splitmesh3","(",new OneOperator1_<Mesh *,Mesh *>(SplitMesh3));
-  // utilisation 
-  // mesh Th,Th3;
-  //  ... construction du maillage Th ici 
-  //   Th3=splitmesh3(Th);
-  /*  example complet : splitmesh3.edp
-      load "splitmesh3"
-      mesh Th=square(5,5);
-      mesh Th3=splitmesh3(Th);
-      plot(Th3,wait=1);
-  */
-
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/splitmesh6.cpp.orig b/examples++-load/splitmesh6.cpp.orig
deleted file mode 100644
index 9c63d05..0000000
--- a/examples++-load/splitmesh6.cpp.orig
+++ /dev/null
@@ -1,178 +0,0 @@
-// $Id$
-
-#include  <iostream>
-#include  <cfloat>
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-using namespace std;  
-#include "rgraph.hpp"
-#include "RNM.hpp"
-#include <fem.hpp>
-#include <cmath>
-
-  using namespace  Fem2D;
-
-Mesh * SplitMesh6(Fem2D::Mesh * const & pTh)
-{
-  assert(pTh);
-  const Mesh & Th(*pTh);  // le maillage d'origne a decoupe
-  using  Fem2D::Triangle;
-  using  Fem2D::Vertex;
-  using  Fem2D::R2;
-  using  Fem2D::BoundaryEdge;
-  using  Fem2D::Mesh;
- // using  Fem2D::R;
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int neb=Th.neb; // nombre d'aretes fontiere
-  // allocation des nouveaux items du maillage  
-  int nbe = 0;
-  for(int k=0; k <nbt; ++k)
-    for (int e = 0; e<3;++e)
-    {
-	int ee=e;
-	int kk = Th.ElementAdj(k,ee);
-	if( kk<=k) nbe++;
-    }
-  Vertex * v= new Vertex[nbv+nbt+nbe];
-  Triangle *t= new Triangle[nbt*6];
-  BoundaryEdge *b= new BoundaryEdge[neb*2];
-  // generation des nouveaus sommets 
-  Vertex *vv=v;
-  KN<int> mm(3*nbt);
-  // copie des anciens sommets (remarque il n'y a pas operateur de copy des sommets)
-  for (int i=0;i<nbv;i++)
-   {
-     Vertex & V=Th(i);
-     vv->x=V.x;
-     vv->y=V.y;
-     vv->lab = V.lab;
-     vv++;      
-   }
-  // generation des points barycentre de trianngles 
-  for (int k=0;k<nbt;k++)
-    {
-      Triangle & K=Th[k];
-      R2 G= ( (R2) K[0] + K[1] + K[2] )  / 3.;
-      vv->x=G.x;
-      vv->y=G.y;
-      vv->lab = 0;
-      vv++;
-    }   
-// generation des milieux des cote
-  int nn=0;
-  for(int k=0; k <nbt; ++k)
-      for (int e = 0; e<3;++e)
-      {
-	  int ee=e;
-	  int kk = Th.ElementAdj(k,ee);
-	  if( (kk>=k) || (kk <0) ) { 
-	      int v0=Th(k,EdgesVertexTriangle[e][0]);
-	      int v1=Th(k,EdgesVertexTriangle[e][1]);
-	      R2  M = ((R2) Th(v0) + Th(v1)) /2.;
-	      int lab=0;
-	      BoundaryEdge *be=Th.TheBoundaryEdge(v0,v1);
-	      if( be) 
-	      {
-		  lab= be->lab;
-	      }
-		
-	      vv->x=M.x;
-	      vv->y=M.y;
-	      vv->lab = lab;
-	      
-	       mm[k*3+e]= vv-v;// numero du sommet
-	       vv++;      
-	       nn++;
-	  }
-	  else   mm[k*3+e] = mm[kk*3+ee];
-      }
-	  cout << " nb edge = " << nbe << " == " << nn << endl;
-  ffassert(nbe==nn);	
-  
-  //  generation des triangles 
-  Triangle *tt= t; 
-  int nberr=0;
-   
-  for (int i=0;i<nbt;i++)
-    {
-      int i0=Th(i,0), i1=Th(i,1),i2=Th(i,2);
-      int j0=mm[i*3], j1=mm[i*3+1],j2=mm[i*3+2];
-      int ii = nbv + i; // numero du 
-      // les 3 triangles par triangles origines 
-      (*tt++).set(v,ii,i1,j0,Th[i].lab);
-      (*tt++).set(v,ii,j0,i2,Th[i].lab);
-      (*tt++).set(v,i0,ii,j1,Th[i].lab);
-      (*tt++).set(v,j1,ii,i2,Th[i].lab);
-      (*tt++).set(v,i0,j2,ii,Th[i].lab);
-      (*tt++).set(v,j2,i1,ii,Th[i].lab);
-    }  
-
-  // les arete frontieres qui n'ont pas change
-  BoundaryEdge * bb=b;
-  for (int i=0;i<neb;i++)
-    {        
-      int ki;
-      int k=Th.BoundaryElement(i,ki);
-      int i1=Th(Th.bedges[i][0]);
-      int i2=Th(Th.bedges[i][1]);
-      int ii = mm[3*k+ki]; 
-      int lab=Th.bedges[i].lab;     
-      *bb++ = BoundaryEdge(v,i1,ii,lab);   
-      *bb++ = BoundaryEdge(v,ii,i2,lab);   
-    }
-  //  generation de la class Mesh a partir des 3 tableaux : v,t,b
-  {
-    Mesh * m = new Mesh(nbv+nbt+nbe,nbt*6,neb*2,v,t,b);
-    R2 Pn,Px;
-    m->BoundingBox(Pn,Px);
-    m->quadtree=new Fem2D::FQuadTree(m,Pn,Px,m->nv);
-    m->decrement();
-    return m;
-  }
-}
-
-//  truc pour que la fonction 
-<<<<<<< HEAD
-// static void Load_Init() soit appele a moment du chargement dynamique
-// du fichier 
-//  
-/*  class Init { public:
-  Init();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-// Init::Init() soit appele a moment du chargement dynamique
-// du fichier 
-//  
-class Init { public:
-  Init();
-};
-
-LOADINIT(Init);  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  if (verbosity)
-    cout << " lood: Split6  " << endl;
-  Global.Add("splitmesh6","(",new OneOperator1_<Mesh *,Mesh *>(SplitMesh6));
-  // utilisation 
-  // mesh Th,Th3;
-  //  ... construction du maillage Th ici 
-  //   Th3=splitmesh3(Th);
-  /*  example complet : splitmesh3.edp
-      load "splitmesh3"
-      mesh Th=square(5,5);
-      mesh Th3=splitmesh3(Th);
-      plot(Th3,wait=1);
-  */
-
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/symmetrizeCSR.cpp.orig b/examples++-load/symmetrizeCSR.cpp.orig
deleted file mode 100644
index aecb29b..0000000
--- a/examples++-load/symmetrizeCSR.cpp.orig
+++ /dev/null
@@ -1,90 +0,0 @@
-// SUMMARY  :   remove the upper part of a CSR if the supplied matrix is not symmetric
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : P. Jolivet 
-// E-MAIL   : Pierre Jolivet <pierre.jolivet at ljll.math.upmc.fr>
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- */
-
-#include "ff++.hpp"
-
-template<class T>
-long symmetrizeCSR(Matrice_Creuse<T>* const &A) {
-    MatriceMorse<T>* mA = static_cast<MatriceMorse<T>*>(&(*A->A));
-    if(!mA->symetrique) {
-        mA->symetrique = true;
-        std::vector<int> cl;
-        std::vector<T> a;
-        a.reserve(mA->nbcoef);
-        cl.reserve(mA->nbcoef);
-        unsigned int save = mA->lg[0];
-        for(unsigned int i = 0; i < mA->n; ++i) {
-            for(unsigned int j = save; j < mA->lg[i + 1]; ++j) {
-                int col = mA->cl[j];
-                if(col <= i) {
-                    T val = mA->a[j];
-                    if(abs(val) > 1e-14) {
-                        a.push_back(val);
-                        cl.push_back(col);
-                    }
-                }
-                else
-                    break;
-            }
-            save = mA->lg[i + 1];
-            mA->lg[i + 1] = cl.size();
-        }
-        delete [] mA->cl;
-        delete [] mA->a;
-        int* col = new int[cl.size()];
-        T* val = new T[cl.size()];
-        for(unsigned int i = 0; i < cl.size(); ++i) {
-            col[i] = cl[i];
-            val[i] = a[i];
-        }
-        mA->cl = col;
-        mA->a = val;
-        mA->nbcoef = cl.size();
-    }
-    return 1L;
-}
-
-<<<<<<< HEAD
-/*  class Init {
-=======
-class Init {
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    public:
-        Init();
-};
-
-Init init;
-<<<<<<< HEAD
-*/
-static void Load_Init() {
-    Global.Add("symmetrizeCSR", "(", new OneOperator1_<long, Matrice_Creuse<double>* >(symmetrizeCSR<double>));
-}
-LOADFUNC(Load_Init)
-=======
-Init::Init() {
-    Global.Add("symmetrizeCSR", "(", new OneOperator1_<long, Matrice_Creuse<double>* >(symmetrizeCSR<double>));
-}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/tetgen.cpp b/examples++-load/tetgen.cpp
index 55f0202..ecf90e4 100644
--- a/examples++-load/tetgen.cpp
+++ b/examples++-load/tetgen.cpp
@@ -1598,7 +1598,7 @@ Mesh3 * ReconstructionRefine_tetgen(char *switch_tetgen,const Mesh3 & Th3,
 }
 
 
-// Fonction Refine avec tetgen � l'aide d'une metrique
+// Fonction Refine avec tetgen � l'aide d'une metrique
 
 Mesh3 * ReconstructionRefine_tetgen(char *switch_tetgen,const Mesh3 & Th3, 
 				     const int &nbhole, const double *tabhole, 
diff --git a/examples++-load/tetgen.cpp.orig b/examples++-load/tetgen.cpp.orig
deleted file mode 100644
index a559d86..0000000
--- a/examples++-load/tetgen.cpp.orig
+++ /dev/null
@@ -1,2549 +0,0 @@
-// ORIG-DATE:     Juin 2008
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : liaison medit freefem++ : popen  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep:   tetgen 
-//ff-c++-cpp-dep: 
-//  
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-// $Id$
-
-//  FH   July 2009
-//   comment all
-//       Th3_t->BuildBound();
-//       Th3_t->BuildAdj();
-//       Th3_t->Buildbnormalv();  
-//       Th3_t->BuildjElementConteningVertex();
-//   is now in the constructor of Mesh3 to be consistante. 
-//   
-
-
-#include "ff++.hpp" 
-#include "msh3.hpp"
-#define TETLIBRARY
-#include "tetgen.h"
-
-using namespace  Fem2D;
-
-/*
-// function to return inside point in a volume mesh 
-// A rajouter par la suite //
-void insidepoint( const Mesh3 &Th3
-
-*/
-// subroutine use for tetegen call
-
-void mesh3_tetgenio_out(const tetgenio &out, Mesh3 & Th3);
-
-void mesh3_tetgenio_out(const tetgenio &out, const int & label_tet, Mesh3 & Th3);
-
-void mesh3_tetgenio_out(const tetgenio &out, const int & label_tet, const int & label_face, Mesh3 & Th3);
-
-Mesh3 * mesh3_tetgenio_out(const tetgenio &out);
-
-Mesh3 *mesh3_tetgenio_out(const tetgenio &out, const int & label_tet);
-
-Mesh3 * mesh3_tetgenio_out(const tetgenio &out, const int & label_tet, const int & label_face);
-
-
-Mesh3 * Convexhull_3Dpoints( char* switch_tetgen, const int &nv_t, const double *Xcoord, const double *Ycoord, const double *Zcoord, const int &label_tet);
-
-Mesh3 * RemplissageSurf3D_tetgen( char* switch_tetgen, const Mesh3 & Th3, const int & label_tet);
-
-Mesh3 * RemplissageSurf3D_tetgen_new( char* switch_tetgen, const Mesh3 & Th3, const int & label_tet,
-				  const int &nbhole, const double *tabhole, 
-				  const int & nbregion, const double *tabregion, 
-				  const int &nbfacecl, const double *tabfacecl);
-
-Mesh3 * Transfo_Mesh2_tetgen( const double &precis_mesh, char* switch_tetgen, const Mesh & Th2, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, 
-		int &border_only, int &recollement_border, int &point_confondus_ok, 
-		const int &label_tet,const map<int, int> &maptri );
-
-Mesh3 *Transfo_Mesh2_tetgen_new(const double &precis_mesh, char *switch_tetgen,const Mesh & Th2, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, 
-				 int &border_only, int &recollement_border, int &point_confondus_ok, 
-				 const int &label_tet, const map<int, int> &maptri, 
-				 const int &nbhole, const double *tabhole, 
-				 const int & nbregion, const double *tabregion, 
-				 const int &nbfacecl, const double *tabfacecl);
-
-Mesh3 *  ReconstructionRefine_tetgen(char *switch_tetgen,const Mesh3 & Th3, 
-				     const int &nbhole, const double *tabhole, 
-				     const int & nbregion, const double *tabregion, 
-		                     const int &nbfacecl, const double *tabfacecl, const double *tsizevol);
-
-
-class Build2D3D_Op : public E_F0mps 
-{
-public:
-  Expression eTh;
-  Expression xx,yy,zz;
-  static const int n_name_param =13+2; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long   arg(int i,Stack stack, long  a) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  string*  arg(int i,Stack stack, string* a) const{ return nargs[i] ? GetAny< string* >( (*nargs[i])(stack) ): a;}
-public:
-  Build2D3D_Op(const basicAC_F0 &  args,Expression tth) 
-    : eTh(tth),xx(0),yy(0),zz(0)
-  {
-    if(verbosity) cout << "construction par BuilLayeMesh_Op" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    const E_Array * a1=0 ;
-    if(nargs[0])  a1  = dynamic_cast<const E_Array *>(nargs[0]);
-    int err =0;
-   
-    if(a1) {
-      if(a1->size() !=3) 
-      CompileError("Build2D3D (Th,transfo=[X,Y,Z],) ");
-      xx=to<double>( (*a1)[0]);
-      yy=to<double>( (*a1)[1]);
-      zz=to<double>( (*a1)[2]);
-    }    
-    if( nargs[2] && nargs[13] ) 
-	CompileError("uncompatible movemesh3 (Th, region= , reftet=  ");
-    if( nargs[3] && nargs[14] ) 
-	CompileError("uncompatible movemesh3 (Th, label= , refface=  ");
-    
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-
-basicAC_F0::name_and_type Build2D3D_Op::name_param[]= {
-  {  "transfo", &typeid(E_Array)},//0
-  {  "switch", &typeid(string*)},
-  {  "reftet", &typeid(long)}, //2
-  {  "refface", &typeid(KN_<long>)},//3
-  {  "facemerge", &typeid(long)},
-  {  "ptmerge", &typeid(double)},
-  // nouvelle variable
-  {  "nbofholes", &typeid(long)},//6
-  {  "holelist", &typeid(KN_<double>)},
-  {  "nbofregions", &typeid(long)},
-  {  "regionlist", &typeid(KN_<double>)},
-  {  "nboffacetcl", &typeid(long)},
-  {  "facetcl", &typeid(KN_<double>)},//11
-  // mesure mesh
-  {  "mesuremesh", &typeid(long)},
-  {  "region", &typeid(long)}, //13
-  {  "label", &typeid(KN_<long>)}//14
-    
-};
-
-class  Build2D3D : public OneOperator { public:  
-    Build2D3D() : OneOperator(atype<pmesh3>(),atype<pmesh>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-	return  new Build2D3D_Op( args,t[0]->CastTo(args[0]) ); 
-  }
-};
-
-AnyType Build2D3D_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh * pTh= GetAny<Mesh *>((*eTh)(stack));
-  ffassert( pTh );
-  Mesh &Th=*pTh;
-  Mesh *m= pTh;   // question a quoi sert *m ??
-  int nbv=Th.nv; // nombre de sommet 
-
-  int nbt=Th.nt; // nombre de triangles
-  int neb=Th.neb; // nombre d'aretes fontiere
-  if(verbosity) cout << " Vertex Triangle Border " << nbv<< "  "<< nbt << " " << neb << endl; 
-
-  if(verbosity >1) cout <<" ======================= " << endl;
-  if(verbosity >1) cout <<" == Build2D_3D_Op==" << endl;
- 
-  KN<long> zzempty;
-  string  stringempty = string("pqaAAYCQ");
-  string* switch_tet= (arg(1,stack,&stringempty));  
-  int label_tet(arg(2,stack,arg(13,stack,0L)));  
-  KN<long> nrf (arg(3,stack,arg(14,stack,zzempty)));
-  int point_confondus_ok(arg(4,stack,0L));
-  double precis_mesh(arg(5,stack,-1.));
-
-  // new parameters
-  KN<double> zdzempty;
-  int nbhole (arg(6,stack,0L));
-  KN<double> tabhole (arg(7,stack,zdzempty));
-  int nbregion (arg(8,stack,0L));
-  KN<double> tabregion (arg(9,stack,zdzempty));
-  int nbfacecl (arg(10,stack,0L));
-  KN<double> tabfacecl (arg(11,stack,zdzempty));
-  if(nbhole && nbhole*3 != tabhole.N())
-    {ExecError(" nbhole and holes are incompatibale ");}
-  if(!nbhole) nbhole=tabhole.N()/3; // modif FH dec 2010...
-  // mesuremesh parameters
-  int mesureM(arg(12,stack,1L));
-  int surface_orientation=1; 
-  if( mesureM <0 ){
-    surface_orientation=-1;
-  }
-    
-    
-    if(nbregion==0) nbregion=tabregion.N()/5;
-    if(nbhole==0) nbhole=tabhole.N()/3;
-    if(nbfacecl==0) nbfacecl=tabfacecl.N()/2;
-    
-  // assertion au niveau de la taille
-  ffassert( tabhole.N()   == 3*nbhole);
-  ffassert( tabregion.N() == 5*nbregion);
-  ffassert( tabfacecl.N() == 2*nbfacecl);
-
-  //====================================
-  //  How to change string* into char* 
-  //====================================
-  cout << "string" << switch_tet << endl; 
-
-  size_t size_switch_tet = switch_tet->size()+1;
-  char* switch_tetgen =new char[size_switch_tet];
-  strncpy(switch_tetgen, switch_tet->c_str(), size_switch_tet); 
-
-  cout << "switch_tetgen=" << switch_tetgen << endl;
-  //exit(1);
-  ffassert( nrf.N() %2 ==0);
-  
-  map<int,int> mapf;
-  for(int i=0;i<nrf.N();i+=2)
-    {
-      if(nrf[i] != nrf[i+1]){
-	mapf[nrf[i]]=nrf[i+1];
-      }
-    }
-  
-  map<int, int> mapfme;  
-  
-  Transfo_Mesh2_map_face( Th, mapfme );  
-  
-  // Map utilisateur
-  map< int, int > :: iterator imap;
-  for( int ii=0; ii < nrf.N(); ii+=2){
-	imap = mapfme.find(nrf[ii]);
-	if( imap != mapfme.end()){
-		imap -> second = nrf[ii+1];
-	}
-  }  
-  
-  //KN<double> txx(nbv), tyy(nbv), tzz(nbv);
-  //KN<int> takemesh(nbv);
-  double *txx=new double[nbv];
-  double *tyy=new double[nbv];
-  double *tzz=new double[nbv];
-  int *takemesh=new int[nbv];
-
-  MeshPoint *mp3(MeshPointStack(stack)); 
-  
-  for(int ii=0; ii<nbv; ii++) 
-      takemesh[ii]=0;  
-
-  Mesh &rTh = Th;
-  for (int it=0; it<nbt; ++it){
-    for( int iv=0; iv<3; ++iv){
-      int i=Th(it,iv);
-      if(takemesh[i]==0){
-	mp3->setP(&Th,it,iv);
-	if(xx){ 
-	  txx[i]=GetAny<double>((*xx)(stack));
-	}
-	if(yy){ 
-	  tyy[i]=GetAny<double>((*yy)(stack));
-	}
-	if(zz){ 
-	  tzz[i]=GetAny<double>((*zz)(stack));
-	}
-	takemesh[i] = takemesh[i]+1;
-      }
-    }
-  }
-
-  delete [] takemesh;
-  int border_only = 0;
-  int recollement_border=1;
-  /*
-    Mesh3 *Th3=Transfo_Mesh2_tetgen( precis_mesh, switch_tetgen, Th, txx, tyy, tzz, border_only, 
-				   recollement_border, point_confondus_ok, label_tet, mapfme);  
-  */
-
-  Mesh3 *Th3_tmp = MoveMesh2_func( precis_mesh, Th, txx, tyy, tzz, border_only, recollement_border, point_confondus_ok);
-
-  /* delete array */
-  delete [] txx;
-  delete [] tyy;
-  delete [] tzz;
-
-  /* check orientation of the mesh and flip if necessary*/ 
-  Th3_tmp->flipSurfaceMesh3(surface_orientation);
-  
-  int addcheckorientation=0;
-  if( addcheckorientation==1  ){
-    cout << "check :: orientation des surfaces" << endl;
-    Th3_tmp->BuildBoundaryElementAdj();
-    cout << "fin check :: orientation des surfaces" << endl;
-  }
-  /* set label of surface Th3_tmp */
-  for(int ii=0; ii< Th3_tmp->nbe; ii++)
-    {
-      const Triangle3 & K(Th3_tmp->be(ii)); 
-      int iv[3];
-      int lab;
-     
-      iv[0] = Th3_tmp->operator()(K[0]);
-      iv[1] = Th3_tmp->operator()(K[1]);
-      iv[2] = Th3_tmp->operator()(K[2]);
-		
-      map< int, int>:: const_iterator imap;
-      imap = mapfme.find(K.lab); 
-		
-      if(imap!= mapfme.end()){
-	lab=imap->second;	
-      } 
-      else{
-	lab=K.lab;
-      }
-		
-      Th3_tmp->be(ii).set( Th3_tmp->vertices, iv, lab ) ;
-    }
-  /* mesh domains with tetgen */ 
-  Mesh3 *Th3 = RemplissageSurf3D_tetgen_new( switch_tetgen, *Th3_tmp, label_tet,
-					     nbhole, tabhole, nbregion, tabregion, 
-					     nbfacecl, tabfacecl);
-
-
-  /*
-  Mesh3 *Th3=Transfo_Mesh2_tetgen_new( precis_mesh, switch_tetgen, Th, txx, tyy, tzz, border_only, 
-				   recollement_border, point_confondus_ok, label_tet, mapfme, 
-				   nbhole, tabhole, nbregion, tabregion, nbfacecl,tabfacecl);
-
-  */
-
-  delete Th3_tmp;
-  
-//Th3->BuildBound();
-//  Th3->BuildAdj();
-//  Th3->Buildbnormalv();  
-//  Th3->BuildjElementConteningVertex();
-  Th3->BuildGTree();
-  //Th3->decrement();    
-  Add2StackOfPtr2FreeRC(stack,Th3);
-
-  delete [] switch_tetgen;
-		
-  *mp=mps;
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return Th3;
-}
-
-// Fonction pour tetgen
-// new parameter
-void mesh3_tetgenio_out(const tetgenio &out, Mesh3 & Th3)
-{ 
-  int i;
-
-// All indices start from 1.
-  if(out.firstnumber != 1){
-    cout << " probleme ???" << endl;
-    exit(1);
-  }   
-  
-  if(out.numberoffacets !=0){
-    cout << "tetgen: faces non triangulaire" << endl;
-    exit(1);
-  }
-  
-  if(out.numberofcorners !=4){
-    cout << "tetgen: element subparametric of order 2" <<endl;
-    exit(1);
-  }
-
-  cout << "Th3 :: Vertex Element Border :: " << out.numberofpoints << " " <<out.numberoftetrahedra  << " " << out.numberoftrifaces << endl;
-  Th3.set(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces);
-
-  // new parameter
-  if( out.numberoftetrahedronattributes !=  1){
-    cout << "out.numberoftetrahedronattributes" << out.numberoftetrahedronattributes << endl;
-  }
-   
-  i=0;
-  for(int nnv=0; nnv < Th3.nv; nnv++){
-    Th3.vertices[nnv].x=out.pointlist[i];
-    Th3.vertices[nnv].y=out.pointlist[i+1];
-    Th3.vertices[nnv].z=out.pointlist[i+2];       
-    Th3.vertices[nnv].lab=out.pointmarkerlist[nnv];
-    i=i+3;    
-  }
-    
-  i=0;
-  for(int nnt=0; nnt < Th3.nt; nnt++){
-    int iv[4],lab;
-    iv[0] = out.tetrahedronlist[i]-1;
-    iv[1] = out.tetrahedronlist[i+1]-1;
-    iv[2] = out.tetrahedronlist[i+2]-1;
-    iv[3] = out.tetrahedronlist[i+3]-1;
-    //lab   = label_tet;
-    for(int jj=0; jj<4; jj++){
-      assert( iv[jj] >=0 && iv[jj] <Th3.nv );
-    }
-    //cout << "nnt= " <<  nnt << " " << lab  << " " << out.tetrahedronattributelist[nnt] << endl;
-    lab =  out.tetrahedronattributelist[nnt];
-    //cout << "nnt= " <<  lab  << " " << out.tetrahedronattributelist[nnt] << endl;
-      
-    Th3.elements[nnt].set( Th3.vertices, iv, lab);
-    i=i+4;
-  }
- 
-  for(int ibe=0; ibe < Th3.nbe; ibe++){
-    int iv[3];
-    iv[0] = out.trifacelist[3*ibe]-1;
-    iv[1] = out.trifacelist[3*ibe+1]-1;
-    iv[2] = out.trifacelist[3*ibe+2]-1; 
-    for(int jj=0; jj<3; jj++){
-      if(iv[jj]>= Th3.nv || iv[jj]< 0 ) cout << "iv[jj]=" << iv[jj] << " triangle" << ibe << endl;
-      assert( iv[jj] >=0 && iv[jj] <Th3.nv );
-    }
-    Th3.be(ibe).set( Th3.vertices, iv, out.trifacemarkerlist[ibe]);
-  }
-
-  /*
-  if( out.numberoftetrahedronattributes != 1 ){
-    cout << "out.numberoftetrahedronattributes" << out.numberoftetrahedronattributes  << endl;
-    exit(1);
-   }
-  */
-}
-
-
-void mesh3_tetgenio_out(const tetgenio &out, const int & label_tet, Mesh3 & Th3)
-{ 
-  int i;
-
-// All indices start from 1.
-  if(out.firstnumber != 1){
-    cout << " probleme ???" << endl;
-    exit(1);
-  }   
-  
-  if(out.numberoffacets !=0){
-    cout << "tetgen: faces non triangulaire" << endl;
-    exit(1);
-  }
-  
-  if(out.numberofcorners !=4){
-    cout << "tetgen: element subparametric of order 2" <<endl;
-    exit(1);
-  }
-  
-  cout << "Th3 :: Vertex Element Border :: " << out.numberofpoints << " " <<out.numberoftetrahedra  << " " << out.numberoftrifaces << endl;
-  Th3.set(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces);
-   
-  i=0;
-  for(int nnv=0; nnv < Th3.nv; nnv++){
-    Th3.vertices[nnv].x=out.pointlist[i];
-    Th3.vertices[nnv].y=out.pointlist[i+1];
-    Th3.vertices[nnv].z=out.pointlist[i+2];       
-    Th3.vertices[nnv].lab=out.pointmarkerlist[nnv];
-    i=i+3;    
-  }
-    
-  i=0;
-  for(int nnt=0; nnt < Th3.nt; nnt++){
-    int iv[4],lab;
-    iv[0] = out.tetrahedronlist[i]-1;
-    iv[1] = out.tetrahedronlist[i+1]-1;
-    iv[2] = out.tetrahedronlist[i+2]-1;
-    iv[3] = out.tetrahedronlist[i+3]-1;
-    lab   = label_tet;
-    //lab = out.tetrahedronmarkerlist[nnt];
-    Th3.elements[nnt].set( Th3.vertices, iv, lab);
-    i=i+4;
-  }
- 
-  for(int ibe=0; ibe < Th3.nbe; ibe++){
-    int iv[3];
-    iv[0] = out.trifacelist[3*ibe]-1;
-    iv[1] = out.trifacelist[3*ibe+1]-1;
-    iv[2] = out.trifacelist[3*ibe+2]-1; 
-    Th3.be(ibe).set( Th3.vertices, iv, out.trifacemarkerlist[ibe]);
-  }
-
-}
-
-void mesh3_tetgenio_out(const tetgenio &out, const int & label_tet, const int & label_face, Mesh3 & Th3)
-{ 
-  int i;
-
-// All indices start from 1.
-  if(out.firstnumber != 1){
-    cout << " probleme ???" << endl;
-    exit(1);
-  }   
-  
-  if(out.numberoffacets !=0){
-    cout << "tetgen: faces non triangulaire" << endl;
-    exit(1);
-  }
-  
-  if(out.numberofcorners !=4){
-    cout << "tetgen: element subparametric of order 2" <<endl;
-    exit(1);
-  }
-  
-  cout << "Th3 :: Vertex Element Border :: " << out.numberofpoints << " " <<out.numberoftetrahedra  << " " << out.numberoftrifaces << endl;
-  Th3.set(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces);
-   
-  i=0;
-  for(int nnv=0; nnv < Th3.nv; nnv++){
-    Th3.vertices[nnv].x=out.pointlist[i];
-    Th3.vertices[nnv].y=out.pointlist[i+1];
-    Th3.vertices[nnv].z=out.pointlist[i+2];       
-    Th3.vertices[nnv].lab=out.pointmarkerlist[nnv];
-    i=i+3;    
-  }
-    
-  i=0;
-  for(int nnt=0; nnt < Th3.nt; nnt++){
-    int iv[4],lab;
-    iv[0] = out.tetrahedronlist[i]-1;
-    iv[1] = out.tetrahedronlist[i+1]-1;
-    iv[2] = out.tetrahedronlist[i+2]-1;
-    iv[3] = out.tetrahedronlist[i+3]-1;
-    lab   = label_tet;
-    //lab = out.tetrahedronmarkerlist[nnt];
-    Th3.elements[nnt].set( Th3.vertices, iv, lab);
-    i=i+4;
-  }
-
-  if(verbosity) cout << &out.trifacemarkerlist << endl;
-  
-  for(int ibe=0; ibe < Th3.nbe; ibe++){
-    int iv[3];
-    iv[0] = out.trifacelist[3*ibe]-1;
-    iv[1] = out.trifacelist[3*ibe+1]-1;
-    iv[2] = out.trifacelist[3*ibe+2]-1; 
-    Th3.be(ibe).set( Th3.vertices, iv, label_face);
-  }
-
-}
-// verison Mesh3 *
-
-Mesh3 * mesh3_tetgenio_out(const tetgenio &out)
-{ 
-  int i;
-
-// All indices start from 1.
-  if(out.firstnumber != 1){
-    cout << " probleme ???" << endl;
-    exit(1);
-  }   
-  
-  if(out.numberoffacets !=0){
-    cout << "tetgen: faces non triangulaire" << endl;
-    exit(1);
-  }
-  
-  if(out.numberofcorners !=4){
-    cout << "tetgen: element subparametric of order 2" <<endl;
-    exit(1);
-  }
-
-  cout << "Th3 :: Vertex Element Border :: " << out.numberofpoints << " " <<out.numberoftetrahedra  << " " << out.numberoftrifaces << endl;
-  //Th3.set(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces);
-
-  // new parameter
-  if( out.numberoftetrahedronattributes !=  1){
-    cout << "out.numberoftetrahedronattributes" << out.numberoftetrahedronattributes << endl;
-  }
-   
-  Vertex3 *v = new Vertex3[out.numberofpoints];
-  Tet *t  = new Tet[out.numberoftetrahedra];
-  Tet *tt = t;
-  Triangle3 *b  = new Triangle3[out.numberoftrifaces];
-  Triangle3 *bb = b;
-
-  i=0;
-  for(int nnv=0; nnv<out.numberofpoints; nnv++){
-    v[nnv].x=out.pointlist[i];
-    v[nnv].y=out.pointlist[i+1];
-    v[nnv].z=out.pointlist[i+2];       
-    v[nnv].lab=out.pointmarkerlist[nnv];
-    i=i+3;    
-  }
-
-  // test pour la distance minimale entre les points 
-//   {
-//     double dist,dist1;
-//     dist = 1000000000000.;
-//     for(int nnv=0; nnv<out.numberofpoints; nnv++){
-//       for(int nnv1=nnv+1; nnv1< out.numberofpoints; nnv1++){
-// 	dist1=(v[nnv].x-v[nnv1].x)*(v[nnv].x-v[nnv1].x)+(v[nnv].y-v[nnv1].y)*(v[nnv].y-v[nnv1].y)
-// 	  +(v[nnv].z-v[nnv1].z)*(v[nnv].z-v[nnv1].z);
-// 	dist=min(dist,sqrt(dist1));
-// 	if( sqrt(dist1) < 1e-12){ 
-// 	  cout << "point confondus" << nnv << "<--->" <<nnv1 << endl;
-// 	  if( sqrt( pow(v[nnv].x,2)+pow(v[nnv].y,2)+pow(v[nnv].z,2) ) > 1e-10   )  cout << v[nnv] << " " << v[nnv1] << endl;
-// 	}
-//       }
-//     }
-//     cout << "dist entre les points du maillage tetgen" << dist << endl;
-//   }
-    
-  i=0;
-  for(int nnt=0; nnt < out.numberoftetrahedra; nnt++){
-    int iv[4],lab;
-    iv[0] = out.tetrahedronlist[i]-1;
-    iv[1] = out.tetrahedronlist[i+1]-1;
-    iv[2] = out.tetrahedronlist[i+2]-1;
-    iv[3] = out.tetrahedronlist[i+3]-1;
-    //lab   = label_tet;
-    for(int jj=0; jj<4; jj++){
-      assert( iv[jj] >=0 && iv[jj] < out.numberofpoints );
-    }
-    
-    //cout << "nnt= " <<  nnt << " " << lab  << " " << out.tetrahedronattributelist[nnt] << endl;
-    lab =  out.tetrahedronattributelist[nnt];
-    //cout << "nnt= " <<  lab  << " " << out.tetrahedronattributelist[nnt] << endl;
-    //Th3.elements[nnt].set( Th3.vertices, iv, lab);
-    (*tt++).set( v, iv, lab);   
-    i=i+4;
-  }
- 
-  for(int ibe=0; ibe < out.numberoftrifaces; ibe++){
-    int iv[3];
-    iv[0] = out.trifacelist[3*ibe]-1;
-    iv[1] = out.trifacelist[3*ibe+1]-1;
-    iv[2] = out.trifacelist[3*ibe+2]-1; 
-    for(int jj=0; jj<3; jj++){
-      if(iv[jj]>= out.numberofpoints || iv[jj]< 0 ) cout << "iv[jj]=" << iv[jj] << " triangle" << ibe << endl;
-      assert( iv[jj] >=0 && iv[jj] < out.numberofpoints );
-    }
-    //Th3.be(ibe).set( Th3.vertices, iv, out.trifacemarkerlist[ibe]);
-    (*bb++).set( v, iv, out.trifacemarkerlist[ibe]);   
-  }
-
-  Mesh3 *T_TH3 = new Mesh3(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces, v, t, b);
-  cout << "FreeFem++: Check mesh given by tetgen" << endl;
-  //return T_TH3;
-
-  if( TestElementMesh3(*T_TH3) != 1){  
-    return T_TH3;
-  }
-  else{
-    //Mesh3 *T2_TH3 = TestElementMesh3_patch( *T_TH3 );
-    //return T2_TH3;
-    exit(1);
-  }
-
-}
-
-
-Mesh3* mesh3_tetgenio_out(const tetgenio &out, const int & label_tet)
-{ 
-  int i;
-
-// All indices start from 1.
-  if(out.firstnumber != 1){
-    cout << " probleme ???" << endl;
-    exit(1);
-  }   
-  
-  if(out.numberoffacets !=0){
-    cout << "tetgen: faces non triangulaire" << endl;
-    exit(1);
-  }
-  
-  if(out.numberofcorners !=4){
-    cout << "tetgen: element subparametric of order 2" <<endl;
-    exit(1);
-  }
-  
-  cout << "Th3 :: Vertex Element Border :: " << out.numberofpoints << " " <<out.numberoftetrahedra  << " " << out.numberoftrifaces << endl;
-  //Th3.set(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces);
-   
-  Vertex3 *v = new Vertex3[out.numberofpoints];
-  Tet *t  = new Tet[out.numberoftetrahedra];
-  Tet *tt = t;
-  Triangle3 *b  = new Triangle3[out.numberoftrifaces];
-  Triangle3 *bb = b;
-    
-   
-  i=0;
-  for(int nnv=0; nnv < out.numberofpoints ; nnv++){
-    v[nnv].x=out.pointlist[i];
-    v[nnv].y=out.pointlist[i+1];
-    v[nnv].z=out.pointlist[i+2];       
-    v[nnv].lab=out.pointmarkerlist[nnv];
-    i=i+3;    
-  }
-    
-  i=0;
-  for(int nnt=0; nnt < out.numberoftetrahedra; nnt++){
-    int iv[4],lab;
-    iv[0] = out.tetrahedronlist[i]-1;
-    iv[1] = out.tetrahedronlist[i+1]-1;
-    iv[2] = out.tetrahedronlist[i+2]-1;
-    iv[3] = out.tetrahedronlist[i+3]-1;
-    lab   = label_tet;
-    //lab = out.tetrahedronmarkerlist[nnt];
-    //Th3.elements[nnt].set( Th3.vertices, iv, lab);
-    (*tt++).set( v, iv, lab);   
-    i=i+4;
-  }
- 
-  for(int ibe=0; ibe < out.numberoftrifaces ; ibe++){
-    int iv[3];
-    iv[0] = out.trifacelist[3*ibe]-1;
-    iv[1] = out.trifacelist[3*ibe+1]-1;
-    iv[2] = out.trifacelist[3*ibe+2]-1; 
-    //Th3.be(ibe).set( Th3.vertices, iv, out.trifacemarkerlist[ibe]);
-    (*bb++).set( v, iv, out.trifacemarkerlist[ibe]);  
-  }
-  Mesh3 *T_TH3 = new Mesh3(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces, v, t, b);
-  //return T_TH3;
-  cout << "FreeFem++: Check mesh given by tetgen" << endl;
-  if( TestElementMesh3(*T_TH3) != 1){  
-    return T_TH3;
-  }
-  else{ 
-    //cout << "patch pour tetgen " << endl;
-    //Mesh3 *T2_TH3 = TestElementMesh3_patch( *T_TH3 );
-    //return T2_TH3;
-    exit(1);
-  }
-}
-
-Mesh3* mesh3_tetgenio_out(const tetgenio &out, const int & label_tet, const int & label_face)
-{ 
-  int i;
-
-// All indices start from 1.
-  if(out.firstnumber != 1){
-    cout << " probleme ???" << endl;
-    exit(1);
-  }   
-  
-  if(out.numberoffacets !=0){
-    cout << "tetgen: faces non triangulaire" << endl;
-    exit(1);
-  }
-  
-  if(out.numberofcorners !=4){
-    cout << "tetgen: element subparametric of order 2" <<endl;
-    exit(1);
-  }
-  
-  cout << "Th3 :: Vertex Element Border :: " << out.numberofpoints << " " <<out.numberoftetrahedra  << " " << out.numberoftrifaces << endl;
-  //Th3.set(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces);
-
-  Vertex3 *v = new Vertex3[out.numberofpoints];
-  Tet *t  = new Tet[out.numberoftetrahedra];
-  Tet *tt = t;
-  Triangle3 *b  = new Triangle3[out.numberoftrifaces];
-  Triangle3 *bb = b;
-
-  i=0;
-  for(int nnv=0; nnv < out.numberofpoints; nnv++){
-    v[nnv].x=out.pointlist[i];
-    v[nnv].y=out.pointlist[i+1];
-    v[nnv].z=out.pointlist[i+2];       
-    v[nnv].lab=out.pointmarkerlist[nnv];
-    i=i+3;    
-  }
-    
-  i=0;
-  for(int nnt=0; nnt < out.numberoftetrahedra; nnt++){
-    int iv[4],lab;
-    iv[0] = out.tetrahedronlist[i]-1;
-    iv[1] = out.tetrahedronlist[i+1]-1;
-    iv[2] = out.tetrahedronlist[i+2]-1;
-    iv[3] = out.tetrahedronlist[i+3]-1;
-    lab   = label_tet;
-    //lab = out.tetrahedronmarkerlist[nnt];
-    //Th3.elements[nnt].set( Th3.vertices, iv, lab);
-    (*tt++).set( v, iv, lab); 
-    i=i+4;
-  }
-
-  if(verbosity) cout << &out.trifacemarkerlist << endl;
-  
-  for(int ibe=0; ibe < out.numberoftrifaces ; ibe++){
-    int iv[3];
-    iv[0] = out.trifacelist[3*ibe]-1;
-    iv[1] = out.trifacelist[3*ibe+1]-1;
-    iv[2] = out.trifacelist[3*ibe+2]-1; 
-    //Th3.be(ibe).set( Th3.vertices, iv, label_face);
-    (*bb++).set( v, iv, label_face);  
-  }
-
-  Mesh3 *T_TH3 = new Mesh3(out.numberofpoints, out.numberoftetrahedra, out.numberoftrifaces, v, t, b);
-
-  if( TestElementMesh3( *T_TH3 ) != 1){  
-    return T_TH3;
-  }
-  else{
-    exit(1);
-    //Mesh3 *T2_TH3 = TestElementMesh3_patch( *T_TH3 );
-    //return T2_TH3;
-  }
-}
-
-
-
-Mesh3 * Convexhull_3Dpoints(char *switch_tetgen, const int &nv_t, const double *Xcoord, const double *Ycoord, 
-const double *Zcoord, const int &label_tet, const int &label_face){
-	
-  //Mesh3 *T_Th3= new Mesh3;
-		
-  tetgenio in,out;
-  //tetgenio::facet *f;
-  //tetgenio::polygon *p;
-
-  cout << " tetgenio: vertex " << endl;
-  int itet,jtet;
-
-  in.firstnumber = 1;
-  in.numberofpoints = nv_t;
-  in.pointlist = new REAL[in.numberofpoints*3];
-  in.pointmarkerlist = new int[in.numberofpoints];
-  itet=0;
-  jtet=0;
-  for(int nnv=0; nnv < nv_t; nnv++)
-    {
-      in.pointlist[itet]   = Xcoord[nnv];
-      in.pointlist[itet+1] = Ycoord[nnv];
-      in.pointlist[itet+2] = Zcoord[nnv];       
-      in.pointmarkerlist[nnv] =  0;
-      
-      itet=itet+3;
-    }
-  assert(itet==in.numberofpoints*3);
-	
-  in.numberoffacets = 0;
-
-  cout << "tetgen: before tetrahedralize( , &in, &out): switch=" << switch_tetgen<< endl;
-  tetrahedralize(switch_tetgen, &in, &out);
-	 
-  cout << "tetgen: finish tetrahedralize( , &in, &out);" << endl;
-  //mesh3_tetgenio_out( out, label_tet, label_face,*T_Th3);
-  Mesh3* T_Th3=mesh3_tetgenio_out( out, label_tet, label_face);
-  cout <<" Finish Mesh3 tetgen :: Vertex, Element, Border" << T_Th3->nv << " "<< T_Th3->nt << " " << T_Th3->nbe << endl;
-
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return T_Th3; 
-}
-
-
-Mesh3 * RemplissageSurf3D_tetgen(char *switch_tetgen,const Mesh3 & Th3, const int & label_tet){
-	
-  //Mesh3 *T_Th3= new Mesh3;
-	
-  assert(Th3.nt == 0 );
-  int nv_t = Th3.nv;
-  int nt_t = Th3.nt;
-  int nbe_t = Th3.nbe;
-	
-  if(verbosity) cout << "3D RemplissageSurf3D:: Vertex  triangle2  border "    << nv_t << " "<< nt_t << " " << nbe_t<< endl;
-  
-
-  // Creation des tableau de tetgen
-	
-  tetgenio in,out;
-  //tetgenio::facet *f;
-  //tetgenio::polygon *p;
-	
-  if(verbosity) cout << " tetgenio: vertex " << endl;
-  int itet,jtet;
-  // All indices start from 1.
-  in.firstnumber = 1;
-  in.numberofpoints = nv_t;
-  in.pointlist = new REAL[in.numberofpoints*3];
-  in.pointmarkerlist = new int[in.numberofpoints];
-  itet=0;
-  jtet=0;
-  for(int nnv=0; nnv < nv_t; nnv++)
-    {
-      in.pointlist[itet]   = Th3.vertices[nnv].x;
-      in.pointlist[itet+1] = Th3.vertices[nnv].y;
-      in.pointlist[itet+2] = Th3.vertices[nnv].z;       
-      in.pointmarkerlist[nnv] =  Th3.vertices[nnv].lab;   
-      itet=itet+3;
-    }
-  assert(itet==in.numberofpoints*3);
-	
-  if(verbosity) cout << " tetgenio: facet " << endl;
-  // Version avec des facettes
-  in.numberoffacets = nbe_t;
-  in.facetlist = new tetgenio::facet[in.numberoffacets];
-  in.facetmarkerlist = new int[in.numberoffacets];
-	  
-  for(int ibe=0; ibe < nbe_t; ibe++){
-    tetgenio::facet *f;
-    tetgenio::polygon *p;
-    f = &in.facetlist[ibe];
-    f->numberofpolygons = 1;
-    f->polygonlist = new tetgenio::polygon[f->numberofpolygons];
-    f->numberofholes = 0;
-    f->holelist = NULL;
-		
-    p = &f->polygonlist[0];
-    p->numberofvertices = 3;
-    p->vertexlist = new int[3];
-		
-    // creation of elements
-    const Triangle3 & K(Th3.be(ibe)); // const Triangle2 & K(Th2.elements[ii]); // Version Mesh2  
-    p->vertexlist[0] = Th3.operator()(K[0])+1;
-    p->vertexlist[1] = Th3.operator()(K[1])+1;
-    p->vertexlist[2] = Th3.operator()(K[2])+1;
-		
-    for( int kkk=0; kkk<3; kkk++){ 
-      assert( p->vertexlist[kkk]<= in.numberofpoints && p->vertexlist[kkk]>0);
-    }
-		
-    in.facetmarkerlist[ibe] = K.lab; 
-		
-  }  
-  cout << "tetgen: before tetrahedralize( , &in, &out);" << endl;
-	
-  tetrahedralize(switch_tetgen, &in, &out);
-	 
-  cout << "tetgen: after tetrahedralize( , &in, &out);" << endl;
-  //mesh3_tetgenio_out( out, label_tet, *T_Th3);
-  Mesh3 *T_Th3 = mesh3_tetgenio_out( out, label_tet);
-  cout <<" Finish Mesh3 tetgen :: Vertex, Element, Border" << T_Th3->nv << " "<< T_Th3->nt << " " << T_Th3->nbe << endl;
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return T_Th3;
-}
-
-Mesh3 * RemplissageSurf3D_tetgen_new(char *switch_tetgen,const Mesh3 & Th3, const int & label_tet,
-				     const int &nbhole, const double *tabhole, 
-				     const int & nbregion, const double *tabregion, 
-				     const int &nbfacecl, const double *tabfacecl){
-	
-  //Mesh3 *T_Th3= new Mesh3;
-	
-  assert(Th3.nt == 0 );
-  int nv_t = Th3.nv;
-  int nt_t = Th3.nt;
-  int nbe_t = Th3.nbe;
-
- 
-  if(verbosity) cout << "3D RemplissageSurf3D:: Vertex  triangle2  border " << nv_t << " "<< nt_t << " " << nbe_t<< endl;
-  // Creation des tableau de tetgen
-	
-  tetgenio in,out;
-  //tetgenio::facet *f;
-  //tetgenio::polygon *p;
-	
-  if(verbosity) cout << " tetgenio: vertex " << endl;
-  int itet,jtet;
-  // All indices start from 1.
-  in.firstnumber = 1;
-  in.numberofpoints = nv_t;
-  in.pointlist = new REAL[in.numberofpoints*3];
-  in.pointmarkerlist = new int[in.numberofpoints];
-  itet=0;
-  jtet=0;
-  for(int nnv=0; nnv < nv_t; nnv++)
-    {
-      in.pointlist[itet]   = Th3.vertices[nnv].x;
-      in.pointlist[itet+1] = Th3.vertices[nnv].y;
-      in.pointlist[itet+2] = Th3.vertices[nnv].z;       
-      in.pointmarkerlist[nnv] =  Th3.vertices[nnv].lab;   
-      itet=itet+3;
-    }
-  assert(itet==in.numberofpoints*3);
-	
-  if(verbosity) cout << " tetgenio: facet " << endl;
-  // Version avec des facettes
-  in.numberoffacets = nbe_t;
-  in.facetlist = new tetgenio::facet[in.numberoffacets];
-  in.facetmarkerlist = new int[in.numberoffacets];
-	  
-  for(int ibe=0; ibe < nbe_t; ibe++){
-    tetgenio::facet *f;
-    tetgenio::polygon *p;
-    f = &in.facetlist[ibe];
-    f->numberofpolygons = 1;
-    f->polygonlist = new tetgenio::polygon[f->numberofpolygons];
-    f->numberofholes = 0;
-    f->holelist = NULL;
-		
-    p = &f->polygonlist[0];
-    p->numberofvertices = 3;
-    p->vertexlist = new int[3];
-		
-    // creation of elements
-    const Triangle3 & K(Th3.be(ibe)); // const Triangle2 & K(Th2.elements[ii]); // Version Mesh2  
-    p->vertexlist[0] = Th3.operator()(K[0])+1;
-    p->vertexlist[1] = Th3.operator()(K[1])+1;
-    p->vertexlist[2] = Th3.operator()(K[2])+1;
-		
-    for( int kkk=0; kkk<3; kkk++){ 
-      assert( p->vertexlist[kkk]<= in.numberofpoints && p->vertexlist[kkk]>0);
-    }
-		
-    in.facetmarkerlist[ibe] = K.lab; 
-		
-  }  
-  // mise a jour des nouvelles variables
- 
-  in.numberofholes = nbhole;
-  in.holelist = new REAL[3*nbhole];
-  
-  for(int ii=0; ii<3*in.numberofholes; ii++){
-    in.holelist[ii]   = tabhole[ii];
-  }
-
-  in.numberofregions = nbregion;
-  in.regionlist = new REAL[5*nbregion];
-  for(int ii=0; ii<5*in.numberofregions; ii++){
-    in.regionlist[ii] = tabregion[ii];
-  }
-
-  in.numberoffacetconstraints = nbfacecl;
-  in.facetconstraintlist = new REAL[2*in.numberoffacetconstraints];
-
-  for(int ii=0; ii<2*in.numberoffacetconstraints; ii++){
-    in.facetconstraintlist[ii+1] = tabfacecl[ii+1];
-  }
-
-
-  cout << "tetgen: before tetrahedralize( , &in, &out);" << endl;
-  cout << "numberof regions "<<  in.numberofregions  << endl;
-  cout << "numberof hole "<<  in.numberofholes  << endl;
-	
-  tetrahedralize(switch_tetgen, &in, &out);
-	 
-  cout << "tetgen: after tetrahedralize( , &in, &out);" << endl;
-  //mesh3_tetgenio_out( out, *T_Th3);
-  Mesh3* T_Th3=mesh3_tetgenio_out( out);
-  cout <<" Finish Mesh3 tetgen :: Vertex, Element, Border" << T_Th3->nv << " "<< T_Th3->nt << " " << T_Th3->nbe << endl;
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return T_Th3;
-}
-
-Mesh3 * RemplissageSurf3D_tetgen_new(char *switch_tetgen,const Mesh3 & Th3, const int & label_tet,
-				     const int &nbhole, const double *tabhole, 
-				     const int & nbregion, const double *tabregion, 
-				     const int &nbfacecl, const double *tabfacecl, 
-				     const int &nbinside, const double *InsidePoint, 
-				     const int &sizeofmetric, const double *metric){
-	
-  //Mesh3 *T_Th3= new Mesh3;
-	
-  assert(Th3.nt == 0 );
-  int nv_t = Th3.nv;
-  int nt_t = Th3.nt;
-  int nbe_t = Th3.nbe;
-
- 
-  if(verbosity) cout << "3D RemplissageSurf3D:: Vertex  triangle2  border " << nv_t << " "<< nt_t << " " << nbe_t<< endl;
-  // Creation des tableau de tetgen
-	
-  tetgenio in,out;
-  tetgenio addin;
-
-  if(verbosity) cout << " tetgenio: vertex " << endl;
-  int itet,jtet;
-  // All indices start from 1.
-  in.firstnumber = 1;
-  in.numberofpoints = nv_t;
-  in.pointlist = new REAL[in.numberofpoints*3];
-  in.pointmarkerlist = new int[in.numberofpoints];
-  itet=0;
-  jtet=0;
-  for(int nnv=0; nnv < nv_t; nnv++)
-    {
-      in.pointlist[itet]      = Th3.vertices[nnv].x;
-      in.pointlist[itet+1]    = Th3.vertices[nnv].y;
-      in.pointlist[itet+2]    = Th3.vertices[nnv].z;       
-      in.pointmarkerlist[nnv] = Th3.vertices[nnv].lab;   
-      itet=itet+3;
-    }
-  assert(itet==in.numberofpoints*3);
-   
-  // Add inside point
-  if( nbinside ){
-    cout << "nbinside=" << nbinside << endl;
-    addin.firstnumber = 1;
-    addin.numberofpoints = nbinside;
-    addin.pointlist= new REAL[3*nbinside];
-    addin.pointmarkerlist = new int[addin.numberofpoints];
-    for(int nnv=0; nnv < 3*nbinside; nnv++)
-      addin.pointlist[nnv] = InsidePoint[nnv];
-    for(int nnv=0; nnv < nbinside; nnv++)
-      addin.pointmarkerlist[nnv] = 111;
-  }
-
-  // Add metric
-  if( sizeofmetric ){
-    cout << "sizeofmetric=" << sizeofmetric << endl;
-    in.numberofpointmtrs = sizeofmetric;
-    in.pointmtrlist = new REAL[in.numberofpointmtrs*in.numberofpoints];
-    for(int nnv=0; nnv < in.numberofpointmtrs*in.numberofpoints; nnv++)
-      in.pointmtrlist[nnv]=metric[nnv]; 
-  }
- 
- if(verbosity) cout << " tetgenio: facet " << endl;
-  // Version avec des facettes
-  in.numberoffacets = nbe_t;
-  in.facetlist = new tetgenio::facet[in.numberoffacets];
-  in.facetmarkerlist = new int[in.numberoffacets];
-	  
-  for(int ibe=0; ibe < nbe_t; ibe++){
-    tetgenio::facet *f;
-    tetgenio::polygon *p;
-    f = &in.facetlist[ibe];
-    f->numberofpolygons = 1;
-    f->polygonlist = new tetgenio::polygon[f->numberofpolygons];
-    f->numberofholes = 0;
-    f->holelist = NULL;
-		
-    p = &f->polygonlist[0];
-    p->numberofvertices = 3;
-    p->vertexlist = new int[3];
-		
-    // creation of elements
-    const Triangle3 & K(Th3.be(ibe)); // const Triangle2 & K(Th2.elements[ii]); // Version Mesh2  
-    p->vertexlist[0] = Th3.operator()(K[0])+1;
-    p->vertexlist[1] = Th3.operator()(K[1])+1;
-    p->vertexlist[2] = Th3.operator()(K[2])+1;
-		
-    for( int kkk=0; kkk<3; kkk++){ 
-      assert( p->vertexlist[kkk]<= in.numberofpoints && p->vertexlist[kkk]>0);
-    }
-		
-    in.facetmarkerlist[ibe] = K.lab; 
-		
-  }  
-  // mise a jour des nouvelles variables
- 
-  in.numberofholes = nbhole;
-  in.holelist = new REAL[3*nbhole];
-  
-  for(int ii=0; ii<3*in.numberofholes; ii++){
-    in.holelist[ii]   = tabhole[ii];
-  }
-
-  in.numberofregions = nbregion;
-  in.regionlist = new REAL[5*nbregion];
-  for(int ii=0; ii<5*in.numberofregions; ii++){
-    in.regionlist[ii] = tabregion[ii];
-  }
-
-  in.numberoffacetconstraints = nbfacecl;
-  in.facetconstraintlist = new REAL[2*in.numberoffacetconstraints];
-
-  for(int ii=0; ii<2*in.numberoffacetconstraints; ii++){
-    in.facetconstraintlist[ii+1] = tabfacecl[ii+1];
-  }
-
-
-  cout << "tetgen: before tetrahedralize( , &in, &out);" << endl;
-  cout << "numberof regions "<<  in.numberofregions  << endl;
-  cout << "numberof hole "<<  in.numberofholes  << endl;
-	
-  tetrahedralize(switch_tetgen, &in, &out, &addin);
-	 
-  cout << "tetgen: after tetrahedralize( , &in, &out);" << endl;
-  //mesh3_tetgenio_out( out, *T_Th3);
-  Mesh3* T_Th3=mesh3_tetgenio_out( out);
-  cout <<" Finish Mesh3 tetgen :: Vertex, Element, Border" << T_Th3->nv << " "<< T_Th3->nt << " " << T_Th3->nbe << endl;
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return T_Th3;
-}
-
-
-Mesh3 * Transfo_Mesh2_tetgen(const double &precis_mesh, char *switch_tetgen,const Mesh & Th2, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, 
-	int &border_only, int &recollement_border, int &point_confondus_ok, 
-	const int &label_tet, const map<int, int> &maptri ){
-  
-  //Mesh3 *T_Th3= new Mesh3;
-        int nv_t,nt_t,nbe_t;
-        int* Numero_Som;
-	
-	int* ind_nv_t;
-	int* ind_nt_t;
-	int* ind_nbe_t;
-	
-	int* label_nbe_t;
-	
-	//int i_som;
-	Numero_Som = new int[Th2.nv];
-	ind_nv_t   = new int[Th2.nv];
-	ind_nbe_t  = new int[Th2.nt];
-	     
-	label_nbe_t = new int[Th2.nt];
-	
-        if(verbosity) cout << "2D: Mesh::Vertex  triangle2  border " << Th2.nv << " "<<Th2.nt<< " " << Th2.neb<< endl;
-	
-	for(int ii=0; ii<Th2.nv; ii++){ 
-		Numero_Som[ii]=ii;
-	}
-	if(verbosity) cout <<" debut: SamePointElement " <<endl;
-	
-	SamePointElement_Mesh2( precis_mesh, tab_XX, tab_YY, tab_ZZ, Th2, recollement_border, point_confondus_ok, 
-		Numero_Som, ind_nv_t, ind_nt_t, ind_nbe_t, label_nbe_t, nv_t, nt_t, nbe_t);
-	
-	if(verbosity) cout <<" fin: SamePointElement " <<endl;
-	
-	if(verbosity) cout << "2D transfo: Mesh::Vertex  triangle2  border " << nv_t << " "<< nt_t << " " << nbe_t<< endl;
-	// Creation des tableau de tetgen
-	
-	
-	tetgenio in,out;
-	//tetgenio::facet *f;
-	//tetgenio::polygon *p;
-	
-	if(verbosity) cout << " tetgenio: vertex " << endl;
-	int itet,jtet;
-// All indices start from 1.
-	in.firstnumber = 1;
-	in.numberofpoints = nv_t;
-	in.pointlist = new REAL[in.numberofpoints*3];
-	in.pointmarkerlist = new int[in.numberofpoints];
-	itet=0;
-	jtet=0;
-	for(int nnv=0; nnv < nv_t; nnv++)
-	{
-		int & ii = ind_nv_t[nnv];
-		//cout << "nnv ,  ii  =" << nnv << "  " << ii << endl;
-		//cout << "tab_XX[ii], tab_YY[ii], tab_ZZ[ii]=" <<  tab_XX[ii] << " "<< tab_YY[ii] << " "<< tab_ZZ[ii] << endl;
-		assert( Numero_Som[ii] == nnv );
-		const Mesh::Vertex & K = Th2.vertices[ii];//const Mesh::Vertex & K(Th2.vertices[ii]); //Version Mesh2   
-		in.pointlist[itet]   = tab_XX[ii];
-		in.pointlist[itet+1] = tab_YY[ii];
-		in.pointlist[itet+2] = tab_ZZ[ii];       
-		in.pointmarkerlist[nnv] =  K.lab;   
-		itet=itet+3;
-	}
-	assert(itet==in.numberofpoints*3);
-	
-	if(verbosity) cout << " tetgenio: facet " << endl;
-	// Version avec des facettes
-	in.numberoffacets = nbe_t;
-	in.facetlist = new tetgenio::facet[in.numberoffacets];
-	in.facetmarkerlist = new int[in.numberoffacets];
-	  
-	for(int ibe=0; ibe < nbe_t; ibe++){
-	  tetgenio::facet *f;
-	  tetgenio::polygon *p;
-	  f = &in.facetlist[ibe];
-	  f->numberofpolygons = 1;
-	  f->polygonlist = new tetgenio::polygon[f->numberofpolygons];
-	  f->numberofholes = 0;
-	  f->holelist = NULL;
-		
-	  p = &f->polygonlist[0];
-	  p->numberofvertices = 3;
-	  p->vertexlist = new int[3];
-		
-	  int & ii=ind_nbe_t[ibe];
-	  // creation of elements
-	  const Mesh::Triangle & K(Th2.t(ii)); // const Triangle2 & K(Th2.elements[ii]); // Version Mesh2  
-	  p->vertexlist[0] = Numero_Som[ Th2.operator()(K[0]) ]+1;
-	  p->vertexlist[1] = Numero_Som[ Th2.operator()(K[1]) ]+1;
-	  p->vertexlist[2] = Numero_Som[ Th2.operator()(K[2]) ]+1;
-		
-	  for( int kkk=0; kkk<3; kkk++){ 
-	    assert( p->vertexlist[kkk]<= in.numberofpoints && p->vertexlist[kkk]> 0);
-	  }
-	  map< int, int>:: const_iterator imap;
-	  imap = maptri.find(K.lab); // imap= maptri.find( label_nbe_t[ibe] );
-	  assert( imap != maptri.end());
-	  in.facetmarkerlist[ibe] = imap->second; // K.lab; // before 
-		
-	}  
-
-	cout << "tetgen: before tetrahedralize( , &in, &out);" << endl;
-	
-	tetrahedralize(switch_tetgen, &in, &out);
-	 
-	cout << "tetgen: after tetrahedralize( , &in, &out);" << endl;
-	//mesh3_tetgenio_out( out, label_tet, *T_Th3);
-	Mesh3 *T_Th3=mesh3_tetgenio_out( out, label_tet);
-	cout <<" Finish Mesh3 :: Vertex, Element, Border" << T_Th3->nv << " "<< T_Th3->nt << " " << T_Th3->nbe << endl;
-	
-	
-
-	delete [] Numero_Som;
-	delete [] ind_nv_t;
-	delete [] ind_nbe_t;
-	delete [] label_nbe_t;
-
-	cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-	return T_Th3;
-
-
-}
-
-Mesh3 * Transfo_Mesh2_tetgen_new(const double &precis_mesh, char *switch_tetgen,const Mesh & Th2, const double *tab_XX, const double *tab_YY, const double *tab_ZZ, 
-				 int &border_only, int &recollement_border, int &point_confondus_ok, 
-				 const int &label_tet, const map<int, int> &maptri, 
-				 const int &nbhole, const double *tabhole, const int & nbregion, const double *tabregion, 
-				 const int &nbfacecl, const double *tabfacecl){
-  //Mesh3 *T_Th3= new Mesh3;
-  int nv_t,nt_t,nbe_t;
-  int* Numero_Som;
-	
-  int* ind_nv_t;
-  int* ind_nt_t;
-  int* ind_nbe_t;
-	
-  int* label_nbe_t;
-	
-  //int i_som;
-  Numero_Som = new int[Th2.nv];
-  ind_nv_t   = new int[Th2.nv];
-  ind_nbe_t  = new int[Th2.nt];
-	     
-  label_nbe_t = new int[Th2.nt];
-	
-  if(verbosity) cout << "2D: Mesh::Vertex  triangle2  border " << Th2.nv << " "<<Th2.nt<< " " << Th2.neb<< endl;
-	
-  for(int ii=0; ii<Th2.nv; ii++){ 
-    Numero_Som[ii]=ii;
-  }
-  if(verbosity) cout <<" debut: SamePointElement " <<endl;
-	
-  SamePointElement_Mesh2( precis_mesh, tab_XX, tab_YY, tab_ZZ, Th2, recollement_border, point_confondus_ok, 
-			  Numero_Som, ind_nv_t, ind_nt_t, ind_nbe_t, label_nbe_t, nv_t, nt_t, nbe_t);
-	
-  if(verbosity) cout <<" fin: SamePointElement " <<endl;
-	
-  if(verbosity) cout << "2D transfo: Mesh::Vertex  triangle2  border " << nv_t << " "<< nt_t << " " << nbe_t<< endl;
-  // Creation des tableau de tetgen
-	
-	
-  tetgenio in,out;
-  //tetgenio::facet *f;
-  //tetgenio::polygon *p;
-	
-  if(verbosity) cout << " tetgenio: vertex " << endl;
-  int itet,jtet;
-  // All indices start from 1.
-  in.firstnumber = 1;
-  in.numberofpoints = nv_t;
-  in.pointlist = new REAL[in.numberofpoints*3];
-  in.pointmarkerlist = new int[in.numberofpoints];
-  itet=0;
-  jtet=0;
-  for(int nnv=0; nnv < nv_t; nnv++)
-    {
-      int & ii = ind_nv_t[nnv];
-      //cout << "nnv ,  ii  =" << nnv << "  " << ii << endl;
-      //cout << "tab_XX[ii], tab_YY[ii], tab_ZZ[ii]=" <<  tab_XX[ii] << " "<< tab_YY[ii] << " "<< tab_ZZ[ii] << endl;
-      assert( Numero_Som[ii] == nnv );
-      const Mesh::Vertex & K = Th2.vertices[ii];//const Mesh::Vertex & K(Th2.vertices[ii]); //Version Mesh2   
-      in.pointlist[itet]   = tab_XX[ii];
-      in.pointlist[itet+1] = tab_YY[ii];
-      in.pointlist[itet+2] = tab_ZZ[ii];       
-      in.pointmarkerlist[nnv] =  K.lab;   
-      itet=itet+3;
-    }
-  assert(itet==in.numberofpoints*3);
-	
-  if(verbosity) cout << " tetgenio: facet " << endl;
-  // Version avec des facettes
-  in.numberoffacets = nbe_t;
-  in.facetlist = new tetgenio::facet[in.numberoffacets];
-  in.facetmarkerlist = new int[in.numberoffacets];
-	  
-  for(int ibe=0; ibe < nbe_t; ibe++){
-    tetgenio::facet *f;
-    tetgenio::polygon *p;
-    f = &in.facetlist[ibe];
-    f->numberofpolygons = 1;
-    f->polygonlist = new tetgenio::polygon[f->numberofpolygons];
-    f->numberofholes = 0;
-    f->holelist = NULL;
-		
-    p = &f->polygonlist[0];
-    p->numberofvertices = 3;
-    p->vertexlist = new int[3];
-		
-    int & ii=ind_nbe_t[ibe];
-    // creation of elements
-    const Mesh::Triangle & K(Th2.t(ii)); // const Triangle2 & K(Th2.elements[ii]); // Version Mesh2  
-    
-    
-    p->vertexlist[0] = Numero_Som[ Th2.operator()(K[0]) ]+1;
-    p->vertexlist[1] = Numero_Som[ Th2.operator()(K[1]) ]+1;
-    p->vertexlist[2] = Numero_Som[ Th2.operator()(K[2]) ]+1;
-		
-    for( int kkk=0; kkk<3; kkk++){ 
-      assert( p->vertexlist[kkk]<= in.numberofpoints && p->vertexlist[kkk]> 0);
-    }
-    map< int, int>:: const_iterator imap;
-    imap = maptri.find(K.lab); // imap= maptri.find( label_nbe_t[ibe] );
-    assert( imap != maptri.end());
-    in.facetmarkerlist[ibe] = imap->second; // K.lab; // before 
-		
-  }  
-
-  // mise a jour des nouvelles variables
-
-  in.numberofholes = nbhole;
-  in.holelist = new REAL[3*nbhole];
-  
-  for(int ii=0; ii<3*in.numberofholes; ii++){
-    in.holelist[ii]   = tabhole[ii];
-  }
-
-
-  in.numberofregions = nbregion;
-  in.regionlist = new REAL[5*nbregion];
-  for(int ii=0; ii<5*in.numberofregions; ii++){
-    in.regionlist[ii] = tabregion[ii];
-  }
-
-  in.numberoffacetconstraints = nbfacecl;
-  in.facetconstraintlist = new REAL[2*in.numberoffacetconstraints];
-
-  for(int ii=0; ii<2*in.numberoffacetconstraints; ii++){
-    in.facetconstraintlist[ii+1] = tabfacecl[ii+1];
-  }
-  
-  cout << "tetgen: before tetrahedralize( , &in, &out);" << endl;
-  
-  tetrahedralize(switch_tetgen, &in, &out);
-  
-  cout << "tetgen: after tetrahedralize( , &in, &out);" << endl;
-  //mesh3_tetgenio_out( out, *T_Th3);
-  Mesh3 *T_Th3=mesh3_tetgenio_out( out);
-  cout <<" Finish Mesh3 :: Vertex, Element, Border" << T_Th3->nv << " "<< T_Th3->nt << " " << T_Th3->nbe << endl;
-
-  delete [] Numero_Som;
-  delete [] ind_nv_t;
-  delete [] ind_nbe_t;
-  delete [] label_nbe_t;
-  
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return T_Th3;
-}
-
-// Fonction Refine avec tetgen
-
-Mesh3 * ReconstructionRefine_tetgen(char *switch_tetgen,const Mesh3 & Th3, 
-				     const int &nbhole, const double *tabhole, 
-				     const int & nbregion, const double *tabregion, 
-				     const int &nbfacecl, const double *tabfacecl, const double *tsizevol){
-
-  // verif option refine
-  int i;	
-  assert(Th3.nt != 0 );
-  {
-    size_t testr, testp;
-    int lenswitch;
-    const char* test_tetgen = switch_tetgen;
-    
-    testr = strcspn(test_tetgen,"r");
-    testp = strcspn(test_tetgen,"p");
-    
-    if( testr == strlen(test_tetgen) )
-      { 
-	cout << "The option 'r' of tetgen is not used" << endl;
-	exit(1);
-      }
-    testp = strcspn(test_tetgen,"p");
-    if( testp != strlen(test_tetgen) )
-      { 
-	cout << "With TetGen :: the option 'p' is not possible to use with option 'r' " << endl;
-	exit(1);
-      }
-  }
-
-  int nv_t = Th3.nv;
-  int nt_t = Th3.nt;
-  int nbe_t = Th3.nbe;
-	
-  if(verbosity) cout << "3D RemplissageSurf3D:: Vertex  triangle2  border "  << nv_t << " "<< nt_t << " " << nbe_t<< endl;
-  // Creation des tableau de tetgen
-	
-  tetgenio in,out;
-  //tetgenio::facet *f;
-  //tetgenio::polygon *p;
-	
-  if(verbosity) cout << " tetgenio: vertex " << endl;
-  int itet,jtet;
-  // All indices start from 1.
-  in.firstnumber = 1;
-  in.numberofpoints = nv_t;
-  in.pointlist = new REAL[in.numberofpoints*3];
-  in.pointmarkerlist = new int[in.numberofpoints];
-  itet=0;
-  jtet=0;
-  for(int nnv=0; nnv < nv_t; nnv++)
-    {
-      in.pointlist[itet]   = Th3.vertices[nnv].x;
-      in.pointlist[itet+1] = Th3.vertices[nnv].y;
-      in.pointlist[itet+2] = Th3.vertices[nnv].z;       
-      in.pointmarkerlist[nnv] =  Th3.vertices[nnv].lab;   
-      itet=itet+3;
-    }
-  assert(itet==in.numberofpoints*3);
-
-  // Tetrahedrons
-  if(verbosity) cout << "tetrahedrons" << endl;
-  in.numberofcorners = 4;
-  in.numberoftetrahedra = Th3.nt;
-  in.tetrahedronlist = new int[in.numberofcorners*in.numberoftetrahedra];
-  in.numberoftetrahedronattributes = 1;
-  in.tetrahedronattributelist = new REAL[in.numberoftetrahedronattributes*in.numberoftetrahedra];
-  
-  in.tetrahedronvolumelist = new REAL[in.numberoftetrahedra];
-
-  i=0;
-  for(int nnt=0; nnt < Th3.nt; nnt++){
-    const Tet & K(Th3.elements[nnt]);
-
-    in.tetrahedronlist[i]   = Th3.operator()(K[0])+1;
-    in.tetrahedronlist[i+1] = Th3.operator()(K[1])+1;
-    in.tetrahedronlist[i+2] = Th3.operator()(K[2])+1;
-    in.tetrahedronlist[i+3] = Th3.operator()(K[3])+1;
-
-    in.tetrahedronvolumelist[nnt] = tsizevol[nnt];
-    in.tetrahedronattributelist[nnt] = K.lab;
-    
-    i=i+4;
-  }
-
-  
-  if(verbosity) cout << "lecture des facettes" << endl;
-  in.numberoftrifaces = Th3.nbe;
-  in.trifacelist = new int[3*in.numberoftrifaces];
-  in.trifacemarkerlist = new int[in.numberoftrifaces];
-
-  for(int ibe=0; ibe < Th3.nbe; ibe++){
-    const Triangle3 & K(Th3.be(ibe));
-    
-    in.trifacelist[3*ibe]   = Th3.operator()(K[0])+1;
-    in.trifacelist[3*ibe+1] = Th3.operator()(K[1])+1;
-    in.trifacelist[3*ibe+2] = Th3.operator()(K[2])+1; 					      
-    in.trifacemarkerlist[ibe] = K.lab;
-
-  }
-  
-  // mise a jour des nouvelles variables
- 
-  in.numberofholes = nbhole;
-  in.holelist = new REAL[3*nbhole];
-  
-  for(int ii=0; ii<3*in.numberofholes; ii++){
-    in.holelist[ii]   = tabhole[ii];
-    if(verbosity) cout << "in.holelist[ii]=" << in.holelist[ii] << endl;
-  }
-
-  in.numberofregions = nbregion;
-  in.regionlist = new REAL[5*nbregion];
-  for(int ii=0; ii<5*in.numberofregions; ii++){
-    in.regionlist[ii] = tabregion[ii];
-    if(verbosity) cout << "in.regionlist[ii]=" << in.regionlist[ii] << endl;
-  }
-
-  in.numberoffacetconstraints = nbfacecl;
-  in.facetconstraintlist = new REAL[2*in.numberoffacetconstraints];
-
-  for(int ii=0; ii<2*in.numberoffacetconstraints; ii++){
-    in.facetconstraintlist[ii+1] = tabfacecl[ii+1];
-  }
-
-  if(verbosity > 0){
-    cout << "tetgen: before tetrahedralize( , &in, &out);" << endl;
-    cout << "numberof regions "<<  in.numberofregions  << endl;
-    cout << "numberof hole "<<  in.numberofholes  << endl;
-  }
-  tetrahedralize(switch_tetgen, &in, &out);
-
-  if(verbosity > 0)
-    cout << "tetgen: after tetrahedralize( , &in, &out);" << endl;
- 
-  Mesh3 *T_Th3=mesh3_tetgenio_out( out);
-  if(verbosity > 0){
-    cout <<" Finish Mesh3 tetgen :: Vertex, Element, Border" << T_Th3->nv << " "<< T_Th3->nt << " " << T_Th3->nbe << endl;
-    cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  }
-  return T_Th3;
-}
-
-
-// Fonction Refine avec tetgen � l'aide d'une metrique
-
-Mesh3 * ReconstructionRefine_tetgen(char *switch_tetgen,const Mesh3 & Th3, 
-				     const int &nbhole, const double *tabhole, 
-				     const int & nbregion, const double *tabregion, 
-				     const int &nbfacecl, const double *tabfacecl, 
-				     const double *tsizevol, const int &sizeofmetric, const double *metric){
-
-  // verif option refine
-  int i;	
-  assert(Th3.nt != 0 );
-  {
-    size_t testr, testp;
-    int lenswitch;
-    const char* test_tetgen = switch_tetgen;
-    
-    testr = strcspn(test_tetgen,"r");
-    testp = strcspn(test_tetgen,"p");
-    
-    if( testr == strlen(test_tetgen) )
-      { 
-	cout << "The option 'r' of tetgen is not used" << endl;
-	exit(1);
-      }
-    testp = strcspn(test_tetgen,"p");
-    if( testp != strlen(test_tetgen) )
-      { 
-	cout << "With TetGen :: the option 'p' is not possible to use with option 'r' " << endl;
-	exit(1);
-      }
-  }
-
-  int nv_t = Th3.nv;
-  int nt_t = Th3.nt;
-  int nbe_t = Th3.nbe;
-	
-  if(verbosity) cout << "3D RemplissageSurf3D:: Vertex  triangle2  border "  << nv_t << " "<< nt_t << " " << nbe_t<< endl;
-  // Creation des tableau de tetgen
-	
-  tetgenio in,out;
-  //tetgenio::facet *f;
-  //tetgenio::polygon *p;
-	
-  if(verbosity) cout << " tetgenio: vertex " << endl;
-  int itet,jtet;
-  // All indices start from 1.
-  in.firstnumber = 1;
-  in.numberofpoints = nv_t;
-  in.pointlist = new REAL[in.numberofpoints*3];
-  in.pointmarkerlist = new int[in.numberofpoints];
-  itet=0;
-  jtet=0;
-  for(int nnv=0; nnv < nv_t; nnv++)
-    {
-      in.pointlist[itet]   = Th3.vertices[nnv].x;
-      in.pointlist[itet+1] = Th3.vertices[nnv].y;
-      in.pointlist[itet+2] = Th3.vertices[nnv].z;       
-      in.pointmarkerlist[nnv] =  Th3.vertices[nnv].lab;   
-      itet=itet+3;
-    }
-  assert(itet==in.numberofpoints*3);
-
-  if( verbosity ) 
-    cout << "sizeofmetric=" << sizeofmetric << endl;
-  in.numberofpointmtrs = sizeofmetric;
-  in.pointmtrlist = new REAL[in.numberofpointmtrs*in.numberofpoints];
-  for(int nnv=0; nnv < in.numberofpointmtrs*in.numberofpoints; nnv++)
-    in.pointmtrlist[nnv]=metric[nnv]; 
-
-  // Tetrahedrons
-  if(verbosity) cout << "tetrahedrons" << endl;
-  in.numberofcorners = 4;
-  in.numberoftetrahedra = Th3.nt;
-  in.tetrahedronlist = new int[in.numberofcorners*in.numberoftetrahedra];
-  in.numberoftetrahedronattributes = 1;
-  in.tetrahedronattributelist = new REAL[in.numberoftetrahedronattributes*in.numberoftetrahedra];
-  
-  in.tetrahedronvolumelist = new REAL[in.numberoftetrahedra];
-
-  i=0;
-  for(int nnt=0; nnt < Th3.nt; nnt++){
-    const Tet & K(Th3.elements[nnt]);
-
-    in.tetrahedronlist[i]   = Th3.operator()(K[0])+1;
-    in.tetrahedronlist[i+1] = Th3.operator()(K[1])+1;
-    in.tetrahedronlist[i+2] = Th3.operator()(K[2])+1;
-    in.tetrahedronlist[i+3] = Th3.operator()(K[3])+1;
-
-    in.tetrahedronvolumelist[nnt] = tsizevol[nnt];
-    in.tetrahedronattributelist[nnt] = K.lab;
-    
-    i=i+4;
-  }
-
-  
-  if(verbosity) cout << "lecture des facettes" << endl;
-  in.numberoftrifaces = Th3.nbe;
-  in.trifacelist = new int[3*in.numberoftrifaces];
-  in.trifacemarkerlist = new int[in.numberoftrifaces];
-
-  for(int ibe=0; ibe < Th3.nbe; ibe++){
-    const Triangle3 & K(Th3.be(ibe));
-    
-    in.trifacelist[3*ibe]   = Th3.operator()(K[0])+1;
-    in.trifacelist[3*ibe+1] = Th3.operator()(K[1])+1;
-    in.trifacelist[3*ibe+2] = Th3.operator()(K[2])+1; 					      
-    in.trifacemarkerlist[ibe] = K.lab;
-
-  }
-  
-  // mise a jour des nouvelles variables
- 
-  in.numberofholes = nbhole;
-  in.holelist = new REAL[3*nbhole];
-  
-  for(int ii=0; ii<3*in.numberofholes; ii++){
-    in.holelist[ii]   = tabhole[ii];
-    if(verbosity) cout << "in.holelist[ii]=" << in.holelist[ii] << endl;
-  }
-
-  in.numberofregions = nbregion;
-  in.regionlist = new REAL[5*nbregion];
-  for(int ii=0; ii<5*in.numberofregions; ii++){
-    in.regionlist[ii] = tabregion[ii];
-    if(verbosity) cout << "in.regionlist[ii]=" << in.regionlist[ii] << endl;
-  }
-
-  in.numberoffacetconstraints = nbfacecl;
-  in.facetconstraintlist = new REAL[2*in.numberoffacetconstraints];
-
-  for(int ii=0; ii<2*in.numberoffacetconstraints; ii++){
-    in.facetconstraintlist[ii+1] = tabfacecl[ii+1];
-  }
-
-  if(verbosity > 0){
-    cout << "tetgen: before tetrahedralize( , &in, &out);" << endl;
-    cout << "numberof regions "<<  in.numberofregions  << endl;
-    cout << "numberof hole "<<  in.numberofholes  << endl;
-  }
-  tetrahedralize(switch_tetgen, &in, &out);
-
-  if(verbosity > 0)
-    cout << "tetgen: after tetrahedralize( , &in, &out);" << endl;
- 
-  Mesh3 *T_Th3=mesh3_tetgenio_out( out);
-  if(verbosity > 0){
-    cout <<" Finish Mesh3 tetgen :: Vertex, Element, Border" << T_Th3->nv << " "<< T_Th3->nt << " " << T_Th3->nbe << endl;
-    cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  }
-  return T_Th3;
-}
-
-// declaration pour FreeFem++
-
-class Remplissage_Op : public E_F0mps 
-{
-public:
-  //typedef pmesh3 Result;
-  Expression eTh;    // Surface mesh
-  // ====================
-  // This parameter allow to add inside points of this initial volume mesh
-  Expression eVolTh;  
-  bool bVol;
-  // ====================
-  static const int n_name_param =9+2+1+1; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long   arg(int i,Stack stack, long  a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  string*  arg(int i,Stack stack, string* a ) const{ return nargs[i] ? GetAny< string* >( (*nargs[i])(stack) ): a;}
-public:
-  Remplissage_Op(const basicAC_F0 &  args,Expression tth) 
-    : eTh(tth)
-  {
-    if(verbosity >1) cout << "Remplissage du bord" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    if( nargs[2] && nargs[9] ) 
-	CompileError("uncompatible movemesh3 (Th, region= , reftet=  ");
-    if( nargs[3] && nargs[10] ) 
-	CompileError("uncompatible movemesh3 (Th, label= , refface=  ");
-    
-    bVol=false;
-    /*
-    if( BCastTo<Mesh3 *>(args[1]) ){
-      eVolTh = CastTo<Mesh3 *>(args[1]);
-      bVol=true;
-    }
-    else{
-      bVol=false;
-    } 
-    */
-  }
-  Remplissage_Op(const basicAC_F0 &  args,Expression tth, Expression vth) 
-    : eTh(tth),eVolTh(vth)
-  {
-    if(verbosity >1) cout << "Remplissage du bord" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    if( nargs[2] && nargs[9] ) 
-	CompileError("uncompatible movemesh3 (Th, region= , reftet=  ");
-    if( nargs[3] && nargs[10] ) 
-	CompileError("uncompatible movemesh3 (Th, label= , refface=  ");
-    
-    bVol=true;
-  }
-  /*
-    static ArrayOfaType  typeargs() { return  ArrayOfaType( atype<pmesh3>(),true ); }// all type
-    static  E_F0 * f(const basicAC_F0 & args) { return new Remplissage_Op(args);} 
-    operator aType () const { return atype<pmesh3>();} 
-  */
-  AnyType operator()(Stack stack)  const ;
-};
-
-
-basicAC_F0::name_and_type Remplissage_Op::name_param[]= {
-  {  "switch", &typeid(string*)},
-  {  "reftet", &typeid(long)}, //1
-  {  "refface", &typeid(KN_<long> )},//2
-  // new parmameters
-  {  "nbofholes", &typeid(long)},
-  {  "holelist", &typeid(KN_<double>)},
-  {  "nbofregions", &typeid(long)},
-  {  "regionlist", &typeid(KN_<double>)},
-  {  "nboffacetcl", &typeid(long)},
-  {  "facetcl", &typeid(KN_<double>)},
-  {  "region", &typeid(long)}, //9
-  {  "label", &typeid(KN_<long>)},//10
-  {  "addpointlist", &typeid(KN_<long>)}, // 11
-  {  "metric", &typeid(KN_<long>)}
-};
-
-class  Remplissage : public OneOperator { public:  
-    Remplissage() : OneOperator(atype<pmesh3>(),atype<pmesh3>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-	return  new Remplissage_Op( args,t[0]->CastTo(args[0]) ); 
-  }
-};
-
-
-class  RemplissageAddPoint : public OneOperator { public:  
-    RemplissageAddPoint() : OneOperator(atype<pmesh3>(),atype<pmesh3>(),atype<pmesh3>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new Remplissage_Op( args,t[0]->CastTo(args[0]),t[1]->CastTo(args[1]) ); 
-  }
-};
-
-AnyType Remplissage_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  ffassert( pTh );
-  Mesh3 &Th=*pTh;
-  Mesh3 *m= pTh;   // question a quoi sert *m ??
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int nbe=Th.nbe; // nombre d'aretes fontiere
-  cout << "Tetgen : Vertex Triangle Border " << nbv<< "  "<< nbt << " nbe "<< nbe << endl; 
- 
-  KN<long> zzempty;
-  //int intempty=0;
-  string stringempty= string("pqaAAYQC");
-  string* switch_tet(arg(0,stack,&stringempty));
-  int label_tet(arg(1,stack,arg(9,stack,0L)));  
-  KN<long> nrf (arg(2,stack,arg(10,stack,zzempty)));
-
-  // new parameters
-  KN<double> zdzempty;
-  int nbhole (arg(3,stack,0L));
-  KN<double> tabhole (arg(4,stack,zdzempty));
-  int nbregion (arg(5,stack,0L));
-  KN<double> tabregion (arg(6,stack,zdzempty));
-  int nbfacecl (arg(7,stack,0L));
-  KN<double> tabfacecl (arg(8,stack,zdzempty));
-  // parameter inside point
-  // need to add "i" to the switch
-  KN<double> InsidePoint(arg(11,stack,zdzempty)); // Add inside point in the volume mesh generated by tetgen
-  // need to add "m" to the switch
-  KN<double> metric(arg(12,stack,zdzempty)); // Add metric for tetgen
-
-  //=========================
-  // Add  a metric
-  int sizeofmetric= metric.N()/Th.nv;
-  if( nargs[12] ){
-    cout << " size of the metric " << metric.N()/Th.nv << endl;
-    assert( (metric.N()/Th.nv)*Th.nv == metric.N() );
-  }
-  // fin add a metric
-  //==========================
-  
-  //==========================
-  // Add inside points
-
-  if( nargs[11] )
-    assert( ((InsidePoint.N()/3)*3) == InsidePoint.N() );
-  // case with a inside meshes
-
-  if( bVol ){
-    // Inside point is given by a mesh
-    Mesh3 *pvolTh = GetAny<Mesh3 *>((*eVolTh)(stack));
-    Mesh3 &volTh=*pvolTh;
-    
-    KN<int> takevertex(volTh.nv);
-    takevertex = 1;
-    // determination of vertices in the border
-    for(int ibe=0; ibe<volTh.nbe; ibe++){
-      const Triangle3 & K(volTh.be(ibe));
-      takevertex[volTh.operator()(K[0])] = 0;
-      takevertex[volTh.operator()(K[1])] = 0;
-      takevertex[volTh.operator()(K[2])] = 0;
-    }
-    int nvInside=0;
-    // number of vertices inside the volume mesh
-    for(int iv=0; iv<volTh.nv; iv++){ 
-      if( takevertex[iv] == 1)
-	nvInside++;      
-    }
-    InsidePoint.resize(3*nvInside);
-    int loopnv=0;
-    for(int iv=0; iv<volTh.nv; iv++){ 
-      if( takevertex[iv] == 1){
-	InsidePoint[loopnv]   = volTh.vertices[iv].x;
-	InsidePoint[loopnv+1] = volTh.vertices[iv].y;
-	InsidePoint[loopnv+2] = volTh.vertices[iv].z;
-	loopnv=loopnv+3;
-      }      
-    }
-    assert( loopnv/3 == nvInside );
-  }
-  
-  if( !bVol && !nargs[11] ) assert( 	InsidePoint.N() == 0 ); 
-
-  //  fin add inisde point
-  //=========================
-    
-    if(nbregion==0) nbregion=tabregion.N()/5;
-    if(nbhole==0) nbhole=tabhole.N()/3;
-    if(nbfacecl==0) nbfacecl=tabfacecl.N()/2;
-    
-
-  // assertion au niveau de la taille 
-  ffassert( tabhole.N()   == 3*nbhole);
-  ffassert( tabregion.N() == 5*nbregion);
-  ffassert( tabfacecl.N() == 2*nbfacecl);
-
-  
-
-  //====================================
-  //  How to change string* into char* 
-  //====================================
-  cout << "string" << *switch_tet << endl; 
-  size_t size_switch_tet = switch_tet->size()+1;
-  char* switch_tetgen =new char[size_switch_tet];
-  strncpy(switch_tetgen, switch_tet->c_str(), size_switch_tet); 
-   
-  cout << "char" << switch_tetgen << endl; 
-  
-  ffassert( nrf.N() %2 ==0);
-
-  map<int,int> mapf;
-  for(int i=0;i<nrf.N();i+=2)
-    {
-      if(nrf[i] != nrf[i+1]){
-	mapf[nrf[i]]=nrf[i+1];
-      }
-    }
-  
-  if(verbosity>1) cout << "tetgen:" << "nbhole="   << nbhole << "nbregion=" << nbregion << endl;
-
-  /*
-    int addcheckorientation=0;
-    if( addcheckorientation==1  ){
-    cout << "check :: orientation des surfaces" << endl;
-    Th.BuildBoundaryElementAdj();
-    cout << "fin check :: orientation des surfaces" << endl;
-    }
-  */
-
-  int nbinside=InsidePoint.N()/3;
-  Mesh3 *Th3 = 0;
-
-  if( nargs[11] || nargs[12] || bVol){
-    Th3 = RemplissageSurf3D_tetgen_new( switch_tetgen, Th, label_tet, nbhole, tabhole, nbregion, tabregion, nbfacecl, tabfacecl, nbinside, InsidePoint, sizeofmetric, metric);
-    // delete multiple vertex
-    Th3->TrueVertex();
-  }
-  else
-    Th3 = RemplissageSurf3D_tetgen_new( switch_tetgen, Th, label_tet, nbhole, tabhole, nbregion, tabregion, nbfacecl, tabfacecl);
-  
-
-  cout << "finish tetgen " << endl;
-  // changement de label 
-  if( nrf.N() > 0){
-    cout << "changement de label" << endl;
-    for(int ii=0; ii< Th3->nbe; ii++){
-      const Triangle3 & K(Th3->be(ii));
-      int lab;
-      int iv[3];
-			
-      iv[0] = Th3->operator()(K[0]);
-      iv[1] = Th3->operator()(K[1]);
-      iv[2] = Th3->operator()(K[2]);
-			
-      map< int, int> :: const_iterator imap;
-      imap = mapf.find(K.lab);
-      if( imap != mapf.end() ){
-	lab = imap -> second;
-      }
-      else{
-	lab = K.lab;
-      }
-      Th3->be(ii).set(Th3->vertices,iv,lab);
-    }
-  }
-  cout << "action sur le maillage" << endl;
-
- // Th3->BuildBound();
- // Th3->BuildAdj();
- // Th3->Buildbnormalv();  
- // Th3->BuildjElementConteningVertex();
-  Th3->BuildGTree();
-  //Th3->decrement();    
-  Add2StackOfPtr2FreeRC(stack,Th3);
-  
-  *mp=mps;
-  delete [] switch_tetgen; 
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return Th3;
-}
-
-// Refine et Recontruction 
-
-class ReconstructionRefine_Op : public E_F0mps 
-{
-public:
-  Expression eTh;
-  static const int n_name_param =10+2+1; // 
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long   arg(int i,Stack stack, long  a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  string*  arg(int i,Stack stack, string* a ) const{ return nargs[i] ? GetAny< string* >( (*nargs[i])(stack) ): a;}
-public:
-  ReconstructionRefine_Op(const basicAC_F0 &  args,Expression tth) 
-    : eTh(tth)
-  {
-    if(verbosity >1) cout << "ReconstructionRefine du bord"<< endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    if( nargs[2] && nargs[10] ) 
-	CompileError("uncompatible ... (Th, region= , reftet=  ");
-    if( nargs[3] && nargs[11] ) 
-	CompileError("uncompatible ... (Th, label= , refface=  ");
-    
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-
-basicAC_F0::name_and_type ReconstructionRefine_Op::name_param[]= {
-  {  "switch", &typeid(string*)},
-  {  "reftet", &typeid(KN_<long>)}, 
-  {  "refface", &typeid(KN_<long> )},
-  // new parmameters
-  {  "nbofholes", &typeid(long)},
-  {  "holelist", &typeid(KN_<double>)},
-  {  "nbofregions", &typeid(long)},
-  {  "regionlist", &typeid(KN_<double>)},
-  {  "nboffacetcl", &typeid(long)},
-  {  "facetcl", &typeid(KN_<double>)},
-  {  "sizeofvolume", &typeid(double)},
-  {  "region", &typeid(KN_<long>)}, //10
-  {  "label", &typeid(KN_<long>)},//11
-  {  "metric", &typeid(KN_<double>)}//12  // parameter for tetgen
-    
-};
-
-class  ReconstructionRefine : public OneOperator { public:  
-
-  ReconstructionRefine() : OneOperator(atype<pmesh3>(),atype<pmesh3>()) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    return  new ReconstructionRefine_Op( args, t[0]->CastTo(args[0]) ); 
-  }
-};
-
-AnyType ReconstructionRefine_Op::operator()(Stack stack)  const 
-{
-  MeshPoint *mp(MeshPointStack(stack)) , mps=*mp;
-  Mesh3 * pTh= GetAny<Mesh3 *>((*eTh)(stack));
-  //double msvol= GetAny<double>((*maxvol)(stack));
- 
-  ffassert( pTh );
-  Mesh3 &Th=*pTh;
-  Mesh3 *m= pTh;   // question a quoi sert *m ??
-  int nbv=Th.nv; // nombre de sommet 
-  int nbt=Th.nt; // nombre de triangles
-  int nbe=Th.nbe; // nombre d'aretes fontiere
-  cout << "refine tetgen: Vertex Triangle Border " << nbv<< "  "<< nbt << " "<< nbe << endl; 
- 
-  KN<long> zzempty;
-  //int intempty=0;
-  string stringempty= string("rqaAAYQC");
-  string* switch_tet(arg(0,stack,&stringempty));
-  KN<long> nrtet(arg(1,stack,arg(10,stack,zzempty)));  
-  KN<long> nrf (arg(2,stack,arg(11,stack,zzempty)));
-
-  // new parameters
-  KN<double> zdzempty;
-  int nbhole (arg(3,stack,0L));
-  KN<double> tabhole (arg(4,stack,zdzempty));
-  int nbregion (arg(5,stack,0L));
-  KN<double> tabregion (arg(6,stack,zdzempty));
-  int nbfacecl (arg(7,stack,0L));
-  KN<double> tabfacecl (arg(8,stack,zdzempty));
-
-  KN<double> metric(arg(12,stack,zdzempty)); // Add metric for tetgen
-
-  //=========================
-  // Add  a metric
-  int sizeofmetric = metric.N()/Th.nv;
-  if( nargs[12] ){
-    cout << " size of the metric " << metric.N()/Th.nv << endl;
-    assert( (metric.N()/Th.nv)*Th.nv == metric.N() );
-  }
-  // fin add a metric
-  //==========================
-    if(nbregion==0) nbregion=tabregion.N()/5;
-    if(nbhole==0) nbhole=tabhole.N()/3;
-    if(nbfacecl==0) nbfacecl=tabfacecl.N()/2;
-    
-  // assertion au niveau de la taille
-    
-  ffassert( tabhole.N()   == 3*nbhole);
-  ffassert( tabregion.N() == 5*nbregion);
-  ffassert( tabfacecl.N() == 2*nbfacecl);
-  
-  //====================================
-  //  How to change string* into char* 
-  //====================================
-  size_t size_switch_tet = switch_tet->size()+1;
-  char* switch_tetgen =new char[size_switch_tet];
-  strncpy(switch_tetgen, switch_tet->c_str(), size_switch_tet); 
-   
-  ffassert( nrf.N() %2 ==0);
-  map<int,int> mapf;
-  for(int i=0;i<nrf.N();i+=2)
-    {
-      if(nrf[i] != nrf[i+1]){
-	mapf[nrf[i]]=nrf[i+1];
-      }
-    }
-
-  ffassert( nrtet.N() %2 ==0);
-  map<int,int> maptet;
-  for(int i=0;i<nrtet.N();i+=2)
-    {
-      if(nrtet[i] != nrtet[i+1]){
-	maptet[nrtet[i]]=nrtet[i+1];
-      }
-    }
-
-  KN<double> tsizevol(nbt);
-  MeshPoint *mp3(MeshPointStack(stack)); 
-	
-  R3 Cdg_hat = R3(1./4.,1./4.,1./4.);
-
-  for (int it=0; it<nbt; it++){
-    Tet & K(Th.elements[it]);
-
-    mp3->set( Th, K(Cdg_hat), Cdg_hat, K, K.lab);
-    if( nargs[9]){
-      tsizevol[it]=  GetAny< double >( (*nargs[9])(stack) );
-    }
-    else if(tabregion.N()==0){
-      for(int i=0; i< nbregion;i++){
-	if( K.lab == tabregion[3+5*i] ){
-	  tsizevol[it] = tabregion[4+5*i];
-	}
-      }
-      
-    }
-    else{
-      tsizevol[it] = K.mesure();
-    }
-  }
-
-  cout << "Before reconstruction:" << " nbhole="   << nbhole << " nbregion=" << nbregion << endl;
- 
-  Mesh3 *Th3=0; 
-  
-  int RefineMethod=-1;
-  if( nargs[9] ) 
-    RefineMethod=1;
-  if( nargs[12] ) 
-    RefineMethod=0;
-  
-  // Add parameter "perhaps' with add a metric which defined sizeofvolume
-
-  if( RefineMethod == 1) 
-    Th3 = ReconstructionRefine_tetgen(switch_tetgen, Th, nbhole, tabhole, nbregion, tabregion, nbfacecl,tabfacecl,tsizevol);
-  else if( RefineMethod == 0) 
-    Th3 = ReconstructionRefine_tetgen(switch_tetgen, Th, nbhole, tabhole, nbregion, tabregion, nbfacecl,tabfacecl,tsizevol,sizeofmetric,metric);
-  else{
-    cerr << " We can't refine the initial mesh with tetgen. No sizeofvolume or metric is given " << endl;
-    exit(1);
-  }
-
-  cout << "finish reconstruction " << endl;
-  // changement de label 1
- 
-  if( nrtet.N() > 0){
-    for(int ii=0; ii< Th3->nt; ii++){
-      const Tet & K(Th3->elements[ii]);
-      int lab;
-      int iv[4];
-			
-      iv[0] = Th3->operator()(K[0]);
-      iv[1] = Th3->operator()(K[1]);
-      iv[2] = Th3->operator()(K[2]);
-      iv[3] = Th3->operator()(K[3]);
-
-      map< int, int> :: const_iterator imap;
-      imap = maptet.find(K.lab);
-      if( imap != maptet.end() ){
-	lab = imap -> second;
-      }
-      else{
-	lab = K.lab;
-      }
-      Th3->elements[ii].set(Th3->vertices,iv,lab);
-    }
-  }
-
-  if( nrf.N() > 0){
-    for(int ii=0; ii< Th3->nbe; ii++){
-      const Triangle3 & K(Th3->be(ii));
-      int lab;
-      int iv[3];
-			
-      iv[0] = Th3->operator()(K[0]);
-      iv[1] = Th3->operator()(K[1]);
-      iv[2] = Th3->operator()(K[2]);
-			
-      map< int, int> :: const_iterator imap;
-      imap = mapf.find(K.lab);
-      if( imap != mapf.end() ){
-	lab = imap -> second;
-      }
-      else{
-	lab = K.lab;
-      }
-      Th3->be(ii).set(Th3->vertices,iv,lab);
-    }
-  }
-  //cout << "fin du changement de label " << endl;
-  
-//  Th3->BuildBound();
-//  Th3->BuildAdj();
-//  Th3->Buildbnormalv();  
-//  Th3->BuildjElementConteningVertex();
-  Th3->BuildGTree();
-  //Th3->decrement();    
-  Add2StackOfPtr2FreeRC(stack,Th3);
-
-  delete [] switch_tetgen;
-  *mp=mps;
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return Th3;
-}
-
-
-
-// ConvexHull3D_tetg_Op
-
-class ConvexHull3D_tetg_Op : public E_F0mps 
-{
-public:
-  Expression numofpts;
-  Expression xx,yy,zz;
-  static const int n_name_param =5; //
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long   arg(int i,Stack stack, long  a ) const{ return nargs[i] ? GetAny< long  >( (*nargs[i])(stack) ): a;}
-  string*  arg(int i,Stack stack, string* a ) const{ return nargs[i] ? GetAny< string* >( (*nargs[i])(stack) ): a;}
-  
-public:
-  ConvexHull3D_tetg_Op(const basicAC_F0 &  args, Expression nop, 
-  Expression ffxx, Expression ffyy, Expression ffzz ) 
-    : numofpts(nop), xx(ffxx), yy(ffyy), zz(ffzz)
-  {
-    if(verbosity) cout << "Convex Hull with TetGen" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    if( nargs[2] && nargs[3] ) 
-	CompileError("uncompatible ... (Th, region= , reftet=  ");
-    if( nargs[3] && nargs[4] ) 
-	CompileError("uncompatible ... (Th, label= , refface=  ");
-    
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-
-basicAC_F0::name_and_type  ConvexHull3D_tetg_Op::name_param[]= {
-  {  "switch", &typeid(string*)},
-  {  "reftet", &typeid(long)}, 
-  {  "refface", &typeid(long)},
-    {  "region", &typeid(long)}, 
-    {  "label", &typeid(long)}
-};
-
-class ConvexHull3D_tetg : public OneOperator { public:  
-     ConvexHull3D_tetg() : OneOperator( atype<pmesh3>(), atype<long>(), 
-     atype< KN_<double> >(), atype< KN_<double> >(), atype< KN_<double> >() ) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-	return  new  ConvexHull3D_tetg_Op( args,t[0]->CastTo(args[0]), 
-	      t[1]->CastTo(args[1]), t[2]->CastTo(args[2]), t[3]->CastTo(args[3]) ); 
-  }
-};
-
-AnyType  ConvexHull3D_tetg_Op::operator()(Stack stack)  const 
-{
-  int nbv = (int) GetAny<long>((*numofpts)(stack));
-  KN<double> cxx(nbv),cyy(nbv),czz(nbv);
-  
-  cxx = GetAny< KN<double> > ((*xx)(stack));
-  cyy = GetAny< KN<double> > ((*yy)(stack));
-  czz = GetAny< KN<double> > ((*zz)(stack));
-  
-
-  assert( cxx.N() == nbv );
-  assert( cyy.N() == nbv );
-  assert( czz.N() == nbv );
-     
-  KN<long> zzempty;
-  //int intempty=0;
-  string stringempty= string("YqaAAQC");
-  string* switch_tet(arg(0,stack,&stringempty));
-  int label_tet(arg(1,stack,arg(3,stack,0L)));  
-  int label_face(arg(2,stack,arg(4,stack,1L)));
-
-  //====================================
-  //  How to change string* into char* 
-  //====================================
-  size_t size_switch_tet = switch_tet->size()+1;
-  char* switch_tetgen =new char[size_switch_tet];
-  strncpy(switch_tetgen, switch_tet->c_str(), size_switch_tet); 
-  //======================================
- 
-  Mesh3 *Th3 =  Convexhull_3Dpoints ( switch_tetgen, nbv, cxx, cyy, czz, label_tet, label_face );
-	
-//  Th3->BuildBound();
-//  Th3->BuildAdj();
-//  Th3->Buildbnormalv();  
-//  Th3->BuildjElementConteningVertex();
-  Th3->BuildGTree();
-  //Th3->decrement();   
-  Add2StackOfPtr2FreeRC(stack,Th3);
-  
-  delete [] switch_tetgen;
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return Th3;
-}
-
-// ConvexHull3D_tetg_file_Op
-
-class ConvexHull3D_tetg_file_Op: public E_F0mps 
-{
-public:
-  Expression filename;
-  static const int n_name_param =5; //
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  
-  KN_<long>  arg(int i,Stack stack,KN_<long> a ) const
-  { return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-  KN_<double>  arg(int i,Stack stack,KN_<double> a ) const
-  { return nargs[i] ? GetAny<KN_<double> >( (*nargs[i])(stack) ): a;}
-  double  arg(int i,Stack stack,double a ) const{ return nargs[i] ? GetAny< double >( (*nargs[i])(stack) ): a;}
-  long  arg(int i,Stack stack, long a ) const{ return nargs[i] ? GetAny< long >( (*nargs[i])(stack) ): a;}
-  string*  arg(int i,Stack stack, string* a ) const{ return nargs[i] ? GetAny< string* >( (*nargs[i])(stack) ): a;}
-  
-public:
-  ConvexHull3D_tetg_file_Op(const basicAC_F0 &  args, Expression zfilename ) 
-    : filename(zfilename)
-  {
-    if(verbosity) cout << "Convex Hull with TetGen" << endl;
-    args.SetNameParam(n_name_param,name_param,nargs);
-    if( nargs[1] && nargs[3] )
-	CompileError("uncompatible ... (Th, region= , reftet=  ");
-    if( nargs[2] && nargs[4] )
-	CompileError("uncompatible ... (Th, label= , refface=  ");
-    
-  } 
-  
-  AnyType operator()(Stack stack)  const ;
-};
-
-
-basicAC_F0::name_and_type  ConvexHull3D_tetg_file_Op::name_param[]= {
-  {  "switch", &typeid(string*)},
-  {  "reftet", &typeid(long)}, 
-  {  "refface", &typeid(long)},
-    {  "region", &typeid(long)}, 
-    {  "label", &typeid(long)}
-    
-};
-
-class ConvexHull3D_tetg_file : public OneOperator { public:  
-     ConvexHull3D_tetg_file() : OneOperator( atype<pmesh3>(), atype<string *>() ) {}
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-	return  new  ConvexHull3D_tetg_file_Op( args,t[0]->CastTo(args[0]) ); 
-  }
-};
-
-AnyType  ConvexHull3D_tetg_file_Op::operator()(Stack stack)  const 
-{
-  string*  pointsfile = GetAny<string*>((*filename)(stack));
-
-  // lecture du fichier contenant les points
-  int nbv;
-  //int lec;
- 
-  ifstream fp( pointsfile->c_str() );
-
-  if(!fp) {
-    cerr << "  -- tetgconvexhull : Erreur openning " << pointsfile <<endl; 
-    exit(1);
-  }
-  if(verbosity>1)
-    cout << "  -- tetgconvexhull:  Read On file \"" << pointsfile <<"\""<<  endl;
-
-  fp >> nbv;
- 
-  if(verbosity>1)
-  cout << "  -- Nb of Points " << nbv << endl;
-  KN<double> cxx(nbv), cyy(nbv), czz(nbv);
-
-  
-  for(int lec=0;lec<nbv;lec++)
-    {
-      fp >> cxx[lec] >> cyy[lec] >> czz[lec];
-    }
-  ffassert(fp.good()); 
-  if(verbosity>1)
-  cout << " bound x " << cxx.min() << " " << cxx.max() 
-       <<  "  y " << cyy.min() << " "<< cyy.max()
-       <<  "  z " << czz.min() << " "<< czz.max() << endl; 
-//  if( lec !=nbv ) {
-//     cerr << "  -- tetgconvexhull : Erreur Reading File " << pointsfile <<endl; 
-//     cerr << " number of points " << nbv << " " <<"number of lecture" << lec << endl;  
-//     exit(1);
-//   }
-//   assert(lec==nbv);
-
-  fp.close();    
-
-  KN<long> zzempty;
-  //int intempty=0;
-  string stringempty= string("YQV");
-  string* switch_tet(arg(0,stack,&stringempty));
-  int label_tet(arg(1,stack,arg(3,stack,0L)));  
-  int label_face(arg(2,stack,arg(4,stack,1L)));
-
-  //====================================
-  //  How to change string* into char* 
-  //====================================
-  size_t size_switch_tet = switch_tet->size()+1;
-  char* switch_tetgen =new char[size_switch_tet];
-  strncpy(switch_tetgen, switch_tet->c_str(), size_switch_tet); 
-  //======================================
- 
-  Mesh3 *Th3 =new Mesh3; 
-  
-  Th3 = Convexhull_3Dpoints( switch_tetgen, nbv, cxx, cyy, czz, label_tet, label_face );
-	
-//  Th3->BuildBound();
-//  Th3->BuildAdj();
-//  Th3->Buildbnormalv();  
-//  Th3->BuildjElementConteningVertex();
-  Th3->BuildGTree();
-  //Th3->decrement();    
-  Add2StackOfPtr2FreeRC(stack,Th3);
-
-  delete [] switch_tetgen;
-  cout << "FreeFem++: End check mesh given by tetgen" << endl;  
-  return Th3;
-}
-
-
-<<<<<<< HEAD
-/*  class Init1 { public:
-  Init1();
-};
-
-$1 */
-
-static void Load_Init(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-=======
-class Init1 { public:
-  Init1();
-};
-
-LOADINIT(Init1)  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init1::Init1(){  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  
-  //if (verbosity)
-  if(verbosity) cout << " load: tetgen  " << endl;
-  
-  Global.Add("tetgconvexhull","(",new ConvexHull3D_tetg_file);
-  Global.Add("tetgconvexhull","(",new ConvexHull3D_tetg);
-  Global.Add("tetgtransfo","(",new Build2D3D);
-  Global.Add("tetg","(",new Remplissage);
-  Global.Add("tetg","(",new RemplissageAddPoint);
-  Global.Add("tetgreconstruction","(",new ReconstructionRefine);
-
-}
-// because i include this file in tetgen.cpp (very bad) FH
-// a will correct this in next version ...
-#define  WITH_NO_INIT
-#include "msh3.cpp" 
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-load/thresholdings.cpp.orig b/examples++-load/thresholdings.cpp.orig
deleted file mode 100644
index 3cfa38e..0000000
--- a/examples++-load/thresholdings.cpp.orig
+++ /dev/null
@@ -1,108 +0,0 @@
-// ORIG-DATE:   September 2010
-// -*- Mode : c++ -*%
-//
-// SUMMARY  : seuillage des matrices EF de freefem++   
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-   
-#include "ff++.hpp"
-
-//using namespace Fem2D;
-
-template<class T> struct  Thresholding{ 
-  Matrice_Creuse<T> *v;
-  Thresholding( Matrice_Creuse<T> * vv) : v(vv) {}
- }; 
-
-template<class R> 
-Matrice_Creuse<R> *thresholding2(const Thresholding<R> & t,const double &threshold)
- {  
-     Matrice_Creuse<R> * sparse_mat =t.v;
-     if(sparse_mat) 
-       {
-	 int n=sparse_mat->N(),m=sparse_mat->M();
-	 map<pair<int,int>,R> M;
-	 if (n >0 && m>0 && sparse_mat->A) 
-	   {
-	     int nrt = sparse_mat->A->NbCoef();
-	     sparse_mat->A->addMatTo(R(1.),M,false,0,0,false,threshold);	    
-<<<<<<< HEAD
-	 //    (M)[make_pair(n-1,m-1)]+=R();
-=======
-	     (M)[make_pair(n-1,m-1)]+=R();
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	     bool sym=false; // bof bof  
-	     sparse_mat->typemat=TypeSolveMat(TypeSolveMat::GMRES); //  none square matrice (morse)
-	     sparse_mat->A.master(new MatriceMorse<R>(n,m,M,sym));
-	     nrt-=sparse_mat->A->NbCoef();
-	     if(verbosity) cout << "  thresholding= remove " << nrt << " them in the matrix " << sparse_mat << " " << threshold << endl; 
-	   }
-	 else if(verbosity) cout << " empty matrix " <<sparse_mat << endl;
-       }
-  return  t.v;
- }
-
-template<class T> 
-Thresholding<T> to_Thresholding( Matrice_Creuse<T> *v){ return Thresholding<T>(v);}
-
-
-<<<<<<< HEAD
-/*  class Init1 { public:
-  Init1();
-};
- 
-$1 */
-
-static void Load_Init()
-=======
-class Init1 { public:
-  Init1();
-};
- 
-LOADINIT(Init1)  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init1::Init1()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{  // le constructeur qui ajoute la fonction "splitmesh3"  a freefem++ 
-    typedef Thresholding<double>  TMR ;
-    typedef Thresholding<Complex>  TMC ;
-    typedef Matrice_Creuse<double>  MR ;
-    typedef Matrice_Creuse<Complex>  MC ;
-    Dcl_Type< TMR > ();
-    Dcl_Type< TMC > ();
-    TMR t(0);
-    thresholding2(t,0.);
-    Add<MR *>("thresholding",".",new OneOperator1< TMR ,MR *>(to_Thresholding));
-    Add<TMR   >("(","",new OneOperator2_<MR  *, TMR , double >(thresholding2)); 
-    Add<MC *>("thresholding",".",new OneOperator1< TMC ,MC *>(to_Thresholding));
-    Add<TMC >("(","",new OneOperator2_<MC *, TMC, double >(thresholding2)); 
-    
-}
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/._DDM-NSUzawaCahouetChabart.edp b/examples++-mpi/._DDM-NSUzawaCahouetChabart.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-mpi/._DDM-NSUzawaCahouetChabart.edp and /dev/null differ
diff --git a/examples++-mpi/._MUMPS_FreeFem.cpp b/examples++-mpi/._MUMPS_FreeFem.cpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._MUMPS_FreeFem.cpp and /dev/null differ
diff --git a/examples++-mpi/._PETSc.hpp b/examples++-mpi/._PETSc.hpp
deleted file mode 100755
index ca8f93d..0000000
Binary files a/examples++-mpi/._PETSc.hpp and /dev/null differ
diff --git a/examples++-mpi/._additional.idp b/examples++-mpi/._additional.idp
deleted file mode 100755
index f6e69b8..0000000
Binary files a/examples++-mpi/._additional.idp and /dev/null differ
diff --git a/examples++-mpi/._complex_SuperLU_DIST_FreeFem.cpp~HEAD b/examples++-mpi/._complex_SuperLU_DIST_FreeFem.cpp~HEAD
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._complex_SuperLU_DIST_FreeFem.cpp~HEAD and /dev/null differ
diff --git a/examples++-mpi/._complex_SuperLU_DIST_FreeFem.cpp~upstream_3.34.2 b/examples++-mpi/._complex_SuperLU_DIST_FreeFem.cpp~upstream_3.34.2
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._complex_SuperLU_DIST_FreeFem.cpp~upstream_3.34.2 and /dev/null differ
diff --git a/examples++-mpi/._dSuperLU_DIST.cpp~HEAD b/examples++-mpi/._dSuperLU_DIST.cpp~HEAD
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._dSuperLU_DIST.cpp~HEAD and /dev/null differ
diff --git a/examples++-mpi/._dSuperLU_DIST.cpp~upstream_3.34.2 b/examples++-mpi/._dSuperLU_DIST.cpp~upstream_3.34.2
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._dSuperLU_DIST.cpp~upstream_3.34.2 and /dev/null differ
diff --git a/examples++-mpi/._hips_FreeFem.cpp b/examples++-mpi/._hips_FreeFem.cpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._hips_FreeFem.cpp and /dev/null differ
diff --git a/examples++-mpi/._hips_FreeFem.cpp.orig b/examples++-mpi/._hips_FreeFem.cpp.orig
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._hips_FreeFem.cpp.orig and /dev/null differ
diff --git a/examples++-mpi/._parms_FreeFem.cpp b/examples++-mpi/._parms_FreeFem.cpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._parms_FreeFem.cpp and /dev/null differ
diff --git a/examples++-mpi/._parms_FreeFem.cpp.orig b/examples++-mpi/._parms_FreeFem.cpp.orig
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._parms_FreeFem.cpp.orig and /dev/null differ
diff --git a/examples++-mpi/._real_SuperLU_DIST_FreeFem.cpp~HEAD b/examples++-mpi/._real_SuperLU_DIST_FreeFem.cpp~HEAD
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._real_SuperLU_DIST_FreeFem.cpp~HEAD and /dev/null differ
diff --git a/examples++-mpi/._real_SuperLU_DIST_FreeFem.cpp~upstream_3.34.2 b/examples++-mpi/._real_SuperLU_DIST_FreeFem.cpp~upstream_3.34.2
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._real_SuperLU_DIST_FreeFem.cpp~upstream_3.34.2 and /dev/null differ
diff --git a/examples++-mpi/._removeDOF.cpp b/examples++-mpi/._removeDOF.cpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._removeDOF.cpp and /dev/null differ
diff --git a/examples++-mpi/._schwarz.cpp b/examples++-mpi/._schwarz.cpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/examples++-mpi/._schwarz.cpp and /dev/null differ
diff --git a/examples++-mpi/._schwarz.edp b/examples++-mpi/._schwarz.edp
deleted file mode 100644
index f6e69b8..0000000
Binary files a/examples++-mpi/._schwarz.edp and /dev/null differ
diff --git a/examples++-mpi/._stokes-2d.edp b/examples++-mpi/._stokes-2d.edp
deleted file mode 100755
index f6e69b8..0000000
Binary files a/examples++-mpi/._stokes-2d.edp and /dev/null differ
diff --git a/examples++-mpi/DDM-Schwarz-macro.idp.orig b/examples++-mpi/DDM-Schwarz-macro.idp.orig
deleted file mode 100644
index c7fbae2..0000000
--- a/examples++-mpi/DDM-Schwarz-macro.idp.orig
+++ /dev/null
@@ -1,406 +0,0 @@
-// MPIGMRSmacro.idp  file..  version 0.1
-// include in MPIGMRES.edp file ..
-// Frederic Hecht 2010 
-// LGPL licence 
-// Author Frederic.Hecht at upmc.fr
-// ------------------------------- 
-
-//  macro to def // send-recv message 
-// -----------------------------------
-
-/******************************************************************/ 
-func real  maxM(matrix & A)
-  {
-  	int[int] I(1),J(1);
-  	real[int] C(1);
-  	[I,J,C] =A;
-  	return C.max ;
-  }
-  
-/******************************************************************/   
-macro  InitU(n,Vh,Th,aTh,U)
-Vh[int] U(n);
-for(int j=0;j<n;++j)
-  {  
-  	 Th=aTh[j];
-  	 U[j]=0;
-  }
-//EOM
-
-/******************************************************************/ 
-macro   ISendRecvAny(comm,jpart,Si,Ri)
-{ /* sorry no Irecv of complex objet ...*/
-  int n= jpart.n,nn=n+n;
-  if(vdebug) cout << mpirank << " --ISendRecvAny " << n << endl;
-  mpiRequest[int] rq(nn);
-  
-  for (int j=0;j<n;++j)
-    Irecv(processor(jpart[j],comm,rq[j]),Ri[j]);
-  if(vdebug) cout << mpirank << " ++ISendRecvAny " << n << endl;
-  
-  for (int j=0;j<n;++j)
-    Isend(processor(jpart[j],comm,rq[n+j]),Si[j]);
-for (int j=0;j<nn;++j)
-  {
-  int k= mpiWaitAny(rq);
-  if(vdebug)
-    cout << " ++ISendRecvAny wait: get " << k << endl;
-  }
-}
-//EOM
-
-/******************************************************************/ 
-macro   SendRecvAny(comm,jpart,Si,Ri)
-{  verbosity=200;
- 	int n= jpart.n;
- 	for (int j=0;j<n;++j)
-       processor(comm,jpart[j]) << Si[j];
-    cout << " ** wait revc " << endl;
- 	for (int j=0;j<n;++j)
-       processor(comm,jpart[j]) >> Ri[j];
-}
-// EOM 
-
-/******************************************************************/ 
-macro CheckUV(comm,jpart,Si,Ri)
-{
-	 	int n= jpart.n;
-  		int[int] rn(n),sn(n),in(n);
- 		for (int j=0;j<n;++j) 
- 		  { sn[j]= Si[j][].n;		  	  
- 		   processor(jpart[j],comm) << sn[j];
- 		   processor(jpart[j],comm) << ipart;
- 		  }
- 		 for (int j=0;j<n;++j) 
- 		   processor(jpart[j],comm) >> rn[j];
- 		 for (int j=0;j<n;++j) 
- 		   processor(jpart[j],comm) >> in[j];
-
- 		 int err=0;
- 		 for (int j=0;j<n;++j) 
- 		  { 
- 		   int rj=Ri[j][].n;
- 		   err += rj != rn[j];
- 		   cout << rj << " s ========= r " << rn[j] << "      " << ipart << " <->  " << in[j] << " " << err << endl;  
- 		   
- 		  }
- 	     assert(err==0);
-}//EOM
-
-/******************************************************************/ 
-macro   SendRecvUV(comm,jpart,Si,Ri)
-{
- 	int n= jpart.n;
-	mpiRequest[int] rq(n);
-    for (int j=0;j<n;++j)
-       Irecv(processor(jpart[j],comm,rq[j]), Ri[j][]);
-       
- 	for (int j=0;j<n;++j)
-       processor(jpart[j],comm) << Si[j][];
-  /* 	for (int j=0;j<n;++j)
-       processor(jpart[j],comm) >> Ri[j][];*/
- 
-    for (int j=0;j<n;++j)
-	   int k= mpiWaitAny(rq);
-}
-// EOF 
-
-   /* Trick  */
- 
-/**********************************************************/
-macro BuildPartitioning(sizeoverlaps,mesh,Thg,Thi,aThij,RAS,pii,jpart,comm,vdebug) 
-/**********************************************************/
-
-int[int] jpart(mpiSize(comm)); /*  list of jpart */
-mesh[int] aThij(1); 
-mesh Thi;
-Thi=Thg;
-fespace Vhi(Thi,P1); /**/
-Vhi pii;  
-
-{
- int npart = mpiSize(comm);
- fespace Phg(Thg,P0);
- fespace Vhg(Thg,P1);
-
-  int njpart=0;
-  int ipart= mpiRank(comm);
-    /* a good trick : int#mesh =  */
-  func  intmesh= int2d;
-  func  intmesh3=int3d;
-  /* end trick */ 
-int dplot1 =0;
-int vdebug1 = vdebug;
-Phg  part;
-mesh Thin;
-/* build the partitioning ...  */
-{    
- int[int] nupart(Thg.nt);
- nupart=0; 
- if(npart>1 && ipart==0)
-   metisdual(nupart,Thg,npart); 
-   
- broadcast(processor(0,comm),nupart);
- for(int i=0;i<nupart.n;++i)
-    part[][i]=nupart[i];
-  
-} /* build ...  */
-
-
-<<<<<<< HEAD
-if(vdebug>10&& mpirank==0 && !NoGraphicWindow)
-=======
-if(vdebug>10&& mpirank==0)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  plot(part,fill=1,cmm="dual",wait=1);
-
-/* overlapping partition  */
-
- Phg suppi= abs(part-ipart)<0.1; 
- Vhg unssd;                       /* boolean function 1 in the subdomain 0 elswhere  */
- Thin=trunc(Thg,suppi>0,label=10); /* non-overlapping mesh, interfaces have label 10 */
- int nnn = sizeoverlaps*2;/* to be sure  */
- AddLayers(Thg,suppi[],nnn,unssd[]);    /* see above ! suppi and unssd are modified   */
- unssd[] *= nnn;  /*  to put value nnn a 0   */
- real nnn0 = nnn - sizeoverlaps +  0.001   ;
- Thi=trunc(Thg,unssd>nnn0 ,label=10); /* overlapping mesh, interfaces have label 10 */
- 
- settt 
-
-
- int npij=npart;
- Vhi[int] pij(npij);/* local partition of unit + pii  */
- 
- 
- real nnn1=  + 0.001  ;
- { /*
-   construction of the partition of the unit,
-    let phi_i P1 FE function 1 on Thin and zero ouside of Thi and positive
-    the partition is build with  
-  $$  p_i = phi_i/ \sum phi_i 
-    
-    to build the partition of one domain i
-    we nned to find all j such that supp(phi_j) \cap supp(phi_j) is not empty
-    <=> int phi_j
- */
- /*   build a local mesh of thii such that all compuation of the unit partition are  */
- /*   exact in thii  */
- mesh Thii=trunc(Thg,unssd>nnn1 ,label=10); /* overlapping mesh, interfaces have label 10  */
-
-
- {  
-   /* find all j  mes (supp(p_j) \cap supp(p_i)) >0   */
-   /* compute all phi_j on Thii  */
-   /*  remark supp p_i include in Thi  */
-   /*   */
-   fespace Phii(Thii,P0);
-   fespace Vhii(Thii,P1);
-   Vhi sumphi=0;
-   jpart=0;
-   njpart=0;
-   int nlayer=RAS?1:sizeoverlaps;
-   if(ipart==0) 
-     cout <<" nlayer=" << nlayer << endl;
-   pii= max(unssd-nnn+nlayer,0.)/nlayer;
-   if(dplot1) plot(pii,wait=1,cmm=" 0000");
-   sumphi[] +=  pii[];
-   if(dplot1) plot(sumphi,wait=1,cmm=" summ 0000");
-   Vhii phii=0;
-   real epsmes=1e-10*Thii.mesure;
-   /*cout <<  " epsmes = " << epsmes <<endl;*/
-   for (int i=0;i<npart;++i)
-     if(i != ipart ) 
-       { 
-	    Phii suppii=abs(i-part)<0.2; 
-	    if(suppii[].max > 0.5) 
-	    {
-	     AddLayers(Thii,suppii[],nlayer,phii[]);
-	 	 assert(phii[].min >= -1e-10);
-	     real interij = int#mesh(Thi)(  phii); 
-	     if(interij>epsmes) 
-	       {  
-		     pij[njpart]=abs(phii);	 
-		     if(vdebug1>2) cout << " ***** " << int#mesh(Thi)(real(pij[njpart])<0) << " " <<pij[njpart][].min << " " << phii[].min << endl;
-		     assert(int#mesh(Thi)(real(pij[njpart])<0) ==0);
-		     if(dplot1)  plot(pij[njpart],wait=1,cmm=" j = "+ i + " " + njpart);
-		     sumphi[] += pij[njpart][]; 
-		     if(dplot1)  plot(sumphi,wait=1,cmm=" sum j = "+ i + " " + njpart);
-		     jpart[njpart++]=i;
-	       }}}
-    
-    
-    
-   if(dplot1) plot(sumphi,wait=1,dim=3,cmm="sum ",fill=1 );
-   pii[]=pii[] ./ sumphi[];
-   for (int j=0;j<njpart;++j)
-     pij[j][] = pij[j][] ./ sumphi[];
-   jpart.resize(njpart);
-    for (int j=0;j<njpart;++j)
-     assert(pij[j][].max<=1);
-   {
-     cout << ipart << " number of jpart " << njpart << " : ";
-     for (int j=0;j<njpart;++j)
-       cout << jpart[j] << " ";
-  	cout << endl;
-   }
-   sumphi[]=pii[];
-   for (int j=0;j<njpart;++j)
-     sumphi[]+= pij[j][];
-   if(vdebug1>2)  
-     cout << " sum min " <<sumphi[].min << " " << sumphi[].max << endl;
-   assert(sumphi[].min> 1.-1e-6 && sumphi[].max< 1.+1e-6);  
-   /*  verification  */
- }}/* (Thii is remove here)  */
-  /* end of the construction of the local partition of the unity ... */
-  /* on Thi ...   */
-  /* ----------------------------------------------------------------- */
-if(mpiRank(comm)==0) cout << " *** end build partition " << endl;
-
-/*  computation of  number of intersection .. */
-/* ------------------------------------------ */
-
-/* here  pii and the pij is the locate partition of the unite on  */
-/* Thi ( mesh with overlap ).... */
-/*Thi=splitmesh(Thi,2); */
-if(dplot1 ) 
-  { plot(Thi,wait=1); 
-    for(int j=0;j<njpart;++j)
-      plot(pij[j],cmm=" j="+j ,wait=1); } 
-      
-/*  Partition of the unity on Thi ..  */
-/* computation of message.  */
-/* all j> we have to recive  */
-/* data on intersection of the support of pij[0] and pij[j] */
-settt 
-
-
-  
- aThij.resize(njpart);
-/* construction of the mesh intersect i,j part  */
-for(int jp=0;jp<njpart;++jp)
-  aThij[jp]  = trunc(Thi,pij[jp]>1e-6,label=10); /* mesh of the supp of pij  */
-}
-if(mpiRank(comm)==0) cout << " *** end build mesh  intersection  " << endl;
-// EOM 
-macro defPk1(i,j) i j // 
-macro defPk2(i,j) [i j,i#1 j]// 
-macro defPk3(i,j) [i j,i#1 j,i#2 j]// 
-macro defPk4(i,j) [i j,i#1 j,i#2 j,i#3 j]// 
-macro defPk5(i,j) [i j,i#1 j,i#2 j,i#3 j, i#4 j]// 
-macro Times1(i) i  // 
-macro Times2(i) [i,i]// 
-macro Times3(i) [i,i,i]// 
-macro Times4(i) [i,i,i,i]// 
-macro Times5(i) [i,i,i,i,i]// 
-macro  InitUdef(n,Vh,Th,aTh,U,N)
-Vh[int] defPk#N(U,)(n);
-for(int j=0;j<n;++j)
-  {  
-  	 Th=aTh[j];
-  	 defPk#N(U,[j])=Times#N(0.);
-  }
-//EOM
-
-
-/******************************************************************/ 
-macro BuildTransferMat2(ipart,mesh,Pk,N,U2V,Thi,Whi,Whij,Thij,aThij,Usend,Vrecv,jpart,Pii,vdebug)
-/******************************************************************/ 
-/* construction of transfert  matrix  
-mesh: mesh or mesh3
-Pk : the Pk def 
-N : the number of componant
-Whi: the FE space on Thi (def here)
-Whij: the array of FE on each intersection 
-Thij: the mesh variable to change Whij mesh
-aThij: the array of intersect mesh with Thi
-
-jpart[j]: the j th Sub Domain intersecting Thi
-*/
-
-
-matrix[int] sMj(jpart.n), rMj(jpart.n); /* M of send to j  */
-fespace Whi(Thi,Pk);
-mesh Thij=Thi;
-fespace Whij(Thij,Pk);/*  */
- matrix Pii; 
-{
- 
- int njpart= jpart.n; /* njpart:  number of intersection which */
-  Whi defPk#N(wpii,)=Times#N(pii);
-  Pii = wpii[];
-  for(int jp=0;jp<njpart;++jp)
-    {
-      int j=jpart[jp];
-      Thij = aThij[jp];
-      int [int] U2Vdata=[0];
-      matrix I = interpolate(Whij,Whi,U2Vc=U2Vdata); /* Whji <- Whi  */
-      sMj[jp] = I*Pii;  /* Whi -> s Whij   */
-      rMj[jp] = interpolate(Whij,Whi,t=1,U2Vc=U2Vdata);   /* Whji -> Whi  */
-      if(vdebug>10) {
-      {Whi defPk#N(uuu,)=Times#N(1),defPk#N(vvv,)=Times#N(-1); 
-       vvv[]+=I*uuu[]; cout << jp << " %%% " << vvv[].linfty << endl; assert(vvv[].linfty < 1e-6);}
-      {Whi  defPk#N(uuu,)=Times#N(1),defPk#N(vvv,)=Times#N(-1) ;
-       vvv[]+=rMj[jp]'*uuu[]; cout << jp << " ### " << vvv[].linfty << endl; assert(vvv[].linfty < 1e-6);}}
-    }}
-if(ipart==0) cout << " *** end build transfert matrix " << endl;
-settt 
-
-/* alloc array of send and recv data ..  */
-
-InitUdef(jpart.n,Whij,Thij,aThij,Usend,N)  /* initU(n,Vh,Th,aTh,U) */
-InitUdef(jpart.n,Whij,Thij,aThij,Vrecv,N) /* ... */
-if(ipart==0) cout << " *** end init  data for send/revc  " << endl;
-// 
-/******************************************************************/ 
-macro BuildTransferMat(ipart,mesh,Pk,N,U2V,Thi,Whi,Whij,Thij,aThij,Usend,Vrecv,jpart,vdebug)
- BuildTransferMat2(ipart,mesh,Pk,N,U2V,Thi,Whi,Whij,Thij,aThij,Usend,Vrecv,jpart,Pii,vdebug)
- //
-/******************************************************************/ 
-
-
-/******************************************************************/ 
-// usage uplot is  allu or [allu,allu1] :
-macro PLOTMPIALLU(mesh,Pk,defPk, Th, u, uplot, plotparm)
-{ int ver=verbosity;
-  verbosity=0;
-<<<<<<< HEAD
-  if(NoGraphicWindow==0)
-  {
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  if(mpirank==0)
-    {
-      mesh Thi=Th;
-      mesh[int] ath(mpisize);
-      fespace Xh(Thi,Pk);
-      Xh[int] defPk(allu,)(mpisize);
-      allu[0][]=u;
-      ath[0]=Th;
-      mpiRequest[int] rq(mpisize);
-      for(int i= 1; i <mpisize;++i)
-	   Irecv(processor(i,rq[i]),ath[i]);
-      for (int i=1;i<mpisize;++i)
-       	int k= mpiWaitAny(rq);
-      for (int i=1;i<mpisize;++i)
-	   { Thi=ath[i];
-	     Irecv(processor(i,rq[i]),allu[i][]);}
-      for (int i=1;i<mpisize;++i)
-       	int k= mpiWaitAny(rq); 
-      plot(uplot,plotparm);
-    }
-  else
-    {
-      processor(0)<<Th;
-      processor(0)<<u;
-    }
-  mpiBarrier(mpiCommWorld);
-<<<<<<< HEAD
-  }
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  verbosity=ver;
-  return true;
-}
-//EOM ...
-/******************************************************************/ 
-
diff --git a/examples++-mpi/MPICG.cpp.orig b/examples++-mpi/MPICG.cpp.orig
deleted file mode 100644
index a5ec545..0000000
--- a/examples++-mpi/MPICG.cpp.orig
+++ /dev/null
@@ -1,512 +0,0 @@
-// ORIG-DATE: 02/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-//ff-c++-LIBRARY-dep:  mpi
-//ff-c++-cpp-dep: 
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-
-#include "mpi.h"
-#include  <iostream>
-using namespace std;
-
-#include "ff++.hpp"
-#include "CGNL.hpp"
-//#include "gmres.hpp"
-
-
-template<class R,class DJ,class P> 
-int NLCG(const DJ & dJ,const P & C,KN_<R> &x,const int nbitermax, double &eps,long kprint,MPI_Comm * )
-{
-    //  -------------
-    assert(&x && &dJ && &C);
-    typedef KN<R> Rn;
-    int n=x.N();
-    
-    R ro=1;
-    Rn g(n),h(n),Ah(n), & Cg(Ah);  // on utilise Ah pour stocke Cg  
-    g=dJ*x;// dJ(x,g);  
-    Cg = C*g; // gradient preconditionne 
-    h =-Cg; 
-    R g2 = (Cg,g);
-    if (g2 < 1e-30) 
-      { if(kprint>1)
-	  cout << "GCNL  g^2 =" << g2 << " < 1.e-30  Nothing to do " << endl;
-	  return 2;  }
-    if (kprint>5 ) 
-	cout << " 0 GCNL  g^2 =" << g2 << endl;
-    R reps2 =eps >0 ?  eps*eps*g2 : -eps; // epsilon relatif 
-    eps = reps2;
-    for (int iter=0;iter<=nbitermax;iter++)
-      { 
-	  ro = argmin(ro,dJ,x,h,g,Ah);
-	  
-	  Cg = C*g;
-	  R g2p=g2; 
-	  g2 = (Cg,g);
-	  if (  kprint < nbitermax )
-	      cout << "CGNL:" <<iter <<  ",  ro = " << ro << " ||g||^2 = " << g2 << endl; 
-	  if (g2 < reps2) { 
-	      if (kprint< nbitermax )
-		  cout << "CGNL converge: " << iter <<",  ro = " << ro << " ||g||^2 = " << g2 << endl; 
-	      return 1;// ok 
-	  }
-	  R gamma = g2/g2p;       
-	  h *= gamma;
-	  h -= Cg;  //  h = -Cg * gamma* h       
-      }
-    if(verbosity)
-	cout << " Non convergence of the NL cojugate gradient " <<endl;
-    return 0; 
-}
-template<class T> struct MPI_TYPE {};
-template<> struct MPI_TYPE<long>      {static const MPI_Datatype  TYPE(){return MPI_LONG;}};
-template<> struct MPI_TYPE<int>      {static const MPI_Datatype TYPE(){return MPI_INT;}};
-template<> struct MPI_TYPE<double>    {static const MPI_Datatype TYPE(){return MPI_DOUBLE;}};
-template<> struct MPI_TYPE<char>    {static const MPI_Datatype TYPE(){return MPI_BYTE;}};
-
-template<class R>
-R ReduceSum1(R s,MPI_Comm * comm)
-{
-  R r=0;
-  //  nt MPI_Allreduce( void *sendbuf, void *recbuf,  int count,
-  //	    MPI_Datatype datatype, MPI_Op op, MPI_Comm comm )
-  MPI_Allreduce( &s, &r, 1 ,MPI_TYPE<R>::TYPE(),   MPI_SUM,  *comm );
-  return r; 
-}
-
-template<class R,class M,class P> 
-int ConjuguedGradient2(const M & A,const P & C,KN_<R> &x,const KN_<R> &b,const int nbitermax, double &eps,long kprint,MPI_Comm * commworld)
-{
-    //  ConjuguedGradient2 affine A*x = 0 est toujours appele avec les condition aux limites 
-    //  -------------
-    throwassert(&x  && &A && &C);
-    typedef KN<R> Rn;
-    int n=x.N();
-   // if (verbosity>99) kprint=1;
-    R ro=1;
-    Rn g(n),h(n),Ah(n), & Cg(Ah);  // on utilise Ah pour stocke Cg  
-    g = A*x;
-    g -= b;  
-    Cg = C*g; // gradient preconditionne 
-    h =-Cg; 
-    R g2 = ReduceSum1((Cg,g),commworld);
-    if (g2 < 1e-30) 
-      { if(kprint<=nbitermax)
-	  cout << "GC  g^2 =" << g2 << " < 1.e-30  Nothing to do " << endl;
-	  return 2;  }
-    if (kprint<5 ) 
-	cout << " 0 GC  g^2 =" << g2 << endl;
-    R reps2 =eps >0 ?  eps*eps*g2 : -eps; // epsilon relatif 
-    eps = reps2;
-    for (int iter=0;iter<=nbitermax;iter++)
-      { 
-	  R rop = ro; 
-	  x += rop*h;      //   x+ rop*h  , g=Ax   (x old)
-	  //       ((Ah = A*x - b) - g);
-	  // Ah -= b;        //   Ax + rop*Ah = rop*Ah + g  =
-	  // Ah -= g;         //   Ah*rop  
-	  Ah = A*x;
-	  Ah -= b;        //   Ax + rop*Ah = rop*Ah + g  =
-	  Ah -= g;         //   Ah*rop  
-	 
-	  R hAh =ReduceSum1((h,Ah),commworld);
-	  R gh = ReduceSum1((g,h),commworld);
-	  if (RNM::norm2(hAh)<1e-100) ExecError("CG2: Matrix is not defined (/0), sorry ");
-	  ro =  -gh*rop/hAh ; // ro optimal (produit scalaire usuel)
-	  x += (ro-rop) *h;
-	  g += (ro/rop) *Ah; // plus besoin de Ah, on utilise avec Cg optimisation
-	  Cg = C*g;
-	  R g2p=g2; 
-	  g2 = ReduceSum1((Cg,g),commworld);
-	  if ( ( (iter%kprint) == kprint-1)  )
-	      cout << "CG:" <<iter <<  "  ro = " << ro << " ||g||^2 = " << g2 << endl; 
-	  if (g2 < reps2) { 
-	      if (kprint <= nbitermax)
-		  cout << "CG converges " << iter <<  "  ro = " << ro << " ||g||^2 = " << g2 << endl; 
-	      return 1;// ok 
-          }
-	  R gamma = g2/g2p;       
-	  h *= gamma;
-	  h -= Cg;  //  h = -Cg * gamma* h       
-      }
-    //    if (itermax <= nbitermax  )
-	cout << "CG does'nt converge: " << nbitermax <<   " ||g||^2 = " << g2 << " reps2= " << reps2 << endl; 
-    return 0; 
-}
-
-
-template < class Operator, class Vector, class Preconditioner,
-class Matrix, class Real >
-int 
-GMRES_MPI(const Operator &A, Vector &x, const Vector &b,
-      const Preconditioner &M, Matrix &H, int &m, int &max_iter,
-      Real &tol,MPI_Comm * commworld,long verbosity)
-{
-    Real resid;
-    int i, j = 1, k;
-    Vector s(m+1), cs(m+1), sn(m+1), w,r,Ax;
-    r=M*b;
-    Real normb = sqrt(ReduceSum1((r,r),commworld));
-    
-    Ax=A * x;
-    Ax=b-Ax;
-    r = M*(Ax);
-    Real beta = sqrt(ReduceSum1((r,r),commworld));
-    
-    if ( abs(normb) < 1.e-30)
-	normb = 1;
-    
-    if ((resid = beta / normb) <= tol) {
-	tol = resid;
-	max_iter = 0;
-	return 0;
-    }
-    
-    Vector *v = new Vector[m+1];
-    
-    while (j <= max_iter) {
-	v[0] = r / beta;    
-	s = 0.0;
-	s(0) = beta;
-	
-	for (i = 0; i < m && j <= max_iter; i++, j++) {
-	    w = M*(Ax=A * v[i]);
-	    for (k = 0; k <= i; k++) {
-		H(k, i) = ReduceSum1((w, v[k]),commworld);
-		w -= H(k, i) * v[k];
-	    }
-	    H(i+1, i) = sqrt(ReduceSum1((w,w),commworld));
-	    v[i+1] = w  / H(i+1, i) ; 
-	    
-	    for (k = 0; k < i; k++)
-		ApplyPlaneRotation(H(k,i), H(k+1,i), cs(k), sn(k));
-	    
-	    GeneratePlaneRotation(H(i,i), H(i+1,i), cs(i), sn(i));
-	    ApplyPlaneRotation(H(i,i), H(i+1,i), cs(i), sn(i));
-	    ApplyPlaneRotation(s(i), s(i+1), cs(i), sn(i));
-	    if(verbosity>5 || (verbosity>2 && j%100==0) )
-		cout << "GMRES: " << j << " " << abs(s(i+1)) << " " <<  normb << " " 
-		<<  abs(s(i+1)) / normb << " < " << tol << endl;
-	    
-	    if ((resid = abs(s(i+1)) / normb) < tol) {
-		if(verbosity)
-		    cout << "GMRES converges: " << j << " " << abs(s(i+1)) << " " <<  normb << " " 
-		    <<  abs(s(i+1)) / normb << " < " << tol << endl;
-		
-		Update(x, i, H, s, v);
-		tol = resid;
-		max_iter = j;
-		delete [] v;
-		return 0;
-	    }
-	}
-	if(!(j <= max_iter)) break;
-	Update(x, i-1 , H, s, v);
-	Ax = A*x;
-	Ax = b-Ax;
-	
-	r = M*(Ax);
-	beta = sqrt(ReduceSum1((r,r),commworld));
-	if(verbosity>4)
-	    cout << "GMRES: restart" << j << " " << beta << " " <<  normb << " " 
-	    <<  beta / normb << " < " << tol << endl;
-	if ((resid = beta / normb) < tol) {
-	    tol = resid;
-	    max_iter = j;
-	    delete [] v;
-	    return 0;
-	}
-    }
-    
-    if(verbosity)
-	cout << "WARNING: GMRES do not converges: " << j <<"/" << max_iter << ",  resid = " << resid 
-	<< ", tol=  " << tol << ", normb "<< normb << endl;
-    tol = resid;
-    delete [] v;
-    
-    return 1;
-}
-
-
-template<class R>
-class MPILinearCG : public OneOperator 
-{ 
-public:
-    typedef KN<R> Kn;
-    typedef KN_<R> Kn_;
-    const int cas,CG;
-    
-    class MatF_O: VirtualMatrice<R> { public:
-	Stack stack;
-	mutable  Kn x;       
-	C_F0 c_x;
-	Kn *b;
-	
-	Expression  mat1,mat;
-	typedef  typename VirtualMatrice<R>::plusAx plusAx;
-	MatF_O(int n,Stack stk,const OneOperator * op,Kn *bb=0) 
-	: VirtualMatrice<R>(n),stack(stk),
-	x(n),c_x(CPValue(x)),b(bb),
-	mat1(op->code(basicAC_F0_wa(c_x))),
-	mat( CastTo<Kn_>(C_F0(mat1,(aType)*op))) {
-	    //ffassert(atype<Kn_ >() ==(aType) *op);
-	    // WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005   
-	    
-	}
-	~MatF_O() { 
-	    // cout << " del MatF_O mat " << endl;
-	    if(mat1 != mat) 
-		delete mat;
-	    delete mat1;
-	    // cout << " del MatF_Ocx ..." <<  endl;
-	    Expression zzz = c_x;
-	    // cout << " zzz "<< zzz << endl;
-	    delete zzz;
-	    // WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-	    
-	}
-	void addMatMul(const  Kn_  & xx, Kn_ & Ax) const { 
-	    ffassert(xx.N()==Ax.N());
-	    x =xx;
-	    Ax  += GetAny<Kn_>((*mat)(stack));
-	    if(b && &Ax!=b) Ax += *b; // Ax -b => add b (not in cas of init. b c.a.d  &Ax == b 
-	    WhereStackOfPtr2Free(stack)->clean();
-	} 
-	plusAx operator*(const Kn &  x) const {return plusAx(this,x);} 
-	virtual bool ChecknbLine(int n) const { return true;}  
-	virtual bool ChecknbColumn(int m) const { return true;} 
-	
-    };  
-    
-    
-    class E_LCG: public E_F0mps { public:
-	const int cas;// <0 => Nolinear
-	const int CG; 
-	static const int n_name_param=7;
-	
-	static basicAC_F0::name_and_type name_param[] ;
-	
-	
-	Expression nargs[n_name_param];
-	
-	const OneOperator *A, *C; 
-	Expression X,B;
-	
-	E_LCG(const basicAC_F0 & args,int cc,int gc) :cas(cc),CG(gc) 
-	{
-	  args.SetNameParam(n_name_param,name_param,nargs);
-	  {  const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-	      ffassert(op);
-	      A = op->Find("(",ArrayOfaType(atype<Kn* >(),false)); }
-	  if (nargs[2]) 
-	    {  const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(nargs[2]);
-		ffassert(op); 
-		C = op->Find("(",ArrayOfaType(atype<Kn* >(),false)); }
-	  else  C =0;
-	  X = to<Kn*>(args[1]);
-	  if (args.size()>2)
-	      B = to<Kn*>(args[2]);
-	  else 
-	      B=0;
-	}
-	
-	virtual AnyType operator()(Stack stack)  const {
-	    int ret=-1;
-	    
-	    // WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005   
-	    try {
-		Kn &x = *GetAny<Kn *>((*X)(stack));
-		int n=x.N();
-		double eps = 1.0e-6;
-		int nbitermax=  100;
-		long verb = verbosity;
-		
-		pcommworld vcommworld=0;
-		long dKrylov=50; 
-		if (nargs[0]) eps= GetAny<double>((*nargs[0])(stack));
-		if (nargs[1]) nbitermax = GetAny<long>((*nargs[1])(stack));
-		if (nargs[3]) eps= *GetAny<double*>((*nargs[3])(stack));
-		if (nargs[4]) vcommworld = GetAny<pcommworld>((*nargs[4])(stack));
-		if (nargs[5])  dKrylov= GetAny<long>((*nargs[5])(stack));
-                if (nargs[6]) verb=Abs(GetAny<long>((*nargs[6])(stack)));
-		long gcverb=51L-Min(Abs(verb),50L);
-		if(verb==0) gcverb = 1000000000;// no print 
-
-		MPI_Comm mpiCommWorld = MPI_COMM_WORLD;
-		MPI_Comm * commworld= vcommworld ? (MPI_Comm *) vcommworld: & mpiCommWorld ;
-		KN<R>  bzero(B?1:n); // const array zero
-		bzero=R(); 
-		KN<R> *bb=&bzero; 
-		if (B) {
-		    Kn &b = *GetAny<Kn *>((*B)(stack));
-		    R p = (b,b);
-		    if (p) 
-		      {
-			// ExecError("Sorry MPILinearCG work only with nul right hand side, so put the right hand in the function");
-		      }
-		    bb = &b;
-		}
-		KN<R> * bbgmres =0;
-		if ( !B && !CG) bbgmres=bb; // none zero if gmres without B 		
-		MatF_O AA(n,stack,A,bbgmres);
-		if(bbgmres ){
-		    *bbgmres= AA* *bbgmres; // Ok Ax == b -> not translation of b .
-		    *bbgmres = - *bbgmres;
-		    if(verbosity>1) cout << "  ** GMRES set b =  -A(0);  : max=" << bbgmres->max() << " " << bbgmres->min()<<endl;
-		}
-		
-		if(CG)
-		  {
-		    
-		  
-		 if (cas<0) {
-		    if (C) 
-		      { MatF_O CC(n,stack,C);
-			ret = NLCG(AA,CC,x,nbitermax,eps, gcverb ,commworld );}
-		    else 
-		      ret = NLCG(AA,MatriceIdentite<R>(n),x,nbitermax,eps, gcverb ,commworld);
-		}
-		 else 
-		    if (C) 
-		      { MatF_O CC(n,stack,C);
-			ret = ConjuguedGradient2(AA,CC,x,*bb,nbitermax,eps, gcverb ,commworld);}
-		    else 
-		      ret = ConjuguedGradient2(AA,MatriceIdentite<R>(n),x,*bb,nbitermax,eps, gcverb ,commworld);
-		  }
-		else {// GMRES 
-		    
-		    KNM<R> H(dKrylov+1,dKrylov+1);
-		    int k=dKrylov;//,nn=n;
-		    if (cas<0) {
-			ErrorExec("NL GMRES:  to do! sorry ",1);
-			/*       if (C) 
-			 { MatF_O CC(n,stack,C);
-			 ret = NLGMRES(AA,CC,x,nbitermax,eps, 51L-Min(Abs(verbosity),50L) );}
-			 else 
-			 ret = NLGMRES(AA,MatriceIdentite<R>(n),x,nbitermax,eps, 51L-Min(Abs(verbosity),50L));
-			 ConjuguedGradient  */
-		    }
-		    else 
-		      {
-			if (C)
-			  { MatF_O CC(n,stack,C); 
-			      ret=GMRES_MPI(AA,(KN<R> &)x, *bb,CC,H,k,nbitermax,eps,commworld,verb);}
-			else
-			    ret=GMRES_MPI(AA,(KN<R> &)x, *bb,MatriceIdentite<R>(n),H,k,nbitermax,eps,commworld,verb);       
-		      }
-		    
-		}
-		
-		
-
-		if( nargs[3]) *GetAny<double*>((*nargs[3])(stack)) = -(eps);
-	    }
-	    catch(...)
-	  {
-	    // WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-	    throw;
-	  }
-	    // WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-	    
-	    return SetAny<long>(ret);
-	    
-	}  
-	operator aType () const { return atype<long>();}         
-	
-    };
-    
-    E_F0 * code(const basicAC_F0 & args) const {
-	return new E_LCG(args,cas,CG);}
-
-    MPILinearCG() :   OneOperator(atype<long>(),
-			       atype<Polymorphic*>(),
- 			       atype<KN<R> *>(),atype<KN<R> *>()),cas(2),CG(1){}
-    
-    MPILinearCG(int cc,int CGG) :   OneOperator(atype<long>(),
-			       atype<Polymorphic*>(),
-			       atype<KN<R> *>(),atype<KN<R> *>()),cas(cc),CG(CGG){}
-
-    MPILinearCG(int cc,int CGG,int ) :   OneOperator(atype<long>(),
-						atype<Polymorphic*>(),
-						atype<KN<R> *>()),cas(cc),CG(CGG){}
-    
-    MPILinearCG(int cc) :   OneOperator(atype<long>(),
-				     atype<Polymorphic*>(),
-				     atype<KN<R> *>()),cas(cc),CG(1){}
-    
-};
-
-
-
-
-template<class R>
-basicAC_F0::name_and_type  MPILinearCG<R>::E_LCG::name_param[]= {
-    {   "eps", &typeid(double)  },
-    {   "nbiter",&typeid(long) },
-    {   "precon",&typeid(Polymorphic*)},
-    {   "veps" ,  &typeid(double*) },
-    { "comm", &typeid(pcommworld)} ,
-    {   "dimKrylov", &typeid(long) },
-    {   "verbosity", &typeid(long) }
-};
-
-
-
-
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-=======
-class Init { public:
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    Init();
-};
-
-LOADINIT(Init);
-<<<<<<< HEAD
-*/ 
-static void Load_Init()
-=======
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-
-    Global.Add("MPILinearCG","(",new MPILinearCG<R>()); // old form  with rhs (must be zer
-    Global.Add("MPIAffineCG","(",new MPILinearCG<R>(1)); //  without right handsize
-    Global.Add("MPILinearGMRES","(",new MPILinearCG<R>(0,0)); //  with  right handsize
-    Global.Add("MPIAffineGMRES","(",new MPILinearCG<R>(0,0,0)); //  with  right handsize
-    Global.Add("MPINLCG","(",new MPILinearCG<R>(-1)); //  without right handsize
-    
-}
-
-<<<<<<< HEAD
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/MPIplot.idp.orig b/examples++-mpi/MPIplot.idp.orig
deleted file mode 100644
index b78c8f3..0000000
--- a/examples++-mpi/MPIplot.idp.orig
+++ /dev/null
@@ -1,42 +0,0 @@
-macro PLOTMPIALL(mesh,Pk, Th, u, plotparm)
-{ int ver=verbosity;
-  verbosity=0;
-<<<<<<< HEAD
-  if(NoGraphicWindow==0)
-  { 
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  if(mpirank==0)
-    {
-      mesh Thi=Th;
-      mesh[int] ath(mpisize);
-      fespace Xh(Thi,Pk);
-      Xh[int] uh(mpisize);
-      uh[0][]=u;
-      ath[0]=Th;
-      mpiRequest[int] rq(mpisize);
-      for(int i= 1; i <mpisize;++i)
-	   Irecv(processor(i,rq[i]),ath[i]);
-      for (int i=1;i<mpisize;++i)
-       	int k= mpiWaitAny(rq);
-      for (int i=1;i<mpisize;++i)
-	   { Thi=ath[i];
-	     Irecv(processor(i,rq[i]),uh[i][]);}
-      for (int i=1;i<mpisize;++i)
-       	int k= mpiWaitAny(rq); 
-      plot(uh,plotparm);
-    }
-  else
-    {
-      processor(0)<<Th;
-      processor(0)<<u;
-    }
-  mpiBarrier(mpiCommWorld);
-<<<<<<< HEAD
-  }
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  verbosity=ver;
-  return true;
-}
-//EOM ...
diff --git a/examples++-mpi/MUMPS.cpp.orig b/examples++-mpi/MUMPS.cpp.orig
deleted file mode 100644
index 1db1efb..0000000
--- a/examples++-mpi/MUMPS.cpp.orig
+++ /dev/null
@@ -1,318 +0,0 @@
-// SUMMARY  :   simpler MUMPS interface
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : P. Jolivet 
-// E-MAIL   : Pierre Jolivet <pierre.jolivet at ljll.math.upmc.fr>
-//
-//ff-c++-LIBRARY-dep:  mumps parmetis ptscotch  scalapack blas  mpifc  fc mpi  pthread 
-//ff-c++-cpp-dep: 
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- */
-
-#include <mpi.h>
-#include "rgraph.hpp"
-#include "AFunction.hpp"
-
-// FFCS - 23/4/13 - instanciate some global symbols which are not found by default in MS MPI Fortran libraries
-#ifdef WIN32
-__declspec(dllexport) int toto;
-MPI_Fint* _imp__MPI_F_STATUS_IGNORE;
-MPI_Fint* _imp__MPI_F_STATUSES_IGNORE;
-#endif
-
-#include "MatriceCreuse.hpp"
-
-#include "dmatrix.hpp"
-#include <dmumps_c.h>
-#include <zmumps_c.h>
-#define JOB_INIT -1
-#define JOB_END -2
-#define USE_COMM_WORLD -987654
-#define ICNTL(I) icntl[(I)-1] /* macro s.t. indices match documentation */
-#define INFOG(I) infog[(I)-1] /* macro s.t. indices match documentation */
-#define INFO(I) info[(I)-1]   /* macro s.t. indices match documentation */
-
-template<typename RR> struct MUMPS_STRUC_TRAIT {typedef void MUMPS;  typedef void R; };
-template<> struct MUMPS_STRUC_TRAIT<double>  {typedef DMUMPS_STRUC_C MUMPS; typedef double R;};
-template<> struct MUMPS_STRUC_TRAIT<Complex>  {typedef ZMUMPS_STRUC_C MUMPS; typedef ZMUMPS_COMPLEX R;};
-void mumps_c(DMUMPS_STRUC_C *id) { dmumps_c(id);}  
-void mumps_c(ZMUMPS_STRUC_C *id) { zmumps_c(id);}  
-
-template<class T> struct MPI_TYPE {static const MPI_Datatype  TYPE(){return MPI_BYTE;}};;
-template<> struct MPI_TYPE<long>      {static const MPI_Datatype  TYPE(){return MPI_LONG;}};
-template<> struct MPI_TYPE<int>      {static const MPI_Datatype TYPE(){return MPI_INT;}};
-template<> struct MPI_TYPE<double>    {static const MPI_Datatype TYPE(){return MPI_DOUBLE;}};
-template<> struct MPI_TYPE<char>    {static const MPI_Datatype TYPE(){return MPI_BYTE;}};
-template<> struct MPI_TYPE<Complex>    {static const MPI_Datatype TYPE(){return MPI_DOUBLE_COMPLEX;}};
-
-
-static std::string analysis[] = {"AMD", "", "AMF", "SCOTCH", "PORD", "METIS", "QAMD", "automatic sequential", "automatic parallel", "PT-SCOTCH", "ParMetis"};
-
-template<class R>
-class SolverMumps : public MatriceMorse<R>::VirtualSolver {
-
-
-
-    private:
-         mutable typename MUMPS_STRUC_TRAIT<R>::MUMPS * _id; 
-  //mutable DMUMPS_STRUC_C* _id;
-        mutable unsigned char   _strategy;
-    bool distributed;
-    MPI_Comm comm;
-    int mpirank;
-    public:
-        typedef typename  MUMPS_STRUC_TRAIT<R>::R MR; 
-  SolverMumps(const MatriceMorse<R> &A, KN<long> &param_int, KN<double> &param_R, MPI_Comm* pcomm,int strategy=3,int matrank=0)
-    : comm( pcomm ? *pcomm :MPI_COMM_WORLD ),
-      distributed(matrank<0)
-  {
-    
-    MPI_Comm_rank(comm, &mpirank);
-    int master = mpirank==matrank;  
-    _id = new typename MUMPS_STRUC_TRAIT<R>::MUMPS ;
-    _id->job = JOB_INIT;
-    _id->par = 1;
-    
-    _id->comm_fortran = MPI_Comm_c2f(comm);
-    _id->sym = A.symetrique;
-    _strategy = strategy;
-    mumps_c(_id);
-    int* I = 0;
-    int* J = 0;
-    R * C = 0;
-    long nnz=0;
-    if( distributed || (mpirank == matrank) )
-        {
-            	
-	if(_id->sym == 0) 
-	  {
-	    nnz = A.nbcoef;
-	    I = new int[A.nbcoef];
-	    CSR2COO<'C', 'U'>(A.n, A.lg, I);
-	    C =  A.a;
-	    J = A.cl;
-	    for(unsigned int i = 0; i < A.nbcoef; ++i)
-	      ++J[i];
-	  }
-	else 
-	  {
-	    if(A.symetrique) 
-	      {
-		nnz = A.nbcoef;
-		I = new int[A.nbcoef];
-		J = new int[A.nbcoef];
-		C = new R[A.nbcoef];
-		for(unsigned int i = 0; i < A.n; ++i)
-		  C[i] = A.a[A.lg[i + 1] - 1];
-		std::generate(I, I + A.n, step(0, 1));
-		CSR2COO<'C', 'L'>(A.n, A.lg, I + A.n);
-		std::copy(I, I + A.n, J);
-		for(unsigned int i = 1; i < A.n; ++i) {
-		  for(unsigned int j = A.lg[i]; j < A.lg[i + 1] - 1; ++j) {
-		    J[A.n + j - i] = A.cl[j] + 1;
-		    C[A.n + j - i] = A.a[j];
-		  }
-		}
-	      }
-	    else 
-	      {
-		nnz = A.n + (A.nbcoef - A.n) / 2;
-		I = new int[A.n + (A.nbcoef - A.n) / 2];
-		J = new int[A.n + (A.nbcoef - A.n) / 2];
-		C = new R[A.n + (A.nbcoef - A.n) / 2];
-		trimCSR<false, 'F',R>(A.n, I + A.n, A.lg, J + A.n, A.cl, C + A.n, A.a);
-		for(unsigned int i = 0; i < A.n - 1; ++i)
-		  C[i] = A.a[A.lg[i + 1] - (I[i + 1 + A.n] - I[i + A.n]) - 1];
-		C[A.n - 1] = A.a[A.nbcoef - 1];
-		std::generate(I, I + A.n, step(0, 1));
-		CSR2COO<'F', 'U'>(A.n - 1, I + A.n, I + A.n);
-		std::copy(I, I + A.n, J);
-	      }
-	  }
-        _id->n = A.n;
-        if(!distributed)
-	  {
-	    _id->nz=nnz;
-	    _id->a =reinterpret_cast<MR *>( C);
-	    _id->irn = I;
-	    _id->jcn = J;
-	  }
-        else
-	  {
-	    
-            _id->nz_loc=nnz;
-            _id->a_loc =reinterpret_cast<MR *>( C);
-            _id->irn_loc = I;
-            _id->jcn_loc = J;
-	  }
-	
-	}
-    else 
-      { // no matrix ...
-	_id->nz=0;
-	_id->a =0; 
-	_id->irn = 0;;
-	_id->jcn = 0;
-      }
-    _id->nrhs = 1;
-    _id->ICNTL(1) = 0;
-    _id->ICNTL(2) = 0;
-    _id->ICNTL(3) = verbosity > 1 ? 6 : 0;
-    _id->ICNTL(4) = 0; // verbose level
-    _id->ICNTL(5) = 0;                                                          // assembled format
-    if(_strategy > 0 && _strategy < 9 && _strategy != 2) 
-      {
-	_id->ICNTL(28) = 1;             // 1: sequential analysis
-	_id->ICNTL(7)  = _strategy - 1; //     0: AMD
-      }     
-    //     1:
-    //     2: AMF
-    //     3: SCOTCH
-    //     4: PORD
-    //     5: METIS
-    //     6: QAMD
-    //     7: automatic
-    else
-      {
-	_id->ICNTL(28) = 1;
-	_id->ICNTL(7)  = 7;
-      }
-    if(_strategy > 8 && _strategy < 12) 
-      {
-	_id->ICNTL(28) = 2;              // 2: parallel analysis
-	_id->ICNTL(29) = _strategy - 9;  //     0: automatic
-      }                                   //     1: PT-STOCH
-    //     2: ParMetis
-    _id->ICNTL(9)  = 1;
-    _id->ICNTL(11) = 0;                 // verbose level
-    _id->ICNTL(18) = distributed ? 3: 0;        // centralized matrix input if !distributed
-    _id->ICNTL(20) = 0;                 // dense RHS
-    _id->ICNTL(14) = 30;                // percentage increase in the estimated working space
-    _id->job = 4;
-    mumps_c(_id);
-    if(_id->INFOG(1) != 0)
-      std::cout << "BUG MUMPS, INFOG(1) = " << _id->INFOG(1) << " distributed: " << distributed << " master " << matrank << std::endl;
-    if(I) {
-      if(_id->sym == 0) {
-	for(unsigned int i = 0; i < A.nbcoef; ++i)
-	  --J[i];
-      }
-      else {
-	delete [] C;
-	delete [] J;
-      }
-      delete [] I;
-    }
-  };
-  
-  void Solver(const MatriceMorse<R> &A, KN_<R> &x, const KN_<R> &b) const
-    {
-     _id->ICNTL(20) = 0; // dense RHS
-     _id->ICNTL(21) = 0; // centralized dense solution 
-     if(distributed)
-     {
-       MPI_Reduce( (void *) (R*) b,(void *) (R*) x  , x.N() , MPI_TYPE<R>::TYPE(),MPI_SUM,0,comm);
-     }
-     else if(mpirank==0)  x = b;
-    _id->ICNTL(3) = verbosity > 1 ? 6 : 0;
-    
-    _id->rhs = reinterpret_cast<MR*>((R*) x);
-    _id->job = 3;
-    mumps_c(_id);
-   if(distributed)
-        {
-          MPI_Bcast(reinterpret_cast<void*> ( (R*) x), x.N(), MPI_TYPE<R>::TYPE(), 0,comm);
-        }
-    
-  };
-  
-  ~SolverMumps() {
-    _id->job = JOB_END;
-    mumps_c(_id);
-    if(_id)
-      delete _id;
-  };
-};
-
-
-template<class  R>
-typename MatriceMorse<R>::VirtualSolver* buildSolver(DCL_ARG_SPARSE_SOLVER(R, A)) 
-{// gestion de la star
- 
-  MPI_Comm cw = MPI_COMM_WORLD, * pcw= (MPI_Comm*) ds.commworld;
-  if(!pcw) pcw = & cw;
-  int mpirank ;
-  MPI_Comm_rank(*pcw, &mpirank);
-  int strategy = ds.strategy,matrank=0;
-  if(Data_Sparse_Solver_version()>0 ) matrank=ds.master;
-  if( !strategy && ds.lparams.N() > 0) strategy = ds.lparams[0]; 
-  if(ds.lparams.N()>1) matrank = ds.lparams[1];// <0 => distri mat ..
-  if( ! strategy) strategy=3;
-  int mat = mpirank == matrank || matrank < 0; 
-  if(A)
-    return new SolverMumps<R>(*A, ds.lparams, ds.dparams, pcw,strategy,matrank);
-  else 
-    ffassert(0); 
-  return new SolverMumps<R>(*A, ds.lparams, ds.dparams, pcw,strategy,matrank);
-}
-
-//  the 2 default sparse solver double and complex
-
-
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-DefSparseSolverSym<double>::SparseMatSolver SparseMatSolverSym_R ; ;
-DefSparseSolverSym<Complex>::SparseMatSolver SparseMatSolverSym_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetMUMPS()
-{
-    if(verbosity>1)
-      cout << " SetDefault sparse solver to MUMPS" << endl;
-    DefSparseSolver<double>::solver  = buildSolver<double>;
-    DefSparseSolver<Complex>::solver = buildSolver<Complex>;
-    DefSparseSolverSym<double>::solver  = buildSolver<double>;
-    DefSparseSolverSym<Complex>::solver = buildSolver<Complex>; 
-    TypeSolveMat::defaultvalue =TypeSolveMatdefaultvalue;
-    return  true;
-}
-
-
-void initMUMPS()
-{    
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  SparseMatSolverSym_R= DefSparseSolverSym<double>::solver;
-  SparseMatSolverSym_C= DefSparseSolverSym<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: MUMPS:  defaultsolver defaultsolverMUMPS_" << endl;
-  DefSparseSolver<double>::solver  = buildSolver;
-  DefSparseSolver<Complex>::solver = buildSolver;
-  DefSparseSolverSym<double>::solver  = buildSolver;
-  DefSparseSolverSym<Complex>::solver = buildSolver; 
-  TypeSolveMat::defaultvalue =TypeSolveMatdefaultvalue;
-  if(! Global.Find("defaulttoMUMPS").NotNull() )
-    Global.Add("defaulttoMUMPS","(",new OneOperator0<bool>(SetMUMPS));  
-}
-
-
-LOADFUNC(initMUMPS);
diff --git a/examples++-mpi/MUMPS_FreeFem.cpp.orig b/examples++-mpi/MUMPS_FreeFem.cpp.orig
deleted file mode 100644
index 24e6233..0000000
--- a/examples++-mpi/MUMPS_FreeFem.cpp.orig
+++ /dev/null
@@ -1,2619 +0,0 @@
-// ORIG-DATE: 02/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-//ff-c++-LIBRARY-dep: mumps parmetis ptscotch scalapack blas mpifc fc mpi pthread 
-//ff-c++-cpp-dep: 
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-
-#include <mpi.h>
-#include  <iostream>
-using namespace std;
-
-#ifdef WIN32
-
-// ALH - this activates the Windows DLL default export mechanism
-
-__declspec(dllexport) int not_used;
-
-// FFCS - 23/4/13 - instanciate some global symbols which are not found by default in MS MPI Fortran libraries
-
-MPI_Fint* _imp__MPI_F_STATUS_IGNORE;
-MPI_Fint* _imp__MPI_F_STATUSES_IGNORE;
-#endif
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "dmumps_c.h"
-#include "zmumps_c.h"
-
-// read options for MUMPS in freefem++
-int s_(char* str, const char* cmp[])
-{
-  int i = 0;
-  while( cmp[i] != 0){
-    if( strcmp(str, cmp[i]) == 0){
-      //cout << *str << " return" << i << endl;
-      return i+1 ;
-    }
-    i++;
-  }
-  //cout << *str << " return 0" << endl;
-  return 0;
-}
-
-void read_options_freefem(string *string_option, int *SYM, int *PAR){
-  
-  static const char* comp[] = {"SYM", "PAR", 0};
-
-  char data[string_option->size()+1];  
-  strcpy( data, string_option->c_str()); 
-  cout << "data=" << data << endl;
-  char * tictac;
-  tictac = strtok(data," =,\t\n");
-  cout << "tictac=" << data << endl;
-
-  while(tictac != NULL){
-    
-    int id_option = s_(tictac, comp);
-    tictac = strtok(NULL," =,\t\n");
-    int val_options;
-
-    switch (id_option)
-      { 
-      case 1 : // SYM
-	*SYM = atoi(tictac);
-	// strtol ???
-	if(*SYM != 0 && *SYM !=1) 
-	  cout << "SYM must be equal to 1 or 0 for MUMPS" << endl;
-	
-	break;
-      case 2:  // PAR
-	*PAR = atoi(tictac);
-	if(*PAR != 0 && *PAR !=1) 
-	  cout << "PAR must be equal to 1 or 0" << endl;
-	//strtol ???
-	break;
-      case 0: // Equivalent of case default
-	break;
-      }  
-    tictac = strtok(NULL," =,\t\n");
-  }
-  
-}
-
-class dSolveMUMPSmpi :   public MatriceMorse<double>::VirtualSolver   {
-  
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-  mutable MPI_Comm comm;
-  double            *a;
-  int       *irn, *jcn;
-  int          n, m, nz; 
- 
-  // parameter MUMPS
-  
-  KN_<long>        perm_r; /* row permutations from partial pivoting */
-  KN_<long>        perm_c;
-  KN_<double>     scale_r;
-  KN_<double>     scale_c;
-  string string_option;
-  string data_option;
-  int SYM;
-  int PAR;
-  int myid;
-
-  // distribuer
-  int nz_loc;
-  int *jcn_loc, *irn_loc;
-  double *a_loc;
-  
-
-
-  static const int JOB_INIT=-1;
-  static const int JOB_END=-2;
-  static const int USE_COMM_WORLD= -987654;
-
-  // variable reel
-  mutable DMUMPS_STRUC_C id;
-  
-#define ICNTL(I) icntl[(I)-1] /* macro s.t. indices match documentation */
-#define CNTL(I) cntl[(I)-1] /* macro s.t. indices match documentation */
-#define RINFOG(I) rinfog[(I)-1] /* macro s.t. indices match documentation */
-#define INFOG(I) infog[(I)-1] /* macro s.t. indices match documentation */
-public:
-  dSolveMUMPSmpi(const MatriceMorse<double> &AA,int strategy,double ttgv, double epsilon,
-		 double pivot,double pivot_sym, string param_string, string datafile, KN<long> &param_int, 
-		 KN<double> &param_double, KN<long> &pperm_r, KN<long> &pperm_c, KN<double> &pscale_r,KN<double> &pscale_c, MPI_Comm  * mpicommw
-		) : 
-    eps(epsilon),epsr(0),
-    tgv(ttgv), string_option(param_string), data_option(datafile), perm_r(pperm_r), perm_c(pperm_c), 
-    tol_pivot_sym(pivot_sym),tol_pivot(pivot), scale_r(pscale_r), scale_c(pscale_c)
-  { 
-    long int starttime,finishtime;
-    long int timeused;
-
-    if(verbosity) starttime = clock();
-    int dataint[40];
-    double datadouble[15];
-    int ierr;
-
-     if(mpicommw==0){
-	comm=MPI_COMM_WORLD;
-	}
-	else
-	comm= *mpicommw;
-
-
-    /* ------------------------------------------------------------
-       INITIALIZE THE MUMPS PROCESS GRID. 
-       ------------------------------------------------------------*/
-    ierr = MPI_Comm_rank(comm, &myid);
-    
-    if( myid ==0){
-      n    = AA.n;
-      m    = AA.m; 
-      nz   = AA.nbcoef;
-    
-      MPI_Bcast(  &n, 1, MPI_INT,  0, comm );
-      MPI_Bcast(  &m, 1, MPI_INT,  0, comm );
-      MPI_Bcast( &nz, 1, MPI_INT,  0, comm );
-    }
-    else{
-      MPI_Bcast(  &n, 1, MPI_INT,  0, comm );
-      MPI_Bcast(  &m, 1, MPI_INT,  0, comm );
-      MPI_Bcast( &nz, 1, MPI_INT,  0, comm );
-    }
-    
-    if( !(param_int==NULL) ) 
-      assert( param_int.N() == 42);
-    if( !(param_double==NULL) ) 
-      assert( param_double.N() == 15);
-    if(perm_r)
-      assert( perm_r.N() == n);
-    if(perm_c)
-      assert( perm_c.N() == m);
-    if(scale_r) 
-      assert( scale_r.N() == n);
-    if(scale_c) 
-      assert( scale_c.N() == m);
-
-    if( n != m )
-      cerr << "only square matrix are supported by MUMPS" << endl;
-   
-  
-    // initialisation par defaut
-    SYM=0; PAR=1;
-    
-    /*
-      if(!string_option.empty()) 
-      {
-      if(myid==0){
-      cout << "read string option" <<endl;
-      read_options_freefem(&string_option,&SYM,&PAR);
-      
-      MPI_Bcast(  &SYM, 1, MPI_INT,  0, comm );
-      MPI_Bcast(  &PAR, 1, MPI_INT,  0, comm );
-      }
-      else{
-      MPI_Bcast(  &SYM, 1, MPI_INT,  0, comm );
-      MPI_Bcast(  &PAR, 1, MPI_INT,  0, comm );
-      }
-      }
-    */
-    if( !(param_int==NULL) ){
-      SYM = param_int[0];
-      PAR = param_int[1];
-      cout << "param :: myid =" << myid << endl;
-    }
-    else if( !data_option.empty() )
-      {	
-	cout << "myid =" << myid << endl;
-	if(myid==0){
-	  
-	  char * retfile= new char[data_option.size()+1];
-	  strcpy(retfile, (&data_option)->c_str());
-	  printf("read data option file %s\n",retfile);
-	  FILE *pFile=fopen(retfile,"rt");
-	
-	  int     i_data=0;
-	  int     d_data=0;
-	  char    data[256];
-	  char   *tictac;
-	  
-	  fgets(data,256,pFile);
-	  tictac = strtok(data," /!#\t\n");
-	  SYM = atoi(tictac);
-	  
-	  fgets(data,256,pFile);
-	  tictac = strtok(data," /!#\t\n");
-	  PAR = atoi(tictac);
-	  
-	  while( !feof(pFile) && i_data < 40){
-	    fgets(data,256,pFile);
-	    tictac = strtok(data," /!#\t\n");
-	    dataint[i_data] = (int)atol(tictac);
-	    i_data++;
-	  }  
-	  assert(i_data == 40);
-	  while( !feof(pFile) && d_data < 15){
-	    fgets(data,256,pFile);
-	    tictac = strtok(data," /!#\t\n");
-	    datadouble[d_data] = (double)atof(tictac);
-	    d_data++;
-	  }  
-	  assert(d_data == 15);
-	  /*
-	    for(int ii=0; ii< 40; ii++){
-	    cout << "double int["<< ii <<"] ="<< dataint[ii] << endl;
-	    }  
-	    for(int ii=0; ii< 15; ii++){
-	    cout << "double data["<< ii <<"] ="<< datadouble[ii] << endl;
-	    }  
-	  */
-	  MPI_Bcast(  &SYM, 1, MPI_INT,  0, comm );
-	  MPI_Bcast(  &PAR, 1, MPI_INT,  0, comm );
-
-	  cout << "myid =" << myid << " init parameter :: PAR & SYM " << PAR << " " << SYM << endl; 
-
-	  MPI_Bcast(  dataint, 40, MPI_INT,  0, comm );
-	  MPI_Bcast(  datadouble, 15, MPI_DOUBLE,  0, comm );
-
-
-	  fclose(pFile);
-	  delete [] retfile;
-	}
-	else{
-	  
-
-	  MPI_Bcast(  &SYM, 1, MPI_INT,  0, comm );
-	  MPI_Bcast(  &PAR, 1, MPI_INT,  0, comm );
-	  
-	  cout << "myid =" << myid << "  init parameter :: PAR & SYM " << PAR << " " << SYM << endl; 
-
-
-	  MPI_Bcast(  dataint, 40, MPI_INT,  0, comm );
-	  MPI_Bcast(  datadouble, 15, MPI_DOUBLE,  0, comm );
-	}
-      }
-    
-  
-    /* Initialize a MUMPS instance. Use comm */
-    id.job=JOB_INIT; 
-    id.par=PAR; 
-    id.sym=SYM;
-    id.comm_fortran= (MUMPS_INT) MPI_Comm_c2f( comm );
-    //id.comm_fortran= (F_INT) comm;
-
-    if(verbosity>2) cout << " MUMPS_FreeFem init parameter :: PAR & SYM " << PAR << " " << SYM << endl; 
-
-    dmumps_c(&id);
-
-    if(verbosity>10) cout << "fin init parameter" << endl; 
-
-    /* set parameter of mumps */
-    if( !(param_int == NULL) || !(param_double == NULL) ){
-      if(!data_option.empty()){ 
-	printf("MUMPS ERROR:  parameters are given on the file %s and in the array lparams and dparams => double definition of parameters.",data_option.c_str());
-	exit(1);
-      }
-      
-      if( !(param_int == NULL) ){
-	cout << "internal parameter" << endl;
-	for(int ii=0; ii<40; ii++)	  
-	  id.ICNTL(ii+1) = param_int[ii+2];
-      }
-      else{
-
-	// parameter by default
-	id.ICNTL(1)=-1; id.ICNTL(2)=-1; id.ICNTL(3)=-1; id.ICNTL(4)=0;
-      }
-      if( !(param_double == NULL) ){
-	cout << "internal parameter" << endl;
-	for(int ii=0; ii<15; ii++)
-	  id.CNTL(ii+1) = param_double[ii];
-      }
-    }    
-    else 
-      if(!data_option.empty()){
-	for(int ii=0; ii<40; ii++)
-	  id.ICNTL(ii+1) = dataint[ii];
-	for(int ii=0; ii<15; ii++)
-	  id.CNTL(ii+1) = datadouble[ii];
-      }
-      else{
-	// parameter by default
-	if(verbosity>10) 
-	cout << "default parameter" << endl;
-	id.ICNTL(1)=-1; id.ICNTL(2)=-1; id.ICNTL(3)=-1; id.ICNTL(4)=0;
-    }
-
-    // uniquement donner au host 
-    if(myid==0)
-      {
-	if( !(perm_r==NULL) && id.ICNTL(7)==1){
-	  for(int ii=0; ii<n; ii++) id.perm_in[ii] = pperm_r[ii];
-	}
-	// a decommenter
-	//if( !(perm_c==NULL) && id.ICNTL(6)==1){
-	//for(int ii=0; ii<m; ii++) id.perm_in[ii] = pperm_c[ii];
-      //}
-	if( !(scale_r==NULL) && !(scale_c==NULL) && id.ICNTL(8)==-1 ){
-	  // param_double[0::n-1] :: row  
-	  // param_double[n::n+m-1] :: column 
-	  for(int ii=0; ii<n; ii++) id.rowsca[ii] = scale_r[ii]; 
-	  for(int ii=0; ii<m; ii++) id.colsca[ii] = scale_c[ii];
-	}
-      }
-
-    irn = NULL;
-    jcn = NULL;
-
-    /* valeur par defaut mis dans le dur */      
-    //id.ICNTL(5)  = 0;  
-    //id.ICNTL(18) = 0;
-    
-    // Distribution depend de la valeur de ICNTL(18)
-    if( id.ICNTL(5) != 0 ){
-      printf("we consider only assembled format \n");
-      printf("forced assembled format ==> id.ICNTL(5)  = 0;  \n");
-      id.ICNTL(5)  = 0;  
-      exit(1);
-    }
-
-    if (myid == 0) {
-      id.n = n; id.nz =nz; 
-      //id.irn=irn; id.jcn=jcn;
-      //id.a = a; //id.rhs = rhs;
-    }
-
-    if( id.ICNTL(18) == 0)
-      {
-        
-	// CASE:: NON DISTRIBUTED MATRIX
-	if (myid == 0) { // nouveau
-
-	  a=AA.a;
-	  // ATTENTION 
-	  // AA.cl :: indice des colonnes (exacte) et AA.lg :: indice des lignes 
-	  // index of row and colummn by 1
-	  jcn = AA.cl;
-	  for(int ii=0; ii<nz; ii++)
-	    jcn[ii] = jcn[ii]+1;
-	  
-	  if( !(irn = (int*) malloc(sizeof(int)*nz)) ){
-	    printf("problem allocation jcn ");
-	    exit(1);
-	  }
-	
-	  assert(AA.lg[n] == nz);
-	  for(int ii=0; ii< n; ii++)
-	    for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-	      irn[ii1] = ii+1;  
-		
-	  // if (myid == 0) {   // ancien
-	  id.irn=irn; id.jcn=jcn;
-	  id.a = a; //id.rhs = rhs;
-	}
-
-	/* Call the MUMPS package. */
-	// Analyse + Factorisation 
-	id.job=4;
-	dmumps_c(&id);
-	
-      }
-
-
-    if( id.ICNTL(18) == 1 || id.ICNTL(18) == 2 )
-      {
-
-	if(verbosity > 1) cout <<"id.ICNTL(18) = 1 || id.ICNTL(18) == 2 "<< endl;
-	// ATTENTION 
-	// AA.cl :: indice des colonnes (exacte) et AA.lg :: indice des lignes 
-	// index of row and column by 1
-	
-	if (myid == 0) { // new host process 
-	
-	  jcn = AA.cl;
-	  for(int ii=0; ii<nz; ii++)
-	    jcn[ii] = jcn[ii]+1;
-	  
-	  if( !(irn = (int*) malloc(sizeof(int)*nz)) ){
-	    printf("problem allocation irn ");
-	    exit(1);
-	  }
-	  
-	  assert(AA.lg[n] == nz);
-	  for(int ii=0; ii< n; ii++)
-	    for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-	      irn[ii1] = ii+1;  
-	  
-	  
-	  //if (myid == 0) {  // enlever new host
-	  id.irn=irn; id.jcn=jcn;
-	}
-	
-	/* Call the MUMPS package. */
-	// Analyse   
-	id.job=1;
-	dmumps_c(&id);
-
-	if(id.ICNTL(18) == 1 ){
-	  
-	   if( PAR == 0 ){ 
-	    int *nz_loc_procs;
-	    int *fst_nz_procs;
-	    int *irn_g;
-	    int *jcn_g;
-	    double *a_g;
-	    int commSize;
-	    
-	    MPI_Comm_size(comm,&commSize);
-	    cout << commSize << "commSize" << "nz =" << nz << endl;
-	    if(myid==0){
-	      // allocation des differents tableaux
-	      nz_loc_procs = (int*) malloc ( commSize*sizeof(int) );
-	      for(int ii=0; ii<commSize; ii++){
-		nz_loc_procs[ii]=0;
-	      }
-	      for(int ii=0; ii<nz; ii++){
-		nz_loc_procs[ id.mapping[ii] ]++;
-	      }
-	      assert(nz_loc_procs[0] == 0);
-	      nz_loc_procs[0] = 2;
-
-	      fst_nz_procs = (int*) malloc ( commSize*sizeof(int) );	      
-	      fst_nz_procs[0] = 0;
-	      for(int ii=1; ii<commSize; ii++){
-		fst_nz_procs[ii] = fst_nz_procs[ii-1]+nz_loc_procs[ii-1];
-	      }
-	      
-	      irn_g = (int*) malloc( sizeof(int)*(nz+2) );
-	      jcn_g = (int*) malloc( sizeof(int)*(nz+2) );
-	      a_g   = (double*) malloc( sizeof(double)*(nz+2) );
-	      
-	      int *index_p;
-	      index_p = (int*) malloc ( commSize*sizeof(int) );
-	      for(int ii=0; ii<commSize; ii++)
-		index_p[ii] =0;
-	      
-	      irn_g[ 0 ] = 1;
-	      jcn_g[ 0 ] = 1;
-	      a_g  [ 0 ] = 1.;
-	      
-	      irn_g[ 1 ] = 1;
-	      jcn_g[ 1 ] = 1;
-	      a_g  [ 1 ] = 1.;
-	      
-	      for(int ii=0;ii<nz; ii++){	      
-		int jj1 = id.mapping[ii];
-		int jj2 = fst_nz_procs[jj1] + index_p[jj1];
-		assert(jj2 > 1);
-		irn_g[ jj2 ] =  irn[ ii ];
-		jcn_g[ jj2 ] =  jcn[ ii ];
-		a_g  [ jj2 ] = AA.a[ ii ];
-		cout << "jj2= " << jj2 << endl;
-		assert( jj2 < nz+2);
-		index_p[jj1]++;
-	      }
-	      free(index_p);
-	      
-	    }
-	    
-	    MPI_Scatter( nz_loc_procs, 1, MPI_INT, &nz_loc, 1, MPI_INT, 0, comm);
-	    
-	    // allocation des tableaux locaux
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc    = (double*) malloc(sizeof(double)*nz_loc);
-	    
-	    MPI_Scatterv(   a_g, nz_loc_procs, fst_nz_procs, MPI_DOUBLE, a_loc, nz_loc, MPI_DOUBLE, 0, comm);
-	    MPI_Scatterv( jcn_g, nz_loc_procs, fst_nz_procs, MPI_INT, jcn_loc, nz_loc, MPI_INT, 0, comm);
-	    MPI_Scatterv( irn_g, nz_loc_procs, fst_nz_procs, MPI_INT, irn_loc, nz_loc, MPI_INT, 0, comm);
-	    cout << "myid=" << myid <<" nz_loc=" << nz_loc << endl;
-	    if( myid == 1){
-	      cout << "nz_loc=" << nz_loc << endl;
-	      for(int ii=0;ii<nz_loc; ii++){
-		cout << "a_loc[ii]" << a_loc[ii] << endl;
-	
-	      }
-	    }
-	    
-	    if( myid > 0){
-	      id.nz_loc = nz_loc;
-	      id.irn_loc = irn_loc;
-	      id.jcn_loc = jcn_loc;
-	      id.a_loc = a_loc;
-	    }
-	    
-	    if( myid == 0){
-	      //free( irn_loc );
-	      //free( jcn_loc );
-	      //free( a_loc );
-	      free( nz_loc_procs );
-	      free( fst_nz_procs );
-	      free( irn_g );
-	      free( jcn_g );
-	      free( a_g );
-	    }
-	   }
-	
-	  
-	  if( PAR == 1 ){ 
-	    int *nz_loc_procs;
-	    int *fst_nz_procs;
-	    int *irn_g;
-	    int *jcn_g;
-	    double *a_g;
-	    int commSize;
-	    
-	    MPI_Comm_size(comm,&commSize);
-	    
-	    if(myid==0){
-	      // allocation des differents tableaux
-	      nz_loc_procs = (int*) malloc ( commSize*sizeof(int) );
-	      for(int ii=0; ii<commSize; ii++){
-		nz_loc_procs[ii]=0;
-	      }
-	      for(int ii=0; ii<nz; ii++){
-		nz_loc_procs[ id.mapping[ii] ]++;
-	      }
-	      
-	      fst_nz_procs = (int*) malloc ( commSize*sizeof(int) );
-	      
-	      fst_nz_procs[0] = 0;
-	      for(int ii=1; ii<commSize; ii++){
-		fst_nz_procs[ii] = fst_nz_procs[ii-1]+nz_loc_procs[ii-1];
-	      }
-	      
-	      irn_g = (int*) malloc(sizeof(int)*nz);
-	      jcn_g = (int*) malloc(sizeof(int)*nz);
-	      a_g   = (double*) malloc(sizeof(double)*nz);
-	      
-	      int *index_p;
-	      index_p = (int*) malloc ( commSize*sizeof(int) );
-	      for(int ii=0; ii<commSize; ii++)
-		index_p[ii] =0;
-	      
-	      for(int ii=0;ii<nz; ii++){	      
-		int jj1 = id.mapping[ii];
-		int jj2 = fst_nz_procs[jj1] + index_p[jj1];
-
-		irn_g[ jj2 ] =  irn[ ii ];
-		jcn_g[ jj2 ] =  jcn[ ii ];
-		a_g  [ jj2 ] = AA.a[ ii ];
-		index_p[jj1]++;
-	      }
-	      free(index_p);
-	      
-	    }
-	    
-	    MPI_Scatter( nz_loc_procs, 1, MPI_INT, &nz_loc, 1, MPI_INT, 0, comm);
-	    
-	    // allocation des tableaux locaux
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc    = (double*) malloc(sizeof(double)*nz_loc);
-	    
-	    MPI_Scatterv(   a_g, nz_loc_procs, fst_nz_procs, MPI_DOUBLE, a_loc, nz_loc, MPI_DOUBLE, 0, comm);
-	    MPI_Scatterv( jcn_g, nz_loc_procs, fst_nz_procs, MPI_INT, jcn_loc, nz_loc, MPI_INT, 0, comm);
-	    MPI_Scatterv( irn_g, nz_loc_procs, fst_nz_procs, MPI_INT, irn_loc, nz_loc, MPI_INT, 0, comm);
-	    
-	    id.nz_loc = nz_loc;
-	    id.irn_loc = irn_loc;
-	    id.jcn_loc = jcn_loc;
-	    id.a_loc = a_loc;
-	    
-	    
-	    if( myid == 0){
-	      free( nz_loc_procs );
-	      free( fst_nz_procs );
-	      free( irn_g );
-	      free( jcn_g );
-	      free( a_g );
-	    }
-	  }
-	  // version all procs
-// 	    if(myid==0){
-//	    
-// 	    MPI_Bcast( id.mapping, nz, MPI_INT,  0, comm );
-//    
-// 	    nz_loc=0;
-// 	    for(int ii=0;ii<nz; ii++){
-// 	      if( id.mapping[ii] == myid) nz_loc++;
-// 	    }
-//   
-// 	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	    a_loc   = (double*) malloc(sizeof(double)*nz_loc);
-//
-// 	    int jj=0;
-// 	    for(int ii=0;ii<nz; ii++)
-// 	      if( id.mapping[ii] == myid){
-// 		irn_loc[jj] = irn[ ii ];
-// 		jcn_loc[jj] = jcn[ ii ];
-// 		a_loc[jj] = AA.a[ ii ];
-// 		jj++;
-// 	      }
-// 	    assert(jj==nz_loc);
-//	    
-// 	    if(PAR==1){
-// 	      id.nz_loc = nz_loc;
-// 	      id.irn_loc = irn_loc;
-// 	      id.jcn_loc = jcn_loc;
-// 	      id.a_loc = a_loc;
-// 	    }
-//	    
-// 	  }
-// 	  else{
-// 	    int *mapping;
-// 	    mapping = (int*) malloc(sizeof(int)*nz);
-// 	    MPI_Bcast( mapping, nz, MPI_INT,  0, comm );
-// 	    nz_loc=0;
-//
-// 	    for(int ii=0;ii<nz; ii++)
-// 	      if( mapping[ii] == myid) nz_loc++;
-//	    
-// 	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	    a_loc    = (double*) malloc(sizeof(double)* nz_loc);
-//	    
-// 	    //==============================
-// 	    //    besoin de irn, jcn, AA.a
-// 	    //==============================
-//
-// 	    int jj=0.;
-// 	    for(int ii=0;ii<nz; ii++)
-// 	      if( mapping[ii] == myid){
-// 		irn_loc[jj] = irn[ ii ];  
-// 		jcn_loc[jj] = jcn[ ii ];
-// 		a_loc[jj] = AA.a[ ii ];
-// 		jj++;
-// 	      }
-// 	    assert(jj==nz_loc);
-//
-// 	    free(mapping);
-//
-// 	    id.nz_loc = nz_loc;
-// 	    id.irn_loc = irn_loc;
-// 	    id.jcn_loc = jcn_loc;
-// 	    id.a_loc = a_loc;
-// 	  }
-	 
-	  /* Call the MUMPS package. */
-	  // Factorisation   
-	  id.job=2;
-	  dmumps_c(&id);	  
-	  
-	}
-      
-
-	if(id.ICNTL(18) == 2 ){
-	  printf("id.ICNTL(18)==2 not avaible yet \n");
-	  exit(1);
-
-
-	  if(PAR == 0){ 
-	    printf("id.ICNTL(18)==2 with PAR=0 not available yet \n");
-	    exit(1);
-	    if(myid !=0) {
-	      
-	      //==============================
-	      //    besoin de irn, jcn, AA.a
-	      //==============================
-	      
-	      int commSize;	    
-	      ierr=MPI_Comm_size(comm,&commSize);
-	      commSize=commSize-1;
-	      int myidpar=myid-1;
-	      int m_loc_fst = m/commSize;
-	      int m_loc;
-	      if( myidpar == commSize-1 && ( m_loc_fst*commSize != m ) )  
-		m_loc = m-m_loc_fst*( commSize-1 );
-	      else
-		m_loc = m_loc_fst;
-	      
-	      int fst_row= myidpar*m_loc_fst;
-	      nz_loc = AA.lg[fst_row+m_loc]-AA.lg[fst_row];
-	      
-	      // allocation des tableaux
-	      irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	      jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	      a_loc    = (double*) malloc(sizeof(double)*nz_loc);
-	      
-	      int fst_nnz = AA.lg[fst_row];
-	      for(int ii=0; ii < nz_loc; ii++){
-		a_loc[ii] = AA.a[fst_nnz+ii];
-		jcn_loc[ii] = AA.cl[fst_nnz+ii]; // jcn=AA.cl a ete augmenter de 1 avant => pas ajouter 1
-	      }
-	      
-	      for(int ii=fst_row; ii< fst_row+m_loc; ii++){
-		for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-		  irn_loc[ii1-fst_nnz] = ii+1;  
-	      }
-	      
-	      id.nz_loc = nz_loc;
-	      id.irn_loc = irn_loc;
-	      id.jcn_loc = jcn_loc;
-	      id.a_loc = a_loc;
-	    }
-	  }
-	  if(PAR == 1){
-
-	    //==============================
-	    //    besoin de irn, jcn, AA.a
-	    //==============================
-	      
-	    int commSize;	    
-	    ierr=MPI_Comm_size(comm,&commSize);
-	    int m_loc_fst = m/commSize;
-	    int m_loc;
-	    if( myid == commSize-1 && ( m_loc_fst*commSize != m ) )  
-	      m_loc = m-m_loc_fst*( commSize-1 );
-	    else
-	      m_loc = m_loc_fst;
-	    
-	    int fst_row= myid*m_loc_fst;
-	    nz_loc = AA.lg[fst_row+m_loc]-AA.lg[fst_row];
-	    
-	    // allocation des tableaux
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc    = (double*) malloc(sizeof(double)*nz_loc);
-	    
-	    int fst_nnz = AA.lg[fst_row];
-	    for(int ii=0; ii < nz_loc; ii++){
-	      a_loc[ii] = AA.a[fst_nnz+ii];
-	      jcn_loc[ii] = AA.cl[fst_nnz+ii];  // jcn=AA.cl a ete augmenter de 1 avant => pas ajouter 1
-	    }
-	    
-	    for(int ii=fst_row; ii< fst_row+m_loc; ii++){
-	      for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-		irn_loc[ii1-fst_nnz] = ii+1;  
-	    }
-	  
-	    id.nz_loc = nz_loc;
-	    id.irn_loc = irn_loc;
-	    id.jcn_loc = jcn_loc;
-	    id.a_loc = a_loc;
-	    
-	  }
-
-	  /* Call the MUMPS package. */
-	  // Factorisation   
-	  id.job=2;
-	  dmumps_c(&id);
-	}
-      }
-	
-    if( id.ICNTL(18) == 3 )
-      {	
-	// indices et colonnes de la matrice
-	
-// 	//  Cas Matrice parallele ::
-// 	//  ========================
-//	
-// 	// Cas stockage Morse parallele
-// 	m_loc = AA.m_loc;       // Nombre de lignes prise en compte
-// 	nz_loc = AA.nbcoef_loc;   // Nombre de coefficients non nulles 
-// 	// indice des colonnes
-// 	jcn_loc = AA.cl_loc;       // indices des colonnes dans la matrice locale
-//	
-// 	if( !(irn_loc = (int*) malloc(sizeof(int)*nz_loc)) ){
-// 	  printf("problem allocation jcn ");
-// 	  exit(1);
-// 	}
-// 	assert(AA.lg_loc[nrow_loc] == nz_loc);
-// 	for(int ii=0; ii< nrow_loc; ii++)
-// 	  for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-// 	    irn_loc[ii1] = ii+1;
-//
-// 	a_loc=AA.a_loc;
-//
-	// Pas de matrice parallele ==> utilisation astuce de SuperLU
-	// Matrice :: distribution bloc continue de lignes :: voir SuperLU 
-	// Attention :: performance ???
-	
-// 	    //==================
-// 	    // pour un proc :
-// 	    // a:     AA.a[fstow]   , ..., AA.a[fstrow+nz_loc-1] 
-// 	    // jcn:   AA.cl[fstrow] , ..., AA.cl[fstrow+nz_loc-1]
-// 	    // irn:   AA.lg[fstrow] , ..., AA.lg[fstrow+m_loc] 
-// 	    //==================
-// 	    // apres reception : 
-// 	    // irn_reel:  
-// 	    //  int jj=0, 
-// 	    //  do ii=0,m_loc-1
-// 	    //      do ii1=irn_donnee[ii],irn_donnee[ii+1]-1
-// 	    //         irn_reel[jj] = fst_row+ii+1;
-// 	    //         jj++
-// 	    //      end do
-// 	    //  end do
-// 	    //=================
-
-	cout <<"id.ICNTL(18) = 3,  PAR="<< PAR << endl;
-
-	if(PAR == 0){
-	  	  
-	    
-// 	  if(myid != 0) {
-// 	    int commSize;	    
-// 	    ierr=MPI_Comm_size(comm,&commSize);
-// 	    commSize=commSize-1;
-// 	    int myidpar=myid-1;
-// 	    int m_loc_fst;
-// 	    m_loc_fst= m/commSize;
-// 	    int m_loc;
-// 	    if( myidpar == commSize-1 && ( m_loc_fst*commSize != m ) )  
-// 	      m_loc = m-m_loc_fst*( commSize-1 );
-// 	    else
-// 	      m_loc = m_loc_fst;
-	    
-// 	    int fst_row;
-// 	    fst_row= myidpar*m_loc_fst;
-// 	    nz_loc = AA.lg[fst_row+m_loc]-AA.lg[fst_row];
-	    
-// 	    // allocation des tableaux
-// 	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	    a_loc    = (double*) malloc(sizeof(double)* nz_loc);
-	    
-// 	    int fst_nnz;
-// 	    fst_nnz = AA.lg[fst_row];
-// 	    for(int ii=0; ii < nz_loc; ii++){
-// 	      a_loc[ii] = AA.a[fst_nnz+ii];
-// 	      jcn_loc[ii] = AA.cl[fst_nnz+ii]+1;
-// 	    }
-	    
-// 	    for(int ii=fst_row; ii< fst_row+m_loc; ii++){
-// 	      for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-// 		irn_loc[ii1-fst_nnz] = ii+1;  
-// 	    }
-	 
-// 	    id.nz_loc = nz_loc;
-// 	    id.irn_loc = irn_loc;
-// 	    id.jcn_loc = jcn_loc;
-// 	    id.a_loc = a_loc;
-// 	  }
-
-
-	  // definition de variables
-	  int commSize;
-	  int m_loc_fst;	 
-	  int m_loc;
-	  int fst_row;
-	  
-
-	  int *nz_loc_procs;
-	  int *fst_nz_procs;
-	  int *m_loc_procs;
-	  int *fst_row_procs;
-	 
-
-	  double *tab_a;
-	  int *tab_cl;
-	  int *tab_lg;
-	  int *tab_lg_loc;
-
-	  MPI_Comm_size(comm,&commSize);
-	  
-	  if( myid !=0){
-	    int commSizemm;
-	    int myidpar=myid-1;
-
-	    commSizemm = commSize-1;
-	    m_loc_fst= m/commSizemm;
-	  
-	    if( myidpar == commSizemm-1 && ( m_loc_fst*commSizemm != m ) )  
-	      m_loc = m-m_loc_fst*( commSizemm-1 );
-	    else
-	      m_loc = m_loc_fst;
-	  
-	    if(verbosity > 5){
-	      fst_row = myidpar*m_loc_fst;
-	      cout << "   myid = " << myid << endl;
-	      cout <<"   m_loc = " << m_loc << endl;
-	      cout <<" fst_row = " << fst_row << endl;
-	    }
-
-	  }
-	  if( myid ==0){
-
-	    int commSizemm;
-	    commSizemm = commSize-1;
-	    m_loc_fst= m/commSizemm;
-
-	    fst_row_procs = (int* ) malloc( commSize*sizeof(int) );
-	    m_loc_procs = (int* ) malloc( commSize*sizeof(int) );
-	    fst_nz_procs = (int* ) malloc( commSize*sizeof(int) );
-	    nz_loc_procs = (int* ) malloc ( commSize*sizeof(int) );
-	    
-	    
-	    fst_row_procs [0] = 0;
-	    m_loc_procs   [0] = 0;
-
-	    for( int ii= 1; ii<commSize; ii++){
-	      fst_row_procs [ii] = (ii-1)*m_loc_fst;
-	      m_loc_procs [ii] = m_loc_fst;
-	    }
-	    
-	    if( m_loc_fst*(commSize-1) != m ) 
-	      m_loc_procs [commSize-1] = m-m_loc_fst*( (commSize-1)-1 );
-
-
-	    nz_loc_procs [0] = 0;
-	    fst_nz_procs [0] = 0;
-	    
-	    for( int ii= 1; ii<commSize; ii++){
-	      nz_loc_procs [ii] = AA.lg[fst_row_procs[ii]+m_loc_procs[ii] ] - AA.lg[fst_row_procs[ii]];
-	      fst_nz_procs [ii] = AA.lg[fst_row_procs[ii]];
-	    }
-
-	   
-	    /*
-	      tab_a= (int* ) malloc( nz*sizeof(double) );
-	      tab_cl = (int* ) malloc( nz*sizeof(int) );
-	      tab_lg = (int* ) malloc ( n*sizeof(int) );
-	    */
-	    tab_a  = AA.a;
-	    tab_cl = AA.cl;
-	    tab_lg = AA.lg;
-	  }
-
-	  MPI_Scatter( nz_loc_procs, 1, MPI_INT, &nz_loc, 1, MPI_INT, 0, comm);
-	  MPI_Scatter( m_loc_procs,  1, MPI_INT, &m_loc, 1, MPI_INT, 0, comm);
-	  MPI_Scatter( fst_row_procs,  1, MPI_INT, &fst_row, 1, MPI_INT, 0, comm);
-
-	  if(verbosity > 5){
-	    cout << "after scatter " << myid << endl;
-	    cout << "   myid = " << myid << endl;
-	    cout <<"   m_loc = " << m_loc << endl;
-	    cout <<" fst_row = " << fst_row << endl;
-	  }
-	  // allocation des tableaux locaux
-	  irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	  jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	  a_loc    = (double*) malloc(sizeof(double)*nz_loc);
-	  tab_lg_loc = (int*) malloc(sizeof(int)*(m_loc) );
-	  
-	
-
-	  MPI_Scatterv(  tab_a, nz_loc_procs, fst_nz_procs, MPI_DOUBLE, a_loc, nz_loc, MPI_DOUBLE, 0, comm);
-	  MPI_Scatterv( tab_cl, nz_loc_procs, fst_nz_procs, MPI_INT, jcn_loc, nz_loc, MPI_INT, 0, comm);
-	  MPI_Scatterv( tab_lg,  m_loc_procs, fst_row_procs, MPI_INT, tab_lg_loc, m_loc, MPI_INT, 0, comm);
-	  
-	
-	  int jj=0;
-	  for(int  ii=0; ii<m_loc-1; ii++)
-	    for(int ii1= tab_lg_loc[ii]; ii1 < tab_lg_loc[ii+1]; ii1++){
-	      irn_loc[jj] = fst_row+ii+1;
-	      jj++;
-	    }
-	  
-	  for(int ii1= tab_lg_loc[m_loc-1]; ii1 < tab_lg_loc[0]+nz_loc; ii1++){
-	    irn_loc[jj] = fst_row+(m_loc-1)+1;
-	    jj++;
-	  }
-	  
-	  for(int ii=0; ii < nz_loc; ii++){	    
-	    jcn_loc[ii] = jcn_loc[ii]+1; 
-	  }
-
-	  assert( jj == nz_loc );
-	  
-	  free( tab_lg_loc );
-	  
-	  id.nz_loc = nz_loc;
-	  id.irn_loc = irn_loc;
-	  id.jcn_loc = jcn_loc;
-	  id.a_loc = a_loc;
-	 
-	  if( myid == 0 ){
-	    free( fst_row_procs );
-	    free( m_loc_procs );
-	    free( fst_nz_procs );
-	    free( nz_loc_procs );
-	  }
-
-	}
-	if(PAR ==1) {
-	  /*
-	    int commSize;
-	    ierr=MPI_Comm_size(comm,&commSize);
-	    int m_loc_fst;
-	    m_loc_fst= m/commSize;
-	    int m_loc;
-	    if( myid == commSize-1 && ( m_loc_fst*commSize != m ) )  
-	    m_loc = m-m_loc_fst*( commSize-1 );
-	    else
-	    m_loc = m_loc_fst;	  
-	    
-	    int fst_row;
-	    fst_row = myid*m_loc_fst;
-	    
-	    nz_loc = AA.lg[fst_row+m_loc]-AA.lg[fst_row];
-	    
-	    // allocation des tableaux
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc    = (double*) malloc(sizeof(double)* nz_loc);
-	    
-	    int fst_nnz;
-	    fst_nnz= AA.lg[fst_row];
-	    for(int ii=0; ii < nz_loc; ii++){
-	    a_loc[ii] = AA.a[fst_nnz+ii];
-	    jcn_loc[ii] = AA.cl[fst_nnz+ii]+1; 
-	    }
-	  
-	    for(int ii=fst_row; ii< fst_row+m_loc; ii++){
-	    for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++)
-	    irn_loc[ii1-fst_nnz] = ii+1;  
-	    }
-	    
-	  */
-
-	  // definition de variables
-	  int commSize;
-	  int m_loc_fst;	 
-	  int m_loc;
-	  int fst_row;
-	  
-
-	  int *nz_loc_procs;
-	  int *fst_nz_procs;
-	  int *m_loc_procs;
-	  int *fst_row_procs;
-	 
-
-	  double *tab_a;
-	  int *tab_cl;
-	  int *tab_lg;
-	  int *tab_lg_loc;
-
-	  MPI_Comm_size(comm,&commSize);
-	  m_loc_fst= m/commSize;
-	  
-	  if( myid == commSize-1 && ( m_loc_fst*commSize != m ) )  
-	    m_loc = m-m_loc_fst*( commSize-1 );
-	  else
-	    m_loc = m_loc_fst;	  
-	  
-	  fst_row = myid*m_loc_fst;
-	  
-	  if( myid ==0){
-	    fst_row_procs = (int* ) malloc( commSize*sizeof(int) );
-	    m_loc_procs = (int* ) malloc( commSize*sizeof(int) );
-	    fst_nz_procs = (int* ) malloc( commSize*sizeof(int) );
-	    nz_loc_procs = (int* ) malloc ( commSize*sizeof(int) );
-
-	    for( int ii= 0; ii<commSize; ii++){
-	      fst_row_procs [ii] = ii*m_loc_fst;
-	      m_loc_procs [ii] = m_loc_fst;
-	    }
-	    
-	    if( m_loc_fst*commSize != m ) 
-	      m_loc_procs [commSize-1] = m-m_loc_fst*( commSize-1 );
-	    
-	    for( int ii= 0; ii<commSize; ii++){
-	      nz_loc_procs [ii] = AA.lg[fst_row_procs[ii]+m_loc_procs[ii] ] - AA.lg[fst_row_procs[ii]];
-	      fst_nz_procs [ii] = AA.lg[fst_row_procs[ii]];
-	    }
-
-	   
-	    /*
-	      tab_a= (int* ) malloc( nz*sizeof(double) );
-	      tab_cl = (int* ) malloc( nz*sizeof(int) );
-	      tab_lg = (int* ) malloc ( n*sizeof(int) );
-	    */
-	    tab_a  = AA.a;
-	    tab_cl = AA.cl;
-	    tab_lg = AA.lg;
-	  }
-
-	  MPI_Scatter( nz_loc_procs, 1, MPI_INT, &nz_loc, 1, MPI_INT, 0, comm);
-	  cout << "nz_loc("<<myid<<")="<< nz_loc << endl;
-	  cout << "m_loc("<<myid<<")="<< m_loc << endl;
-	  // allocation des tableaux locaux
-	  irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	  jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	  a_loc    = (double*) malloc(sizeof(double)*nz_loc);
-	  tab_lg_loc = (int*) malloc(sizeof(int)*(m_loc) );
-	
-	  MPI_Scatterv(  tab_a, nz_loc_procs, fst_nz_procs, MPI_DOUBLE, a_loc, nz_loc, MPI_DOUBLE, 0, comm);
-	  MPI_Scatterv( tab_cl, nz_loc_procs, fst_nz_procs, MPI_INT, jcn_loc, nz_loc, MPI_INT, 0, comm);
-	  MPI_Scatterv( tab_lg,  m_loc_procs, fst_row_procs, MPI_INT, tab_lg_loc, m_loc, MPI_INT, 0, comm);
-	
-	  int jj=0;
-	  for(int  ii=0; ii<m_loc-1; ii++)
-	    for(int ii1= tab_lg_loc[ii]; ii1 < tab_lg_loc[ii+1]; ii1++){
-	      irn_loc[jj] = fst_row+ii+1;
-	      jj++;
-	    }
-	  
-	  for(int ii1= tab_lg_loc[m_loc-1]; ii1 < tab_lg_loc[0]+nz_loc; ii1++){
-	    irn_loc[jj] = fst_row+(m_loc-1)+1;
-	    jj++;
-	  }
-	  
-	  for(int ii=0; ii < nz_loc; ii++){	    
-	    jcn_loc[ii] = jcn_loc[ii]+1; 
-	  }
-
-	  assert( jj == nz_loc );
-	  
-	  free( tab_lg_loc );
-	  
-	  id.nz_loc = nz_loc;
-	  id.irn_loc = irn_loc;
-	  id.jcn_loc = jcn_loc;
-	  id.a_loc = a_loc;
-	 
-	  if( myid == 0 ){
-	    free( fst_row_procs );
-	    free( m_loc_procs );
-	    free( fst_nz_procs );
-	    free( nz_loc_procs );
-	  }
-	}
-	/* Call the MUMPS package. */
-	// Analyse + Factorisation
-	 
-	 id.job=1;
-	 dmumps_c(&id);
-
-	 id.job=2;
-	 dmumps_c(&id);
-      }
-    
-    
-    // indices des colonnes commence par 1 avec mumps 
-    //  et 0 dans freefem ==> renumerotation
-    if( jcn != NULL )
-      for(int ii=0; ii<nz; ii++)
-	jcn[ii] = jcn[ii]-1;
-
-    if( irn != NULL && id.ICNTL(18) >0 ){
-      free(irn); 
-      irn=NULL;
-    }
-
-
-    
-    if( verbosity > 1){
-      /* information given by mumps*/
-      int Rinfo=20;
-      int Sinfo=40;
-      // in Freefem++ we give only global information
-      if(myid == 0){
-	printf("Global Output Information of MUMPS: RINFOG and INFOG \n");
-	printf("=============  After Factorisation ==================\n");
-	for(int ii=0; ii< Rinfo; ii++) 
-	  printf( "RINFOG[%d]= %f \n", ii, id.RINFOG(ii+1) );
-	printf("=====================================================\n");
-	for(int ii=0; ii< Sinfo; ii++) 
-	  printf( "INFOG[%d]= %d \n", ii, id.INFOG(ii+1) );
-	printf("=====================================================\n");
-      }
-    }
-    
-    if( verbosity )
-      if(myid==0){
-	finishtime = clock();
-	timeused= (finishtime-starttime)/(1000 );
-	printf("=====================================================\n");
-	cout << "MUMPS : time factorisation  :: " << timeused << " ms" <<endl;
-	printf("=====================================================\n");
-      }
-
-
-  }
-  void Solver(const MatriceMorse<double> &AA,KN_<double> &x,const KN_<double> &b) const  {
-    long int starttime,finishtime;
-    long int timeused;
-    /////////////////////////////
-    double *rhs;
-    int job;
-
-    if(verbosity) starttime = clock();
-    
-    ffassert ( &x[0] != &b[0]);
-    epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-  
-    // indices des colonnes commence par 1 avec mumps 
-    //  et 0 dans freefem ==> renumerotation
-    if(jcn != NULL)
-      for(int ii=0; ii<nz; ii++)
-	jcn[ii] = jcn[ii]+1;
-   
-
-    if ( !(rhs = (double*) malloc(sizeof(double)*m) ) ){
-      printf("Pb allocate rhs in MUMPS\n");
-      exit(1);
-    }
-   
-    for(int ii=0; ii<m; ++ii){
-      rhs[ii] = b[ii];
-    }
-
-    if( myid == 0 )
-      id.rhs=rhs;
-
-    /* solve linear problem */
-
-    id.job=3;
-    dmumps_c(&id);
-
-    if( myid==0 ){
-      x=id.rhs;
-      MPI_Bcast( x, n, MPI_DOUBLE, 0, comm );
-    }
-    else
-      MPI_Bcast( x, n, MPI_DOUBLE, 0, comm );
-    
-    // deallocation de rhs
-    free(rhs);
-
-    // indices des colonnes commence par 1 avec mumps 
-    //  et 0 dans freefem ==> renumerotation
-    if(jcn != NULL)
-      for(int ii=0; ii<nz; ii++)
-	jcn[ii] = jcn[ii]-1;
-    
-    if(verbosity) cout << "   x min max " << x.min() << " " <<x.max() << endl;
-
-    
-
-
-    if( verbosity >1){
-      /* information given by mumps*/
-      int Rinfo=20;
-      int Sinfo=40;
-      // in Freefem++ we give only global information
-      if(myid == 0){
-	printf("Global Output Information of MUMPS: RINFOG and INFOG \n");
-	printf("=============  After Solving       ==================\n");
-	for(int ii=0; ii< Rinfo; ii++) 
-	  printf( "RINFOG[%d]= %f \n", ii, id.RINFOG(ii+1) );
-	printf("=====================================================\n");
-	for(int ii=0; ii< Sinfo; ii++) 
-	  printf( "INFOG[%d]= %d \n", ii, id.INFOG(ii+1) );
-	printf("=====================================================\n");
-      }
-    }
-
-    if( verbosity ){
-      if(myid==0){
-	finishtime = clock();
-	timeused= (finishtime-starttime)/(1000 );
-	printf("=====================================================\n");
-	cout << "MUMPS : time solve step  :: " << timeused << " ms,  Mem usage " << id.INFOG(16) << "Mb  \n";
-	printf("=====================================================\n");
-      }
-    }
-  }
-
-  ~dSolveMUMPSmpi() { 
-    if(verbosity>10)
-      cout << "~SolveMUMPS S:" << endl;
-    
-     id.job=JOB_END; 
-     dmumps_c(&id); /* Terminate instance */
-
-     if( irn != NULL){
-      free(irn); 
-      irn=NULL;
-     }
-     /*
-       free(jcn_loc);
-       free(irn_loc);
-       free(a_loc);
-     */
-  }
-  void addMatMul(const KN_<R> & x, KN_<R> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<R> &) (*this) * x; 
-  }
-     
-}; 
-
-
-static mumps_double_complex *mumps_dc(Complex *p)  { return (mumps_double_complex *) (void *) p;}
-static Complex *inv_mumps_dc(mumps_double_complex *p)  { return (Complex *) (void *) p;}
-
-class zSolveMUMPSmpi :   public MatriceMorse<Complex>::VirtualSolver   {
-  
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-  mutable MPI_Comm comm;
-
-  Complex           *a;
-  int       *irn, *jcn;
-  int          n, m, nz; 
-   
-  // parameter MUMPS
-  KN<int>        perm_r; /* row permutations from partial pivoting */
-  KN<int>        perm_c;
-  KN<double>     scale_r;
-  KN<double>     scale_c;
-  string  string_option;
-  string data_option;
-  int SYM;
-  int PAR;
-  int myid;
-
-  // distribuer
-  int nz_loc;
-  int *jcn_loc, *irn_loc;
-  Complex *a_loc;
-
-
-  static const int JOB_INIT=-1;
-  static const int JOB_END=-2;
-  static const int USE_COMM_WORLD= -987654;
-
-  // variable complex 
-  mutable ZMUMPS_STRUC_C id;
-
-  /* variable d'informations */ 
-  
-#define ICNTL(I) icntl[(I)-1] /* macro s.t. indices match documentation */
-#define CNTL(I) cntl[(I)-1] /* macro s.t. indices match documentation */
-#define RINFOG(I) rinfog[(I)-1] /* macro s.t. indices match documentation */
-#define INFOG(I) infog[(I)-1] /* macro s.t. indices match documentation */
-public:
-  zSolveMUMPSmpi(const MatriceMorse<Complex> &AA,int strategy,double ttgv, double epsilon,
-		 double pivot,double pivot_sym, string param_string, string datafile, KN<long> &param_int, 
-		 KN<double> &param_double, KN<long> &pperm_r, KN_<long> &pperm_c, KN<double> &pscale_r,KN<double> &pscale_c, MPI_Comm  * mpicommw) : 
-    eps(epsilon),epsr(0),
-    tgv(ttgv), string_option(param_string), data_option(datafile), perm_r(pperm_r), perm_c(pperm_c), 
-    tol_pivot_sym(pivot_sym),tol_pivot(pivot), scale_r(pscale_r), scale_c(pscale_c)
-  { 
-    long int starttime,finishtime;
-    long int timeused;
-    if(verbosity) starttime = clock();
-    int dataint[40];
-    double datadouble[15];
-    int ierr;
-
-    if(mpicommw==0){
-      comm=MPI_COMM_WORLD;
-    }
-    else
-      comm= *mpicommw;
-    
-    /* ------------------------------------------------------------
-       INITIALIZE THE MUMPS PROCESS GRID. 
-       ------------------------------------------------------------*/
-    ierr = MPI_Comm_rank(comm, &myid);
-    if( myid ==0){
-      n    = AA.n;
-      m    = AA.m; 
-      nz   = AA.nbcoef;
-    
-      MPI_Bcast(  &n, 1, MPI_INT,  0, comm );
-      MPI_Bcast(  &m, 1, MPI_INT,  0, comm );
-      MPI_Bcast( &nz, 1, MPI_INT,  0, comm );
-    }
-    else{
-      MPI_Bcast(  &n, 1, MPI_INT,  0, comm );
-      MPI_Bcast(  &m, 1, MPI_INT,  0, comm );
-      MPI_Bcast( &nz, 1, MPI_INT,  0, comm );
-    }
-   
-
-    if( !(param_int==NULL) ) 
-      assert( param_int.N() == 42);
-    if( !(param_double==NULL) ) 
-      assert( param_double.N() == 15);
-    if(pperm_r)
-      assert( perm_r.N() == n);
-    if(pscale_r) 
-      assert( scale_r.N() == n+m );
-    if(pscale_c) 
-       assert( scale_c.N() == n+m );
-    if( n != m )
-      cerr << "only square matrix are supported by MUMPS" << endl;
-   
-      /* ------------------------------------------------------------
-       INITIALIZE THE MUMPS PROCESS GRID. 
-       ------------------------------------------------------------*/
-   
-    // initialisation par defaut
- 
-    SYM=0; PAR=1;
-    
-    //      if(!string_option.empty()) 
-    //       {	
-    // 	read_options_freefem(&string_option,&SYM,&PAR);
-    //       }
-    if( !(param_int==NULL) ){
-      SYM = param_int[0];
-      PAR = param_int[1];
-    }
-    else 
-      if(!data_option.empty())
-	{
-	  if(myid==0){
-	    char * retfile= new char[data_option.size()+1];
-	    strcpy(retfile, (&data_option)->c_str());
-	    printf("read data from file %s\n", retfile);
-	    FILE *pFile=fopen(retfile,"rt");
-	    
-	    int     i_data=0;
-	    int     d_data=0.;
-	    char    data[256];
-	    char   *tictac;
-	    
-	    fgets(data,256,pFile);
-	    tictac = strtok(data," /!#\t\n");
-	    SYM = atoi(tictac);
-	    
-	    fgets(data,256,pFile);
-	    tictac = strtok(data," /!#\t\n");
-	    PAR = atoi(tictac);
-	    
-	    while( !feof(pFile) && i_data < 40){
-	      fgets(data,256,pFile);
-	      tictac = strtok(data," /!#\t\n");
-	      dataint[i_data] = (int)atol(tictac);
-	      i_data++;
-	    }  
-	    assert(i_data == 40);
-	    while( !feof(pFile) && d_data < 15){
-	      fgets(data,256,pFile);
-	      tictac = strtok(data," /!#\t\n");
-	      datadouble[d_data] = (double)atof(tictac);
-	      d_data++;
-	    }  
-	    assert(d_data == 15);
-	    fclose(pFile);
-	    delete [] retfile;
-	    
-	    MPI_Bcast(  &SYM, 1, MPI_INT,  0, comm );
-	    MPI_Bcast(  &PAR, 1, MPI_INT,  0, comm );
-	    
-	    MPI_Bcast(  dataint, 40, MPI_INT,  0, comm );
-	    MPI_Bcast(  datadouble, 15, MPI_DOUBLE,  0, comm );
-	    
-	    fclose(pFile);
-	    delete [] retfile;
-	  }
-	  else{
-	    
-	    MPI_Bcast(  &SYM, 1, MPI_INT,  0, comm );
-	    MPI_Bcast(  &PAR, 1, MPI_INT,  0, comm );
-	    
-	    MPI_Bcast(  dataint, 40, MPI_INT,  0, comm );
-	    MPI_Bcast(  datadouble, 15, MPI_DOUBLE,  0, comm );
-	  }
-	}
-    
-    /* Initialize a MUMPS instance. Use comm */
-    id.job=JOB_INIT; 
-    id.par=PAR; 
-    id.sym=SYM;
-    id.comm_fortran=(MUMPS_INT) MPI_Comm_c2f(comm); 
-
-    zmumps_c(&id);
-
-     /* set parameter of mumps */
-    if( !(param_int==NULL) || !(param_double==NULL) ){
-      if(!data_option.empty()){ 
-	printf("read option before with the file %s\n",data_option.c_str());
-	exit(1);
-      }
-      
-      if( !(param_int==NULL) ){ 
-	for(int ii=0; ii<40; ii++)
-	  id.ICNTL(ii+1) = param_int[ii+2];
-      }
-      else
-	// parameter by default
-	id.ICNTL(1)=-1; id.ICNTL(2)=-1; id.ICNTL(3)=-1; id.ICNTL(4)=0;
-
-      if( !(param_double==NULL) )
-	for(int ii=0; ii<15; ii++)
-	  id.CNTL(ii+1) = param_double[ii];
-      
-    }    
-    else 
-      if(!data_option.empty()){
-	for(int ii=0; ii<40; ii++)
-	  id.ICNTL(ii+1) = dataint[ii];
-	for(int ii=0; ii<15; ii++)
-	  id.CNTL(ii+1) = datadouble[ii];
-      }
-      else{
-	// parameter by default
-	id.ICNTL(1)=-1; id.ICNTL(2)=-1; id.ICNTL(3)=-1; id.ICNTL(4)=0;
-      }
-
-    // uniquement donner au host 
-    if(myid==0){
-      if( !(perm_r==NULL) && id.ICNTL(7)==1){
-	for(int ii=0; ii<n; ii++) id.perm_in[ii] = pperm_r[ii];
-      }
-      // a decommenter
-      //if( !(perm_c==NULL) && id.ICNTL(6)==1){
-      //for(int ii=0; ii<m; ii++) id.perm_in[ii] = pperm_c[ii];
-      //}
-      if( !(scale_r==NULL) && !(scale_c==NULL) && id.ICNTL(8)==-1 ){
-	for(int ii=0; ii<n; ii++) id.rowsca[ii] = scale_r[ii]; 
-	for(int ii=0; ii<m; ii++) id.colsca[ii] = scale_c[ii];
-      }
-    }
-
-    
-    /* valeur par defaut mis dans le dur */
-   
-    irn = NULL;
-    jcn = NULL;
-
-
-    if( id.ICNTL(5) != 0 ){
-      printf("we consider only assembled format \n");
-      exit(1);
-    }
-   
-    
-    /* Define the problem on the host */
-    if (myid == 0) {
-      id.n = n; id.nz =nz; 
-      //id.irn=irn; id.jcn=jcn;
-      //id.a = mumps_dc(a); //id.rhs = rhs;
-    }
-
-    if( id.ICNTL(18) == 0)
-      {
-	// CASE:: NON DISTRIBUTED MATRIX
-	a=AA.a;
-	// ATTENTION 
-	// AA.cl :: indice des colonnes (exacte) et AA.lg :: indice des lignes 
-	// index of row and colummn by 1
-	jcn = AA.cl;
-	for(int ii=0; ii<nz; ii++)
-	  jcn[ii] = jcn[ii]+1;
-	
-	if( !(irn = (int*) malloc(sizeof(int)*nz)) ){
-	  printf("problem allocation jcn ");
-	  exit(1);
-	}
-	
-	assert(AA.lg[n] == nz);
-	for(int ii=0; ii< n; ii++)
-	  for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-	    irn[ii1] = ii+1;  
-		
-	if (myid == 0) {
-	  id.irn=irn; id.jcn=jcn;
-	  id.a = mumps_dc(a); //id.rhs = rhs;
-	}
-
-	/* Call the MUMPS package. */
-	// Analyse + Factorisation 
-	id.job=4;
-	zmumps_c(&id);
-	
-      }
-
-    
-    if( id.ICNTL(18) == 1 || id.ICNTL(18) == 2 )
-      {
-
-	cout <<"id.ICNTL(18) = 1 || id.ICNTL(18) == 2 "<< endl;;
-	// ATTENTION 
-	// AA.cl :: indice des colonnes (exacte) et AA.lg :: indice des lignes 
-	// index of row and column by 1
-
-	if(myid == 0) { // uniquement sur le proc 0
-	  jcn = AA.cl;
-	  for(int ii=0; ii<nz; ii++)
-	    jcn[ii] = jcn[ii]+1;
-	  
-	  if( !(irn = (int*) malloc(sizeof(int)*nz)) ){
-	    printf("problem allocation irn ");
-	    exit(1);
-	  }
-	
-	  assert(AA.lg[n] == nz);
-	  for(int ii=0; ii< n; ii++)
-	    for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-	      irn[ii1] = ii+1;  
-
-
-	  //if (myid == 0) { // changement uniquement sur le proc 0
-	  id.irn=irn; id.jcn=jcn;
-	}
-	
-	/* Call the MUMPS package. */
-	// Analyse   
-	id.job=1;
-	zmumps_c(&id);
-
-	if(id.ICNTL(18) == 1 ){
-
-	   if( PAR == 0 ){ 
-	    int *nz_loc_procs;
-	    int *fst_nz_procs;
-	    int *irn_g;
-	    int *jcn_g;
-	    Complex *a_g;
-	    int commSize;
-	    
-	    MPI_Comm_size(comm,&commSize);
-	    cout << commSize << "commSize" << "nz =" << nz << endl;
-	    if(myid==0){
-	      // allocation des differents tableaux
-	      nz_loc_procs = (int*) malloc ( commSize*sizeof(int) );
-	      for(int ii=0; ii<commSize; ii++){
-		nz_loc_procs[ii]=0;
-	      }
-	      for(int ii=0; ii<nz; ii++){
-		nz_loc_procs[ id.mapping[ii] ]++;
-	      }
-	      assert(nz_loc_procs[0] == 0);
-	      nz_loc_procs[0] = 2;
-
-	      fst_nz_procs = (int*) malloc ( commSize*sizeof(int) );	      
-	      fst_nz_procs[0] = 0;
-	      for(int ii=1; ii<commSize; ii++){
-		fst_nz_procs[ii] = fst_nz_procs[ii-1]+nz_loc_procs[ii-1];
-	      }
-	      
-	      irn_g = (int*) malloc( sizeof(int)*(nz+2) );
-	      jcn_g = (int*) malloc( sizeof(int)*(nz+2) );
-	      a_g   = (Complex*) malloc( 2*sizeof(double)*(nz+2) );
-	      
-	      int *index_p;
-	      index_p = (int*) malloc ( commSize*sizeof(int) );
-	      for(int ii=0; ii<commSize; ii++)
-		index_p[ii] =0;
-	      
-	      irn_g[ 0 ] = 1;
-	      jcn_g[ 0 ] = 1;
-	      a_g  [ 0 ] = 1.;
-	      
-	      irn_g[ 1 ] = 1;
-	      jcn_g[ 1 ] = 1;
-	      a_g  [ 1 ] = 1.;
-	      
-	      for(int ii=0;ii<nz; ii++){	      
-		int jj1 = id.mapping[ii];
-		int jj2 = fst_nz_procs[jj1] + index_p[jj1];
-		assert(jj2 > 1);
-		irn_g[ jj2 ] =  irn[ ii ];
-		jcn_g[ jj2 ] =  jcn[ ii ];
-		a_g  [ jj2 ] = AA.a[ ii ];
-		cout << "jj2= " << jj2 << endl;
-		assert( jj2 < nz+2);
-		index_p[jj1]++;
-	      }
-	      free(index_p);
-	      
-	    }
-	    
-	    MPI_Scatter( nz_loc_procs, 1, MPI_INT, &nz_loc, 1, MPI_INT, 0, comm);
-	    
-	    // allocation des tableaux locaux
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc    = (Complex*) malloc(2*sizeof(double)*nz_loc);
-	    
-	    MPI_Scatterv(   a_g, nz_loc_procs, fst_nz_procs, MPI_DOUBLE_COMPLEX, a_loc, nz_loc, MPI_DOUBLE_COMPLEX, 0, comm);
-	    MPI_Scatterv( jcn_g, nz_loc_procs, fst_nz_procs, MPI_INT, jcn_loc, nz_loc, MPI_INT, 0, comm);
-	    MPI_Scatterv( irn_g, nz_loc_procs, fst_nz_procs, MPI_INT, irn_loc, nz_loc, MPI_INT, 0, comm);
-	    	    
-	    if( myid > 0){
-	      id.nz_loc = nz_loc;
-	      id.irn_loc = irn_loc;
-	      id.jcn_loc = jcn_loc;
-	      id.a_loc = mumps_dc(a_loc);
-	    }
-	    
-	    if( myid == 0){
-	      //free( irn_loc );
-	      //free( jcn_loc );
-	      //free( a_loc );
-	      free( nz_loc_procs );
-	      free( fst_nz_procs );
-	      free( irn_g );
-	      free( jcn_g );
-	      free( a_g );
-	    }
-	   }
-	
-	  
-	  if( PAR == 1 ){ 
-	    int *nz_loc_procs;
-	    int *fst_nz_procs;
-	    int *irn_g;
-	    int *jcn_g;
-	    Complex *a_g;
-	    int commSize;
-	    
-	    MPI_Comm_size(comm,&commSize);
-	    
-	    if(myid==0){
-	      // allocation des differents tableaux
-	      nz_loc_procs = (int*) malloc ( commSize*sizeof(int) );
-	      for(int ii=0; ii<commSize; ii++){
-		nz_loc_procs[ii]=0;
-	      }
-	      for(int ii=0; ii<nz; ii++){
-		nz_loc_procs[ id.mapping[ii] ]++;
-	      }
-	      
-	      fst_nz_procs = (int*) malloc ( commSize*sizeof(int) );
-	      
-	      fst_nz_procs[0] = 0;
-	      for(int ii=1; ii<commSize; ii++){
-		fst_nz_procs[ii] = fst_nz_procs[ii-1]+nz_loc_procs[ii-1];
-	      }
-	      
-	      irn_g = (int*) malloc(sizeof(int)*nz);
-	      jcn_g = (int*) malloc(sizeof(int)*nz);
-	      a_g   = (Complex*) malloc(2*sizeof(double)*nz);
-	      
-	      int *index_p;
-	      index_p = (int*) malloc ( commSize*sizeof(int) );
-	      for(int ii=0; ii<commSize; ii++)
-		index_p[ii] =0;
-	      
-	      for(int ii=0;ii<nz; ii++){	      
-		int jj1 = id.mapping[ii];
-		int jj2 = fst_nz_procs[jj1] + index_p[jj1];
-
-		irn_g[ jj2 ] =  irn[ ii ];
-		jcn_g[ jj2 ] =  jcn[ ii ];
-		a_g  [ jj2 ] = AA.a[ ii ];
-		index_p[jj1]++;
-	      }
-	      free(index_p);
-	      
-	    }
-	    
-	    MPI_Scatter( nz_loc_procs, 1, MPI_INT, &nz_loc, 1, MPI_INT, 0, comm);
-	    
-	    // allocation des tableaux locaux
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc   = (Complex*) malloc(2*sizeof(double)*nz_loc);
-	    
-	    MPI_Scatterv(   a_g, nz_loc_procs, fst_nz_procs, MPI_DOUBLE_COMPLEX, a_loc, nz_loc, MPI_DOUBLE_COMPLEX, 0, comm);
-	    MPI_Scatterv( jcn_g, nz_loc_procs, fst_nz_procs, MPI_INT, jcn_loc, nz_loc, MPI_INT, 0, comm);
-	    MPI_Scatterv( irn_g, nz_loc_procs, fst_nz_procs, MPI_INT, irn_loc, nz_loc, MPI_INT, 0, comm);
-	    
-	    id.nz_loc = nz_loc;
-	    id.irn_loc = irn_loc;
-	    id.jcn_loc = jcn_loc;
-	    id.a_loc = mumps_dc(a_loc);
-	    
-	    
-	    if( myid == 0){
-	      free( nz_loc_procs );
-	      free( fst_nz_procs );
-	      free( irn_g );
-	      free( jcn_g );
-	      free( a_g );
-	    }
-	  }
-
-
-
-
-	  //printf("id.ICNTL(18)==1 pas prevus a construire \n");
-	  //exit(1);
-
-	  /* // version matrice sur tous les processeurs
-	  if(myid==0){
-
-	    MPI_Bcast( id.mapping, nz, MPI_INT,  0, comm );
-
-	    nz_loc=0;
-	    for(int ii=0;ii<nz; ii++){
-	      if( id.mapping[ii] == myid) nz_loc++;
-	    }
-	   
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc   = (Complex*) malloc(sizeof(Complex)*nz_loc);
-
-	    int jj=0;
-	    for(int ii=0;ii<nz; ii++)
-	      if( id.mapping[ii] == myid){
-		irn_loc[jj] = irn[ ii ];
-		jcn_loc[jj] = jcn[ ii ];
-		a_loc[jj] = AA.a[ ii ];
-		jj++;
-	      }
-	    assert(jj==nz_loc);
-	    
-	    if(PAR==1){
-	      id.nz_loc = nz_loc;
-	      id.irn_loc = irn_loc;
-	      id.jcn_loc = jcn_loc;
-	      id.a_loc = mumps_dc(a_loc);
-	    }
-  
-	  }
-	  else{
-	    int *mapping;
-	    mapping = (int*) malloc(sizeof(int)*nz);
-	    MPI_Bcast( mapping, nz, MPI_INT,  0, comm );
-	    nz_loc=0;
-
-	    for(int ii=0;ii<nz; ii++)
-	      if( mapping[ii] == myid) nz_loc++;
-	    
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc    = (Complex*) malloc(sizeof(Complex)* nz_loc);
-	    
-	    int jj=0.;
-	    for(int ii=0;ii<nz; ii++)
-	      if( mapping[ii] == myid){
-		irn_loc[jj] = irn[ ii ];
-		jcn_loc[jj] = jcn[ ii ];
-		a_loc[jj] = AA.a[ ii ];
-		jj++;
-	      }
-	    assert(jj==nz_loc);
-
-	    free(mapping);
-
-	    id.nz_loc = nz_loc;
-	    id.irn_loc = irn_loc;
-	    id.jcn_loc = jcn_loc;
-	    id.a_loc = mumps_dc(a_loc);
-
-
-
-	  }
-	  */
-
-	  /* Call the MUMPS package. */
-	  // Factorisation   
-	  id.job=2;
-	  zmumps_c(&id);	  
-	  
-	}
-      
-
-	if(id.ICNTL(18) == 2 ){
-	   printf("id.ICNTL(18)==2 not yet available \n");
-	   exit(1);
-
-	  if(PAR == 0){ 
-	    printf("id.ICNTL(18)==2 pas prevus \n");
-	    exit(1);
-	    if(myid !=0) {
-	      int commSize;	    
-	      ierr=MPI_Comm_size(comm,&commSize);
-	      commSize=commSize-1;
-	      int myidpar=myid-1;
-	      int m_loc_fst = m/commSize;
-	      int m_loc;
-	      if( myidpar == commSize-1 && ( m_loc_fst*commSize != m ) )  
-		m_loc = m-m_loc_fst*( commSize-1 );
-	      else
-		m_loc = m_loc_fst;
-	      
-	      int fst_row= myidpar*m_loc_fst;
-	      nz_loc = AA.lg[fst_row+m_loc]-AA.lg[fst_row];
-	      
-	      // allocation des tableaux
-	      irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	      jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	      a_loc    = (Complex*) malloc(sizeof(Complex)*nz_loc);
-	      
-	      int fst_nnz = AA.lg[fst_row];
-	      for(int ii=0; ii < nz_loc; ii++){
-		a_loc[ii] = AA.a[fst_nnz+ii];
-		jcn_loc[ii] = AA.cl[fst_nnz+ii]; // jcn=AA.cl a ete augmenter de 1 avant => pas ajouter 1
-	      }
-	      
-	      for(int ii=fst_row; ii< fst_row+m_loc; ii++){
-		for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-		  irn_loc[ii1-fst_nnz] = ii+1;  
-	      }
-	      
-	      id.nz_loc = nz_loc;
-	      id.irn_loc = irn_loc;
-	      id.jcn_loc = jcn_loc;
-	      id.a_loc = mumps_dc(a_loc);
-	    }
-	  }
-	  if(PAR == 1){
-
-	    int commSize;	    
-	    ierr=MPI_Comm_size(comm,&commSize);
-	    int m_loc_fst = m/commSize;
-	    int m_loc;
-	    if( myid == commSize-1 && ( m_loc_fst*commSize != m ) )  
-	      m_loc = m-m_loc_fst*( commSize-1 );
-	    else
-	      m_loc = m_loc_fst;
-	    
-	    int fst_row= myid*m_loc_fst;
-	    nz_loc = AA.lg[fst_row+m_loc]-AA.lg[fst_row];
-	    
-	    // allocation des tableaux
-	    irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	    a_loc    = (Complex*) malloc(sizeof(Complex)*nz_loc);
-	    
-	    int fst_nnz = AA.lg[fst_row];
-	    for(int ii=0; ii < nz_loc; ii++){
-	      a_loc[ii] = AA.a[fst_nnz+ii];
-	      jcn_loc[ii] = AA.cl[fst_nnz+ii];  // jcn=AA.cl a ete augmenter de 1 avant => pas ajouter 1
-	    }
-	    
-	    for(int ii=fst_row; ii< fst_row+m_loc; ii++){
-	      for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-		irn_loc[ii1-fst_nnz] = ii+1;  
-	    }
-	  
-	    id.nz_loc = nz_loc;
-	    id.irn_loc = irn_loc;
-	    id.jcn_loc = jcn_loc;
-	    id.a_loc = mumps_dc(a_loc);
-
-	  }
-
-	  /* Call the MUMPS package. */
-	  // Factorisation   
-	  id.job=2;
-	  zmumps_c(&id);
-	}
-      }
-	
-    if( id.ICNTL(18) == 3 )
-      {	
-	// indices et colonnes de la matrice
-	
-// 	//  Cas Matrice parallele ::
-// 	//  ========================
-//	
-// 	// Cas stockage Morse parallele
-// 	m_loc = AA.m_loc;       // Nombre de lignes prise en compte
-// 	nz_loc = AA.nbcoef_loc;   // Nombre de coefficients non nulles 
-// 	// indice des colonnes
-// 	jcn_loc = AA.cl_loc;       // indices des colonnes dans la matrice locale
-//	
-// 	if( !(irn_loc = (int*) malloc(sizeof(int)*nz_loc)) ){
-// 	  printf("problem allocation jcn ");
-// 	  exit(1);
-// 	}
-// 	assert(AA.lg_loc[nrow_loc] == nz_loc);
-// 	for(int ii=0; ii< nrow_loc; ii++)
-// 	  for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-// 	    irn_loc[ii1] = ii+1;
-//
-// 	a_loc=AA.a_loc;
-//
-	// Pas de matrice parallele ==> utilisation astuce de SuperLU
-	// Matrice :: distribution bloc continue de lignes :: voir SuperLU 
-	// Attention :: performance ???
-	
-
-	cout <<"id.ICNTL(18) = 3,  PAR="<< PAR << endl;
-
-	 if(PAR == 0){ 
-// 	    if(myid !=0) {
-// 	      int commSize;	    
-// 	      ierr=MPI_Comm_size(comm,&commSize);
-// 	      commSize=commSize-1;
-// 	      int myidpar=myid-1;
-// 	      int m_loc_fst;
-// 	      m_loc_fst= m/commSize;
-// 	      int m_loc;
-// 	      if( myidpar == commSize-1 && ( m_loc_fst*commSize != m ) )  
-// 		m_loc = m-m_loc_fst*( commSize-1 );
-// 	      else
-// 		m_loc = m_loc_fst;
-//	      
-// 	      int fst_row;
-// 	      fst_row= myidpar*m_loc_fst;
-// 	      nz_loc = AA.lg[fst_row+m_loc]-AA.lg[fst_row];
-//	      
-// 	      // allocation des tableaux
-// 	      irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	      jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	      a_loc    = (Complex*) malloc(sizeof(Complex)* nz_loc);
-//	      
-// 	      int fst_nnz;
-// 	      fst_nnz = AA.lg[fst_row];
-// 	      for(int ii=0; ii < nz_loc; ii++){
-// 		a_loc[ii] = AA.a[fst_nnz+ii];
-// 		jcn_loc[ii] = AA.cl[fst_nnz+ii]+1;
-// 	      }	      
-// 	      for(int ii=fst_row; ii< fst_row+m_loc; ii++){
-// 		for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-// 		  irn_loc[ii1-fst_nnz] = ii+1;  
-// 	      }	      
-// 	      id.nz_loc = nz_loc;
-// 	      id.irn_loc = irn_loc;
-// 	      id.jcn_loc = jcn_loc;
-// 	      id.a_loc = mumps_dc(a_loc);
-// 	    }
-
-	    // definition de variables
-	  int commSize;
-	  int m_loc_fst;	 
-	  int m_loc;
-	  int fst_row;
-	  
-
-	  int *nz_loc_procs;
-	  int *fst_nz_procs;
-	  int *m_loc_procs;
-	  int *fst_row_procs;
-	 
-
-	  Complex *tab_a;
-	  int *tab_cl;
-	  int *tab_lg;
-	  int *tab_lg_loc;
-
-	  MPI_Comm_size(comm,&commSize);
-	  
-	  if( myid !=0){
-	    int commSizemm;
-	    int myidpar=myid-1;
-
-	    commSizemm = commSize-1;
-	    m_loc_fst= m/commSizemm;
-	  
-	    if( myidpar == commSizemm-1 && ( m_loc_fst*commSizemm != m ) )  
-	      m_loc = m-m_loc_fst*( commSizemm-1 );
-	    else
-	      m_loc = m_loc_fst;
-	  
-	    if(verbosity > 5){
-	      fst_row = myidpar*m_loc_fst;
-	      cout << "   myid = " << myid << endl;
-	      cout <<"   m_loc = " << m_loc << endl;
-	      cout <<" fst_row = " << fst_row << endl;
-	    }
-
-	  }
-	  if( myid ==0){
-
-	    int commSizemm;
-	    commSizemm = commSize-1;
-	    m_loc_fst= m/commSizemm;
-
-	    fst_row_procs = (int* ) malloc( commSize*sizeof(int) );
-	    m_loc_procs = (int* ) malloc( commSize*sizeof(int) );
-	    fst_nz_procs = (int* ) malloc( commSize*sizeof(int) );
-	    nz_loc_procs = (int* ) malloc ( commSize*sizeof(int) );
-	    
-	    
-	    fst_row_procs [0] = 0;
-	    m_loc_procs   [0] = 0;
-
-	    for( int ii= 1; ii<commSize; ii++){
-	      fst_row_procs [ii] = (ii-1)*m_loc_fst;
-	      m_loc_procs [ii] = m_loc_fst;
-	    }
-	    
-	    if( m_loc_fst*(commSize-1) != m ) 
-	      m_loc_procs [commSize-1] = m-m_loc_fst*( (commSize-1)-1 );
-
-
-	    nz_loc_procs [0] = 0;
-	    fst_nz_procs [0] = 0;
-	    
-	    for( int ii= 1; ii<commSize; ii++){
-	      nz_loc_procs [ii] = AA.lg[fst_row_procs[ii]+m_loc_procs[ii] ] - AA.lg[fst_row_procs[ii]];
-	      fst_nz_procs [ii] = AA.lg[fst_row_procs[ii]];
-	    }
-
-	   
-	    /*
-	      tab_a= (int* ) malloc( nz*sizeof(double) );
-	      tab_cl = (int* ) malloc( nz*sizeof(int) );
-	      tab_lg = (int* ) malloc ( n*sizeof(int) );
-	    */
-	    tab_a  = AA.a;
-	    tab_cl = AA.cl;
-	    tab_lg = AA.lg;
-	  }
-
-	  MPI_Scatter( nz_loc_procs, 1, MPI_INT, &nz_loc, 1, MPI_INT, 0, comm);
-	  MPI_Scatter( m_loc_procs,  1, MPI_INT, &m_loc, 1, MPI_INT, 0, comm);
-	  MPI_Scatter( fst_row_procs,  1, MPI_INT, &fst_row, 1, MPI_INT, 0, comm);
-
-	  if(verbosity > 5){
-	    cout << "after scatter " << myid << endl;
-	    cout << "   myid = " << myid << endl;
-	    cout <<"   m_loc = " << m_loc << endl;
-	    cout <<" fst_row = " << fst_row << endl;
-	  }
-	  // allocation des tableaux locaux
-	  irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	  jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	  a_loc    = (Complex*) malloc(2*sizeof(double)*nz_loc);
-	  tab_lg_loc = (int*) malloc(sizeof(int)*(m_loc) );
-	  
-	
-
-	  MPI_Scatterv(  tab_a, nz_loc_procs, fst_nz_procs, MPI_DOUBLE_COMPLEX, a_loc, nz_loc, MPI_DOUBLE_COMPLEX, 0, comm);
-	  MPI_Scatterv( tab_cl, nz_loc_procs, fst_nz_procs, MPI_INT, jcn_loc, nz_loc, MPI_INT, 0, comm);
-	  MPI_Scatterv( tab_lg,  m_loc_procs, fst_row_procs, MPI_INT, tab_lg_loc, m_loc, MPI_INT, 0, comm);
-	  
-	
-	  int jj=0;
-	  for(int  ii=0; ii<m_loc-1; ii++)
-	    for(int ii1= tab_lg_loc[ii]; ii1 < tab_lg_loc[ii+1]; ii1++){
-	      irn_loc[jj] = fst_row+ii+1;
-	      jj++;
-	    }
-	  
-	  for(int ii1= tab_lg_loc[m_loc-1]; ii1 < tab_lg_loc[0]+nz_loc; ii1++){
-	    irn_loc[jj] = fst_row+(m_loc-1)+1;
-	    jj++;
-	  }
-	  
-	  for(int ii=0; ii < nz_loc; ii++){	    
-	    jcn_loc[ii] = jcn_loc[ii]+1; 
-	  }
-
-	  assert( jj == nz_loc );
-	  
-	  free( tab_lg_loc );
-	  
-	  id.nz_loc = nz_loc;
-	  id.irn_loc = irn_loc;
-	  id.jcn_loc = jcn_loc;
-	  id.a_loc = mumps_dc(a_loc);
-	 
-	  if( myid == 0 ){
-	    free( fst_row_procs );
-	    free( m_loc_procs );
-	    free( fst_nz_procs );
-	    free( nz_loc_procs );
-	  }
-	   
-
-	 }
-	 if(PAR ==1) {
-	  
-	   
-// 	   int commSize;
-// 	   ierr=MPI_Comm_size(comm,&commSize);
-// 	   int m_loc_fst;
-// 	   m_loc_fst= m/commSize;
-// 	   int m_loc;
-// 	   if( myid == commSize-1 && ( m_loc_fst*commSize != m ) )  
-// 	     m_loc = m-m_loc_fst*( commSize-1 );
-// 	   else
-// 	     m_loc = m_loc_fst;
-//	   
-// 	   int fst_row;
-// 	   fst_row = myid*m_loc_fst;
-// 	   nz_loc = AA.lg[fst_row+m_loc]-AA.lg[fst_row];
-//	    
-// 	   allocation des tableaux
-// 	   irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	   jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-// 	   a_loc    = (Complex*) malloc(sizeof(Complex)*nz_loc);
-//	   
-// 	   int fst_nnz;
-// 	   fst_nnz= AA.lg[fst_row];
-// 	   for(int ii=0; ii < nz_loc; ii++){
-// 	     a_loc[ii] = AA.a[fst_nnz+ii];
-// 	     jcn_loc[ii] = AA.cl[fst_nnz+ii]+1; 
-// 	   }
-//   
-// 	   for(int ii=fst_row; ii< fst_row+m_loc; ii++){
-// 	     for(int ii1=AA.lg[ii]; ii1 < AA.lg[ii+1]; ii1++ )
-// 	       irn_loc[ii1-fst_nnz] = ii+1;  
-// 	   }
-//	   
-// 	   id.nz_loc = nz_loc;
-// 	   id.irn_loc = irn_loc;
-// 	   id.jcn_loc = jcn_loc;
-// 	   id.a_loc = mumps_dc(a_loc);
-
-	   // definition de variables
-	   int commSize;
-	   int m_loc_fst;	 
-	   int m_loc;
-	   int fst_row;
-	   
-
-	   int *nz_loc_procs;
-	   int *fst_nz_procs;
-	   int *m_loc_procs;
-	   int *fst_row_procs;
-	   
-	   
-	   Complex *tab_a;
-	   int *tab_cl;
-	   int *tab_lg;
-	   int *tab_lg_loc;
-	   
-	   MPI_Comm_size(comm,&commSize);
-	   m_loc_fst= m/commSize;
-	   
-	   if( myid == commSize-1 && ( m_loc_fst*commSize != m ) )  
-	     m_loc = m-m_loc_fst*( commSize-1 );
-	   else
-	     m_loc = m_loc_fst;	  
-	   
-	   fst_row = myid*m_loc_fst;
-	   
-	   if( myid ==0){
-	     fst_row_procs = (int* ) malloc( commSize*sizeof(int) );
-	     m_loc_procs = (int* ) malloc( commSize*sizeof(int) );
-	     fst_nz_procs = (int* ) malloc( commSize*sizeof(int) );
-	     nz_loc_procs = (int* ) malloc ( commSize*sizeof(int) );
-
-	     for( int ii= 0; ii<commSize; ii++){
-	       fst_row_procs [ii] = ii*m_loc_fst;
-	       m_loc_procs [ii] = m_loc_fst;
-	     }
-	     
-	     if( m_loc_fst*commSize != m ) 
-	       m_loc_procs [commSize-1] = m-m_loc_fst*( commSize-1 );
-	     
-	     for( int ii= 0; ii<commSize; ii++){
-	       nz_loc_procs [ii] = AA.lg[fst_row_procs[ii]+m_loc_procs[ii] ] - AA.lg[fst_row_procs[ii]];
-	       fst_nz_procs [ii] = AA.lg[fst_row_procs[ii]];
-	     }
-	     
-	     
-	     /*
-	       tab_a= (int* ) malloc( nz*sizeof(double) );
-	       tab_cl = (int* ) malloc( nz*sizeof(int) );
-	       tab_lg = (int* ) malloc ( n*sizeof(int) );
-	     */
-	     tab_a  = AA.a;
-	     tab_cl = AA.cl;
-	     tab_lg = AA.lg;
-	   }
-	   
-	   MPI_Scatter( nz_loc_procs, 1, MPI_INT, &nz_loc, 1, MPI_INT, 0, comm);
-	  
-	   // allocation des tableaux locaux
-	   irn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	   jcn_loc = (int*) malloc(sizeof(int)*nz_loc);
-	   a_loc    = (Complex*) malloc(2*sizeof(double)*nz_loc);
-	   tab_lg_loc = (int*) malloc(sizeof(int)*(m_loc) );
-	   
-	   MPI_Scatterv(  tab_a, nz_loc_procs, fst_nz_procs, MPI_DOUBLE_COMPLEX, a_loc, nz_loc, MPI_DOUBLE_COMPLEX, 0, comm);
-	   MPI_Scatterv( tab_cl, nz_loc_procs, fst_nz_procs, MPI_INT, jcn_loc, nz_loc, MPI_INT, 0, comm);
-	   MPI_Scatterv( tab_lg,  m_loc_procs, fst_row_procs, MPI_INT, tab_lg_loc, m_loc, MPI_INT, 0, comm);
-	
-	   int jj=0;
-	   for(int  ii=0; ii<m_loc-1; ii++)
-	     for(int ii1= tab_lg_loc[ii]; ii1 < tab_lg_loc[ii+1]; ii1++){
-	       irn_loc[jj] = fst_row+ii+1;
-	      jj++;
-	     }
-	   
-	   for(int ii1= tab_lg_loc[m_loc-1]; ii1 < tab_lg_loc[0]+nz_loc; ii1++){
-	     irn_loc[jj] = fst_row+(m_loc-1)+1;
-	     jj++;
-	   }
-	   
-	   for(int ii=0; ii < nz_loc; ii++){	    
-	     jcn_loc[ii] = jcn_loc[ii]+1; 
-	   }
-	   
-	   assert( jj == nz_loc );
-	   
-	   free( tab_lg_loc );
-	   
-	   id.nz_loc  = nz_loc;
-	   id.irn_loc = irn_loc;
-	   id.jcn_loc = jcn_loc;
-	   id.a_loc = mumps_dc(a_loc);
-	 
-	   if( myid == 0 ){
-	     free( fst_row_procs );
-	     free( m_loc_procs );
-	     free( fst_nz_procs );
-	     free( nz_loc_procs );
-	   }
-	   
-
-	 }
-	/* Call the MUMPS package. */
-	// Analyse + Factorisation
-	 
-	 id.job=1;
-	 zmumps_c(&id);
-
-	 id.job=2;
-	 zmumps_c(&id);
-      }
-    
-    
-    
-
-    // indices des colonnes commence par 1 avec mumps 
-    //  et 0 dans freefem ==> renumerotation
-    if( jcn != NULL )
-      for(int ii=0; ii<nz; ii++)
-	jcn[ii] = jcn[ii]-1;
-
-    if( irn != NULL ) free(irn); 
- 
-
-    if( verbosity >1){
-      /* information given by mumps*/
-      int Rinfo=20;
-      int Sinfo=40;
-      // in Freefem++ we give only global information
-      if(myid == 0){
-	printf("Global Output Information of MUMPS: RINFOG and INFOG \n");
-	printf("=============  After Factorisation ==================\n");
-	for(int ii=0; ii< Rinfo; ii++) 
-	  printf( "RINFOG[%d]= %f \n", ii, id.RINFOG(ii+1) );
-	printf("=====================================================\n");
-	for(int ii=0; ii< Sinfo; ii++) 
-	  printf( "INFOG[%d]= %d \n", ii, id.INFOG(ii+1) );
-	printf("=====================================================\n");
-      }
-    }
-    if( verbosity){
-      if(myid==0){
-	finishtime = clock();
-	timeused= (finishtime-starttime)/(1000 );
-	printf("=====================================================\n");
-	cout << "MUMPS : time factorisation :: " << timeused << " ms" <<endl;
-	printf("=====================================================\n");
-      }
-
-    }
-        
-  
-  }
-
-  void Solver(const MatriceMorse<Complex> &AA,KN_<Complex> &x,const KN_<Complex> &b) const  {
-    long int starttime,finishtime;
-    long int timeused;
-    //*******************************************************************//
-    //    depend pas de la forme de la matrice: distribuer ou assembler
-    Complex *rhs;
-    int job;
-    
-    if(verbosity) starttime = clock();
-
-    ffassert ( &x[0] != &b[0]);
-    epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-  
-    // indices des colonnes commence par 1 avec mumps 
-    //  et 0 dans freefem ==> renumerotation
-    if(jcn != NULL)
-      for(int ii=0; ii<nz; ii++)
-	jcn[ii] = jcn[ii]+1;
-    
-    if ( !(rhs = (Complex*) malloc(sizeof(Complex)*m) ) ){
-      printf("Pb allocate rhs in MUMPS\n");
-      exit(1);
-    }
-   
-    for(int ii=0; ii<m; ++ii){
-      rhs[ii] = b[ii];
-    }
-
-    if( myid == 0 )
-      id.rhs=mumps_dc(rhs);
-
-    /* solve linear problem */
-    id.job=3;
-    zmumps_c(&id);
-
-   
-    if( myid==0 ){
-      x=inv_mumps_dc(id.rhs); 
-      MPI_Bcast( x,  n, MPI_DOUBLE_COMPLEX,  0, comm );
-    }
-    else
-      MPI_Bcast( x,  n, MPI_DOUBLE_COMPLEX,  0, comm );
-    
-  
-    
-    // deallocation de rhs
-    free(rhs);
-
-    // indices des colonnes commence par 1 avec mumps 
-    //  et 0 dans freefem ==> renumerotation
-    if(jcn != NULL)
-      for(int ii=0; ii<nz; ii++)
-	jcn[ii] = jcn[ii]-1;
-
-
-    if( verbosity > 1){
-      /* information given by mumps*/
-      int Rinfo=20;
-      int Sinfo=40;
-      // in Freefem++ we give only global information
-      if(myid == 0){
-	printf("Global Output Information of MUMPS: RINFOG and INFOG \n");
-	printf("=============  After Solving       ==================\n");
-	for(int ii=0; ii< Rinfo; ii++) 
-	  printf( "RINFOG[%d]= %f \n", ii, id.RINFOG(ii+1) );
-	printf("=====================================================\n");
-	for(int ii=0; ii< Sinfo; ii++) 
-	  printf( "INFOG[%d]= %d \n", ii, id.INFOG(ii+1) );
-	printf("=====================================================\n");
-      }
-    }
-
-    if(verbosity)
-      if(myid==0){
-	finishtime = clock();
-	timeused= (finishtime-starttime)/(1000 );
-	printf("=====================================================\n");
-	cout << " MUMPS : time solve  :: " << timeused << " ms" <<endl;
-	printf("=====================================================\n");
-      }
-    
-  }
-
-  ~zSolveMUMPSmpi() { 
-    //*******************************************************************//
-    //    depend pas de la forme de la matrice: distribuer ou assembler
-    if(verbosity)
-      cout << "~SolveMUMPS Z:" << endl;
-    
-     id.job=JOB_END; 
-     zmumps_c(&id); /* Terminate instance */
-     
-  }
-  void addMatMul(const KN_<Complex> & x, KN_<Complex> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<Complex> &) (*this) * x; 
-  }
-     
-}; 
-
-
-MatriceMorse<double>::VirtualSolver *
-BuildSolverMUMPSmpi(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-    if(verbosity>9)
-      cout << " BuildSolverMUMPS<double>" << endl;
-    return new dSolveMUMPSmpi(*A,ds.strategy, ds.tgv, ds.epsilon, ds.tol_pivot, ds.tol_pivot_sym, ds.sparams, ds.data_filename,
-			      ds.lparams, ds.dparams, ds.perm_r, ds.perm_c, ds.scale_r, ds.scale_c,(MPI_Comm *)ds.commworld);
-}
-
-
-
-
-MatriceMorse<Complex>::VirtualSolver *
-BuildSolverMUMPSmpi(DCL_ARG_SPARSE_SOLVER(Complex,A))
-{
-    if(verbosity>9)
-      cout << " BuildSolverMUMPS<Complex>" << endl;
-    return new zSolveMUMPSmpi(*A,ds.strategy, ds.tgv, ds.epsilon, ds.tol_pivot, ds.tol_pivot_sym, ds.sparams, ds.data_filename,  
-			      ds.lparams, ds.dparams, ds.perm_r, ds.perm_c, ds.scale_r, ds.scale_c,(MPI_Comm *)ds.commworld);
-}
-
-
-<<<<<<< HEAD
-/*  class Init { public:
-    Init();
-    };*/
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-static DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; 
-static DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-static TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity)
-	cout << " SetDefault sparse to default" << endl;
-    DefSparseSolver<double>::solver =SparseMatSolver_R;
-    DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-}
-
-bool SetMUMPSmpi()
-{
-    if(verbosity)
-	cout << " SetDefault sparse solver to MUMPSmpi" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverMUMPSmpi;
-    DefSparseSolver<Complex>::solver =BuildSolverMUMPSmpi;    
-    TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-}
-
-
-
-<<<<<<< HEAD
-//LOADINIT(Init);
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: MUMPS ,  defaultsolver defaultsolverMUMPS " << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuildSolverMUMPSmpi;
-  DefSparseSolver<Complex>::solver =BuildSolverMUMPSmpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("defaulttoMUMPS","(",new OneOperator0<bool>(SetMUMPSmpi));
-}
-
-
-void ffinit()
-{
-
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-
-  if(verbosity>1)
-    cout << "\n Add: MUMPS ,  defaultsolver defaultsolverMUMPS " << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuildSolverMUMPSmpi;
-  DefSparseSolver<Complex>::solver =BuildSolverMUMPSmpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("defaulttoMUMPS","(",new OneOperator0<bool>(SetMUMPSmpi));
-}
-#include "InitFunct.hpp"
-addingInitFunct FFinit(100,ffinit,"MUMPS_FreeFem");
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init);
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/Makefile.am.orig b/examples++-mpi/Makefile.am.orig
deleted file mode 100644
index d7893c3..0000000
--- a/examples++-mpi/Makefile.am.orig
+++ /dev/null
@@ -1,124 +0,0 @@
-# ======================================================================
-# Laboratoire Jacques-Louis Lions
-# Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-# http://www.ljll.math.upmc.fr/lehyaric
-# ======================================================================
-# This file is part of Freefem++
-# 
-# Freefem++ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-# 
-# Freefem++ is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-# 
-# You should have received a copy of the GNU Lesser General Public
-# License along with Freefem++; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# ======================================================================
-# headeralh default=0 freefem make multipleauthors start=19/03/10 upmc
-
-<<<<<<< HEAD
-TESTS=  schwarz.edp DDM-Schwarz-Lame-2d.edp DDM-Schwarz-Lame-3d.edp DDM-Schwarz-Lap-2dd.edp DDM-Schwarz-Lap-3d.edp	\
-=======
-TESTS=DDM-Schwarz-Lame-2d.edp DDM-Schwarz-Lame-3d.edp DDM-Schwarz-Lap-2dd.edp DDM-Schwarz-Lap-3d.edp			\
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	DDM-Schwarz-Stokes-2d.edp LaplaceRT-3d-matrix-mumps.edp MPICGLap.edp MPIGMRES2D.edp MPIGMRES3D.edp MUMPS.edp	\
-	NSI3d-carac-mumps.edp NSI3d-carac.edp Stokes-v1-matrix-mumps.edp Stokes-v1-matrix-superludist.edp		\
-	Stokes-v2-matrix-mumps.edp Stokes-v3-matrix-mumps.edp VG.edp beam-3d-matrix-superludist.edp			\
-	cavityNewtow-MUMPS.edp chaleur3D-hips.edp chaleur3D-mumps.edp chaleur3D-superludist.edp cmaes-mpi-VarIneq.edp	\
-	essai.edp mortar-DN-4-mpi.edp testsolver_MUMPS.edp testsolver_SuperLU_DIST.edp testsolver_pastix.edp
-
-XFAIL_TESTS=$(TESTS)
-
-LOG_DRIVER=$(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT=TEST_FFPP=$(TEST_FFPPMPI) FLAGS_FFPP="-np 4 -nw" SKIP=$(SKIP_TESTS_MPI)
-
-LIST_IDP= AddLayer2d.idp		DDM-Schwarz-macro.idp	MPIGMRESmacro.idp	getARGV.idp \
-AddLayer3d.idp		DDM-funcs-v2.idp	MPIplot.idp		mortar-msh.idp Heat3d.idp
-
-EXTRA_DIST=*.edp *.idp  regtests.sh  \
-MPICG.cpp \
-MUMPS_FreeFem.cpp \
-complex_SuperLU_DIST_FreeFem.cpp \
-complex_pastix_FreeFem.cpp \
-dSuperLU_DIST.cpp \
-ffsuperludistoption-1.hpp \
-ffsuperludistoption.hpp \
-generaldefs.h \
-hips_FreeFem.cpp \
-hypre_FreeFem.cpp \
-interfacepastix.cpp \
-parms_FreeFem.cpp \
-real_SuperLU_DIST_FreeFem.cpp \
-real_pastix_FreeFem.cpp mpi-cmaes.cpp \
-ffmumps_fileparam.txt		ffpastix_iparm_dparm.txt	ffsuperlu_dist_fileparam.txt \
-MUMPS.cpp   \
-<<<<<<< HEAD
-MUMPS.edp  dmatrix.hpp  \
-PETSc.hpp additional.idp removeDOF.cpp schwarz.cpp schwarz.edp stokes-2d.edp utility.cpp schwarz-2d.edp
-=======
-MUMPS.edp  dmatrix.hpp              
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-# FFCS - list modified to disable some downloaded tools depending on the platform (see
-# [[file:../../../configure.ac::tools_problems_all_platforms]] for reasons why some tools may be
-# deactivated).
-
-LIST_COMPILE=@TOOL_DYLIB_mumps@ @TOOL_DYLIB_hips@ @TOOL_DYLIB_superludist@ @TOOL_DYLIB_pastix@ MPICG.$(DYLIB_SUFFIX)	\
-<<<<<<< HEAD
- at TOOL_DYLIB_parms@ mpi-cmaes.$(DYLIB_SUFFIX) @TOOL_DYLIB_schwarz@
-=======
- at TOOL_DYLIB_parms@ mpi-cmaes.$(DYLIB_SUFFIX)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-if FFCS_MPIOK
-
-# FFCS - do not set loadpath to be able to run an external version of FF on the examples in this directory with
-# [[../../mkffref]]
-
-all-local:$(LIST_COMPILE)
-	@echo Warning missing mpi plugin: `for i in $(LIST_COMPILE); do if test ! -s $i ; then j=1; echo "$i," ;fi; done`
-	echo "finish compile load mpi solver !"
-else
-all-local:
-endif
-
-.cpp.$(DYLIB_SUFFIX): ../examples++-load/ff-c++ ../examples++-load/WHERE_LIBRARY-download
-#	FFCS needs an error exit code to make sure that all libraries are correctly compiled
-#
-#	FFCS on Windows inserts all MPI options (include, lib, ...) in the $MPICXX compiler script, instead of "$CXX $MPI_xxx",
-#	but it needs '-mpi' to do that
-#
-###	-../examples++-load/ff-c++ -auto  $< 
-	../examples++-load/ff-c++ -auto -mpi $<
-
-install-exec-local:: 
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib/mpi
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/include
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/etc
-	-for i in $(LIST_COMPILE); do \
-	 if [ -f $$i ] ; then 	$(INSTALL)  -m 555 $$i $(DESTDIR)$(ff_prefix_dir)/lib/mpi; fi; done
-	$(INSTALL)  -m 555  $(LIST_IDP)  $(DESTDIR)$(ff_prefix_dir)/idp
-
-
-freefem++.pref:Makefile
-	echo loadpath = \"../examples++-load/\" >freefem++.pref
-	echo includepath = \"../examples++-3d/\" >>freefem++.pref
-	echo includepath += \"../examples++-tutorial/\" >>freefem++.pref
-	echo loadpath += \"./\" >>freefem++.pref
-# force the build for freefem++.pref  FH.. 
-DDM-Schwarz-Lame-2d.edp:freefem++.pref
-# FFCS - cleaning is useful sometimes
-clean-local::
-	-rm *.$(DYLIB_SUFFIX)
-	-rm *.$(OBJEXT)
-
-# Local Variables:
-# mode:makefile
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
diff --git a/examples++-mpi/Makefile.in b/examples++-mpi/Makefile.in
deleted file mode 100644
index ed1fecc..0000000
--- a/examples++-mpi/Makefile.in
+++ /dev/null
@@ -1,1251 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# ======================================================================
-# Laboratoire Jacques-Louis Lions
-# Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-# http://www.ljll.math.upmc.fr/lehyaric
-# ======================================================================
-# This file is part of Freefem++
-# 
-# Freefem++ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-# 
-# Freefem++ is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-# 
-# You should have received a copy of the GNU Lesser General Public
-# License along with Freefem++; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# ======================================================================
-# headeralh default=0 freefem make multipleauthors start=19/03/10 upmc
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = examples++-mpi
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-TESTS = schwarz.edp DDM-Schwarz-Lame-2d.edp DDM-Schwarz-Lame-3d.edp DDM-Schwarz-Lap-2dd.edp DDM-Schwarz-Lap-3d.edp	\
-	DDM-Schwarz-Stokes-2d.edp LaplaceRT-3d-matrix-mumps.edp MPICGLap.edp MPIGMRES2D.edp MPIGMRES3D.edp MUMPS.edp	\
-	NSI3d-carac-mumps.edp NSI3d-carac.edp Stokes-v1-matrix-mumps.edp Stokes-v1-matrix-superludist.edp		\
-	Stokes-v2-matrix-mumps.edp Stokes-v3-matrix-mumps.edp VG.edp beam-3d-matrix-superludist.edp			\
-	cavityNewtow-MUMPS.edp chaleur3D-hips.edp chaleur3D-mumps.edp chaleur3D-superludist.edp cmaes-mpi-VarIneq.edp	\
-	essai.edp mortar-DN-4-mpi.edp testsolver_MUMPS.edp testsolver_SuperLU_DIST.edp testsolver_pastix.edp
-
-XFAIL_TESTS = $(TESTS)
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT = TEST_FFPP=$(TEST_FFPPMPI) FLAGS_FFPP="-np 4 -nw" SKIP=$(SKIP_TESTS_MPI)
-LIST_IDP = AddLayer2d.idp		DDM-Schwarz-macro.idp	MPIGMRESmacro.idp	getARGV.idp \
-AddLayer3d.idp		DDM-funcs-v2.idp	MPIplot.idp		mortar-msh.idp Heat3d.idp
-
-EXTRA_DIST = *.edp *.idp  regtests.sh  \
-MPICG.cpp \
-MUMPS_FreeFem.cpp \
-complex_SuperLU_DIST_FreeFem.cpp \
-complex_pastix_FreeFem.cpp \
-dSuperLU_DIST.cpp \
-ffsuperludistoption-1.hpp \
-ffsuperludistoption.hpp \
-generaldefs.h \
-hips_FreeFem.cpp \
-hypre_FreeFem.cpp \
-interfacepastix.cpp \
-parms_FreeFem.cpp \
-real_SuperLU_DIST_FreeFem.cpp \
-real_pastix_FreeFem.cpp mpi-cmaes.cpp \
-ffmumps_fileparam.txt		ffpastix_iparm_dparm.txt	ffsuperlu_dist_fileparam.txt \
-MUMPS.cpp   \
-MUMPS.edp  dmatrix.hpp  \
-PETSc.hpp additional.idp removeDOF.cpp schwarz.cpp schwarz.edp stokes-2d.edp utility.cpp schwarz-2d.edp
-
-
-# FFCS - list modified to disable some downloaded tools depending on the platform (see
-# [[file:../../../configure.ac::tools_problems_all_platforms]] for reasons why some tools may be
-# deactivated).
-LIST_COMPILE = @TOOL_DYLIB_mumps@ @TOOL_DYLIB_hips@ @TOOL_DYLIB_superludist@ @TOOL_DYLIB_pastix@ MPICG.$(DYLIB_SUFFIX)	\
- at TOOL_DYLIB_parms@ mpi-cmaes.$(DYLIB_SUFFIX) @TOOL_DYLIB_schwarz@
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .$(DYLIB_SUFFIX) .cpp .log .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++-mpi/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++-mpi/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-schwarz.edp.log: schwarz.edp
-	@p='schwarz.edp'; \
-	b='schwarz.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DDM-Schwarz-Lame-2d.edp.log: DDM-Schwarz-Lame-2d.edp
-	@p='DDM-Schwarz-Lame-2d.edp'; \
-	b='DDM-Schwarz-Lame-2d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DDM-Schwarz-Lame-3d.edp.log: DDM-Schwarz-Lame-3d.edp
-	@p='DDM-Schwarz-Lame-3d.edp'; \
-	b='DDM-Schwarz-Lame-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DDM-Schwarz-Lap-2dd.edp.log: DDM-Schwarz-Lap-2dd.edp
-	@p='DDM-Schwarz-Lap-2dd.edp'; \
-	b='DDM-Schwarz-Lap-2dd.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DDM-Schwarz-Lap-3d.edp.log: DDM-Schwarz-Lap-3d.edp
-	@p='DDM-Schwarz-Lap-3d.edp'; \
-	b='DDM-Schwarz-Lap-3d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-DDM-Schwarz-Stokes-2d.edp.log: DDM-Schwarz-Stokes-2d.edp
-	@p='DDM-Schwarz-Stokes-2d.edp'; \
-	b='DDM-Schwarz-Stokes-2d.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceRT-3d-matrix-mumps.edp.log: LaplaceRT-3d-matrix-mumps.edp
-	@p='LaplaceRT-3d-matrix-mumps.edp'; \
-	b='LaplaceRT-3d-matrix-mumps.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-MPICGLap.edp.log: MPICGLap.edp
-	@p='MPICGLap.edp'; \
-	b='MPICGLap.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-MPIGMRES2D.edp.log: MPIGMRES2D.edp
-	@p='MPIGMRES2D.edp'; \
-	b='MPIGMRES2D.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-MPIGMRES3D.edp.log: MPIGMRES3D.edp
-	@p='MPIGMRES3D.edp'; \
-	b='MPIGMRES3D.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-MUMPS.edp.log: MUMPS.edp
-	@p='MUMPS.edp'; \
-	b='MUMPS.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSI3d-carac-mumps.edp.log: NSI3d-carac-mumps.edp
-	@p='NSI3d-carac-mumps.edp'; \
-	b='NSI3d-carac-mumps.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSI3d-carac.edp.log: NSI3d-carac.edp
-	@p='NSI3d-carac.edp'; \
-	b='NSI3d-carac.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Stokes-v1-matrix-mumps.edp.log: Stokes-v1-matrix-mumps.edp
-	@p='Stokes-v1-matrix-mumps.edp'; \
-	b='Stokes-v1-matrix-mumps.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Stokes-v1-matrix-superludist.edp.log: Stokes-v1-matrix-superludist.edp
-	@p='Stokes-v1-matrix-superludist.edp'; \
-	b='Stokes-v1-matrix-superludist.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Stokes-v2-matrix-mumps.edp.log: Stokes-v2-matrix-mumps.edp
-	@p='Stokes-v2-matrix-mumps.edp'; \
-	b='Stokes-v2-matrix-mumps.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Stokes-v3-matrix-mumps.edp.log: Stokes-v3-matrix-mumps.edp
-	@p='Stokes-v3-matrix-mumps.edp'; \
-	b='Stokes-v3-matrix-mumps.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-VG.edp.log: VG.edp
-	@p='VG.edp'; \
-	b='VG.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-beam-3d-matrix-superludist.edp.log: beam-3d-matrix-superludist.edp
-	@p='beam-3d-matrix-superludist.edp'; \
-	b='beam-3d-matrix-superludist.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cavityNewtow-MUMPS.edp.log: cavityNewtow-MUMPS.edp
-	@p='cavityNewtow-MUMPS.edp'; \
-	b='cavityNewtow-MUMPS.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-chaleur3D-hips.edp.log: chaleur3D-hips.edp
-	@p='chaleur3D-hips.edp'; \
-	b='chaleur3D-hips.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-chaleur3D-mumps.edp.log: chaleur3D-mumps.edp
-	@p='chaleur3D-mumps.edp'; \
-	b='chaleur3D-mumps.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-chaleur3D-superludist.edp.log: chaleur3D-superludist.edp
-	@p='chaleur3D-superludist.edp'; \
-	b='chaleur3D-superludist.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cmaes-mpi-VarIneq.edp.log: cmaes-mpi-VarIneq.edp
-	@p='cmaes-mpi-VarIneq.edp'; \
-	b='cmaes-mpi-VarIneq.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-essai.edp.log: essai.edp
-	@p='essai.edp'; \
-	b='essai.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-mortar-DN-4-mpi.edp.log: mortar-DN-4-mpi.edp
-	@p='mortar-DN-4-mpi.edp'; \
-	b='mortar-DN-4-mpi.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testsolver_MUMPS.edp.log: testsolver_MUMPS.edp
-	@p='testsolver_MUMPS.edp'; \
-	b='testsolver_MUMPS.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testsolver_SuperLU_DIST.edp.log: testsolver_SuperLU_DIST.edp
-	@p='testsolver_SuperLU_DIST.edp'; \
-	b='testsolver_SuperLU_DIST.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testsolver_pastix.edp.log: testsolver_pastix.edp
-	@p='testsolver_pastix.edp'; \
-	b='testsolver_pastix.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-exec-local
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: all all-am all-local check check-TESTS check-am clean \
-	clean-generic clean-local cscopelist-am ctags-am distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-exec-local \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am recheck \
-	tags-am uninstall uninstall-am
-
-
-# FFCS - do not set loadpath to be able to run an external version of FF on the examples in this directory with
-# [[../../mkffref]]
-
- at FFCS_MPIOK_TRUE@all-local:$(LIST_COMPILE)
- at FFCS_MPIOK_TRUE@	@echo Warning missing mpi plugin: `for i in $(LIST_COMPILE); do if test ! -s $i ; then j=1; echo "$i," ;fi; done`
- at FFCS_MPIOK_TRUE@	echo "finish compile load mpi solver !"
- at FFCS_MPIOK_FALSE@all-local:
-
-.cpp.$(DYLIB_SUFFIX): ../examples++-load/ff-c++ ../examples++-load/WHERE_LIBRARY-download
-#	FFCS needs an error exit code to make sure that all libraries are correctly compiled
-#
-#	FFCS on Windows inserts all MPI options (include, lib, ...) in the $MPICXX compiler script, instead of "$CXX $MPI_xxx",
-#	but it needs '-mpi' to do that
-#
-###	-../examples++-load/ff-c++ -auto  $< 
-	../examples++-load/ff-c++ -auto -mpi $<
-
-install-exec-local:: 
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/lib/mpi
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/include
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/etc
-	-for i in $(LIST_COMPILE); do \
-	 if [ -f $$i ] ; then 	$(INSTALL)  -m 555 $$i $(DESTDIR)$(ff_prefix_dir)/lib/mpi; fi; done
-	$(INSTALL)  -m 555  $(LIST_IDP)  $(DESTDIR)$(ff_prefix_dir)/idp
-
-freefem++.pref:Makefile
-	echo loadpath = \"../examples++-load/\" >freefem++.pref
-	echo includepath = \"../examples++-3d/\" >>freefem++.pref
-	echo includepath += \"../examples++-tutorial/\" >>freefem++.pref
-	echo loadpath += \"./\" >>freefem++.pref
-# force the build for freefem++.pref  FH.. 
-DDM-Schwarz-Lame-2d.edp:freefem++.pref
-# FFCS - cleaning is useful sometimes
-clean-local::
-	-rm *.$(DYLIB_SUFFIX)
-	-rm *.$(OBJEXT)
-
-# Local Variables:
-# mode:makefile
-# ispell-local-dictionary:"british"
-# coding:utf-8
-# End:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-mpi/Stokes-v1-matrix-mumps.edp.orig b/examples++-mpi/Stokes-v1-matrix-mumps.edp.orig
deleted file mode 100644
index 74735d7..0000000
--- a/examples++-mpi/Stokes-v1-matrix-mumps.edp.orig
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
-to change locatation of daynamic lib. set   freefem++.pref   file like :
-more freefem++.pref  
-loadpath = "../examples++-load/"
-loadpath += "./"
-*/
-
-load "msh3"
-//load "medit"
-load "MUMPS_FreeFem"
-include "getARGV.idp"
-
-verbosity=0;
-real ttgv=1e10;
-string ssparams="nprow=1, npcol="+mpisize;
-
-
-
-<<<<<<< HEAD
-int nn=getARGV("-n",15);
-=======
-int nn=getARGV("-n",20);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-int pplot=getARGV("-plot",0);
-
-
-mesh Th2=square(nn,nn);
-fespace Vh2(Th2,P2);  Vh2 ux,uz,p2;
-int[int] rup=[0,2],  rdown=[0,1], rmid=[1,1,2,1,3,1,4,1];
-real zmin=0,zmax=1;
-mesh3 Th=buildlayers(Th2,nn,
-  zbound=[zmin,zmax],  labelmid=rmid, 
-  reffaceup = rup,     reffacelow = rdown);
-  
-fespace VVh(Th,[P2,P2,P2,P1]);
-fespace UUh(Th,[P2,P2,P2]);
-fespace Uh(Th,P2);
-fespace Ph(Th,P1);
-
-macro Grad(u) [dx(u),dy(u),dz(u)]// EOM
-macro div(u1,u2,u3) (dx(u1)+dy(u2)+dz(u3)) //EOM
-
-func fup = (1-x)*(x)*y*(1-y)*16;
-
-
-VVh [u1,u2,u3,p];
-VVh [v1,v2,v3,q];
-
-real timeI=mpiWtime();
-real time1=mpiWtime();
-varf vStokes([u1,u2,u3,p],[v1,v2,v3,q]) = 
-  int3d(Th,qforder=3)( Grad(u1)'*Grad(v1) +  Grad(u2)'*Grad(v2) +  Grad(u3)'*Grad(v3)   //' for emacs
-                  - div(u1,u2,u3)*q - div(v1,v2,v3)*p + 1e-10*q*p ) 
-  + on(2,u1=fup,u2=0,u3=0) + on(1,u1=0,u2=0,u3=0) ;
-
-
-matrix MStokes=vStokes(VVh,VVh,tgv=ttgv);
-cout << "size of matrix " << MStokes.n << " x " << MStokes.m << " nn nzero coef  = " << MStokes.nbcoef << endl;
-time1=mpiWtime()-time1;
-
-real timeF=mpiWtime();
-set(MStokes,solver=sparsesolver,tgv=ttgv,sparams=ssparams);
-timeF=mpiWtime()-timeF;
-
-real time2=mpiWtime();
-real[int] b=vStokes(0,VVh);
-time2=mpiWtime()-time2;
-
-real time3=mpiWtime();
-u1[] = MStokes^-1*b;
-time3=mpiWtime()-time3;
-
-timeI=mpiWtime()-timeI;
-
-cout << "============= CPU TIME ============" << endl;
-cout << "size of matrix " << MStokes.n << " x " << MStokes.m << " nn nzero coef  = " << MStokes.nbcoef << endl;
-cout << " matrix                  " <<  time1 << endl;
-cout << " Fact                    " <<  timeF << endl;
-cout << " second member           " <<  time2 << endl;
-cout << " solve                   " <<  time3 << endl;
-cout << "                          ------------" << endl;
-cout << " all                     " <<  timeI << endl;
-cout << "============= CPU TIME ============" << endl;
-//if(mpirank==0 && pplot) medit("UV2 PV2",Th,[u1,u2,u3],p);
-
diff --git a/examples++-mpi/complex_SuperLU_DIST_FreeFem.cpp.orig b/examples++-mpi/complex_SuperLU_DIST_FreeFem.cpp.orig
deleted file mode 100644
index ecc2d74..0000000
--- a/examples++-mpi/complex_SuperLU_DIST_FreeFem.cpp.orig
+++ /dev/null
@@ -1,861 +0,0 @@
-//   for automatic  compilation with ff-c++
-// FFCS - 23/5/12 - remove metis dependency because it interfers with identically-named libmetis.a from parmetis
-//ff-c++-LIBRARY-dep: superlu_dist  blas parmetis mpi fc
-//ff-c++-cpp-dep: 
-// ORIG-DATE: 02/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-/*
-  Interface freefem++ et SuperLU_DIST_2.3 
-
-  /bin/sh ff-mpic++ zSuperLU_DIST.cpp -I/Users/morice/librairie/SuperLU_DIST_2.3/SRC/ -L/Users/morice/librairie/openmpi/lib/ -lmpi -lopen-pal -lopen-rte -L/Users/morice/librairie/PATCHVECLIB/ -lwrapperdotblas -framework veclib -L/Users/morice/librairie/ParMetis-3.1/ -lparmetis -lmetis -L/Users/morice/librairie/SuperLU_DIST_2.3/lib/ -lsuperlu_dist_2.3
-
-*/
-
-// FFCS - required to define __int64 for MSMPI
-#include <stdint.h>
-
-#include <mpi.h>
-#include  <iostream>
-using namespace std;
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-#include "superlu_zdefs.h"
-#include "ffsuperludistoption.hpp"
-
-
-template <class R> struct SuperLUmpiDISTDriver
-{
-    
-};
-template <> struct SuperLUmpiDISTDriver<Complex>
-{
-  /* Driver routines */
-   /* Driver routines */
-  static  Dtype_t R_SLU_T() { return SLU_Z;} 
-  static doublecomplex *dc(Complex *p)  { return (doublecomplex *) (void *) p;}
-  static doublecomplex **dc(Complex **p)  { return (doublecomplex **) (void *) p;}
-
-  // Remplacement doublecomplex par Complex
-  static void
-  pgssvx(superlu_options_t *p1, SuperMatrix *p2, 
-	  ScalePermstruct_t *p3,
-	  Complex *p4, int p5, int p6, gridinfo_t *p7,
-	  LUstruct_t *p8, SOLVEstruct_t *p9, double *p10,
-	  SuperLUStat_t *p11, int *p12)
-  {
-     pzgssvx( p1,p2,p3,
-	      dc(p4),p5,p6,p7,p8,p9,p10,p11,p12 );
-  }
-    
-  static void
-  pgssvx_ABglobal(superlu_options_t *p1, SuperMatrix *p2, 
-		  ScalePermstruct_t *p3, 
-		  Complex *p4, int p5, int p6, gridinfo_t *p7,
-		  LUstruct_t *p8, double *p9,
-		  SuperLUStat_t *p10, int *p11)
-   
-  {
-    pzgssvx_ABglobal( p1,p2,p3,
-		      dc(p4),p5,p6,p7,p8,p9,p10,p11 );
-  }
-
-
-  static void
-  Create_CompCol_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, int_t p4, 
-			      Complex *p5, int_t *p6, int_t *p7,
-			      Stype_t p8, Dtype_t p9, Mtype_t p10)
-  {
-    zCreate_CompCol_Matrix_dist( p1,p2,p3,
-				 p4,dc(p5),p6,p7,p8,p9,p10 );
-  }
-
-  static  void
-  Create_CompRowLoc_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3,
-				 int_t p4, int_t p5, int_t p6,
-				 Complex *p7, int_t *p8, int_t *p9,
-				 Stype_t p10, Dtype_t p11, Mtype_t p12)
-  {
-    zCreate_CompRowLoc_Matrix_dist( p1,p2,p3,
-				    p4,p5,p6,dc(p7),p8,p9,p10,p11,p12 );
-  }
-
-  static  void
-  CompRow_to_CompCol_dist(int_t p1, int_t p2, int_t p3, 
-			   Complex *p4, int_t *p5, int_t *p6,
-			   Complex **p7, int_t **p8, int_t **p9)
-  {
-    zCompRow_to_CompCol_dist( p1,p2,p3,
-			      dc(p4),p5,p6,dc(p7),p8,p9 );
-  }
-
-
-  static void
-  Create_Dense_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, Complex *p4,
-			  int_t p5, Stype_t p6, Dtype_t p7,Mtype_t p8)
-  {
-     zCreate_Dense_Matrix_dist( p1,p2,p3,
-				dc(p4),p5,p6,p7,p8  );
-  }
-
-
-
-  static void
-  Create_SuperNode_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, int_t p4, 
-			       Complex *p5, int_t *p6,
-			       int_t *p7, int_t *p8,
-			       int_t *p9, int_t *p10,
-			       Stype_t p11, Dtype_t p12, Mtype_t p13)
-  {
-    zCreate_SuperNode_Matrix_dist( p1,p2,p3,
-				   p4,dc(p5),p6,p7,p8,p9,p10,p11,p12,p13 );
-  }
-  
-  static void
-  Print_CompRowLoc_Matrix_dist(SuperMatrix *p1)
-  {
-    zPrint_CompRowLoc_Matrix_dist(p1);
-  }
-
-
-};
-
-template<class R>
-class ZSolveSuperLUmpi :   public MatriceMorse<R>::VirtualSolver, public SuperLUmpiDISTDriver<R>   {
-  
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-   
-   
-  //mutable char           equed[1];
-  //yes_no_t       equil;
-  mutable SuperMatrix    A;
-  NCformat       *Astore;
-  //NCformat       *Ustore;
-  //SCformat       *Lstore;
-
-  mutable superlu_options_t options;
-  mutable mem_usage_t    mem_usage;
-  mutable ScalePermstruct_t ScalePermstruct;
-  mutable LUstruct_t        LUstruct;
-  mutable SOLVEstruct_t     SOLVEstruct;
-  mutable gridinfo_t        grid;
-
-  string string_option;
-  string data_option;
-  R             *a;
-  int           *asub, *xa;
-  int_t m, n, nnz;
-  // rajout pour //
-  int_t nprow,npcol;  /* process rows and process columns*/
-
-
-  int matrixdist; // type of distributed matrix
-  MPI_Comm commworld ;
-
-  static const int assembled =0;
-  static const int distributedglobal =1;
-  static const int distributed =2;
-
-public:
-  ZSolveSuperLUmpi(const MatriceMorse<R> &AA,int strategy,double ttgv, double epsilon,
-		  double pivot,double pivot_sym, string datafile,
-		   string param_char, KN<long> &pperm_r, KN<long> &pperm_c, void * ccommworld ) : 
-    eps(epsilon),epsr(0),
-    tgv(ttgv),string_option(param_char),data_option(datafile),
-    tol_pivot_sym(pivot_sym),tol_pivot(pivot)
-  { 
-    commworld = ccommworld ? *static_cast<MPI_Comm*>( ccommworld) : MPI_COMM_WORLD;    
-    
-    R*      B;
-    //R*      X;
-    SuperLUStat_t stat;
-    int            info, ldb, nrhs=0;
-    int            i;
-    double*        berr;
-    
-    int iam;
-
-    // Add for distributed matrix
-    int_t         m_loc, m_loc_fst, fst_row, nnz_loc, fst_nnz;
-    R             *aloc;
-    int           *asubloc, *xaloc;
-    // End Add for distributed matrix
-    
-    // time variables
-    long int starttime,finishtime;
-    long int timeused;
-    if(verbosity) starttime = clock();
-
-    A.Store=0;  
-    /* Defaults */
-    nrhs  = 0;
-
-    /* lecture de nprow and npcol */
-    // Cas max deux procs
-    nprow = 1;
-    MPI_Comm_size(commworld,&npcol);
-
-    matrixdist=0;
-    /* set the default options */
-    set_default_options_dist(&options);
-    DiagScale_t optionDiagScale;
-    
-    //if(verbosity > 10) print_options_dist(&options);
-
-    if(!string_option.empty()) read_nprow_npcol_freefem( &string_option, &nprow, &npcol, &matrixdist);
-    if(!string_option.empty()) read_options_freefem(&string_option,&options,&optionDiagScale);
-
-    if(!data_option.empty()) read_options_superlu_datafile(&data_option,&options,&nprow, &npcol, &matrixdist,&optionDiagScale);
-
-    //if(verbosity > 10) print_options_dist(&options);
-    
-     /* ------------------------------------------------------------
-	 INITIALIZE THE SUPERLU PROCESS GRID. 
-	 ------------------------------------------------------------*/
-    cout << "Complex superlu_gridinit " << commworld << " "<< ccommworld << " : "  << nprow << "X" <<  npcol <<endl;
-    superlu_gridinit(commworld , nprow, npcol, &grid);
-    cout << " --\n";
-    /* Bail out if I do not belong in the grid. */
-    iam = grid.iam;
-    if ( iam >= nprow * npcol ){
-      //superlu_gridexit(&grid);
-      printf("this process is not used in superlu %d \n",iam);
-    }
-    else
-      {
-	// matrix to procs and vectors
-	if( matrixdist == assembled ){
-	  
-	  if(!iam){
-	    cout <<  "iam=" << iam << endl;
-	    printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-	    
-	    /* create the matrix for superlu_dist */
-	    n=AA.n;
-	    m=AA.m;
-	    nnz=AA.nbcoef;
-	  
-	    assert( AA.lg[n] == nnz );	   
-	    printf("\tDimension\t%dx%d\t # nonzeros %d\n", m, n, nnz);
-	    
-	    /* transform Row to Col */
-	    // cela coute cher comme fonction //
-	    // dallocateA_dist(n, nnz, &a, &asub, &xa);
-	    // dCompRow_to_CompCol_dist(m,n,nnz,arow,asubrow,xarow,&a,&asub,&xa);
-	    
-	    // FFCS - "this->" required by g++ 4.7
-	    this->CompRow_to_CompCol_dist(m,n,nnz,AA.a,AA.cl,AA.lg,&a,&asub,&xa);
-	  
-	    /* Broadcast matrix A to the other PEs. */
-	    MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-
-	    MPI_Bcast( a,    nnz, SuperLU_MPI_DOUBLE_COMPLEX, 0, grid.comm );
-	    MPI_Bcast( asub, nnz, mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( xa,   n+1, mpi_int_t,  0, grid.comm );	    
-	    
-	  }
-	  else{
-	    /*
-	      printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-<<<<<<< HEAD
-	       Receive matrix A from PE 0. */
-=======
-	      /* Receive matrix A from PE 0. */
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	    MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	    
-	    /* Allocate storage for compressed column representation. */
-	    // FFCS - "this->" required by g++ 4.7
-	    zallocateA_dist(n, nnz, this->dc(&a), &asub, &xa);
-	    
-	    MPI_Bcast( a, nnz, SuperLU_MPI_DOUBLE_COMPLEX, 0, grid.comm );
-	    MPI_Bcast( asub, nnz, mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( xa,   n+1, mpi_int_t,  0, grid.comm );
-	    
-	  }
-	  
-	  Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-	  
-	  cout << "Debut: Create_CompCol_Matrix_dist" <<endl;
-	  // FFCS - "this->" required by g++ 4.7
-	  this->Create_CompCol_Matrix_dist(&A, m, n, nnz, a, asub, xa, SLU_NC, R_SLU, SLU_GE);      
-	  cout << "Fin: Create_CompCol_Matrix_dist" <<endl;
-	  /* creation of pseudo solution + second member */
-	  
-	  if ( !(B = new Complex[m] ) ){
-	    //if ( !(B = doublecomplexMalloc_dist(m )) ){
-	    printf("probleme d allocation\n");
-	    exit(1);
-	  }
-	  
-	  if(verbosity)
-	    printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-
-	 
-// 	  /* set the default options */
-// 	  set_default_options_dist(&options);
-// 	  DiagScale_t optionDiagScale;
-// 	  if(!string_option.empty()) read_options_freefem(&string_option,&options,&optionDiagScale);
-	  
-	  /* Initialize ScalePermstruct and LUstruct. */
-	  ScalePermstructInit(m, n, &ScalePermstruct);
-	  if(!(pperm_r==NULL)  || !(pperm_c==NULL) ) ScalePermstruct.DiagScale=optionDiagScale;
-	  if( !(pperm_r==NULL) ) 
-	    for(int ii=0; ii<m; ii++) ScalePermstruct.perm_r[ii] = pperm_r[ii];
-	  if( !(pperm_c==NULL) )
-	    for(int ii=0; ii<n; ii++) ScalePermstruct.perm_c[ii]= pperm_c[ii];
-	  
-	  if( ScalePermstruct.DiagScale != NOEQUIL ){
-	    printf("FreeFem++ doesn't support change of the original matrix"); 
-	    exit(1);
-	  }
-	  LUstructInit(m, n, &LUstruct);
-	  
-	  /* Initialize the statistics variables. */
-	  PStatInit(&stat);
-	  
-	  ldb = m;
-	  nrhs=1;
-	  if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	    printf("probleme d allocation\n");
-	    exit(1);
-	  }
-	  berr[0]=0.;
-    	
-	  if(verbosity)
-	    printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	
-	  /* INIT LU struct*/
-	  
-	  /* ONLY PERFORM THE LU DECOMPOSITION */
-	  //B.ncol = 0;  /* Indicate not to solve the system */
-	  
-	  nrhs=0;
-	  SuperLUmpiDISTDriver<R>::pgssvx_ABglobal(&options, &A,  &ScalePermstruct, B, ldb, nrhs, &grid,
-					       &LUstruct, berr, &stat, &info);
-	
-	  if(verbosity)
-	    printf("LU factorization: pdgssvx()/p returns info %d\n", info);
-	  
-	  if ( verbosity) PStatPrint(&options,&stat,&grid);
-	  PStatFree(&stat);
-	  	 
-	}
-	//##########################################################
-	//
-	//       matrix distributed with matrix global given
-	//
-	//##########################################################
-	else if( matrixdist == distributedglobal) {
-	   if(!iam){
-
-	     printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-	
-	     /* create the matrix for superlu_dist */
-	     n=AA.n;
-	     m=AA.m;
-	     nnz=AA.nbcoef;
-	     a=AA.a;
-	     asub=AA.cl;
-	     xa=AA.lg;
-	     
-	     xa[n] = nnz;
-	     printf("\tDimension\t%dx%d\t # nonzeros %d\n", m, n, nnz);
-	     
-	     /* Broadcast matrix A to the other PEs. */
-	     MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	     
-	     MPI_Bcast( AA.a,    nnz, SuperLU_MPI_DOUBLE_COMPLEX, 0, grid.comm );
-	     MPI_Bcast( AA.cl, nnz, mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( AA.lg,   n+1, mpi_int_t,  0, grid.comm );
-	     
-	     
-	   }
-	   else
-	     {
-	     
-	     printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-	     /* Receive matrix A from PE 0. */
-	     MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	     
-	     /* Allocate storage for compressed column representation. */
-	     // FFCS - "this->" required by g++ 4.7
-	     zallocateA_dist(n, nnz, this->dc(&a), &asub, &xa);
-	     
-	     MPI_Bcast( a, nnz, SuperLU_MPI_DOUBLE_COMPLEX, 0, grid.comm );
-	     MPI_Bcast( asub, nnz, mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( xa,   n+1, mpi_int_t,  0, grid.comm );
-
-	   }
-	   
-	   /* Compute the number of rows to be distributed to local process */
-	   m_loc = m / (grid.nprow * grid.npcol); 
-	   m_loc_fst = m_loc;
-	   /* When m / procs is not an integer */
-	   if ((m_loc * grid.nprow * grid.npcol) != m) {
-	     /*m_loc = m_loc+1;
-	       m_loc_fst = m_loc;*/
-	     if (iam == (grid.nprow * grid.npcol - 1)) /* last proc. gets all*/
-	       m_loc = m - m_loc * (grid.nprow * grid.npcol - 1);
-	   }
-	   
-	   fst_row = iam * m_loc_fst;
-	   
-	   nnz_loc = xa[fst_row+m_loc]-xa[fst_row];
-	   // FFCS - "this->" required by g++ 4.7
-	   zallocateA_dist(m_loc, nnz_loc, this->dc(&aloc), &asubloc, &xaloc);
-	   
-	   //xaloc = (int_t*) intMalloc_dist(m_loc+1);
-	   for(int ii=0; ii < m_loc; ii++){
-	     xaloc[ii] = xa[fst_row+ii]-xa[fst_row];	
-	   }
-	   
-	   xaloc[m_loc]=nnz_loc;
-	   
-	   fst_nnz = xa[fst_row];
-	   //aloc    = new R[nnz_loc];
-	   //aloc    = (Complex*) doubleMalloc_dist(nnz_loc);
-	   //asubloc = (int_t*)  intMalloc_dist(nnz_loc);
-	   
-	   for(int ii=0; ii < nnz_loc; ii++){
-	     aloc[ii] = a[fst_nnz+ii];
-	     asubloc[ii] = asub[fst_nnz+ii];
-	   }
-	   
-	   if( iam ){
-	     SUPERLU_FREE( a );
-	     SUPERLU_FREE( asub );
-	     SUPERLU_FREE( xa );
-	   }
-	   
-	   Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-	   
-	   if(verbosity) cout << "Debut: Create_CompRowCol_Matrix_dist" <<endl;
-	   // FFCS - "this->" required by g++ 4.7
-	   if(verbosity) this->Create_CompRowLoc_Matrix_dist(&A, m, n, nnz_loc, m_loc, fst_row, aloc, asubloc, xaloc, SLU_NR_loc, R_SLU, SLU_GE);
-	   
-	   cout << "Fin: Create_CompRowCol_Matrix_dist" <<endl;
-	   /* creation of pseudo solution + second member */
-	   
-	   
-	   if ( !(B = new Complex[m_loc]) ){
-	     printf("probleme d allocation\n");
-	     exit(1);
-	   }
-	   
-	   for(int ii=0; ii < m_loc; ii++){
-	     B[ii] = 1.; //BB[fst_row+ii];
-	   }
-     
-	   if(verbosity)
-	     printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	   
-	   /* set the default options */
-	   set_default_options_dist(&options);
-	   DiagScale_t optionDiagScale;
-	   if(!string_option.empty()) read_options_freefem(&string_option,&options,&optionDiagScale);
-	   	   
-	   m=A.nrow;
-	   n=A.ncol;
-	   printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	   /* Initialize ScalePermstruct and LUstruct. */
-	   ScalePermstructInit(m, n, &ScalePermstruct);
-	   if(pperm_r  ||  pperm_c ) ScalePermstruct.DiagScale=optionDiagScale;
-	   if(pperm_r) 
-	     for(int ii=0; ii<m; ii++) ScalePermstruct.perm_r[ii] = pperm_r[fst_row+ii];
-	   if(pperm_c) 
-	     for(int ii=0; ii<n; ii++) ScalePermstruct.perm_c[ii] = pperm_c[ii];
-	   
-	   LUstructInit(m, n, &LUstruct);
-	   
-
-
-	   /* Initialize the statistics variables. */
-	   PStatInit(&stat);
-	   
-	   ldb = m_loc;
-	   //ldx = m_loc;
-	   
-	   nrhs=1;
-	   if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	     printf("probleme d allocation\n");
-	     exit(1);
-	   }
-	   berr[0]=0.;
-	   
-	   /* ONLY PERFORM THE LU DECOMPOSITION */
-    
-	   nrhs=0;
-	   SuperLUmpiDISTDriver<R>::pgssvx(&options, &A,  &ScalePermstruct, B, ldb, nrhs, &grid,
-					   &LUstruct, &SOLVEstruct, berr, &stat, &info);
-	   
-	   if(verbosity)
-	     printf("LU factorization: pdgssvx()/p returns info %d\n", info);
-	   
-	   if ( verbosity) PStatPrint(&options,&stat,&grid);
-	   PStatFree(&stat);
-	}
-	else if( matrixdist == distributed) {
-	  printf("in construction\n");
-	  exit(1);
-	}
-	else{
-	  printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	  exit(1);
-	}
-	
-	delete [] B;
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */
-	nrhs=1;
-	SUPERLU_FREE(berr);  	
-
-	if(iam==0){
-	  finishtime = clock();
-	  timeused= (finishtime-starttime)/(1000 );
-	  printf("=====================================================\n");
-	  cout << "SuperLU_DIST : time factorisation :: " << timeused << " ms" <<endl;
-	  printf("=====================================================\n");
-	}
-	 
-      }
-  }
-
-  void Solver(const MatriceMorse<R> &AA,KN_<R> &x,const KN_<R> &b) const  {
-    R*        B;
-    SuperLUStat_t  stat;
-    int            iam;
-    int            info=0, ldb=m, nrhs=1;
-    int            i;
-    double*        berr;
-    double         ferr; 
-    double         rpg, rcond;
-      
-    int_t    m_loc,m_loc_fst,fst_row;
-    
-    // time variables
-    long int starttime,finishtime;
-    long int timeused;
-
-    iam = grid.iam;
-    if( iam < nprow*npcol){
-
-      if(verbosity) starttime = clock();
-
-      if(n != m) exit(1);
-      
-      ffassert ( &x[0] != &b[0]);
-      epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-      
-      Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-      nrhs= 1;
-      
-      
-      /* Initialize the statistics variables. */
-      PStatInit(&stat);
-      
-      /* cas matrix assembled */ 
-      if( matrixdist == assembled ){
-      
-      if( !(B = new R[m*nrhs] ) ){
-	printf("probleme d allocation\n");
-	exit(1);
-	}
-	
-	for(int ii=0; ii<n; ii++){
-	  B[ii]=b[ii];
-	}
-	
-	if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	berr[0]=0.;
-	
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */   
-	ldb = m;
-	//nrhs= 1;
-	SuperLUmpiDISTDriver<R>::pgssvx_ABglobal (&options, &A, &ScalePermstruct, B, ldb, nrhs, &grid,
-						  &LUstruct, berr, &stat, &info );
-	
-	if(verbosity)
-	  printf("Triangular solve: dgssvx() returns info %d\n", info);
-	
-	if(verbosity) PStatPrint(&options, &stat, &grid);   
-	
-	for(int ii=0; ii<n; ii++){
-	  x[ii] = B[ii]; 
-	}
-	
-	if(verbosity) cout << "   x min max " << x.min() << " " <<x.max() << endl;
-	
-      }
-      else if( matrixdist == distributedglobal) {
-	R*    xtemp;
-	iam = grid.iam;
-	/* Compute the number of rows to be distributed to local process */
-	m_loc = m / (grid.nprow * grid.npcol); 
-	m_loc_fst = m_loc;
-	/* When m / procs is not an integer */
-	if ((m_loc * grid.nprow * grid.npcol) != m) {
-	  /*m_loc = m_loc+1;
-	    m_loc_fst = m_loc;*/
-	  if (iam == (grid.nprow * grid.npcol - 1)) /* last proc. gets all*/
-	    m_loc = m - m_loc * (grid.nprow * grid.npcol - 1);
-	}
-	
-	fst_row = iam * m_loc_fst;
-	
-	if ( !(B = new R[m_loc] ) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	
-	//printf("initilisation B:");
-	for(int ii=0; ii<m_loc; ++ii){
-	  B[ii] = b[ii+fst_row];
-	  //printf("  B[%d]= %f  ",ii,B[ii]);
-	}
-	//printf(" :: fin \n");
-	//fflush(stdout);
-	
-      
-	if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	berr[0]=0.;
-	
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */
-	//options.Equil = YES;
-	//options.Trans = TRANS;
-	
-	
-	ldb = m;
-	SuperLUmpiDISTDriver<R>::pgssvx(&options, &A, &ScalePermstruct, B, ldb, nrhs, &grid,
-					&LUstruct, &SOLVEstruct, berr, &stat, &info );
-	
-	if(verbosity)
-	  printf("Triangular solve: dgssvx() returns info %d\n", info);
-	
-	if ( !(xtemp = new R[AA.n]) ){
-	  printf("probleme d allocation de xtemp\n");
-	  exit(1);
-	}
-	
-      
-	int disp[nprow*npcol];
-	MPI_Allgather(&fst_row, 1, MPI_INT, disp, 1, MPI_INT, grid.comm);
-	
-	int recv[nprow*npcol];
-	MPI_Allgather(&m_loc, 1, MPI_INT, recv, 1, MPI_INT, grid.comm);
-	
-	MPI_Allgatherv(B, m_loc, SuperLU_MPI_DOUBLE_COMPLEX, xtemp, recv, disp, SuperLU_MPI_DOUBLE_COMPLEX, grid.comm);
-	
-	for(int ii= 0; ii< AA.n ; ii++)
-	  x[ii] = xtemp[ii];
-	
-	if(verbosity) cout << "   x min max " << x.min() << " " <<x.max() << endl;
-	
-	delete [] xtemp;
-      
-      }
-      else if( matrixdist == distributed) {
-	printf("in construction\n");
-	exit(1);
-      }
-      else{
-	printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	exit(1);
-      }
-      
-
-      delete [] B;
-      SUPERLU_FREE( berr );
-      
-      PStatFree(&stat);
-
-      if(iam==0){
-	finishtime = clock();
-	timeused= (finishtime-starttime)/(1000 );
-	printf("=====================================================\n");
-	cout << " SuperLU_DIST : time solve  :: " << timeused << " ms" <<endl;
-	printf("=====================================================\n");
-      }
-
-    }
-  }
-    
-  ~ZSolveSuperLUmpi() { 
-    int iam;
-    iam = grid.iam;
-    if(iam < nprow*npcol){
-      if(verbosity)
-	cout << "~SolveSuperLUmpi Complex:" << endl;
-      
-      if( matrixdist == assembled) {
-	//if( A.Store)  Destroy_CompCol_Matrix_dist(&A);
-	//if( L.Store && U.Store )  {
-	Destroy_LU(n, &grid, &LUstruct);
-	ScalePermstructFree(&ScalePermstruct);
-	LUstructFree(&LUstruct);
-	//}
-	if ( options.SolveInitialized ) {
-	  zSolveFinalize(&options, &SOLVEstruct);
-	}
-      }
-      else if( matrixdist == distributedglobal) {
-	if( A.Store)  Destroy_CompRowLoc_Matrix_dist(&A);
-	
-	Destroy_LU(n, &grid, &LUstruct);
-	ScalePermstructFree(&ScalePermstruct);
-	LUstructFree(&LUstruct);
-	
-	if ( options.SolveInitialized ) {
-	  zSolveFinalize(&options, &SOLVEstruct);
-	}
-      }
-      else if( matrixdist == distributed) {
-	printf("in construction\n");
-	exit(1);
-      }
-      else{
-	printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	exit(1);
-      }
-    }
-    printf("superlu_gridexit(&grid), %d\n",iam);
-    superlu_gridexit(&grid); 
-   
-  }
-  void addMatMul(const KN_<R> & x, KN_<R> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<R> &) (*this) * x; 
-  }
-     
-}; 
-
-
-
-
-MatriceMorse<Complex>::VirtualSolver *
-BuildSolverSuperLUmpi(DCL_ARG_SPARSE_SOLVER(Complex,A))
-{
-  if(verbosity>9)
-      cout << " BuildSolverSuperLUmpi<double>" << endl;
-  return new ZSolveSuperLUmpi<Complex>(*A,ds.strategy,ds.tgv,ds.epsilon,ds.tol_pivot,ds.tol_pivot_sym,
-				       ds.data_filename, ds.sparams, ds.perm_r, ds.perm_c, ds.commworld);
-}
-
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-    Init();
-    };*/
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-//DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity)
-	cout << " SetDefault sparse to default" << endl;
-    //DefSparseSolver<double>::solver =SparseMatSolver_R;
-    DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-
-    return false;
-}
-
-bool SetSuperLUmpi()
-{
-    if(verbosity)
-	cout << " SetDefault sparse solver to SuperLUmpi double" << endl;
-    //DefSparseSolver<double>::solver  =BuildSolverSuperLUmpi;
-    DefSparseSolver<Complex>::solver =BuildSolverSuperLUmpi;    
-    TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-
-    return false;
-}
-
-
-
-<<<<<<< HEAD
-
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  //SparseMatSolver_R= DefSparseSolver<double>::solver;
-  SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: Complex SuperLU_DIST,  defaultsolver defaultsolverSuperLUdist" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  //DefSparseSolver<double>::solver =BuildSolverSuperLUmpi;
-  DefSparseSolver<Complex>::solver =BuildSolverSuperLUmpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("complexdefaulttoSuperLUdist","(",new OneOperator0<bool>(SetSuperLUmpi));
-}
-
-<<<<<<< HEAD
-
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/complex_pastix_FreeFem.cpp b/examples++-mpi/complex_pastix_FreeFem.cpp
index f2746ce..cc26c99 100644
--- a/examples++-mpi/complex_pastix_FreeFem.cpp
+++ b/examples++-mpi/complex_pastix_FreeFem.cpp
@@ -219,7 +219,7 @@ void read_datafile_pastixff(const string &datafile, int &mpi_flag, pastix_int_t
 }
 
 // ATTENTION :: pastix_float_t  
-//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
+//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
 
 // CAS COMPLEX SEULEMENT 
 
@@ -333,7 +333,7 @@ public:
       Ncol = AA.m;
       Nrow = AA.n;
       nnz  = AA.nbcoef;
-      // Avant : on ecrit la transpos�e
+      // Avant : on ecrit la transpos�e
       
       // AA.cl : indices des colonnes
       // AA.lg : pointeurs des lignes
diff --git a/examples++-mpi/complex_pastix_FreeFem.cpp.orig b/examples++-mpi/complex_pastix_FreeFem.cpp.orig
deleted file mode 100644
index 89c0803..0000000
--- a/examples++-mpi/complex_pastix_FreeFem.cpp.orig
+++ /dev/null
@@ -1,701 +0,0 @@
-// ORIG-DATE: 02/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-//ff-c++-LIBRARY-dep: complex_pastix   blas parmetis metis scotch mpi fc
-//ff-c++-cpp-dep: 
-/*
-  Interface entre freefem++ et pastix
-*/
-#include <mpi.h>
-
-#include  <iostream>
-using namespace std;
-   
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-#include "pastix_long_complex.h"
-
-#undef memFree_null
-#define memFree_null(x) {if (x ==NULL) {fprintf(stdout,"%s:%d freeing NULL\n",__FILE__,__LINE__);} free(x); x=NULL;}
-
-#define STR_SIZE 256
-
-static pastix_int_t * pastixint(int * ii){ return (pastix_int_t*) (void *) ii;} 
-static pastix_float_t * pastixfloat(Complex * ii){ return (pastix_float_t*) (void *) ii;} 
-
-typedef struct pastix_param {
-  pastix_data_t          *pastix_data; /*Pointer used by PaStiX to keep information alive between calls */
-  MPI_Comm                comm;        /* Communicator used by PaStiX                                    */
-  pastix_int_t            Ncol;        /* Size of the Matrix                                             */
-  pastix_int_t           *ia;          /* Index of first element of each column in ja and avals          */  
-  pastix_int_t           *ja;          /* Rows of the unknows of the matrix                              */
-  pastix_float_t         *avals;       /* Values of the matrix                                           */
-  pastix_int_t           *perm;        /* Permutation used for re-numbering of the unknowns              */
-  pastix_int_t           *invp;        /* Inverse permutation                                            */
-  pastix_float_t         *rhs;         /* Right hand side                                                */
-  pastix_int_t           *iparm;       /* Integer parameters                                             */
-  double                 *dparm;       /* Floating parameters                                            */
-} pastix_param_t;
-
-
-
-void
-Morse_to_CSC(int m, int n, int nnz, 
-	     Complex *a, int *colind, int  *rowptr,
-	     pastix_float_t **at, pastix_int_t **rowind, 
-	     pastix_int_t **colptr)
-{
-    register int i, j, col, relpos;
-    pastix_int_t *marker;
-
-    /* Allocate storage for another copy of the matrix. */
-    *at     = (pastix_float_t *) malloc(sizeof(pastix_float_t)*nnz);
-    *rowind = (pastix_int_t *) malloc(sizeof(pastix_int_t)*nnz);
-    *colptr = (pastix_int_t *) malloc(sizeof(pastix_int_t)*(n+1));
-    marker  = (pastix_int_t *) malloc(sizeof(pastix_int_t)*n);
-    
-    for (i = 0; i < n; ++i)
-      marker[i] = 0;
-    /* Get counts of each column of A, and set up column pointers */
-    for (i = 0; i < m; ++i)
-	for (j = rowptr[i]; j < rowptr[i+1]; ++j) ++marker[colind[j]];
-    (*colptr)[0] = 0;
-    for (j = 0; j < n; ++j) {
-	(*colptr)[j+1] = (*colptr)[j] + marker[j];
-	marker[j] = (*colptr)[j];
-    }
-
-    /* Transfer the matrix into the compressed column storage. */
-    for (i = 0; i < m; ++i) {
-	for (j = rowptr[i]; j < rowptr[i+1]; ++j) {
-	    col = colind[j];
-	    relpos = marker[col];
-	    (*rowind)[relpos] = i;
-	    (*at)[relpos] = a[j];
-	    ++marker[col];
-	}
-    }
-
-    free(marker);
-}
-
-
-
-static const int MAX_CHAR_PER_LINE=256;
-//void read_datafile_pastixff(const string &datafile, pastix_int_t *iparmtab, double *dparmtab){
-void read_datafile_pastixff(const string &datafile, int &mpi_flag, pastix_int_t *iparmtab, double *dparmtab){
-  FILE*   m_File;
-  int     i = 0;
-  char    szbuff[MAX_CHAR_PER_LINE];
-  char*   token;
-
-  char filename[datafile.size()+1];  
-  strcpy( filename, datafile.c_str()); 
-
-  m_File = fopen(filename,"rt");
-
-  if(!m_File)
-    {
-      printf("error in reading filename %s\n",filename);
-    }
-
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");
-
-  
-  if( !(strcmp(token,"matrix") == 0) ){
-    printf("freefem++: error in reading matrix parameter for pastix (see strcuture of ffpastix_iparm_dparm.txt) \n");
-    exit(1);
-  }
-  else{
-    printf("freefem++: reading matrix parameter for pastix \n");    
-  }
-
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");
-  
-  if(strcmp(token,"assembled") == 0)
-    mpi_flag = 0;
-  else if(strcmp(token,"distributedglobal") == 0) 
-    mpi_flag = 1;
-  else if(strcmp(token,"distributed") == 0) 
-    mpi_flag = 2;
-  else{
-    printf("value of parameter matrix is not correct %s \n", token );
-  }
-
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");
-
-  if( !(strcmp(token,"iparm") == 0) ){
-    printf("freefem++: error in reading iparm parameter for pastix (see strcuture of ffpastix_iparm_dparm.txt) \n");
-    exit(1);
-  }
-  else{
-    printf("freefem++: reading iparm parameter for pastix \n");    
-  }
-  while(!feof(m_File) && i < 64)
-    {   
-      fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-      token = strtok(szbuff," /#!\t\n");
-      iparmtab[i] = (pastix_int_t)atol(token);
-      i++;
-    }
-
-  i=0;
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");  
-  if( !(strcmp(token,"dparm") == 0) ){
-    printf("freefem++: error in reading dparm parameter for pastix (see strcuture of ffpastix_iparm_dparm.txt) \n");
-    exit(1);
-  }
-  else{
-    printf("freefem++: reading dparm parameter for pastix \n");    
-  }
-  while(!feof(m_File) && i < 64)
-    {   
-      fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-      token = strtok(szbuff," /#!\t\n");
-      dparmtab[i] = atof(token);
-      i++;
-    }
- 
-  fclose(m_File);
-
-#ifdef OOC
-/*   if (iparmtab[IPARM_OOC_THREAD] > 1) */
-    iparmtab[IPARM_OOC_THREAD] = 1;
-#endif
-  /* On empeche le 2d avec NUMA_ALLOC */
-#ifdef NUMA_ALLOC
-  if (iparmtab[IPARM_DISTRIBUTION_LEVEL] != 0)
-    {
-      errorPrint("2D not available with NUMA allocation\n");
-      exit(-1);
-    }
-#endif
-}
-
-// ATTENTION :: pastix_float_t  
-//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
-
-// CAS COMPLEX SEULEMENT 
-
-
-class zSolvepastixmpi :   public MatriceMorse<Complex>::VirtualSolver   {
-  
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-  
-
-  int paraoption;
-  int myid, mpi_size;
-  int Nrow;
-  int mpi_flag;
-  int init_raff;
-  int thrd_flag;
-  int SYM;
-  
-  string data_option;
-  
-  mutable pastix_int_t    iparm[64];
-  mutable double          dparm[64];
-  mutable pastix_int_t    Ncol;
-  mutable pastix_int_t   *ia;
-  mutable pastix_int_t   *ja;
-  mutable pastix_float_t *avals;
-  mutable pastix_int_t   *loc2glob;
-  //char           *Type    = NULL;
-  //char           *RhsType = NULL;
-  mutable pastix_float_t *rhs;
-  mutable pastix_int_t   *perm;
-  mutable pastix_int_t   *invp;
-  mutable pastix_data_t  *pastix_data;
-  MPI_Comm commworld ;
-
-
-public:
-
-  zSolvepastixmpi(const MatriceMorse<Complex> &AA,int strategy,double ttgv, double epsilon,
-		  double pivot,double pivot_sym, string datafile, KN<long> &param_int, KN<double> &param_double, 
-		  KN<long> &pperm_r, KN<long> &pperm_c,void * ccommworld) : 
-    eps(epsilon),epsr(0),
-    tgv(ttgv),tol_pivot_sym(pivot_sym),tol_pivot(pivot),
-    data_option(datafile) 
-  { 
-    commworld = ccommworld ? *static_cast<MPI_Comm*>( ccommworld) : MPI_COMM_WORLD;
-    //KN_<long> param_int(pparam_int);
-    //KN_<double> param_double(pparam_double);
-
-    //int m;
-    //int ierr;
-    struct timeval  tv1, tv2;
-    int nnz;
-    // time variables
-    long int starttime,finishtime;
-    long int timeused;
-    if(verbosity) starttime = clock();
-
-    ia    = NULL;
-    ja    = NULL;
-    avals   = NULL;
-    loc2glob = NULL;
-    rhs     = NULL;
-    pastix_data = NULL;
-    
-    // matrix assembled on host
-    MPI_Comm_rank(commworld, &myid);
-    printf("- Rang MPI : %d\n", myid);
-    MPI_Comm_size(commworld, &mpi_size);
-    // SYMETRIQUE
-    // MPI_flag need to unselect for non distributed matrix
-    mpi_flag  = 0;
-    thrd_flag = 0;
-
-    // ######################  
-    //pastix_int_t init_raff;
-    fprintf(stdout,"-- INIT PARAMETERS --\n");
-    
-    // reading iparm from array    
-    if(!data_option.empty()){
-      read_datafile_pastixff(data_option,mpi_flag,iparm,dparm);
-      if(mpi_flag != 0) 
-	cerr << "ERROR :: GLOBAT INPUT MATRIX FOR ALL PROCS  matrix=assembled" << endl;
-    }
-    else if( !(param_int==NULL) || !(param_double==NULL)){
-	if( ! (param_int==NULL) ) 
-      {
-	cout << "internal param_int" << endl;
-	assert(param_int.N() == 64);
-	for(int ii=0; ii<64; ii++) 
-	  iparm[ii] = param_int[ii];
-	iparm[IPARM_MODIFY_PARAMETER] = API_YES;
-      }
-	if( !(param_double==NULL) ) 
-      {
-	cout << "internal param_double" << endl;
-	assert(param_double.N() == 64);
-	for(int ii=0; ii<64; ii++) 
-	  dparm[ii] = param_double[ii];
-      }
-    }  
-    else{
-      iparm[IPARM_MODIFY_PARAMETER] = API_NO;
-      cout << "initialize default parameter" << endl;
-    }
-    
-    //################################
-    if(myid == 0){
-      Ncol = AA.m;
-      Nrow = AA.n;
-      nnz  = AA.nbcoef;
-      // Avant : on ecrit la transpos�e
-      
-      // AA.cl : indices des colonnes
-      // AA.lg : pointeurs des lignes
-      Morse_to_CSC( AA.n , AA.m, AA.nbcoef, AA.a, AA.cl, AA.lg, &avals, &ja, &ia);
-      // ia : pointeurs des colonnes
-      // ja : indices des lignes
-      
-      cout << "AA.n= "<< AA.n << " AA.m=" <<  AA.m << " AA.nbcoef=" << AA.nbcoef << endl;
-      
-      for(int ii=0; ii < Ncol+1; ii++){
-	ia[ii] = ia[ii]+1;
-      }
-      assert( ia[Ncol]-1 == AA.nbcoef );
-      for(int ii=0; ii < ia[Ncol]-1; ii++){
-	ja[ii] = ja[ii]+1; 
-      }
-      MPI_Bcast( &Ncol,   1,    MPI_PASTIX_INT,   0, commworld );
-      MPI_Bcast( &Nrow,   1,    MPI_PASTIX_INT,   0, commworld );
-      MPI_Bcast( &nnz,    1,    MPI_PASTIX_INT,   0, commworld );
-
-      MPI_Bcast( avals, nnz,    MPI_PASTIX_FLOAT, 0, commworld );
-      MPI_Bcast(    ia, Ncol+1, MPI_PASTIX_INT,   0, commworld );
-      MPI_Bcast(    ja, nnz,    MPI_PASTIX_INT,   0, commworld );
-    }
-    else{
-      MPI_Bcast( &Ncol, 1,        MPI_PASTIX_INT,  0, commworld );
-      MPI_Bcast( &Nrow, 1,        MPI_PASTIX_INT,  0, commworld );
-      MPI_Bcast( &nnz,  1,        MPI_PASTIX_INT,  0, commworld );
-      
-      avals = (pastix_float_t *) malloc( nnz*sizeof(pastix_float_t) );
-      ia = (pastix_int_t *) malloc( (Ncol+1)*sizeof(pastix_int_t) );
-      ja = (pastix_int_t *) malloc( nnz*sizeof(pastix_int_t) );
-
-      MPI_Bcast( avals, nnz,  MPI_PASTIX_FLOAT,   0, commworld );
-      MPI_Bcast(    ia, Ncol+1, MPI_PASTIX_INT,   0, commworld );
-      MPI_Bcast(    ja, nnz,    MPI_PASTIX_INT,   0, commworld );
-    }
-
-    perm = (pastix_int_t *) malloc(Ncol*sizeof(pastix_int_t));
-    invp = (pastix_int_t *) malloc(Ncol*sizeof(pastix_int_t));
-    
-    rhs = (pastix_float_t *) malloc(Ncol*sizeof(pastix_float_t));
-    
-    // reading permutation given by the user
-    if(pperm_r) 
-      for(int ii=0; ii < Ncol; ii++)
-	perm[ii] = pperm_r[ii];
-    if(pperm_c)  
-      for(int ii=0; ii < Ncol; ii++)
-	invp[ii] = pperm_c[ii];
-   
-  
-    iparm[IPARM_START_TASK] = API_TASK_INIT;
-    iparm[IPARM_END_TASK]   = API_TASK_INIT;
-    iparm[IPARM_SYM] = API_SYM_NO; // Matrix is considered nonsymetric    
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm); 
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    fprintf(stdout,"-- FIN INIT PARAMETERS --\n");
-    init_raff = iparm[IPARM_ITERMAX];
-    cout << "init_raff=" << init_raff << endl;
-    fflush(stdout);
-    /* Passage en mode verbose */
-    
-    iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    if( (param_int==NULL) && data_option.empty() ){
-      iparm[IPARM_MATRIX_VERIFICATION] = API_YES;
-      iparm[IPARM_REFINEMENT] = API_RAF_GMRES;
-      iparm[IPARM_INCOMPLETE] = API_NO;
-    }
-
-    if( (param_double==NULL) && data_option.empty()){
-      dparm[DPARM_EPSILON_REFINEMENT] = 1e-12;
-      dparm[DPARM_EPSILON_MAGN_CTRL] = 1e-32;
-    }
-
-  
- //    cscd_checksym(Ncol, ia, ja, loc2glob, commworld);
-    
-//     if (iparm[IPARM_SYM]==API_SYM_YES)
-//       {
-// 	/* Symetric problem */
-// 	/* Build non oriented graph */
-// 	/* build non symmetric csc from symmetric csc */
-// 	/*maillage global*/
-// 	INT *tmpia;
-// 	INT *tmpja;
-// 	INT  tmpn;
-	
-// 	cscd_symgraph_int(*n2,   *col2,  *row2 , NULL,
-// 			  &tmpn, &tmpia, &tmpja, NULL,
-// 			  *loc2glob2, pastix_comm, API_YES);
-	
-// 	memFree_null(*col2);
-// 	*col2 = tmpia;
-// 	memFree_null(*row2);
-// 	*row2 = tmpja;
-// 	*n2   = tmpn;
-//       }
-    
-
-    SYM = AA.symetrique; 
-    cout << "SYM = "<< SYM << endl;
-    // SYMETRIQUE
-    if( SYM == 1 ){
-      iparm[IPARM_SYM] = API_SYM_YES;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LDLT;
-    }
-    if( SYM == 0 ){
-      iparm[IPARM_SYM] = API_SYM_NO;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LU;
-    }
-    
-    /* Scotch */
-    fprintf(stdout,"-- Scotch --\n");
-    fflush(stdout);
-    iparm[IPARM_START_TASK] = API_TASK_ORDERING;
-    iparm[IPARM_END_TASK]   = API_TASK_ORDERING; 
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl;  
-    iparm[IPARM_SYM] = API_SYM_NO;
-    /* Fax */
-    fprintf(stdout,"-- Fax --\n");
-    iparm[IPARM_START_TASK] = API_TASK_SYMBFACT;
-    iparm[IPARM_END_TASK]   = API_TASK_SYMBFACT;
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    /* Blend */
-    fprintf(stdout,"-- Blend --\n");
-    iparm[IPARM_START_TASK] = API_TASK_ANALYSE;
-    iparm[IPARM_END_TASK]   = API_TASK_ANALYSE;
-    if( SYM == 1 ){
-      iparm[IPARM_SYM] = API_SYM_YES;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LDLT;
-    }
-    if( SYM == 0 ){
-      iparm[IPARM_SYM] = API_SYM_NO;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LU;
-    }
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-   
-    /* Factorisation */
-    iparm[IPARM_START_TASK] = API_TASK_NUMFACT;
-    iparm[IPARM_END_TASK]   = API_TASK_NUMFACT;
-    gettimeofday(&tv1, NULL);
-    fprintf(stdout,"-- SOPALIN --\n");
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-       cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call factorization : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));
-    
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]-1;
-    
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]-1;
-    
-    //for(int ii=0; ii < ia[Ncol]-1; ii++)
-    //  ja[ii] = ja[ii]-1;
-
-    if(myid==0){
-      finishtime = clock();
-      timeused= (finishtime-starttime)/(1000 );
-      printf("=====================================================\n");
-      cout << " pastix : time factorization  :: " << timeused << " ms" <<endl;
-      printf("=====================================================\n");
-    }
-
-    
-  }
-  void Solver(const MatriceMorse<Complex> &AA,KN_<Complex> &x,const KN_<Complex> &b) const  {
-  
-    struct timeval  tv1, tv2;
-    // time variables
-    long int starttime,finishtime;
-    long int timeused;
-    if(verbosity) starttime = clock();
-    
-    // index for pastix    
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]+1;
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]+1;
-    
-    
-    // give value of the second member
-    for(int ii=0; ii < Ncol; ii++){
-      rhs[ii] = b[ii];  
-    }
-    
-  
-
-
-    //fprintf(stdout,"SOLVE STEP %ld (in FACTORIZE STEP %ld)\n",(long)ii,(long)jj);
-    
-    /* updo */
-    iparm[IPARM_START_TASK] = API_TASK_SOLVE;
-    iparm[IPARM_END_TASK]   = API_TASK_SOLVE;
-    iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    gettimeofday(&tv1, NULL);
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call updown : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));    
-    
-    if(verbosity > 1)
-      for(int jj=0; jj < Ncol; jj++)
-	cout << "rhs["<< jj << "]=" << rhs[jj] << endl;
-    
-    
-    //fprintf(stdout,"RAFF STEP %ld (in FACTORIZE STEP %ld)\n",(long)ii,(long)jj);
-    /* raff */
-    
-    
-    iparm[IPARM_START_TASK] = API_TASK_REFINE;
-    iparm[IPARM_END_TASK]   = API_TASK_REFINE;
-    iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    iparm[IPARM_ITERMAX]    = init_raff;
-    gettimeofday(&tv1, NULL);
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call refinement : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));
-
-    
-    for(int ii=0; ii < Ncol; ii++)
-      x[ii] = rhs[ii];
-       
-    // index for freefem
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]-1;
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]-1;
-    
-    //for(int ii=0; ii < ia[Ncol]-1; ii++)
-    //  ja[ii] = ja[ii]-1;
-
-    if(myid==0){
-      finishtime = clock();
-      timeused= (finishtime-starttime)/(1000 );
-      printf("=====================================================\n");
-      cout << " pastix : time solve  :: " << timeused << " ms" <<endl;
-      printf("=====================================================\n");
-    }
-    
-    
-  }
-
-  ~zSolvepastixmpi(){
-    /* mem free */
-    iparm[IPARM_START_TASK] = API_TASK_CLEAN;
-    iparm[IPARM_END_TASK]   = API_TASK_CLEAN;
-    
-    pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-   
-    memFree_null(ia);
-    memFree_null(ja);
-    
-    /* Free mem no longer necessary */
-    memFree_null(perm);
-    memFree_null(rhs);
-    
-  }
-  
-  void addMatMul(const KN_<Complex> & x, KN_<Complex> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<Complex> &) (*this) * x; 
-  }
-
-};
-
-MatriceMorse<Complex>::VirtualSolver *
-BuildSolverpastix_complex_mpi(DCL_ARG_SPARSE_SOLVER(Complex,A))
-{
-    if(verbosity>9)
-    cout << " BuildSolverpastix_complex_mpi<complex>" << endl;
-    return new zSolvepastixmpi(*A,ds.strategy,ds.tgv,ds.epsilon,ds.tol_pivot,ds.tol_pivot_sym, ds.data_filename, 
-			       ds.lparams, ds.dparams, ds.perm_r, ds.perm_c,ds.commworld);
-}
-
-<<<<<<< HEAD
- /*  class Init { public:
-    Init();
-    };*/
-=======
-
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-//DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity)
-	cout << " SetDefault sparse to default" << endl;
-    //DefSparseSolver<double>::solver =SparseMatSolver_R;
-    DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-    return false;
-}
-
-bool Setpastixmpi()
-{
-    if(verbosity)
-	cout << " SetDefault sparse solver to pastixmpi" << endl;
-    //DefSparseSolver<double>::solver  =BuildSolverpastix_complex_mpi;
-    DefSparseSolver<Complex>::solver =BuildSolverpastix_complex_mpi;    
-    TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-    return false;
-}
-
-
-
-<<<<<<< HEAD
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  //SparseMatSolver_R= DefSparseSolver<d>::solver;
-  SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: pastix,  defaultsolver defaultsolverpastix" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  //DefSparseSolver<double>::solver =BuildSolverpastix_complex_mpi;
-  DefSparseSolver<Complex>::solver =BuildSolverpastix_complex_mpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("complexdefaulttopastix","(",new OneOperator0<bool>(Setpastixmpi));
-}
-<<<<<<< HEAD
-
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/dSuperLU_DIST.cpp.orig b/examples++-mpi/dSuperLU_DIST.cpp.orig
deleted file mode 100644
index 6acfe5f..0000000
--- a/examples++-mpi/dSuperLU_DIST.cpp.orig
+++ /dev/null
@@ -1,758 +0,0 @@
-//ff-c++-LIBRARY-dep: metis  superlu_dist parmetis blas mpi fc
-//ff-c++-cpp-dep: 
-/*
-  Interface freefem++ et SuperLU_DIST_2.3 
-
-  /bin/sh ff-mpic++ dSuperLU_DIST.cpp -I/Users/morice/librairie/SuperLU_DIST_2.3/SRC/ -L/Users/morice/librairie/openmpi/lib/ -lmpi -lopal -lorte -L/Users/morice/librairie/PATCHVECLIB/ -lwrapperdotblas -framework veclib -L/Users/morice/librairie/ParMetis-3.1/ -lparmetis -lmetis -L/Users/morice/librairie/SuperLU_DIST_2.3/lib/ -lsuperlu_dist_2.3
-
-*/
-#include <mpi.h>
-#include  <iostream>
-using namespace std;
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-#include "superlu_ddefs.h"
-#include "ffsuperludistoption-1.hpp"
-
-template <class R> struct SuperLUmpiDISTDriver
-{
-    
-};
-
-template <> struct SuperLUmpiDISTDriver<double>
-{
-  /* Driver routines */
-  static  Dtype_t R_SLU_T() { return SLU_D;} 
-  static void
-  
-  pgssvx(superlu_options_t *p1, SuperMatrix *p2, ScalePermstruct_t *p3,
-	  double *p4, int p5, int p6, gridinfo_t *p7,
-	  LUstruct_t *p8, SOLVEstruct_t *p9, double *p10,
-	  SuperLUStat_t *p11, int *p12)
-  { pdgssvx( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12 ); }
-  
-    
-  static void
-  pgssvx_ABglobal(superlu_options_t *p1, SuperMatrix *p2, 
-	 ScalePermstruct_t *p3,
-	 double *p4, int p5, int p6, gridinfo_t *p7,
-	 LUstruct_t *p8, double *p9,
-	 SuperLUStat_t *p10, int *p11)
-  { pdgssvx_ABglobal( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11); }
-        
-  static void
-  Print_CompRowLoc_Matrix_dist(SuperMatrix *p1)
-  {
-    dPrint_CompRowLoc_Matrix_dist(p1);
-  }
-
-  static void
-  Create_CompCol_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, int_t p4, 
-			     double *p5, int_t *p6, int_t *p7,
-			    Stype_t p8, Dtype_t p9, Mtype_t p10)
-  {
-    dCreate_CompCol_Matrix_dist(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10);
-  }
-  
-  static void
-  Create_CompRowLoc_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3,
-				 int_t p4, int_t p5, int_t p6,
-				 double *p7, int_t *p8, int_t *p9,
-				 Stype_t p10, Dtype_t p11, Mtype_t p12)
-  {
-    dCreate_CompRowLoc_Matrix_dist( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12);
-  }
-   
-  static void
-  CompRow_to_CompCol_dist(int_t p1, int_t p2, int_t p3, 
-                         double *p4, int_t *p5, int_t *p6,
-                         double **p7, int_t **p8, int_t **p9)
-  {
-    dCompRow_to_CompCol_dist( p1,p2,p3,p4,p5,p6,p7,p8,p9 );
-  }
-
-  static void
-  Create_Dense_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, double *p4,
-			    int_t p5, Stype_t p6, Dtype_t p7,
-			    Mtype_t p8)
-  {
-    dCreate_Dense_Matrix_dist( p1,p2,p3,p4,p5,p6,p7,p8 );  
-  }
-
-  static void
-  Create_SuperNode_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, int_t p4, 
-				double *p5, int_t *p6,
-				int_t *p7, int_t *p8,
-				int_t *p9, int_t *p10,
-				Stype_t p11, Dtype_t p12, Mtype_t p13)
-  {
-    dCreate_SuperNode_Matrix_dist(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,  p11,p12,p13);
-  }
-
-};
-
-template<class R>
-class SolveSuperLUmpi :   public MatriceMorse<R>::VirtualSolver, public SuperLUmpiDISTDriver<R>   {
-  
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-   
-   
-  //mutable char           equed[1];
-  //yes_no_t       equil;
-  mutable SuperMatrix    A;
-  NCformat       *Astore;
-  //NCformat       *Ustore;
-  //SCformat       *Lstore;
-
-  mutable superlu_options_t options;
-  mutable mem_usage_t    mem_usage;
-  mutable ScalePermstruct_t ScalePermstruct;
-  mutable LUstruct_t        LUstruct;
-  mutable SOLVEstruct_t     SOLVEstruct;
-  mutable gridinfo_t        grid;
-
-  string string_option;
-  string data_option;
-  R             *a;
-  int           *asub, *xa;
-  int_t m, n, nnz;
-  // rajout pour //
-  int_t nprow,npcol;  /* process rows and process columns*/
-
-
-  int matrixdist; // type of distributed matrix
-
-  static const int assembled =0;
-  static const int distributedglobal =1;
-  static const int distributed =2;
-
-public:
-  SolveSuperLUmpi(const MatriceMorse<R> &AA,string datafile,
-		  string param_char, KN<long> &pperm_r, KN<long> &pperm_c, MPI_Comm  * mpicommw) : 
-    string_option(param_char),data_option(datafile)
-  { 
-    
-    R*      B;
-    //R*      X;
-    SuperLUStat_t stat;
-    int            info, ldb, nrhs=0;
-    int            i;
-    double*        berr;
-    
-    int iam;
-    // Add for distributed matrix
-    int_t         m_loc, m_loc_fst, fst_row, nnz_loc, fst_nnz;
-    R             *aloc;
-    int           *asubloc, *xaloc;
-    // End Add for distributed matrix
-    A.Store=0;
-   
-    int status;
-   
-    /* Defaults */
-    nrhs  = 0;
-
-    /* lecture de nprow and npcol */
-    // Cas max deux procs
-    nprow = 1;
-    npcol = 1;
-    matrixdist=0;
-    /* set the default options */
-    set_default_options_dist(&options);
-    DiagScale_t optionDiagScale;
-    
-    //if(verbosity > 10) print_options_dist(&options);
-
-    if(!string_option.empty()) read_nprow_npcol_freefem( &string_option, &nprow, &npcol, &matrixdist);
-    if(!string_option.empty()) read_options_freefem(&string_option,&options,&optionDiagScale);
-
-    if(!data_option.empty()) read_options_superlu_datafile(&data_option,&options,&nprow, &npcol, &matrixdist,&optionDiagScale);
-
-    //if(verbosity > 10) print_options_dist(&options);
-    
-     /* ------------------------------------------------------------
-	 INITIALIZE THE SUPERLU PROCESS GRID. 
-	 ------------------------------------------------------------*/
-    cout << "superlu_gridinit" <<endl;
-    if(mpicommw)
-      superlu_gridinit(*mpicommw, nprow, npcol, &grid);
-    else
-      // FFCS - MPI::COMM_WORLD is not accepted on mingw64+MSMPI?
-      superlu_gridinit(MPI_COMM_WORLD, nprow, npcol, &grid);
-    
-    /* Bail out if I do not belong in the grid. */
-    iam = grid.iam;
-    if ( iam >= nprow * npcol ){
-      //superlu_gridexit(&grid);
-      printf("this process is not used in superlu %d \n",iam);
-    }
-    else
-      {
-	// matrix to procs and vectors
-	if( matrixdist == assembled ){
-	  
-	  if(!iam){
-	    cout <<  "iam=" << iam << endl;
-	    printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-	    
-	    /* create the matrix for superlu_dist */
-	    n=AA.n;
-	    m=AA.m;
-	    nnz=AA.nbcoef;
-	  
-	    assert( AA.lg[n] == nnz );	   
-	    printf("\tDimension\t%dx%d\t # nonzeros %d\n", m, n, nnz);
-	    
-	    /* transform Row to Col */
-	    // cela coute cher comme fonction //
-	    //dallocateA_dist(n, nnz, &a, &asub, &xa);
-	    //dCompRow_to_CompCol_dist(m,n,nnz,arow,asubrow,xarow,&a,&asub,&xa);
-	    
-	    dCompRow_to_CompCol_dist(m,n,nnz,AA.a,AA.cl,AA.lg,&a,&asub,&xa);
-	  
-	    /* Broadcast matrix A to the other PEs. */
-	    MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	    int infobcast=MPI_Bcast( a,    nnz, MPI_DOUBLE, 0, grid.comm );
-	    MPI_Bcast( asub, nnz, mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( xa,   n+1, mpi_int_t,  0, grid.comm );
-	    
-	    
-	  }
-	  else{
-	    /*
-	      printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-<<<<<<< HEAD
-	       Receive matrix A from PE 0. */
-=======
-	      /* Receive matrix A from PE 0. */
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	    MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	    
-	    /* Allocate storage for compressed column representation. */
-	    dallocateA_dist(n, nnz, &a, &asub, &xa);
-	    
-	    int infobcast=MPI_Bcast( a, nnz, MPI_DOUBLE, 0, grid.comm );
-	    MPI_Bcast( asub, nnz, mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( xa,   n+1, mpi_int_t,  0, grid.comm );
-	    
-	  }
-	  
-	  Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-	  
-	  cout << "Debut: Create_CompCol_Matrix_dist" <<endl;
-	  // FFCS - "this->" required by g++ 4.7
-	  this->Create_CompCol_Matrix_dist(&A, m, n, nnz, a, asub, xa, SLU_NC, R_SLU, SLU_GE);      
-	  cout << "Fin: Create_CompCol_Matrix_dist" <<endl;
-	  /* creation of pseudo solution + second member */
-	  
-	  if ( !(B = doubleMalloc_dist(m )) ){
-	    printf("probleme d allocation\n");
-	    exit(1);
-	  }
-	  
-	  if(verbosity)
-	    printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-
-	 
-// 	  /* set the default options */
-// 	  set_default_options_dist(&options);
-// 	  DiagScale_t optionDiagScale;
-// 	  if(!string_option.empty()) read_options_freefem(&string_option,&options,&optionDiagScale);
-	  
-	  /* Initialize ScalePermstruct and LUstruct. */
-	  ScalePermstructInit(m, n, &ScalePermstruct);
-	  if(pperm_r  ||  pperm_c ) ScalePermstruct.DiagScale=optionDiagScale;
-	  if(pperm_r) 
-	    for(int ii=0; ii<m; ii++) ScalePermstruct.perm_r[ii] = pperm_r[ii];
-	  if(pperm_c)
-	    for(int ii=0; ii<n; ii++) ScalePermstruct.perm_c[ii]= pperm_c[ii];
-	  
-	  if( ScalePermstruct.DiagScale != NOEQUIL ){
-	    printf("FreeFem++ doesn't support change of the original matrix"); 
-	    exit(1);
-	  }
-	  LUstructInit(m, n, &LUstruct);
-	  
-	  /* Initialize the statistics variables. */
-	  PStatInit(&stat);
-	  
-	  ldb = m;
-	  nrhs=1;
-	  if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	    printf("probleme d allocation\n");
-	    exit(1);
-	  }
-	  berr[0]=0.;
-    	
-	  if(verbosity)
-	    printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	
-	  /* INIT LU struct*/
-	  
-	  /* ONLY PERFORM THE LU DECOMPOSITION */
-	  //B.ncol = 0;  /* Indicate not to solve the system */
-	  
-	  nrhs=0;
-	  SuperLUmpiDISTDriver<R>::pgssvx_ABglobal(&options, &A,  &ScalePermstruct, B, ldb, nrhs, &grid,
-					       &LUstruct, berr, &stat, &info);
-	
-	  if(verbosity)
-	    printf("LU factorization: pdgssvx()/p returns info %d\n", info);
-	  
-	  if ( verbosity) PStatPrint(&options,&stat,&grid);
-	  PStatFree(&stat);
-	  	 
-	}
-	//##########################################################
-	//
-	//       matrix distributed with matrix global given
-	//
-	//##########################################################
-	else if( matrixdist == distributedglobal) {
-	   if(!iam){
-
-	     printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-	
-	     /* create the matrix for superlu_dist */
-	     n=AA.n;
-	     m=AA.m;
-	     nnz=AA.nbcoef;
-	     a=AA.a;
-	     asub=AA.cl;
-	     xa=AA.lg;
-	     
-	     xa[n] = nnz;
-	     printf("\tDimension\t%dx%d\t # nonzeros %d\n", m, n, nnz);
-	     
-	     /* Broadcast matrix A to the other PEs. */
-	     MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	     
-	     MPI_Bcast( AA.a,    nnz, MPI_DOUBLE, 0, grid.comm );
-	     MPI_Bcast( AA.cl, nnz, mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( AA.lg,   n+1, mpi_int_t,  0, grid.comm );
-	     
-	     
-	   }
-	   else{
-	     
-	     printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-	     /* Receive matrix A from PE 0. */
-	     MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	     
-	     /* Allocate storage for compressed column representation. */
-	     dallocateA_dist(n, nnz, &a, &asub, &xa);
-	     
-	     MPI_Bcast( a, nnz, MPI_DOUBLE, 0, grid.comm );
-	     MPI_Bcast( asub, nnz, mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( xa,   n+1, mpi_int_t,  0, grid.comm );
-
-	   }
-	   
-	   /* Compute the number of rows to be distributed to local process */
-	   m_loc = m / (grid.nprow * grid.npcol); 
-	   m_loc_fst = m_loc;
-	   /* When m / procs is not an integer */
-	   if ((m_loc * grid.nprow * grid.npcol) != m) {
-	     /*m_loc = m_loc+1;
-	       m_loc_fst = m_loc;*/
-	     if (iam == (grid.nprow * grid.npcol - 1)) /* last proc. gets all*/
-	       m_loc = m - m_loc * (grid.nprow * grid.npcol - 1);
-	   }
-	   
-	   fst_row = iam * m_loc_fst;
-	   
-	   nnz_loc = xa[fst_row+m_loc]-xa[fst_row];
-	   
-	   xaloc = (int_t*) intMalloc_dist(m_loc+1);
-	   for(int ii=0; ii < m_loc; ii++){
-	     xaloc[ii] = xa[fst_row+ii]-xa[fst_row];	
-	   }
-	   
-	   xaloc[m_loc]=nnz_loc;
-	   
-	   fst_nnz = xa[fst_row];
-	   aloc    = (double*) doubleMalloc_dist(nnz_loc);
-	   asubloc = (int_t*)  intMalloc_dist(nnz_loc);
-	   
-	   for(int ii=0; ii < nnz_loc; ii++){
-	     aloc[ii] = a[fst_nnz+ii];
-	     asubloc[ii] = asub[fst_nnz+ii];
-	   }
-	   
-	   
-	   Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-	   
-	   cout << "Debut: Create_CompRowCol_Matrix_dist" <<endl;
-	   dCreate_CompRowLoc_Matrix_dist(&A, m, n, nnz_loc, m_loc, fst_row, aloc, asubloc, xaloc, SLU_NR_loc, R_SLU, SLU_GE);
-	   
-	   cout << "Fin: Create_CompRowCol_Matrix_dist" <<endl;
-	   /* creation of pseudo solution + second member */
-	   
-	   
-	   if ( !(B = doubleMalloc_dist(m_loc)) ){
-	     printf("probleme d allocation\n");
-	     exit(1);
-	   }
-	   
-	   for(int ii=0; ii < m_loc; ii++){
-	     B[ii] = 1.; //BB[fst_row+ii];
-	   }
-     
-	   if(verbosity)
-	     printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	   
-	   /* set the default options */
-	   set_default_options_dist(&options);
-	   DiagScale_t optionDiagScale;
-	   if(!string_option.empty()) read_options_freefem(&string_option,&options,&optionDiagScale);
-	   	   
-	   m=A.nrow;
-	   n=A.ncol;
-	   printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	   /* Initialize ScalePermstruct and LUstruct. */
-	   ScalePermstructInit(m, n, &ScalePermstruct);
-	   if(pperm_r  ||  pperm_c ) ScalePermstruct.DiagScale=optionDiagScale;
-	   if(pperm_r) 
-	     for(int ii=0; ii<m; ii++) ScalePermstruct.perm_r[ii] = pperm_r[fst_row+ii];
-	   if(pperm_c) 
-	     for(int ii=0; ii<n; ii++) ScalePermstruct.perm_c[ii] = pperm_c[ii];
-	   
-	   LUstructInit(m, n, &LUstruct);
-	   
-
-
-	   /* Initialize the statistics variables. */
-	   PStatInit(&stat);
-	   
-	   ldb = m_loc;
-	   //ldx = m_loc;
-	   
-	   nrhs=1;
-	   if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	     printf("probleme d allocation\n");
-	     exit(1);
-	   }
-	   berr[0]=0.;
-	   
-	   /* ONLY PERFORM THE LU DECOMPOSITION */
-    
-	   nrhs=0;
-	   SuperLUmpiDISTDriver<R>::pgssvx(&options, &A,  &ScalePermstruct, B, ldb, nrhs, &grid,
-					   &LUstruct, &SOLVEstruct, berr, &stat, &info);
-	   
-	   if(verbosity)
-	     printf("LU factorization: pdgssvx()/p returns info %d\n", info);
-	   
-	   if ( verbosity) PStatPrint(&options,&stat,&grid);
-	   PStatFree(&stat);
-	}
-	else if( matrixdist == distributed) {
-	  printf("in construction\n");
-	  exit(1);
-	}
-	else{
-	  printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	  exit(1);
-	}
-	
-	SUPERLU_FREE( B );
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */
-	nrhs=1;
-	SUPERLU_FREE(berr);  	
-      }
-    }
-
-  void Solver(const MatriceMorse<R> &AA,KN_<R> &x,const KN_<R> &b) const  {
-    R*        B;
-    SuperLUStat_t  stat;
-    int            iam;
-    int            info=0, ldb=m, nrhs=1;
-    int            i;
-    double*        berr;
-    double         ferr; 
-    double         rpg, rcond;
-      
-    int_t    m_loc,m_loc_fst,fst_row;
-    
-    if(n != m) exit(1);
-
-    ffassert ( &x[0] != &b[0]);
-    epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-
-    Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-    nrhs= 1;
-    
-     
-    /* Initialize the statistics variables. */
-    PStatInit(&stat);
-
-    iam = grid.iam;
-    if( iam < nprow*npcol){
-      /* cas matrix assembled */ 
-      if( matrixdist == assembled ){
-	
-	if( !(B = doubleMalloc_dist(m*nrhs)) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	
-	for(int ii=0; ii<n; ii++){
-	  B[ii]=b[ii];
-	}
-	
-	if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	berr[0]=0.;
-	
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */   
-	ldb = m;
-	//nrhs= 1;
-	SuperLUmpiDISTDriver<R>::pgssvx_ABglobal (&options, &A, &ScalePermstruct, B, ldb, nrhs, &grid,
-						  &LUstruct, berr, &stat, &info );
-	
-	if(verbosity)
-	  printf("Triangular solve: dgssvx() returns info %d\n", info);
-	
-	if(verbosity) PStatPrint(&options, &stat, &grid);   
-	
-	for(int ii=0; ii<n; ii++){
-	  x[ii] = B[ii]; 
-	}
-	
-	if(verbosity) cout << "   x min max " << x.min() << " " <<x.max() << endl;
-	
-      }
-      else if( matrixdist == distributedglobal) {
-	double*    xtemp;
-	iam = grid.iam;
-	/* Compute the number of rows to be distributed to local process */
-	m_loc = m / (grid.nprow * grid.npcol); 
-	m_loc_fst = m_loc;
-	/* When m / procs is not an integer */
-	if ((m_loc * grid.nprow * grid.npcol) != m) {
-	  /*m_loc = m_loc+1;
-	    m_loc_fst = m_loc;*/
-	  if (iam == (grid.nprow * grid.npcol - 1)) /* last proc. gets all*/
-	    m_loc = m - m_loc * (grid.nprow * grid.npcol - 1);
-	}
-	
-	fst_row = iam * m_loc_fst;
-	
-	if ( !(B = doubleMalloc_dist(m_loc )) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	
-	//printf("initilisation B:");
-	for(int ii=0; ii<m_loc; ++ii){
-	  B[ii] = b[ii+fst_row];
-	  //printf("  B[%d]= %f  ",ii,B[ii]);
-	}
-	//printf(" :: fin \n");
-	//fflush(stdout);
-	
-      
-	if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	berr[0]=0.;
-	
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */
-	//options.Equil = YES;
-	//options.Trans = TRANS;
-	
-	
-	ldb = m;
-	SuperLUmpiDISTDriver<R>::pgssvx(&options, &A, &ScalePermstruct, B, ldb, nrhs, &grid,
-					&LUstruct, &SOLVEstruct, berr, &stat, &info );
-	
-	if(verbosity)
-	  printf("Triangular solve: dgssvx() returns info %d\n", info);
-	
-	if ( !(xtemp = doubleMalloc_dist(AA.n)) ){
-	  printf("probleme d allocation de xtemp\n");
-	  exit(1);
-	}
-	
-      
-	int disp[nprow*npcol];
-	MPI_Allgather(&fst_row, 1, MPI_INT, disp, 1, MPI_INT, grid.comm);
-	
-	int recv[nprow*npcol];
-	MPI_Allgather(&m_loc, 1, MPI_INT, recv, 1, MPI_INT, grid.comm);
-	
-	MPI_Allgatherv(B, m_loc, MPI_DOUBLE, xtemp, recv, disp, MPI_DOUBLE, grid.comm);
-	
-	for(int ii= 0; ii< AA.n ; ii++)
-	  x[ii] = xtemp[ii];
-	
-	if(verbosity) cout << "   x min max " << x.min() << " " <<x.max() << endl;
-	
-	SUPERLU_FREE( xtemp );
-      
-      }
-      else if( matrixdist == distributed) {
-	printf("in construction\n");
-	exit(1);
-      }
-      else{
-	printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	exit(1);
-      }
-      
-
-      SUPERLU_FREE( B );
-      SUPERLU_FREE( berr );
-      
-      PStatFree(&stat);
-    }
-  }
-    
-  ~SolveSuperLUmpi() { 
-    int iam;
-    iam = grid.iam;
-    if(iam < nprow*npcol){
-      if(verbosity)
-	cout << "~SolveSuperLUmpi double:" << endl;
-      
-      if( matrixdist == assembled) {
-	//if( A.Store)  Destroy_CompCol_Matrix_dist(&A);
-	//if( L.Store && U.Store )  {
-	Destroy_LU(n, &grid, &LUstruct);
-	ScalePermstructFree(&ScalePermstruct);
-	LUstructFree(&LUstruct);
-	//}
-	if ( options.SolveInitialized ) {
-	  dSolveFinalize(&options, &SOLVEstruct);
-	}
-      }
-      else if( matrixdist == distributedglobal) {
-	if( A.Store)  Destroy_CompRowLoc_Matrix_dist(&A);
-	
-	Destroy_LU(n, &grid, &LUstruct);
-	ScalePermstructFree(&ScalePermstruct);
-	LUstructFree(&LUstruct);
-	
-	if ( options.SolveInitialized ) {
-	  dSolveFinalize(&options, &SOLVEstruct);
-	}
-      }
-      else if( matrixdist == distributed) {
-	printf("in construction\n");
-	exit(1);
-      }
-      else{
-	printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	exit(1);
-      }
-    }
-    printf("superlu_gridexit(&grid), %d\n",iam);
-    superlu_gridexit(&grid); 
-  }
-  void addMatMul(const KN_<R> & x, KN_<R> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<R> &) (*this) * x; 
-  }
-     
-}; 
-
-
-
-
-MatriceMorse<double>::VirtualSolver *
-BuildSolverSuperLUmpi(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-    if(verbosity>9)
-    cout << " BuildSolverSuperLUmpi<double>" << endl;
-    return new SolveSuperLUmpi<double>(*A,ds.data_filename, ds.sparams, ds.perm_r, ds.perm_c,static_cast<MPI_Comm*>(ds.commworld));
-}
-
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-    Init();
-    };*/
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-//DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity)
-	cout << " SetDefault sparse to default" << endl;
-    DefSparseSolver<double>::solver =SparseMatSolver_R;
-    //DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-
-    return false;
-}
-
-bool SetSuperLUmpi()
-{
-    if(verbosity)
-	cout << " SetDefault sparse solver to SuperLUmpi double" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverSuperLUmpi;
-    //DefSparseSolver<Complex>::solver =BuildSolverSuperLUmpi;    
-    TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-
-    return false;
-}
-
-
-
-<<<<<<< HEAD
-
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  //SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: SuperLUmpi,  defaultsolver defaultsolverSuperLUmpi" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuildSolverSuperLUmpi;
-  //DefSparseSolver<Complex>::solver =BuildSolverSuperLUmpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("defaulttoSuperLUmpi","(",new OneOperator0<bool>(SetSuperLUmpi));
-}
-
-<<<<<<< HEAD
-
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/hips_FreeFem.cpp.orig b/examples++-mpi/hips_FreeFem.cpp.orig
deleted file mode 100644
index d4cefe8..0000000
--- a/examples++-mpi/hips_FreeFem.cpp.orig
+++ /dev/null
@@ -1,781 +0,0 @@
-// ORIG-DATE: 04/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : INRIA FUTUR
-// AUTHOR   : Guy Atenekeng 
-//         Modif by F. Hecht 2011
-// E-MAIL   : Guy_Antoine_Atenekeng_Kahou at lri.fr
-//
-//ff-c++-LIBRARY-dep:  hips metis  blas  mpi
-//ff-c++-cpp-dep: 
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- 
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-#include <mpi.h>
-#include  <iostream>
-using namespace std;
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-#ifndef  MPI_SUCCESS
-#define  MPI_SUCCESS
-#endif
-
-extern "C" {
-#include "hips.h"  
-#include "metis.h"
-}
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define BUFLEN 200
-#define MCW MPI_COMM_WORLD
-
-
-int roscal(int n, int job,int nrm, double *AAv, int *p, int *pr, double * scaletmpr , int *ierr)
-{
-    /*---------------------------------------------------------------------
-     |
-     | This routine scales each row of mata so that the norm is 1.
-     |
-     |----------------------------------------------------------------------
-     | on entry:
-     | mata  = the matrix (in SparRow form)
-     | nrm   = type of norm
-     |          0 (\infty),  1 or 2
-     |
-     | on return
-     | diag  = diag[j] = 1/norm(row[j])
-     |
-     |     0 --> normal return
-     |     j --> row j is a zero row
-     |--------------------------------------------------------------------*/
-    /*   local variables    */
-    int i, k;
-    double  scal;
-    
-    for (i=0; i<n; i++) {
-	scal = 0.0;
-	// kr = &(AAv[pr[i]]);
-	if (nrm == 0) {
-	    for (k=pr[i]; k<pr[i+1]; k++)
-		if (fabs(AAv[k]) > scal) scal = fabs(AAv[k]);
-	}
-	else if (nrm == 1) {
-	    for (k=pr[i]; k<pr[i+1]; k++)
-		scal += fabs(AAv[k]);
-	}
-	else {  /* nrm = 2 */
-	    for (k=pr[i]; k<(pr[i+1]); k++)
-		scal += AAv[k]*AAv[k];
-	}
-	if (nrm == 2) scal = sqrt(scal);
-	if (scal == 0.0) {
-	    *ierr=i;
-	    return i+1;
-	}
-	else 
-	    scal = 1.0 / scal;
-	scaletmpr[i] = scal;
-	for (k=pr[i]; k<(pr[i+1]); k++)
-	    AAv[k] = AAv[k] * scal;
-	
-    }
-    *ierr=0;
-    return 0;
-}
-/*---------------end of roscalC-----------------------------------------
- ----------------------------------------------------------------------*/
-int coscal(int n, int job,int nrm, double *AAv, int *p, int *pr, double * scaletmpc , int * ierr)
-{
-    /*---------------------------------------------------------------------
-     |
-     | This routine scales each column of mata so that the norm is 1.
-     |
-     |----------------------------------------------------------------------
-     | on entry:
-     | mata  = the matrix (in SparRow form)
-     | nrm   = type of norm
-     |          0 (\infty),  1 or 2
-     |
-     | on return
-     | diag  = diag[j] = 1/norm(row[j])
-     |
-     |     0 --> normal return
-     |     j --> column j is a zero column
-     |--------------------------------------------------------------------*/
-    /*   local variables    */
-    int i, j, k;
-    double *kr;
-    int *ki;
-    for (i=0; i<n; i++)
-	scaletmpc[i] = 0.0;
-    /*---------------------------------------
-     |   compute the norm of each column
-     |--------------------------------------*/
-    for (i=0; i<n; i++) {
-	kr = &(AAv[pr[i]]);
-	ki = &(pr[i]);
-	if (nrm == 0) {
-	    for (k=pr[i]; k<pr[i+1]; k++) {
-		j = pr[i];
-		if (fabs(AAv[k]) > scaletmpc[p[k]]) scaletmpc[p[k]] = fabs(AAv[k]);
-	    }
-	}
-	else if (nrm == 1) {
-	    for (k=pr[i]; k<pr[i+1]; k++)
-		scaletmpc[p[k]] += fabs(AAv[k]);
-	}
-	else {
-	    for (k=pr[i]; k<pr[i+1]; k++)
-		scaletmpc[p[k]] += fabs(AAv[k])*fabs(AAv[k]);
-	}
-    }
-    if (nrm == 2) {
-	for (i=0; i<n; i++)
-	    scaletmpc[i] = sqrt(scaletmpc[i]);
-    }
-    /*---------------------------------------
-     |   invert
-     |--------------------------------------*/
-    for (i=0; i<n; i++) {
-	if (scaletmpc[i] == 0.0)
-	  {
-	    *ierr=i+1;
-	    return i+1;
-	  }
-	else 
-	    scaletmpc[i] = 1.0 / scaletmpc[i];
-    }
-    /*---------------------------------------
-     |   C = A * D
-     |--------------------------------------*/
-    for (i=0; i<n; i++) {
-	
-	for (k=pr[i]; k<pr[i+1]; k++)
-	    AAv[k]=AAv[k]*scaletmpc[p[k]];
-	
-    }
-    *ierr=0;
-    return 0;
-}
-/*---------------end of coscalC-----------------------------------------
- ----------------------------------------------------------------------*/
-
-
-
-
-
-
-void parm_param(string datafile,KN<long> param_int,KN<double> param_double)
-{
-    char buf[BUFLEN];
-    int num,in_val;
-    double val;
-    FILE *fp;
-    char * filename=new char[datafile.length()+1]; 
-    strcpy(filename,datafile.c_str()); 
-    int i;
-    for(i=0;i<16;i++) param_int[i]=-1; for(i=0;i<9;i++) param_double[i]=-1.0;
-    /* read parameters for preconditioner and iteration from file  'filename' */
-    /*  ---- start modification by MS   */
-    if( (fp = fopen(filename, "r")) == NULL ){
-	fprintf(stderr, "Cannot open file inputs\n");
-	exit(1);
-    }
-    num = 0;
-    
-    while(fgets(buf, BUFLEN, fp) != NULL) {
-	if(num<=15) {sscanf(buf, "%d", &in_val); param_int[num]=in_val;}
-	else 
-	  {sscanf(buf, "%lf", &val); param_double[num]=val;}
-	num++;
-    }
-    fclose(fp);
-}
-
-
-
-
-class HipsSolver :   public MatriceMorse<double>::VirtualSolver   {
-    double eps;
-    mutable double  epsr;
-    double tgv;	
-    double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-    string data_option;
-    mutable INTS master;//
-    MPI_Comm  comm;
-    mutable INTS id,  i, j;
-    mutable INTS *unknownlist;
-    mutable double *x;
-    mutable INTS   ln;
-    mutable INTS ierr;
-  mutable INTS n,nnz,nnzl;
-    mutable double * a;
-    mutable INTS *ia, *ja;
-    mutable int *pp;
-    int loc_size,pbegin, pend;
-    INTS domsize, nproc,proc_id;
-    mutable int sym_pattern, sym_matrix;
-    KN<long> param_int;
-    KN<double> param_double;
-    mutable double *scaletmpr, *scaletmpc;
-    
-    mutable int *mapptr,*maptmp,*iwork,*riord,*iwork1,scale;
-    mutable int *pr, *p;
-    mutable double * AAv;
-
-   
-private:
-  static const int MaxIds=100;
-  static int Ids[MaxIds];
-  static int  GetId() {
-    static bool Initialized=false;
-    if(!Initialized)
-      {
-	Initialized=true;
-	if(verbosity>2)
-	cout << "  Hips HIPS_Initialize " << MaxIds <<endl;
-	INTS ierr = HIPS_Initialize(MaxIds);
-	HIPS_ExitOnError(ierr);
-	for(int i=0;i<MaxIds;++i)
-	  {
-	    Ids[i]=-1; // ununsed 
-	  }
-      }
-    INTS id =-1;
-    for(int i=0;i<MaxIds;++i)
-      if( Ids[i] <0)  
-	{
-	  Ids[i]=i;
-	  if(verbosity>8) cout << "   find HipsSoler :  id = " << i << "/" <<   MaxIds << endl;
-	  return i;
-	}
-    cerr<< " All id of Hips are busy " << MaxIds << " try to store less matrix or change MaxIds (FH.) in " << endl; 
-    ffassert(0); 
-    return -1; 
-  }
-public:
-  static void Def_iopt(long * param_intd)
-  {
-    param_intd[0]= HIPS_ITERATIVE  ; //  HIPS_STRA
-    param_intd[1]= 0  ; //  HIPS_KRYLOV_METHOD
-    param_intd[2]= 1000  ; //  HIPS_ITMAX
-    param_intd[3]= 40  ; //  HIPS_KRYLOV_RESTART
-    param_intd[4]= 1  ; //  HIPS_SYMMETRIC
-    param_intd[5]= 1  ; //  HIPS_GRAPH_SYM
-    param_intd[6]= 0  ; //  HIPS_PARTITION_TYPE
-    param_intd[7]= 2  ; //  HIPS_LOCALLY
-    param_intd[8]= 0  ; //  HIPS_FORTRAN_NUMBERING
-    param_intd[9]= 1  ; //  HIPS_SCALE
-    param_intd[10]= 1  ; //  HIPS_REORDER
-    param_intd[11]= 1  ; //  HIPS_DOF
-    param_intd[12]= 2  ; //  HIPS_SCALENBR
-    param_intd[13]=  max(0L,verbosity-2)  ; //  HIPS_VERBOSE
-    param_intd[14]= 2  ; //  HIPS_DOMSIZE
-    param_intd[15]= 2  ; //  HIPS_SCHUR_METHOD
-    param_intd[16]= 2  ; //  HIPS_ITMAX_SCHUR
-  }
-
-  static void Def_dopt(double *d)
-  {
-    d[0]= 1e-09  ; //  HIPS_PREC
-    d[1]= 0.005  ; //  HIPS_DROPTOL0
-    d[2]= 0.005  ; //  HIPS_DROPTOL1
-    d[3]= 0.005  ; //  HIPS_DROPTOLE
-    d[4]= 0.005  ; //  HIPS_AMALG
-    d[5]= 0.005  ; //  HIPS_DROPSCHUR
-  }
-
-public:
-  
-  
-  HipsSolver(const MatriceMorse<double> &AA,double eeps,string datafile, const KN<long> &param_int1,
-             const KN<double> &param_double1,int mmaster,  MPI_Comm  * mpicommw  )
-    : eps(eeps),data_option(datafile) ,param_int(17), param_double(6),id(GetId())
-  {
-    master=mmaster;
-    if(mpicommw==0)
-	comm=MPI_COMM_WORLD;
-    else 
-	comm= *mpicommw;
-    
-    MPI_Comm_rank(comm, &proc_id);
-    MPI_Comm_size(comm, &nproc);
-    if(proc_id==0  || verbosity>2)
-	cout << "  Hips Comm " << proc_id<< " / "<< nproc << endl;
-    
-    Def_iopt(param_int);
-    Def_dopt(param_double);
-
-    static int dopt_wrapper[6] = {
-      HIPS_PREC ,
-      HIPS_DROPTOL0 ,
-      HIPS_DROPTOL1 ,
-      HIPS_DROPTOLE ,
-      HIPS_AMALG ,
-      HIPS_DROPSCHUR 
- };
-
-    static int iopt_wrapper[17] = {
-      -1,// DEf STRATEGIC not in H
-      HIPS_KRYLOV_METHOD ,
-      HIPS_ITMAX,
-      HIPS_KRYLOV_RESTART,
-      HIPS_SYMMETRIC,
-      HIPS_GRAPH_SYM,
-      HIPS_PARTITION_TYPE, 
-      HIPS_LOCALLY,
-      HIPS_FORTRAN_NUMBERING,
-      HIPS_SCALE,
-      HIPS_REORDER,
-      HIPS_DOF,
-      HIPS_SCALENBR, 
-      HIPS_VERBOSE,
-      HIPS_DOMSIZE,
-      HIPS_SCHUR_METHOD, 
-      HIPS_ITMAX_SCHUR
-    }     ; 
-    
-    int ic,sym=AA.symetrique ,symm=AA.symetrique; 
-
- 
-    if(!data_option.empty())
-      parm_param(datafile,param_int,param_double);
-    else
-      {
-	for(int i=0;i< min(param_int.N(),param_int1.N()); ++i) 
-	  if(param_int1[i]>-1)  param_int[i]=param_int1[i];	    
-	for(int i=0;i< min(param_double.N(),param_double1.N()); ++i) 
-	  if(param_double1[i]>-0.9999)  param_double[i]=param_double1[i];	    
-      }
-    // force param  value ... 
-    param_int[0]=max(min(param_int[0],2L),0L);
-    param_int[5]= sym;
-    param_int[4]= symm;
-
-    if(eps>0 &&( param_double1.N() ==0 ||  param_double1[0]<0) ) param_double[0]= eps;
-    else eps = param_double[0];
-
-    ic = param_int[0];
-    scale=param_int[9];
-    
-    if(verbosity>3 && proc_id==0  )
-      {
-	cout << " Hips INT  opts " << param_int << endl;
-	cout << " Hips REAL  opts " << param_double << endl;
-      }
-
-    HIPS_SetDefaultOptions(id, param_int[0] );
-    
-    for(int i=1;i<param_int.N();++i)     // the fist value is teh STRATEGIE KING not aoption
-      if(param_int[i]>=0) HIPS_SetOptionINT(id,iopt_wrapper[i],param_int[i] );
-    for(int i=0;i<param_double.N();++i)    
-      if(param_double[i]>=0.)HIPS_SetOptionREAL(id,dopt_wrapper[i],param_double[i] );
- 
-    if(!data_option.empty()) 
-      parm_param(datafile,param_int,param_double);
-    
-    HIPS_SetCommunicator(id,comm);
-    
-    n=AA.n; nnz=AA.nbcoef;
-    
-    int ierr;
-    /*
-    pr= new int[n+1];
-    p=  new int[nnz];
-    AAv=new double[nnz];
-    
-    
-    for(int i=0;i<nnz;i++)
-      {
-	AAv[i]=AA.a[i];
-	p[i]=AA.cl[i];
-	if(i<=n) pr[i]=AA.lg[i];
-      }
-    */
-    
-    int job, tmp;
-    if(scale) {
-      job = 1;
-      tmp = 2; /*-- compute 2-norm */
-      scaletmpr=new double[n];
-      scaletmpc=new double[n]; 
-      
-      roscal(n,job,tmp,AA.a,AA.cl,AA.lg,scaletmpr,&ierr);
-      if (ierr) fprintf(stderr, "Error: in roscal, ierr = %d\n", ierr);
-      /*------- scale the RHS according to row scaling coefficients */
-      
-      coscal(n,job,tmp,AA.a,AA.cl,AA.lg,scaletmpc,&ierr);
-      if (ierr) fprintf(stderr, "Error: in coscal, ierr = %d\n", ierr);
-      
-    } /*--- end of branch on scaling */
-    
-    
-    int wgtflag=0, numflag=0, volume;
-    
-    riord= new int[n]; //(int *)malloc(sizeof(int)*n);
-    if(riord==NULL) {
-      if(nproc==0)
-	printf("%s","Memory allocation failed in partition stage \n"); 
-      exit(1);
-    }
-    int option[5];	option[0]=0;
-    if(nproc>1){
-      METIS_PartGraphKway(&n, AA.lg, AA.cl, NULL, NULL, &wgtflag, &numflag,&nproc, option, &volume, riord);
-    }
-    else if(nproc==1){
-      for (int i=0; i<n; i++) 
-	riord[i]=0;
-    }
-
-    iwork= new int[nproc+1];// (int *)malloc(sizeof(int)*n);
-    maptmp= new int [n];//(int *)malloc(sizeof(int)*n);
-    mapptr= new int [nproc+1];//(int *)malloc(sizeof(int)*(nproc+1));
-    iwork1= new int[nproc+1];//(int *)malloc(sizeof(int)*(nproc+1));
-    
-    for(int i=0; i<=nproc; i++)
-      iwork[i]=iwork1[i]=0;
-
-    for(int j=0; j<n; j++)
-      {
-	iwork[riord[j]]++;
-	iwork1[riord[j]]++;
-      }
-    numflag=0;
-    for(int i=0; i<nproc; i++)
-      {
-	mapptr[i]=numflag;
-	numflag+=iwork[i];
-      }
-    
-    mapptr[nproc]=numflag;
-    
-    for (int i=0; i<nproc; i++){
-      iwork[i]=mapptr[i];
-    }
-    if(nproc==0) 
-      iwork[0]=mapptr[0];
-    
-    for(int i=0; i<n; i++){
-      maptmp[iwork[riord[i]]]=i;
-      iwork[riord[i]]++;
-    }
-    int nnzz;
-    nnzz=0;
-      for(int i=0;i<n;i++) 
-	if(riord[i]==proc_id)
-	  {
-	    nnzz+=(AA.lg[i+1]-AA.lg[i]);
-	  }
-      ierr = HIPS_GraphBegin(id, n, nnzz);
-      HIPS_ExitOnError(ierr);
-      nnzl=nnzz;
-      if(verbosity > 5)
-	cout << "   Hips : proc " << proc_id << " / nzz   = " << nnzz << " / nzzg " << nnz <<  endl;
-      
-      
-      for(int i=0;i<n;i++)
-	{
-	  if(riord[i]==proc_id){
-	    for(int j=AA.lg[i];j<AA.lg[i+1];j++)
-	      {
-		ierr = HIPS_GraphEdge(id, i, AA.cl[j]);
-		HIPS_ExitOnError(ierr);	
-	      }
-	  }
-	  
-	}
-      
-      ierr = HIPS_GraphEnd(id);
-      HIPS_ExitOnError(ierr);
-      if(master==-1)
-      {
-          
-          // HERE distributed matrix ????
-          ffassert(0); // to be done in future ...
-      }
-      if(proc_id==0)
-	{
-	  ierr = HIPS_SetPartition(id, nproc, mapptr, maptmp);
-	  HIPS_ExitOnError(ierr);
-	}
-      //symm=1;
-      if( nproc ==1)
-	{
-	  ierr = HIPS_MatrixGlobalCSR(id, n, AA.lg, AA.cl, AA.a, 0, HIPS_ASSEMBLY_OVW, sym_matrix);
-	  HIPS_ExitOnError(ierr);
-	  
-	}
-      else 
-	{	  
-	  ierr = HIPS_AssemblyBegin(id, nnzz, HIPS_ASSEMBLY_OVW, HIPS_ASSEMBLY_OVW, HIPS_ASSEMBLY_FOOL,symm);
-	  HIPS_ExitOnError(ierr);
-	    int kkk;
-	  for(int i=0;i<n;i++)
-	    {
-	      if(riord[i]==proc_id){
-		  for(int k=AA.lg[i];k<AA.lg[i+1];k++)
-		    {			
-			kkk++;
-			if(verbosity >100) cout << "       " << proc_id << " a( " << i << ", " <<AA.cl[k] << ")= " << AA.a[k] << endl;
-			ierr = HIPS_AssemblySetValue(id, i, AA.cl[k], AA.a[k]);
-			HIPS_ExitOnError(ierr);
-		    }
-	      }
-	      
-	    }
-	    ffassert(kkk);
-	  ierr = HIPS_AssemblyEnd(id);
-	  
-	  HIPS_ExitOnError(ierr);
-
-	}
-
-   }
-
-  void Solver(const MatriceMorse<double> &AA,KN_<double> &x,const KN_<double> &b) const  {
-    /***************************************************/
-    /*                                                 */
-    /*          ENTER THE RIGHT-HAND-SIDE              */
-    /*                                                 */
-    /***************************************************/
-    int i,nloc;
-    nloc=0; 
-    int nnsize;
-    MPI_Comm_size(comm,&nnsize);
-    if(master==-1)
-      {
-          
-          // HERE distributed rhs ????
-          ffassert(0); // to be done in future ...
-      }
-    
-    
-    COEF * rhsloc = new COEF[iwork1[proc_id]] ;//(COEF *)malloc(sizeof(COEF)*iwork1[proc_id]);
-    COEF * xx =  new COEF[iwork1[proc_id]] ;// (COEF *)malloc(sizeof(COEF)*iwork1[proc_id]);
-    INTS * unknownlist =  new INTS [iwork1[proc_id]] ;//(INTS *)malloc(sizeof(INTS)*iwork1[proc_id]);
-    COEF * xz = new COEF[n]; // (COEF *)malloc(sizeof(COEF)*n);
-    
-    nloc=0;
-    // if(scale)
-      {
-	for(i=0;i<n;i++)
-	  {
-	    if(riord[i]==proc_id){
-	      if(scale) rhsloc[nloc]=b[i]*scaletmpr[i]; 
-	      unknownlist[nloc++]=i;
-	    }
-	  }
-      }
-    for(i=0;i<iwork1[proc_id];i++) 
-      xx[i]=0.0;
-    ierr = HIPS_SetRHS(id, nloc, unknownlist, rhsloc, HIPS_ASSEMBLY_OVW, HIPS_ASSEMBLY_OVW, HIPS_ASSEMBLY_FOOL);
-    HIPS_ExitOnError(ierr);
-    
-    /****************************************************/
-    /* Get the local solution                           */
-    /****************************************************/ 
-    
-    ierr = HIPS_GetSolution(id, nloc, unknownlist, xx, HIPS_ASSEMBLY_FOOL);
-    
-    HIPS_ExitOnError(ierr);
-    INTL nnzp;
-    ierr= HIPS_GetInfoINT(id,HIPS_INFO_NNZ_PEAK,&nnzp); 
-
-    
-    int *perm = new int[n], *invp= new int[n];
-    
-    MPI_Gatherv(xx,iwork1[proc_id], MPI_DOUBLE, xz,iwork1,mapptr,MPI_DOUBLE,0,comm);
-    MPI_Gatherv(unknownlist,iwork1[proc_id], MPI_INT, perm,iwork1,mapptr,MPI_INT,0,comm);
-    MPI_Bcast(xz,n,MPI_DOUBLE,0, comm);
-    MPI_Bcast(perm,n,MPI_INT,0, comm);
-    
-    for(int i=0;i<n;i++) 
-      invp[perm[i]]=i;
-
-      {
-	for(int i=0;i<n;i++) 
-	  {
-	    x[i]=xz[invp[i]];
-	    if(scale) x[i]=x[i]*scaletmpc[i];
-	  }
-      }
-    REAL residu;
-    INTL ninner,nouter;
-
-    ierr= HIPS_GetInfoREAL (id,HIPS_INFO_RES_NORM,&residu);
-    ierr= HIPS_GetInfoINT(id,HIPS_INFO_INNER_ITER,&ninner); 
-    ierr= HIPS_GetInfoINT(id,HIPS_INFO_OUTER_ITER,&nouter); 
-    if(residu >eps) 
-      cout << "\n\n WARNING Hips Do not Converge " << id << " Resudual = " <<residu<< " / " <<eps 
-	   << " Itertion ninner :"<< ninner 
-	   <<" , outer : " << nouter <<"\n\n"<< endl; 
-      else if( verbosity > 1 && proc_id==0 )
-	cout << "  Hips " << id << ", Res = " <<residu << " / " <<eps 
-	 << " Iter  inner : "<< ninner 
-	     <<" , outer : " << nouter << " nzz peak =" <<nnzp << " nnz " << nnz  <<  endl; 
-    /**************************************************/
-    /* Free HIPS internal structure for problem "id"  */
-    /*************************************************/
-    //HIPS_INFO_RES_NORM
-      /*
-    */
-    delete [] xz;
-    delete [] perm;
-    delete [] invp;
-    delete [] rhsloc; 
-    delete [] unknownlist;
-    delete [] xx;
-    
-    
-  }
-							 
-  ~HipsSolver()
-  {
-    assert(id>=0);
-    if( (verbosity>3 && proc_id==0 ) ||(verbosity>9) )
-	cout << "   ~Hips_Solver S:" << id << endl;
-  //  HIPS_SetOptionINT(id,HIPS_DISABLE_PRECOND,0);
-  //  HIPS_ExitOnError(ierr);
-    ierr = HIPS_Clean(id);
-    HIPS_ExitOnError(ierr);	
-
-    delete [] iwork1;
-    delete [] mapptr;
-
-    delete [] iwork;
-    delete [] maptmp;
-    
-    if(id>0 && id< MaxIds) Ids[id]=-2;
-    id=-2; 
- 	
-  }
-  
-  
-  void addMatMul(const KN_<double> & x, KN_<double> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<double> &) (*this) * x; 
-  }
-private:// no copy
-    HipsSolver(const HipsSolver &);  
-    HipsSolver & operator=(const HipsSolver &); 
-};  // CLASS HipsSolver
-  
-int HipsSolver::Ids[HipsSolver::MaxIds];
-
-
-
-
-inline MatriceMorse<double>::VirtualSolver *
-BuildSolverHipsSolvermpi(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-  if(verbosity>9)
-    cout << " BuildSolverSuperLU<double>" << endl;
-  return new HipsSolver(*A,ds.epsilon,ds.data_filename, ds.lparams, ds.dparams,ds.master,(MPI_Comm *)ds.commworld);
-		    }
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-    Init();
-    }; */
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-//DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-  if(verbosity>1)
-    cout << " SetDefault sparse to default" << endl;
-  DefSparseSolver<double>::solver =SparseMatSolver_R;
-  //DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-  TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-  return 1;
-}
-bool HipsDefaults(KN<long>* piop,KN<double> * pdop)
-{
-  if(piop)
-    {
-      piop->resize(17);
-      HipsSolver::Def_iopt(*piop);
-    }
-  if(pdop)
-    {
-      pdop->resize(6);
-      HipsSolver::Def_dopt(*pdop);      
-    }
-  
-  return true;
-    }
-bool SetHipsSolver()
-{
-  if(verbosity>1)
-    cout << " SetDefault sparse solver to Hips" << endl;
-  DefSparseSolver<double>::solver  =BuildSolverHipsSolvermpi;
-		      //DefSparseSolver<Complex>::solver =BuildSolverHipsSolvermpi;    
-  TypeSolveMat::defaultvalue =TypeSolveMatdefaultvalue;
-  return 1;
-}
-<<<<<<< HEAD
-
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{   
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  //SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: Hips,  defaultsolver defaultsolverHips" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver  =BuildSolverHipsSolvermpi;
-  //  DefSparseSolver<Complex>::solver =BuildSolverHipsSolver;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("defaulttoHips","(",new OneOperator0<bool>(SetHipsSolver));
-  if(! Global.Find("HipsDefaults").NotNull() )
-    Global.Add("HipsDefaults","(",new OneOperator2<bool,KN<long>*,KN<double> *>(HipsDefaults));
-  
-}
-		      
-		      
-		      
-		      
-<<<<<<< HEAD
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/hypre_FreeFem.cpp b/examples++-mpi/hypre_FreeFem.cpp
index dac9d75..7b6048c 100644
--- a/examples++-mpi/hypre_FreeFem.cpp
+++ b/examples++-mpi/hypre_FreeFem.cpp
@@ -1643,7 +1643,7 @@ public:
 	    if(X_loc!=NULL) free(X_loc);  if(rhs!=NULL) free(rhs); if(xx!=NULL) free(xx);
 	    if(b_loc!=NULL) free(b_loc);  if(row!=NULL) free(row); 
 	    if(iwork1!=NULL) delete [] iwork1; 
-	    if(mapptr!=NULL) delete [] mapptr;
+	    if(mapptr!=NULL) delete [] mapptr;
             }
 	  ~HypreSolver() { 
 	    	if(verbosity){
diff --git a/examples++-mpi/hypre_FreeFem.cpp.orig b/examples++-mpi/hypre_FreeFem.cpp.orig
deleted file mode 100644
index 40922f8..0000000
--- a/examples++-mpi/hypre_FreeFem.cpp.orig
+++ /dev/null
@@ -1,1779 +0,0 @@
-
-// ORIG-DATE: 02/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : INRIA Saclay 
-// AUTHOR   : Guy Atenekeng
-// E-MAIL   : Guy_Antoine_Atenekeng_Kahou at lri.fr
-//
-//ff-c++-LIBRARY-dep: hypre  metis  blas  mpi
-//ff-c++-cpp-dep: 
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-// FFCS: add requirement for MPI
-//ff-c++-LIBRARY-dep: hypre mpi
-//ff-c++-cpp-dep: 
-
-// add F.Hecht ...  oct 2010 
-#define HYPRE_TIMING
-// .. end add
-#include <mpi.h>
-
-#include  <iostream>
-using namespace std;
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-#ifdef __cplusplus
- extern "C" {
- #include "metis.h"
- #endif
- #ifdef __cplusplus
- }
- #endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#ifdef MPI_WTIME_IS_GLOBAL
-#undef MPI_WTIME_IS_GLOBAL
-#endif
-#define MPI_WTIME_IS_GLOBAL 1
-#define STATS
-
-#include "_hypre_utilities.h"
-#include "HYPRE.h"
-#include "HYPRE_krylov.h"
-#include "HYPRE_IJ_mv.h"
-#include "HYPRE_parcsr_ls.h"
-#include "_hypre_parcsr_mv.h"
-#include "fortran_matrix.h"
-#include "HYPRE_lobpcg.h"
-
-#include "interpreter.h"
-#include "multivector.h"
-#include "HYPRE_MatvecFunctions.h"
-
-#include "HYPRE_parcsr_int.h"
-
-
-
-
-#define CHECK_ZERO
-#define MCW MPI_COMM_WORLD
-#define BUFLEN 100
-#define SCALE 0
-
-
-#ifdef SUN 
-/*
- * 	It uses the system call gethrtime(3C), which is accurate to 
- *	nanoseconds. 
-*/
-#include <sys/time.h>
- 
-double dwalltime() {
-			 return ( (double)gethrtime() / 1e9 );
-				 }
-
-#else
-
-#ifndef NO_TIMER
-#include <sys/types.h>
-#include <sys/times.h>
-#include <time.h>
-#include <sys/time.h>
-#endif
-
-#ifndef CLK_TCK
-#define CLK_TCK 60
-#endif
-
-				 double dwalltime()
-		 {
-#ifdef NO_TIMER
-			 /* no sys/times.h on WIN32 */
-			 double tmp;
-			 tmp = 0.0;
-#else
-			 struct tms use;
-			 double tmp;
-			 times(&use);
-			 tmp = use.tms_utime;
-			 tmp += use.tms_stime;
-#endif
-			 return (double)(tmp) / CLK_TCK;
-		 }
-
-#endif
-
-
-
-
-
-int roscal(int n, int job,int nrm, double *AAv, int *p, int *pr, double * scaletmpr , int *ierr)
-{
-/*---------------------------------------------------------------------
-|
-| This routine scales each row of mata so that the norm is 1.
-|
-|----------------------------------------------------------------------
-| on entry:
-| mata  = the matrix (in SparRow form)
-| nrm   = type of norm
-|          0 (\infty),  1 or 2
-|
-| on return
-| diag  = diag[j] = 1/norm(row[j])
-|
-|     0 --> normal return
-|     j --> row j is a zero row
-|--------------------------------------------------------------------*/
-/*   local variables    */
-   int i, k;
-   double  scal;
-   
-   for (i=0; i<n; i++) {
-      scal = 0.0;
-    // kr = &(AAv[pr[i]]);
-      if (nrm == 0) {
-	 for (k=pr[i]; k<pr[i+1]; k++)
-	    if (fabs(AAv[k]) > scal) scal = fabs(AAv[k]);
-      }
-      else if (nrm == 1) {
-         for (k=pr[i]; k<pr[i+1]; k++)
-            scal += fabs(AAv[k]);
-      }
-      else {  /* nrm = 2 */
-         for (k=pr[i]; k<(pr[i+1]); k++)
-            scal += AAv[k]*AAv[k];
-      }
-      if (nrm == 2) scal = sqrt(scal);
-      if (scal == 0.0) {
-	*ierr=i;
-	 return i+1;
-      }
-      else 
-	 scal = 1.0 / scal;
-      scaletmpr[i] = scal;
-      for (k=pr[i]; k<(pr[i+1]); k++)
-	 AAv[k] = AAv[k] * scal;
-     
-   }
-   *ierr=0;
-   return 0;
-}
-/*---------------end of roscalC-----------------------------------------
-----------------------------------------------------------------------*/
-int coscal(int n, int job,int nrm, double *AAv, int *p, int *pr, double * scaletmpc , int * ierr)
-{
-/*---------------------------------------------------------------------
-|
-| This routine scales each column of mata so that the norm is 1.
-|
-|----------------------------------------------------------------------
-| on entry:
-| mata  = the matrix (in SparRow form)
-| nrm   = type of norm
-|          0 (\infty),  1 or 2
-|
-| on return
-| diag  = diag[j] = 1/norm(row[j])
-|
-|     0 --> normal return
-|     j --> column j is a zero column
-|--------------------------------------------------------------------*/
-/*   local variables    */
-   int i, j, k;
-   double *kr;
-   int *ki;
-   for (i=0; i<n; i++)
-      scaletmpc[i] = 0.0;
-/*---------------------------------------
-|   compute the norm of each column
-|--------------------------------------*/
-   for (i=0; i<n; i++) {
-      kr = &(AAv[pr[i]]);
-      ki = &(pr[i]);
-      if (nrm == 0) {
-	 for (k=pr[i]; k<pr[i+1]; k++) {
-	    j = pr[i];
-	    if (fabs(AAv[k]) > scaletmpc[p[k]]) scaletmpc[p[k]] = fabs(AAv[k]);
-	 }
-      }
-      else if (nrm == 1) {
-         for (k=pr[i]; k<pr[i+1]; k++)
-            scaletmpc[p[k]] += fabs(AAv[k]);
-      }
-      else {
-         for (k=pr[i]; k<pr[i+1]; k++)
-            scaletmpc[p[k]] += fabs(AAv[k])*fabs(AAv[k]);
-      }
-   }
-   if (nrm == 2) {
-      for (i=0; i<n; i++)
-	 scaletmpc[i] = sqrt(scaletmpc[i]);
-   }
-/*---------------------------------------
-|   invert
-|--------------------------------------*/
-   for (i=0; i<n; i++) {
-      if (scaletmpc[i] == 0.0)
-	{
-	 *ierr=i+1;
-	 return i+1;
-	}
-      else 
-	 scaletmpc[i] = 1.0 / scaletmpc[i];
-   }
-/*---------------------------------------
-|   C = A * D
-|--------------------------------------*/
-   for (i=0; i<n; i++) {
-    
-      for (k=pr[i]; k<pr[i+1]; k++)
-	AAv[k]=AAv[k]*scaletmpc[p[k]];
-	
-   }
-   *ierr=0;
-   return 0;
-}
-/*---------------end of coscalC-----------------------------------------
-----------------------------------------------------------------------*/
-
-
-typedef struct sparse_mat_loc
-{
-        int *ptr;  //index of the beginning of rows in id_cols and vals
-        int *rows; //index of non empty rows
-        int *id_cols;
-        double *vals;
-	int ilower; // lower index limit
-	int iupper; //upper index limit
-        int n_loc ; /*number of rows*/
-        int *ncols; /*number of columns in each row*/
-}sparse_mat_loc;
-
-
-/* 
-  **Function to distribute a sparse matrix as blocks rows on several processes**
-  
-  A: (input) sparse matrix.
-    (matrix A as input is available on each process
-  type :(input) 0=CSR format, any other value=CSC
-  size: (input) size of the communicator
-  rk: (input) rank of the process in the communicator
-  A_loc: (output) sparse matrix in CSR reduced on local process
-  */
-  
-int dist_matrix(int n, int *ptr, int* id_rows, double *vals, int type, int size, int rk,int * mapptr,int *maptmp, int *iwork1 ,sparse_mat_loc *A_loc)
-{
-  	int     i, j, ilower, iupper;
-	int     n_loc, nnz_loc, relpos;
-	int     *marker;
-	
-	/* Compute the number of rows to distribute to local process */
-    n_loc =n/size;
-    if(rk==size-1) n_loc=n_loc+n%size;
-
-   
-   int i1,i2,ncols;	
-    //save the lower index (ilower) and upper (iupper) for each process
-    (A_loc)->ilower=rk*(n/size);
-    ilower=(A_loc)->ilower;
-    (A_loc)->iupper=(rk+1)*(n/size)-1; 
-    if(rk==size-1) (A_loc)->iupper=(A_loc)->iupper+n%size;
-    iupper=(A_loc)->iupper;
-    (A_loc)->n_loc=n_loc;
-  
-    
-	
-        if( !((A_loc)->ptr=(int *)malloc((n_loc+1)*sizeof(int))) ) {printf("%s","Malloc fails for ptr \n"); exit(1);}
-	if( !((A_loc)->rows=(int *)malloc((n_loc)*sizeof(int))) ) {printf("%s","Malloc fails for rows \n");exit(1);}
-	if( !((A_loc)->ncols=(int *)malloc((n_loc)*sizeof(int))) ) {printf("%s","Malloc fails for ncols \n");exit(1);}
-	
-    //Change global Input matrix (A) to local (A_loc) on each process
-	if(type==0){  //Matrix A is in CSR format
-		
-		//Gets local nnz 
-		 i1=(A_loc)->ilower;
-	         i2=(A_loc)->iupper; 
-		 (A_loc)->ilower=i1; (A_loc)->iupper=i2; nnz_loc=0;
-		 for(i=i1;i<=i2;i++){
-			nnz_loc+=ptr[i+1]-ptr[i];
-		 }
-		//Allocate memory for local matrix
-		
-		
-		if( !((A_loc)->id_cols=(int *)malloc(nnz_loc*sizeof(int))) ) {printf("%s","Malloc fails for id_cols \n");exit(1);}
-		if( !((A_loc)->vals=(double *)malloc(nnz_loc*sizeof(double))) ) {printf("%s","Malloc fails for vals"); exit(1);}
-		
-		//Transfer the corresponding values from global to local
-		relpos=0; 
-		//int ncols; //count number of elements in each row
-		for(i=i1;i<=i2;i++){
-			(A_loc)->rows[i-i1]=i;
-			(A_loc)->ptr[i-i1]=relpos;
-			ncols=relpos;
-			for(j=ptr[i];j<ptr[i+1];j++){
-				(A_loc)->id_cols[relpos]=id_rows[j];
-				(A_loc)->vals[relpos]=vals[j];
-				relpos++;
-			}
-			(A_loc)->ncols[i-i1]=relpos-ncols;
-		}
-		//cout << "taille des sous domaines" << nnz_loc << endl;
-	}
-	else{ //matrix A is in CSC format
-		marker= (int *)calloc(n, sizeof(int)); //count number of elements in each row
-		for(i=0; i<n; i++)
-			for(j=ptr[i]; j<ptr[i+1]; j++)
-				marker[id_rows[j]]++;
-		
-		(A_loc)->ptr[0]=0; //set up the beginning of each row
-		for(i=0; i<n_loc; i++){
-			(A_loc)->ptr[i+1] = (A_loc)->ptr[i] + marker[i+ilower];
-				(A_loc)->id_cols[relpos]=id_rows[j];
-				(A_loc)->vals[relpos]=vals[j];
-				relpos++;
-			}
-			(A_loc)->ncols[i-ilower]=relpos-ncols;
-		}
-    return 0;
-}
-
-
-
-
-class hypreParam {
- //Solveur and preconditionner
-  public: 
-  char  solver[BUFLEN];
-  char  precon[BUFLEN];
- //BoomerAMG parameter
-  int                  amg_coarsentype ;    /* Falgout coarsening */
-  int                  amg_relaxtype;      /* hybrid Gauss-Seidel or SOR */ 
-  int			amg_interptype;		/* default*/
-  int 			amg_maxlevels;
-  int                  amg_numsweeps;        /*default*/
-  double               amg_strongthreshold;/*suitable for 3D Laplace Operator*/
-  double		amg_truncfactor; 
-  int                  amg_prntlevel;        /* print setup info */
-  double			amg_tol;			//BoomerAMG Tolerance
-  int			amg_maxiter;
-  int 			scale;
-  int 			gsmg_sample, measure_type,cycle_type;
-  int                  solv_stopcrit ;
-  double trunc_factor;
-   
-  //More complex smoothers (Schwarz methods, Pilut, Parasails, Euclid)
-  int					smooth_type;
-  int 					smooth_numlevels; 
-  int 					smooth_numsweeps;
-  double				pilut_droptol;
-  double 				pilut_maxnz;
-  int					schwarz_overlap;
-  int 					schwarz_variant;
-  int					schwarz_domaintype;
-  
-  //parasails parameter
-  int                  sai_max_levels ;
-  double               sai_threshold ;
-
-  double               sai_filter ;
-  int                  sai_sym ;
-  int                  sai_log ;
-  int                  VERBOSE;
-
-  /***************************HYPRE_BOOMERAMG***********************/
-  double strong_threshold;
- 
-  int * num_grid_sweeps;  
-  int * grid_relax_type;  
-  int * grid_relax_points;
-  double * relax_weight;
-  double *  omega;   
-  //Solver parameter (used for GMRES , PCG or BiCGStab)
-  double               solv_tol ;
-  int                  solv_maxiter;
-  int                  solv_kdim;
-  int                  solv_log;
-  int                  solv_prntlevel;
-  int                     precond_id, solver_id,matrix_id,solver_type;
-  int smooth_num_levels,smooth_num_sweeps,max_levels,Two_Norm;
-  int domain_type, num_functions,variant,overlap,nonzeros_to_keep;
-  double max_row_sum,drop_tol;
-  int *dof_func; 
-  int                 pcg_max_its,rrow_size,Rel_change;
-  int                 dscg_max_its,coarsen_type,hybrid,k_dim,num_sweep; 
-  int 		      pmax_iter;
-  double              cf_tol,tol,pc_tol;
-  double schwarz_rlx_weight;
- 
-  /*For timing*/
-  int timing;
-public : hypreParam(const KN<long> &param_int, const KN<double> &param_double)
-  {
-    amg_coarsentype =6;    /* Falgout coarsening */
-    amg_relaxtype =3;      /* hybrid Gauss-Seidel or SOR */ 
-    amg_interptype=0;		/* default*/
-    amg_maxlevels=25;
-    amg_numsweeps=1;        /*default*/
-    amg_strongthreshold = 0.25;/*suitable for 3D Laplace Operator*/
-    amg_truncfactor=0.3; 
-    amg_prntlevel =1;        /* print setup info */
-    amg_tol=0.0;			//BoomerAMG Tolerance
-    amg_maxiter=20;
-    gsmg_sample=1;
-   //More complex smoothers (Schwarz methods, Pilut, Parasails, Euclid)
-    smooth_type=6;
-    smooth_numlevels=3; 
-    smooth_numsweeps=1;
-    pilut_droptol=1.0e-4;
-    pilut_maxnz=100;
-    schwarz_overlap=10;
-    schwarz_variant=2;
-    schwarz_domaintype=2;
-   //parasails parameter
-    sai_max_levels = 1;
-    sai_threshold = 0.1;
-    sai_filter = 0.1;
-    sai_sym =0;
-    sai_log = 1;
-    int i;
-			
-   //Solver parameter (used for GMRES or BiCGStab)
-    solv_tol = 1.0e-11;
-    solv_maxiter = 1000;
-    solv_kdim =40;
-    
-    solv_log = 0;
-    solv_prntlevel = 2;
-    precond_id=0;//BOOMER AMG 	
-    solver_id=1; //GMRES as solver
-    VERBOSE=0;
-    scale=1;
-    pmax_iter=30;
-    rrow_size=1000;
-    solv_stopcrit=1;
-
-    amg_interptype =6;  gsmg_sample =5; amg_coarsentype =6; 
-
-    measure_type =1;amg_strongthreshold=0.25; trunc_factor=1e-2; 
-
-    amg_maxiter=20; cycle_type=1;  smooth_num_levels=3; 
-    smooth_num_sweeps=1; max_levels=25; hybrid=1;
-   k_dim = 5;  smooth_type = 6;  num_functions = 1;  smooth_num_levels = 3;
-   smooth_num_sweeps = 2; num_sweep = 1;      variant = 0;
-   overlap = 10;  domain_type = 2;     nonzeros_to_keep = 1000;
-   tol = 1.e-8;  pc_tol = 0.;
-   drop_tol = -1.;  max_row_sum = 0.9; schwarz_rlx_weight = 1.;  sai_threshold = 0.1;
-   sai_filter = 0.1;
-	
-
-    relax_weight      = hypre_CTAlloc(double, max_levels);
-    omega             = hypre_CTAlloc(double, max_levels);
-    for (i=0; i < max_levels; i++)
-      {
-	relax_weight[i] = 1.;
-	omega[i] = 1.;
-      }
-    max_row_sum=0.9;  schwarz_rlx_weight=1.; variant=0; 
-    num_functions=1; overlap=10; domain_type= 2;
-		  		 	 
-    if(param_int.N()>0) {if((param_int[0]>=0)&&(param_int[0]<=9)) solver_id=param_int[0]; 
-      else solver_id=1;} //GMRES as solver
-	       
-    if((solver_id!=4)&&(solver_id!=5)){      
-      if(param_int.N()>1) {if((param_int[1]>=0)&&(param_int[1]<=9)) 
-	  precond_id=param_int[1]; else precond_id=0;}//BOOMER AMG }
-      if(param_int.N()>2) {if(param_int[2]>0)  solv_maxiter = param_int[2];else solv_maxiter=1000;}
-      if(param_int.N()>3) {if(param_int[3]>0)  solv_kdim =param_int[3];else solv_kdim=40;}
-      if(param_int.N()>4) {if(param_int[4]>=0) solv_prntlevel = param_int[4];}
-      if(param_int.N()>5) {if(param_int[5]>=0) solv_log = param_int[5];}
-      if(param_int.N()>6) {if(param_int[6]>=0) solv_stopcrit = param_int[6];}
-		
-
-      if(param_double.N()>0) {if(param_double[0]>0) solv_tol = param_double[0];}
-      switch(precond_id)
-	{
-	case 0 : //Preconditionner AMG
-	  if(param_int.N()>7)  {if(param_int[7]>=0) amg_interptype =param_int[7];}
-	  if(param_int.N()>8)  {if(param_int[8]>=0) gsmg_sample =param_int[8];}
-	  if(param_int.N()>9)  {if(param_int[9]>=0) amg_coarsentype =param_int[9];}
-	  if(param_int.N()>10) {if(param_int[10]>=0) measure_type =param_int[10];}
-	  if(param_double.N()>1) {if(param_double[1]>0) amg_strongthreshold = param_double[1];}
-	  if(param_double.N()>2) {if(param_double[2]>0) trunc_factor = param_double[2];}
-	  //if(param_int.N()>11)  {if(param_int[11]>0) amg_maxiter=param_int[11];}
-	  if(param_int.N()>11)  {if(param_int[11]>0) cycle_type=param_int[11];}
-	  if(param_int.N()>12)  {if(param_int[12]>0)  smooth_type=param_int[12];}
-	  if(param_int.N()>13) {if(param_int[13]>0) smooth_num_levels=param_int[13];}
-	  if(param_int.N()>14) {if(param_int[14]>0) smooth_num_sweeps=param_int[14];}
-	  if(param_int.N()>15) {if(param_int[15]>0) max_levels = param_int[15];}
-	  relax_weight      = hypre_CTAlloc(double, max_levels);
-	  omega      = hypre_CTAlloc(double, max_levels);
-	  for (i=0; i < max_levels; i++)
-	    {
-	      relax_weight[i] = 1.;
-	      omega[i] = 1.;
-	    }
-	  if(param_double.N()>3) {if(param_double[3]>0) max_row_sum = param_double[3];else max_row_sum=0.9;} else max_row_sum=0.9;
-	  if(param_double.N()>4) {if(param_double[4]>0) schwarz_rlx_weight = param_double[4];else schwarz_rlx_weight=1.;} else schwarz_rlx_weight=1.;
-	  if(param_int.N()>16) {if(param_int[16]>0) variant = param_int[16];else variant=3;} else variant=3;
-	  if(param_int.N()>17) {if(param_int[17]>0) num_functions = param_int[17];else num_functions=1;} else num_functions=1;
-	  if(param_int.N()>18) {if(param_int[18]>0) overlap = param_int[18];else overlap=10;} else overlap=10;
-	  if(param_int.N()>19) {if(param_int[19]>0) domain_type = param_int[19]; else domain_type= 2;} else domain_type= 2;				
-	  break;
-	  
-	case 1: //Preconditionner PILUT
-	  
-	  if(param_double.N()>1) {if(param_double[1]>0) drop_tol = param_double[1]; else drop_tol=1e-5;} else drop_tol=1e-5;
-	  if(param_int.N()>7)    {if(param_int[7]>0) nonzeros_to_keep = param_int[7]; else nonzeros_to_keep=1000;} else nonzeros_to_keep=1000;
-	  if(param_int.N()>8)    {if(param_int[8]>0) pmax_iter = param_int[8];}
-	  if(param_int.N()>9)    {if(param_int[9]>0) rrow_size = param_int[9];} 
-	  
-	  break;
-
-	case 2://Preconditionner ParaSails
-	  if(param_double.N()>1) {if(param_double[1]>0) sai_filter = param_double[1];else sai_filter=0.1;} else sai_filter=0.1;
-	  if(param_double.N()>2) {if(param_double[2]>0) sai_threshold = param_double[2];else sai_threshold=0.1;} else sai_threshold=0.1;
-	  if(param_int.N()>7)    {if(param_int[7]>0) max_levels = param_int[7];else max_levels=1;} else max_levels=1;
-	  if(param_int.N()>8)    {if(param_int[8]>0) sai_sym =param_int[8];else sai_sym=0;} else sai_sym=0;
-	  break;
-
-	case 3: //Preconditionner Schwarz
-	  if(param_double.N()>1) {if(param_double[1]>0) schwarz_rlx_weight = param_double[1];schwarz_rlx_weight=1;} 
-	  else schwarz_rlx_weight=1.;
-	  if(param_int.N()>7)    {if(param_int[7]>0) variant = param_int[7];else variant=1;} else variant=1;
-	  if(param_int.N()>8)    {if(param_int[8]>0) overlap = param_int[8];else overlap=1;} else overlap=1;
-	  if(param_int.N()>9)    {if(param_int[9]>0) domain_type = param_int[9];else domain_type=3;} else domain_type=3;
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-
-	
-		if(solver_id==4) // Solver AMG_HYBRID
-		{
-		 
-		 if(param_double.N()>1)  {if(param_double[1]>=0) amg_tol =param_double[1];else amg_tol=1e-9;} else amg_tol=1e-9;
-		 if(param_double.N()>2)  {if(param_double[2]>=0) cf_tol =param_double[2];else cf_tol= 1e-3;}  else cf_tol= 1e-3;
-		 if(param_int.N()>1)  {if(param_int[1]>=0) solver_type =param_int[1];else solver_type=1;} else solver_type=1;
-		 if(param_int.N()>2)  {if(param_int[2]>0) dscg_max_its=param_int[2];else dscg_max_its=1000;}  else dscg_max_its=1000;
-		 if(param_int.N()>3)  {if(param_int[3]>0) pcg_max_its=param_int[3];else pcg_max_its=200;}   else pcg_max_its=200;
-		 if(param_int.N()>4)  {if(param_int[4]>0) coarsen_type=param_int[4]; else coarsen_type=6;}  else coarsen_type=6;
-		 if(param_double.N()>3) {if(param_double[3]>0) strong_threshold = param_double[3]; else strong_threshold=1e-3;} else strong_threshold=1e-3;
-		 if(param_double.N()>4) {if(param_double[4]>0) trunc_factor = param_double[4]; else trunc_factor=1e-2;} else trunc_factor=1e-2;
-		 if(param_int.N()>5) {if(param_int[5]>0) max_levels = param_int[5]; else max_levels=25;} else max_levels=25;
-        	 if(param_double.N()>5) {if(param_double[5]>0) max_row_sum = param_double[5];else max_row_sum=0.9;} else max_row_sum=0.9;
-
-		 relax_weight      = hypre_CTAlloc(double, max_levels);
-   		 omega      = hypre_CTAlloc(double, max_levels);
-		for (i=0; i < max_levels; i++)
-		   {
-			relax_weight[i] = 1.;
-			omega[i] = 1.;
-		   }
-		}
-		if(solver_id==3)
-		{
-			if(param_int.N()>7)  {if(param_int[7]>=0) Two_Norm =param_int[7];else Two_Norm=2;} else Two_Norm=2;
-			if(param_int.N()>8)  {if(param_int[8]>=0) Rel_change =param_int[8];else Rel_change=1;} else Rel_change=1;
-		}
-		if(solver_id==5) //Solver AMG
-		{
-		 if(param_int.N()>7)  {if(param_int[7]>=0) amg_interptype =param_int[7];}
-		 if(param_int.N()>8)  {if(param_int[8]>=0) gsmg_sample =param_int[8];}
-		 if(param_int.N()>9)  {if(param_int[9]>=0) amg_coarsentype =param_int[9];}
-		 if(param_int.N()>10) {if(param_int[10]>=0) measure_type =param_int[10];}
-   		 if(param_double.N()>2) {if(param_double[2]>0) amg_strongthreshold = param_double[2];}
-   		 if(param_double.N()>3) {if(param_double[3]>0) trunc_factor = param_double[3];}
-                 if(param_int.N()>11)  {if(param_int[11]>0) amg_maxiter=param_int[11];}
-		 if(param_int.N()>12)  {if(param_int[12]>0) cycle_type=param_int[12];}
-		 if(param_int.N()>13)  {if(param_int[13]>0)  smooth_type=param_int[13];}
-		 if(param_int.N()>14) {if(param_int[14]>0) smooth_num_levels=param_int[14];}
-  		 if(param_int.N()>15) {if(param_int[15]>0) smooth_num_sweeps=param_int[15];}
-		 if(param_int.N()>16) {if(param_int[16]>0) max_levels = param_int[16];}
-		 relax_weight      = hypre_CTAlloc(double, max_levels);
-   		 omega      = hypre_CTAlloc(double, max_levels);
-		for (i=0; i < max_levels; i++)
-		   {
-			relax_weight[i] = 1.;
-			omega[i] = 1.;
-		   }
-		 if(param_double.N()>4) {if(param_double[4]>0) max_row_sum = param_double[4];else max_row_sum=1e-1;} else max_row_sum=1e-1;
-		 if(param_double.N()>5) {if(param_double[5]>0) schwarz_rlx_weight = param_double[5];else schwarz_rlx_weight=1.;} else schwarz_rlx_weight=1.;
-		 if(param_int.N()>17) {if(param_int[17]>0) variant = param_int[17];else variant=1;} else variant=1;
-		 if(param_int.N()>19) {if(param_int[18]>0) num_functions = param_int[18];else num_functions=5;} else num_functions=5;
-		 if(param_int.N()>20) {if(param_int[19]>0) overlap = param_int[19];else overlap=1;} else overlap=1;
-		 if(param_int.N()>21) {if(param_int[20]>0) domain_type = param_int[20];else domain_type= 1;} else domain_type= 1;
-		}
-		if(param_int.N()>22) {if(param_int[22]>0) VERBOSE = param_int[22];}
-		if(param_int.N()>23) {if(param_int[23]>0) scale = param_int[23]; else scale=1;} else scale=1;
-		if(param_int.N()>24) {if(param_int[24]>0) timing = param_int[24]; else timing=1;} else timing=1; 
-             }
-
-  public : hypreParam()
-	{
-		int i;
-		amg_coarsentype =6;    /* Falgout coarsening */
-   		amg_relaxtype =3;      /* hybrid Gauss-Seidel or SOR */ 
-	 	amg_interptype=0;		/* default*/
-   		amg_maxlevels=25;
-   		amg_numsweeps=1;        /*default*/
-		amg_strongthreshold = 0.25;/*suitable for 3D Laplace Operator*/
-   		amg_truncfactor=0.3; 
-		amg_prntlevel =1;        /* print setup info */
-		amg_tol=1e-7;			//BoomerAMG Tolerance
-		amg_maxiter=1;
-		gsmg_sample=1;
-	
-   
-			
-   //Solver parameter (used for GMRES or BiCGStab)
-   		solv_tol = 1.0e-11;
-		solv_maxiter = 1000;
-		solv_kdim =40;
-
-		solv_log = 0;
-		solv_prntlevel = 2;
-		precond_id=0;//BOOMER AMG 	
-		solver_id=1; //GMRES as solver
-	        VERBOSE=0;
-		scale=1;
-                pmax_iter=30;
-		rrow_size=1000;
-
-
-		amg_interptype =0;  gsmg_sample =1; amg_coarsentype =6; measure_type =1;amg_strongthreshold=0.25;
-		trunc_factor=1e-2;  amg_maxiter=20; cycle_type=1; smooth_type=6; smooth_num_levels=0; smooth_num_sweeps=2; max_levels=25;
-
-		relax_weight      = hypre_CTAlloc(double, max_levels);
-   		omega             = hypre_CTAlloc(double, max_levels);
-		for (i=0; i < max_levels; i++)
-		   {
-			relax_weight[i] = 1.;
-			omega[i] = 1.;
-		   }
-		 max_row_sum=0.9;  schwarz_rlx_weight=1.; variant=0;  num_functions=1; overlap=10; domain_type= 0;
-		
-		 
-
-
-		
-	}
-  public : hypreParam(char * fileparameter, MPI_Comm comm)
-	{
-		FILE *f;
-        	char buf[BUFLEN];
-		int num;
-		int rk, size;
-		MPI_Comm_rank(comm,&rk);
-		MPI_Comm_size(comm, &size);
-
-		
-		amg_coarsentype =6;    /* Falgout coarsening */
-   		amg_relaxtype =3;      /* hybrid Gauss-Seidel or SOR */ 
-	 	amg_interptype=0;		/* default*/
-   		amg_maxlevels=25;
-   		amg_numsweeps=1;        /*default*/
-		amg_strongthreshold = 0.25;/*suitable for 3D Laplace Operator*/
-   		amg_truncfactor=0.3; 
-		amg_prntlevel =1;        /* print setup info */
-		amg_tol=0.0;			//BoomerAMG Tolerance
-		amg_maxiter=20;
-   //More complex smoothers (Schwarz methods, Pilut, Parasails, Euclid)
-		smooth_type=6;
-		smooth_numlevels=3; 
-		smooth_numsweeps=1;
-		pilut_droptol=1.0e-4;
- 		pilut_maxnz=100;
-		schwarz_overlap=10;
-		schwarz_variant=2;
-		schwarz_domaintype=2;
-   //parasails parameter
-  		sai_max_levels = 1;
-		sai_threshold = 0.1;
-		sai_filter = 0.05;
-	        sai_sym =0;
-	        sai_log = 1;
-	
-   //Solver parameter (used for GMRES or BiCGStab)
-   		solv_tol = 1.0e-30;
-		solv_maxiter = 80;
-		solv_kdim =40;
-  //  int                  solv_stopcrit = 1; //only for BiCGSTAB
-		solv_log = 0;
-		solv_prntlevel = 0;
-		precond_id=0;//BOOMER AMG 	
-		solver_id=1; //GMRES as solver
-		VERBOSE=0;
-		scale=1;
-		
-
-
-
-		if(fileparameter==NULL)
-		{
-			if(rk==0) printf("%s","Set default parameter because you not precise the parameter file \n \n");
-			solver_id=1; //GMRES as solver
-			precond_id=0;//BOOMER AMG 
-		
-		}
-		else if( (f=fopen(fileparameter,"r") )==NULL)
-			{
-			if(rk==0)printf("%s","Set default parameter because your parameter file not exist \n \n");
-			solver_id=1; //GMRES as solver
-			precond_id=0;//BOOMER AMG 	
-			}	
-			else
-			{
-			 if(rk==0) printf("%s%s%s","Read parameter from file ", fileparameter, "\n \n");
-			 num =0;
-			 while(fgets(buf, BUFLEN, f) != NULL) 
-			 {
-				switch(num) {
-				case 0:
-				sscanf(buf, "%s", solver); 
-				break;
-				case 1:
- 				sscanf(buf, "%d", &solver_id);
-			        break;
-				case 2:
- 				sscanf(buf, "%lf", &solv_tol);
-			        break;
-				case 3:
- 				sscanf(buf, "%d", &solv_maxiter);
-			        break;
-				case 4:
- 				sscanf(buf, "%d", &solv_prntlevel);
-			        break;
-				case 5:
- 				sscanf(buf, "%d", &solv_log);
-				if(solver_id!=1) {fgets(buf, BUFLEN, f);num++;}
-				break;				
-				case 6:
-				sscanf(buf, "%d", &solv_kdim);
-			        break;
-				case 7:
-				sscanf(buf, "%s", precon); 
-				break;
-				case 8:
-				sscanf(buf, "%d", &precond_id); 
-				 	
-				if(precond_id==2) //The parameter of preconditionner is inside file
-				{
-					fclose(f);
-					exit(1);
-				}
-				break;
-				case 9:
-				if(precond_id==0)
-				sscanf(buf, "%d", &amg_coarsentype); 
-				if(precond_id==1)
-				sscanf(buf, "%lf", &sai_threshold); 
-				break;
-				case 10:
-				if(precond_id==0)
-				sscanf(buf, "%d", &amg_prntlevel); 
-				if(precond_id==1)
-				sscanf(buf, "%d", &sai_max_levels); 
-				break;
-				case 11:
-				if(precond_id==0)
-				sscanf(buf, "%d", &amg_interptype); 
-				if(precond_id==1)
-				sscanf(buf, "%lf", &sai_filter); 
-				break;
-				case 12:
-				if(precond_id==0)
-				sscanf(buf, "%d", &amg_maxlevels); 
-				if(precond_id==1)
-				case 17:
-				sscanf(buf, "%d", &amg_prntlevel); 
-				break;
-				case 18:
-				sscanf(buf, "%lf", &amg_tol); 
-				break;
-				case 19:
-				sscanf(buf, "%d", &amg_maxiter); 
-				break;	
-				case 20:
-				sscanf(buf, "%d", &scale); 
-				break;						
-				default:
-				break;
-				}	
-         		 num++;	
-			 }
-			 if(fclose(f)==EOF) printf("%s","Error while closing the file \n"); else printf("%s","File is well close \n");			
-			}
-	}
-	
-};
-
-class HypreSolver :   public MatriceMorse<double>::VirtualSolver   {
-  mutable HYPRE_IJMatrix       ij_A;
-  mutable HYPRE_IJVector       ij_B;
-  mutable HYPRE_IJVector       ij_X;
-  mutable HYPRE_ParCSRMatrix   par_A;
-  mutable HYPRE_ParVector      par_B;
-  mutable HYPRE_ParVector      par_X;
-  void               *object;
-  HYPRE_ParCSRMatrix  parcsr_A;
-
-  string data_option;
-  mutable int		       time_index,time_index1;
-  mutable HYPRE_Solver         solver;
-  mutable HYPRE_Solver         precond;
-  mutable hypreParam           *param;
-  mutable double *scaletmpr, *scaletmpc;
-  mutable int rk,size;
-  int                  jlower, jupper;
-  int                  ilower, iupper;
-  mutable    int num_iter;
-  mutable   double 		final_res_norm;
-  mutable   double 		tgv,eps,tol_pivot,tol_pivot_sym,epsr;
-  sparse_mat_loc	A_loc;
-  mutable int *iwork, *maptmp, *mapptr, *iwork1,*riord;
-  mutable int n_loc,n,VERBOSE;
-  mutable MPI_Comm comm;
-  mutable int pcg_num_its,dscg_num_its; 
-
- 
-public:
-  HypreSolver(const MatriceMorse<double> &AA,string datafile,
-	      KN<long> &param_int,  KN<double> &param_double,  
-	      MPI_Comm  * mpicommw )	
-  { 
-    int i,j,ierrr;
-    if(mpicommw==NULL){
-     comm=MPI_COMM_WORLD; 
-    }
-    else
-      comm= *mpicommw;
-	
-    /*****INITIALIZE MPI ENVIRONMENT*****/
-
-    ierrr = MPI_Comm_rank(comm, &rk);
-    ierrr = MPI_Comm_size(comm, &size);
-
-    
-    if(((param_double!=NULL)||(param_int!=NULL))&&(datafile.empty()))
-      {
-	if(rk==0)
-	  cout << "#########PARAMETERS ARE SET INSIDE A VECTOR###"<< endl;
-	param=new hypreParam(param_int,param_double);
-      }
-    if((datafile.empty())&&((param_int==NULL)&&(param_double==NULL)))
-      {
-	if(rk==0)
-	cout << "###########DEFAULT PARAMETERS WILL BE SET#######"<< endl;
-	param= new hypreParam();
-      }
-    if((!datafile.empty())&&((param_int==NULL)&&(param_double==NULL)))
-      {
-	if(rk==0)
-	  cout << "#########PARAMETERS ARE INSIDE A FILE#########"<< endl;
-	char *p;
-	p=new char[datafile.length()+1]; strcpy(p,datafile.c_str()); 
-	param= new hypreParam(p,comm);
-      }
-	
-    /*###################################################
-                         USING HYPRE
-    ####################################################*/
-    int n,nnz, *pr, *p,ierr;
-    double * AAv;
-    n=AA.n; nnz=AA.nbcoef;
-    /*##################################################
-                      COPY ENTRY MATRIX
-     ##################################################*/   
-	if(param->timing){
-	time_index = hypre_InitializeTiming("MATRIX DISTRIBUTION");
-   	hypre_BeginTiming(time_index);
-	}
-   
- 
-    pr= new int[n+1];p=  new int[nnz];	AAv=new double[nnz];
-    for(i=0;i<nnz;i++){
-      AAv[i]=AA.a[i]; p[i]=AA.cl[i];
-      if(i<=n) pr[i]=AA.lg[i];
-    }
-    int job, tmp;
-    if(param->scale) {
-      job = 1; /*-- compute  1-norm */
-      tmp = 2; /*-- compute 2-norm  */
-      scaletmpr=new double[n]; 	 scaletmpc=new double[n]; 
-      roscal(n,job,tmp,AAv,p,pr,scaletmpr,&ierr);
-      if (ierr) fprintf(stderr, "ERROR: IN ROSCAL, IERR = %d\n", ierr);
-      /*------- scale the RHS according to row scaling coefficients */
-      coscal(n,job,tmp,AAv,p,pr,scaletmpc,&ierr);
-      if (ierr) fprintf(stderr, "ERROR : IN COSCAL, IERR = %d\n", ierr);
-    } /*--- end of branch on scaling */
-
-	
-	/*************************************************************
-	Distribute input matrix into local structures
-	*************************************************************/
-    int type=0,wgtflag=0, numflag=0, volume; //0=CSR; 1=CSC
-    int option[5];  option[0]=0;
-    riord=(int *)malloc(sizeof(int)*n);
-    if(riord==NULL){if(rk==0) printf("%s","IN PARTITION , MEMORY ALLOCATION FAILED \n");exit(1);}
-    /************************USE METIS FOR DATA DISTRIBUTION**************************/
-    if(size>1)
-      METIS_PartGraphKway(&n, pr, p, NULL, NULL, &wgtflag, &numflag,&size, option, &volume, riord);
-    else if(size==1){
-      for (i=0; i<n; i++) riord[i]=0;}
-    iwork= new int[n]; maptmp = new int[n]; mapptr = new int[size+1]; iwork1= new int[size+1];
-    for(i=0; i<size; i++){
-      iwork[i]=0;iwork1[i]=0; }
-    for(j=0; j<n; j++){
-      iwork[riord[j]]++;
-      iwork1[riord[j]]++;
-    }
-    numflag=0;
-    for(i=0; i<size; i++){
-      mapptr[i]=numflag;
-      numflag+=iwork[i];
-    }
-    mapptr[size]=numflag;
-
-    for (i=0; i<size; i++){
-      iwork[i]=mapptr[i];
-    }
-    for(i=0; i<n; i++){
-      maptmp[iwork[riord[i]]]=i;
-      iwork[riord[i]]++;
-    }
-    
-    dist_matrix(AA.n,pr,p,AAv, type, size, rk,mapptr,maptmp,iwork1, &A_loc); 	
-    /***Distribute vector***/
-    n_loc=A_loc.n_loc;
-    /**** Preparing Matrix *****/
-    ierr=0;
-    ilower=A_loc.ilower; jlower=ilower;	iupper=A_loc.iupper; jupper=iupper;
-    ierr+=HYPRE_IJMatrixCreate(comm, ilower, iupper, jlower, jupper, &ij_A);
-    
-	if (ierr)
-   {
-     printf("Error in driver building IJMatrix from parcsr matrix. \n");
-     exit(-1);
-   }
-        
-
-    ierr+=HYPRE_IJMatrixSetObjectType(ij_A, HYPRE_PARCSR);
-    ierr+=HYPRE_IJMatrixInitialize(ij_A);
-    
-   int taille;
-
-    for(i=ilower;i<=iupper;i++){
-	   taille=pr[i+1]-pr[i];
-	  
-	   ierr+=HYPRE_IJMatrixSetValues(ij_A, 1, &taille, &i , &(p[pr[i]]), &(AAv[pr[i]]));
-	}
-   
-    ierr+=HYPRE_IJMatrixAssemble(ij_A);
-   /*Extract HYPRE Object data structures suitable for the solvers*/
-    ierr+=HYPRE_IJMatrixGetObject(ij_A, (void **) &par_A);	   
-
-
-   /*Free local matrix in A_loc, B and X*/
-    free(A_loc.rows); free(A_loc.id_cols); free(A_loc.vals); free(A_loc.ncols); 
-    if(param->timing){
-	     hypre_EndTiming(time_index);
-   	     hypre_PrintTiming("IJ Matrix Setup", comm);
-	     hypre_FinalizeTiming(time_index);
-   	     hypre_ClearTiming();
-	}
-   
-   
-   
-    /*************************************************************
-                Create preconditioner 
-   
-                  Setup and Use solver
-   **************************************************************/
-   
-
-  param->timing=1;
-
-  
-
-   switch(param->solver_id){
-       case 0 : //BiCGStab solver
-	 HYPRE_ParCSRBiCGSTABCreate(comm, &solver);           
-	 HYPRE_ParCSRBiCGSTABSetTol(solver, param->solv_tol);
-	 HYPRE_ParCSRBiCGSTABSetMaxIter(solver, param->solv_maxiter);
-	 //HYPRE_ParCSRBiCGSTABSetStopCrit(solver, solv_stopcrit);
-	 HYPRE_ParCSRBiCGSTABSetPrintLevel(solver, param->solv_prntlevel);
-	 HYPRE_ParCSRBiCGSTABSetLogging(solver, param->solv_log);
-	
-
-            //Set Preconditioner
-	 switch (param->precond_id){
-	 case 0 : //set BoomerAMG as preconditioner
-	   if(rk==0) printf("SOLVER: BOOMERAMG-BiCGSTAB\n");
-	   HYPRE_BoomerAMGCreate(&precond);
-	
-
-	HYPRE_BoomerAMGSetInterpType(precond, param->amg_interptype);
-    
-       HYPRE_BoomerAMGSetTol(precond, param->amg_tol);
-       HYPRE_BoomerAMGSetCoarsenType(precond, param->amg_coarsentype); 
-       HYPRE_BoomerAMGSetMeasureType(precond,param-> measure_type);
-       HYPRE_BoomerAMGSetStrongThreshold(precond, param->amg_strongthreshold);
-
-       HYPRE_BoomerAMGSetTruncFactor(precond,param->trunc_factor);
-
-       HYPRE_BoomerAMGSetMaxIter(precond, param->amg_maxiter);
-       HYPRE_BoomerAMGSetCycleType(precond,param->cycle_type);
-       
-       HYPRE_BoomerAMGSetSmoothType(precond,param->smooth_type);
-       HYPRE_BoomerAMGSetSmoothNumLevels(precond,param->smooth_num_levels);
-       HYPRE_BoomerAMGSetSmoothNumSweeps(precond,param->smooth_num_sweeps);
-       HYPRE_BoomerAMGSetMaxLevels(precond,param->max_levels);
-       HYPRE_BoomerAMGSetMaxRowSum(precond,param->max_row_sum);
-       
-       HYPRE_BoomerAMGSetOverlap(precond, param->overlap);
-       HYPRE_BoomerAMGSetVariant(precond, param->variant);
-       HYPRE_BoomerAMGSetDomainType(precond, param->domain_type);
-       
-      
-       HYPRE_BiCGSTABSetPrecond(solver, 
-			     (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve, 
-			     (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup, 
-			     precond);
-	   break;
-	 case 4:
-	   /*use diagonal scaling as preconditioner*/
-	   if(rk==0) printf("SOLVER: DS-BiCGSTAB\n");
-	   precond=NULL;
-	   HYPRE_ParCSRBiCGSTABSetPrecond(solver, 
-					  (HYPRE_PtrToParSolverFcn) HYPRE_ParCSRDiagScale, 
-					  (HYPRE_PtrToParSolverFcn) HYPRE_ParCSRDiagScaleSetup, 
-					  precond);
-	   break;
-	 case 1:
-	   /*Use PILUT as preconditioner*/
-	   if(rk==0) printf("SOLVER: PILUT-BiCGSTAB\n");
-	   ierr=HYPRE_ParCSRPilutCreate(comm,&precond);
-	   if(ierr) printf("ERROR: PILUT-BiCGSTAB\n");
-	  
-	   if(param->drop_tol>=0)
-	     HYPRE_ParCSRPilutSetDropTolerance(precond,param->drop_tol);
-	   if(param->nonzeros_to_keep>=0)
-	     HYPRE_ParCSRPilutSetFactorRowSize(precond,param->nonzeros_to_keep);
-
-	   HYPRE_ParCSRBiCGSTABSetPrecond(solver, 
-					  (HYPRE_PtrToParSolverFcn) HYPRE_ParCSRPilutSolve, 
-					  (HYPRE_PtrToParSolverFcn) HYPRE_ParCSRPilutSetup, 
-					  precond);
-	   break;
-	 case 2:
-	   if(rk==0) printf("SOLVER: ParaSails-BicGSTAB\n");
-	   ierr=HYPRE_ParaSailsCreate(comm,&precond);
-	   if(ierr) printf("ERROR: ParaSails-BicGSTAB\n");
-	   HYPRE_ParaSailsSetParams(precond,param->sai_threshold,param->max_levels);
-	   HYPRE_ParaSailsSetFilter(precond,param->sai_filter);	  
-	   HYPRE_ParaSailsSetSym(precond,param->sai_sym);
-
-	   HYPRE_ParCSRBiCGSTABSetPrecond(solver, 
-					   (HYPRE_PtrToParSolverFcn) HYPRE_ParaSailsSolve, 
-					   (HYPRE_PtrToParSolverFcn) HYPRE_ParaSailsSetup, 
-					   precond);
-	   break;
-	case 3:
-       if(rk==0) printf("SOLVER: Schwarz-PCG \n");
-       	 HYPRE_SchwarzCreate(&precond);
-         HYPRE_SchwarzSetVariant(precond,param->variant);
-         HYPRE_SchwarzSetOverlap(precond,param->overlap);
-         HYPRE_SchwarzSetDomainType(precond,param->domain_type);
-       //HYPRE_SchwarzSetRelaxWeight(precond,param->schwarz_rlx_weight);
-       /*HYPRE_BoomerAMGSetOverlap(precond, param->overlap);
-       HYPRE_BoomerAMGSetVariant(precond, param->variant);
-       HYPRE_BoomerAMGSetDomainType(precond, param->domain_type);*/
-
-       HYPRE_BiCGSTABSetPrecond(solver, 
-			   (HYPRE_PtrToSolverFcn) HYPRE_SchwarzSolve, 
-			   (HYPRE_PtrToSolverFcn) HYPRE_SchwarzSetup, 
-			   precond);
-
-       break;
-
-	 
-	 default: break;
-	   
-	 }
-	  
-  	break;
-  
-   case 2:/*USE PCG AS SOLVER*/
-     HYPRE_ParCSRPCGCreate(comm, &solver);
-     HYPRE_ParCSRPCGSetTol(solver, param->solv_tol);
-     HYPRE_PCGSetMaxIter(solver, param->solv_maxiter);   
-     HYPRE_PCGSetPrintLevel(solver, param->solv_prntlevel);
-     
-
-     HYPRE_PCGSetTwoNorm(solver, param->Two_Norm);
-     HYPRE_PCGSetRelChange(solver,param->Rel_change);
-     HYPRE_PCGGetPrecond(solver,&precond);
-     switch (param->precond_id){
-     case 0 : //set BoomerAMG as preconditioner in PCG
-       if(rk==0) printf("SOLVER: AMG-PCG\n");
-	HYPRE_BoomerAMGCreate(&precond);
-     
-      HYPRE_BoomerAMGSetInterpType(precond, param->amg_interptype);
-    
-       HYPRE_BoomerAMGSetTol(precond, param->amg_tol);
-       HYPRE_BoomerAMGSetCoarsenType(precond, param->amg_coarsentype); 
-       HYPRE_BoomerAMGSetMeasureType(precond,param-> measure_type);
-       HYPRE_BoomerAMGSetStrongThreshold(precond, param->amg_strongthreshold);
-
-       HYPRE_BoomerAMGSetTruncFactor(precond,param->trunc_factor);
-
-       HYPRE_BoomerAMGSetMaxIter(precond, param->amg_maxiter);
-       HYPRE_BoomerAMGSetCycleType(precond,param->cycle_type);
-       
-       HYPRE_BoomerAMGSetSmoothType(precond,param->smooth_type);
-       HYPRE_BoomerAMGSetSmoothNumLevels(precond,param->smooth_num_levels);
-       HYPRE_BoomerAMGSetSmoothNumSweeps(precond,param->smooth_num_sweeps);
-       HYPRE_BoomerAMGSetMaxLevels(precond,param->max_levels);
-       HYPRE_BoomerAMGSetMaxRowSum(precond,param->max_row_sum);
-       
-       HYPRE_BoomerAMGSetOverlap(precond, param->overlap);
-       HYPRE_BoomerAMGSetVariant(precond, param->variant);
-       HYPRE_BoomerAMGSetDomainType(precond, param->domain_type);
-       
-     
- 
-       HYPRE_PCGSetPrecond(solver, 
-			     (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSolve, 
-			     (HYPRE_PtrToSolverFcn) HYPRE_BoomerAMGSetup, 
-			     precond);
-
-       break;
-    
-     case 2:
-       if(rk==0) printf("SOLVER: ParaSails-PCG\n");
-         ierr=HYPRE_ParaSailsCreate(comm,&precond);
-       if(ierr) printf("ERROR: ParaSails-PCG\n");
-       HYPRE_ParaSailsSetParams(precond,param->sai_threshold,param->max_levels);
-       HYPRE_ParaSailsSetFilter(precond,param->sai_filter);
-       HYPRE_ParaSailsSetSym(precond,param->sai_sym);
-       HYPRE_PCGSetPrecond(solver, 
-			   (HYPRE_PtrToSolverFcn) HYPRE_ParaSailsSolve, 
-			   (HYPRE_PtrToSolverFcn) HYPRE_ParaSailsSetup, 
-			   precond);
-       break;
-     case 3:
-       if(rk==0) printf("SOLVER: Schwarz-PCG \n");
-       HYPRE_SchwarzCreate(&precond);
-       HYPRE_SchwarzSetVariant(precond,param->variant);
-       HYPRE_SchwarzSetOverlap(precond,param->overlap);
-       HYPRE_SchwarzSetDomainType(precond,param->domain_type);
-      //HYPRE_SchwarzSetRelaxWeight(precond,param->schwarz_rlx_weight);
-       /*HYPRE_BoomerAMGSetOverlap(precond, param->overlap);
-       HYPRE_BoomerAMGSetVariant(precond, param->variant);
-       HYPRE_BoomerAMGSetDomainType(precond, param->domain_type);*/
-
-       HYPRE_PCGSetPrecond(solver, 
-			   (HYPRE_PtrToSolverFcn) HYPRE_SchwarzSolve, 
-			   (HYPRE_PtrToSolverFcn) HYPRE_SchwarzSetup, 
-			   precond);
-
-       break;
-
-     default: break;
-	    }
-    
-     break;
-   case 5:
-     if(rk==0) printf("SOLVER: AMG \n");
-     
-     HYPRE_BoomerAMGCreate(&solver);
-     HYPRE_BoomerAMGSetInterpType(solver, param->amg_interptype);
-     HYPRE_BoomerAMGSetNumSamples(solver, param->gsmg_sample);
-     HYPRE_BoomerAMGSetTol(solver, param->amg_tol);
-     HYPRE_BoomerAMGSetCoarsenType(solver, param->amg_coarsentype); 
-     HYPRE_BoomerAMGSetMeasureType(solver,param-> measure_type);
-     HYPRE_BoomerAMGSetStrongThreshold(solver, param->amg_strongthreshold);
-     HYPRE_BoomerAMGSetTruncFactor(solver,param->trunc_factor);
-     HYPRE_BoomerAMGSetMaxIter(solver, param->amg_maxiter);
-     HYPRE_BoomerAMGSetCycleType(solver,param->cycle_type);
-     HYPRE_BoomerAMGSetRelaxWeight(solver,param->relax_weight);
-     HYPRE_BoomerAMGSetOmega(solver,param->omega);
-    
-     HYPRE_BoomerAMGSetSmoothType(solver,param->smooth_type);
-     HYPRE_BoomerAMGSetSmoothNumLevels(solver,param->smooth_num_levels);
-     HYPRE_BoomerAMGSetSmoothNumSweeps(solver,param->smooth_num_sweeps);
-     HYPRE_BoomerAMGSetMaxLevels(solver,param->max_levels);
-     HYPRE_BoomerAMGSetMaxRowSum(solver,param->max_row_sum);
-	
-     HYPRE_BoomerAMGSetVariant(solver, param->variant);
-    // HYPRE_BoomerAMGSetNumFunctions(solver, param->num_functions);
-     //HYPRE_BoomerAMGSetSchwarzRlxWeight(solver,param->schwarz_rlx_weight);
-     HYPRE_BoomerAMGSetOverlap(solver, param->overlap);
-     HYPRE_BoomerAMGSetVariant(solver, param->domain_type);
-     /* if(param->num_functions>1)
-       HYPRE_BoomerAMGSetDofFunc(solver,param->dof_func);*/
-    
-     break;    
-   case 4:
-     if(rk==0) printf("SOLVER: AMG_HYBRID \n");
-    
-     HYPRE_ParCSRHybridCreate(&solver);
-     HYPRE_ParCSRHybridSetTol(solver, param->amg_tol);
-      
-    HYPRE_ParCSRHybridSetCoarsenType(solver,param->coarsen_type);
-     HYPRE_ParCSRHybridSetStrongThreshold(solver, param->strong_threshold);
-     HYPRE_ParCSRHybridSetTruncFactor(solver,param->trunc_factor);
-     HYPRE_ParCSRHybridSetDSCGMaxIter(solver,param->dscg_max_its);
-     HYPRE_ParCSRHybridSetPCGMaxIter(solver,param->pcg_max_its);
-     HYPRE_ParCSRHybridSetConvergenceTol(solver, param->cf_tol);
-     HYPRE_ParCSRHybridSetSolverType(solver, param->solver_type); 
-  
-     HYPRE_ParCSRHybridSetRelaxWeight(solver,param->relax_weight);
-     HYPRE_ParCSRHybridSetOmega(solver,param->omega);
-     HYPRE_ParCSRHybridSetMaxLevels(solver,param->max_levels);
-     HYPRE_ParCSRHybridSetMaxRowSum(solver,param->max_row_sum);
-    
-     break;
-  
-   case 1:/*GMRES AS SOLVER*/
-     HYPRE_ParCSRFlexGMRESCreate (comm, &solver);
-   
-     HYPRE_ParCSRFlexGMRESSetPrintLevel(solver,VERBOSE);
- 
-     HYPRE_ParCSRFlexGMRESSetKDim(solver,param->solv_kdim);
-     HYPRE_ParCSRFlexGMRESSetMaxIter(solver, param->solv_maxiter );
-     HYPRE_ParCSRFlexGMRESSetTol(solver,param->solv_tol );     
-     HYPRE_FlexGMRESSetLogging(solver, param->solv_log);
-     HYPRE_ParCSRGMRESSetPrintLevel(solver,param->solv_prntlevel);
-     
- //Set Preconditioner
-     switch (param->precond_id){
-     case 0 : //set BoomerAMG as preconditioner
-       if(rk==0) printf("SOLVER: AMG-GMRES\n");
-       HYPRE_BoomerAMGCreate(&precond);
-       
-       HYPRE_BoomerAMGSetInterpType(precond, param->amg_interptype);
-    
-     //  HYPRE_BoomerAMGSetTol(precond, param->amg_tol);
-       HYPRE_BoomerAMGSetCoarsenType(precond, param->amg_coarsentype); 
-       HYPRE_BoomerAMGSetMeasureType(precond,param-> measure_type);
-       HYPRE_BoomerAMGSetStrongThreshold(precond, param->amg_strongthreshold);
-
-       HYPRE_BoomerAMGSetTruncFactor(precond,param->trunc_factor);
-
-       HYPRE_BoomerAMGSetMaxIter(precond, param->amg_maxiter);
-       HYPRE_BoomerAMGSetCycleType(precond,param->cycle_type);
-       
-       HYPRE_BoomerAMGSetSmoothType(precond,param->smooth_type);
-       HYPRE_BoomerAMGSetSmoothNumLevels(precond,param->smooth_num_levels);
-       HYPRE_BoomerAMGSetSmoothNumSweeps(precond,param->smooth_num_sweeps);
-       HYPRE_BoomerAMGSetMaxLevels(precond,param->max_levels);
-       HYPRE_BoomerAMGSetMaxRowSum(precond,param->max_row_sum);
-       
-       HYPRE_BoomerAMGSetOverlap(precond, param->overlap);
-       HYPRE_BoomerAMGSetVariant(precond, param->variant);
-       HYPRE_BoomerAMGSetDomainType(precond, param->domain_type);
-      
-       
-
- 
-       HYPRE_ParCSRFlexGMRESSetPrecond(solver, 
-			     (HYPRE_PtrToParSolverFcn) HYPRE_BoomerAMGSolve, 
-			     (HYPRE_PtrToParSolverFcn) HYPRE_BoomerAMGSetup, 
-			     precond);
-	
-       break;
-     case 4:
-       /*use diagonal scaling as preconditioner*/
-       if(rk==0) printf("SOLVER: DS-GMRES\n");
-	precond = NULL;
-      HYPRE_ParCSRFlexGMRESSetPrecond (solver, 
-			     (HYPRE_PtrToParSolverFcn) HYPRE_ParCSRDiagScale, 
-			     (HYPRE_PtrToParSolverFcn) HYPRE_ParCSRDiagScaleSetup, 
-			     precond);
-	
-       break;
-     case 1:
-       /*Use PILUT as preconditioner*/
-       if(rk==0) printf("SOLVER: PILUT-GMRES\n");
-       ierr=HYPRE_ParCSRPilutCreate(comm,&precond);
-    
-       HYPRE_ParCSRPilutSetMaxIter(precond,param->pmax_iter);
-       if(param->drop_tol>=0)
-	 HYPRE_ParCSRPilutSetDropTolerance(precond,param->drop_tol);
-       if(param->nonzeros_to_keep>=0)
-	 HYPRE_ParCSRPilutSetFactorRowSize(precond,param->nonzeros_to_keep);
-       if(ierr) printf("ERROR: PILUT-GMRES \n");
-      HYPRE_ParCSRFlexGMRESSetPrecond(solver, 
-			     (HYPRE_PtrToParSolverFcn) HYPRE_ParCSRPilutSolve, 
-			     (HYPRE_PtrToParSolverFcn) HYPRE_ParCSRPilutSetup, 
-			     precond);
-       break;
-  
-    case 3:
-       if(rk==0) printf("SOLVER: Schwarz-GMRES \n");
-       HYPRE_SchwarzCreate(&precond);
-       HYPRE_SchwarzSetVariant(precond,param->variant);
-       HYPRE_SchwarzSetOverlap(precond,param->overlap);
-       HYPRE_SchwarzSetDomainType(precond,param->domain_type);
-       //HYPRE_SchwarzSetRelaxWeight(precond,param->schwarz_rlx_weight);
-       /*HYPRE_BoomerAMGSetOverlap(precond, param->overlap);
-       HYPRE_BoomerAMGSetVariant(precond, param->variant);
-       HYPRE_BoomerAMGSetDomainType(precond, param->domain_type);*/
-
-      HYPRE_ParCSRFlexGMRESSetPrecond(solver, 
-			   (HYPRE_PtrToParSolverFcn) HYPRE_SchwarzSolve, 
-			   (HYPRE_PtrToParSolverFcn) HYPRE_SchwarzSetup, 
-			   precond);
-
-       break;    
-   case 2:
-       if(rk==0) printf("SOLVER: ParaSails-GMRES\n");
-       ierr=HYPRE_ParaSailsCreate(comm,&precond);
-	
-       if(ierr) printf("ERROR: ParaSails-GMRES\n");
-       HYPRE_ParaSailsSetParams(precond,param->sai_threshold,param->max_levels);
-       HYPRE_ParaSailsSetFilter(precond,param->sai_filter);
-       HYPRE_ParaSailsSetSym(precond,param->sai_sym);
-	
-       HYPRE_ParCSRFlexGMRESSetPrecond(solver, 
-			   (HYPRE_PtrToParSolverFcn) HYPRE_ParaSailsSolve, 
-			   (HYPRE_PtrToParSolverFcn) HYPRE_ParaSailsSetup, 
-			   precond);
-	
-       break; 
-     }
-     
-   default:
-	
-     break;
-   }
-	
-
-}
-	
-	void Solver(const MatriceMorse<double> &AA,KN_<double> &x,const KN_<double> &b) const  {
-	 ffassert ( &x[0] != &b[0]);
-	 epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-	 int i, i1,i2;
-	 int *row,*row1;
-	 double * b_loc,*X_loc,*rhs,*xx;
-	 n=AA.n;
-
-	 rhs= (double *)malloc(sizeof(double)*n);
-	 xx= (double *)malloc(sizeof(double)*n);
-	 x= (double *)malloc(sizeof(double)*n);
-	 i1=ilower;
-	 i2=iupper; 
-	double t2,t1;
-	
-	
-
-	
-	for(i=0;i<n;i++) rhs[i]=b[i];
-
-	if(param->scale)
-	      for(i = 0; i < n; i++) 
-		rhs[i] *= scaletmpr[i];
-   	
-	b_loc=(double *)malloc(n_loc*sizeof(double));
-	X_loc=(double *)malloc(n_loc*sizeof(double));
-	row=(int *)malloc(n_loc*sizeof(int));
-	row1=(int *)malloc(n_loc*sizeof(int));
-	
-	for(i=i1;i <=i2; i++){
-	// node = maptmp[i];
-	b_loc[i-i1]=rhs[i];
-	X_loc[i-i1]=0.0;  //Initial Guest
-	row[i-i1]=i;  //used to get results later
-	row1[i-i1]=i;
-	}
-       int ierr=0;
-	HYPRE_IJVectorCreate(comm, ilower, iupper, &ij_B);
-	HYPRE_IJVectorCreate(comm, ilower, iupper, &ij_X);
-	
-
-	 HYPRE_IJVectorSetObjectType(ij_B, HYPRE_PARCSR);
-	 HYPRE_IJVectorSetObjectType(ij_X, HYPRE_PARCSR);
-	  
-	
-	
-	 HYPRE_IJVectorInitialize(ij_B);
-	 HYPRE_IJVectorInitialize(ij_X);
-	 
-	 HYPRE_IJVectorSetValues(ij_B, n_loc, row, b_loc); 
-	
-   	 HYPRE_IJVectorSetValues(ij_X, n_loc, row, X_loc);
-	  
-	 HYPRE_IJVectorAssemble(ij_B);
-	 HYPRE_IJVectorAssemble(ij_X);
-       
-	 ierr=HYPRE_IJVectorGetObject(ij_B, (void **) &par_B); 
-        
-	 
-   	ierr=HYPRE_IJVectorGetObject(ij_X, (void **) &par_X);
-         
- 	
-	
-	switch (param->solver_id){
-	case 0 : //BICGSTAB solver
-	   if(param->timing){
-	   time_index1 = hypre_InitializeTiming("BiCGSTAB SETUP");
-	   hypre_BeginTiming(time_index1);
-	 }
-	  HYPRE_ParCSRBiCGSTABSetup (solver, par_A, par_B, par_X);
-	 if(param->timing){
-	      hypre_EndTiming(time_index1);
-	      hypre_PrintTiming("BiCGSTAB SETUP TIME", comm);
-	      hypre_FinalizeTiming(time_index1);
-	      hypre_ClearTiming();}
-
-	   if(param->timing){
-	    time_index1 = hypre_InitializeTiming("ParCSR BICGSTAB Solver");
-	    hypre_BeginTiming(time_index1);}
-
-		  
-	   HYPRE_ParCSRBiCGSTABSolve (solver, par_A, par_B, par_X);
-	   
-	   if(param->timing){
-	      hypre_EndTiming(time_index1);
-	      hypre_PrintTiming("SOLVE PHASE TIMES", comm);
-	      hypre_FinalizeTiming(time_index1);
-	      hypre_ClearTiming();}
-
-
-
-	   HYPRE_ParCSRBiCGSTABGetNumIterations(solver, &num_iter);
-	   HYPRE_ParCSRBiCGSTABGetFinalRelativeResidualNorm(solver, &final_res_norm);
-		
-		  //HYPRE_ParCSRBiCGSTABDestroy(solver);
-                    break;
-	case 1 : //GMRES Solver
-            if(param->timing){
-	   time_index1 = hypre_InitializeTiming("GMRES SETUP");
-	   hypre_BeginTiming(time_index1);
-	   }
-
-	     HYPRE_FlexGMRESSetup(solver, (HYPRE_Matrix)par_A, (HYPRE_Vector)par_B, (HYPRE_Vector)par_X);
-	   if(param->timing){
-	   hypre_EndTiming(time_index);
-      	   hypre_PrintTiming("SETUP PHASE TIME", comm);
-           hypre_FinalizeTiming(time_index);
-       	   hypre_ClearTiming();
-	     }
-	  
-	 
-	    if(param->timing){
-	    time_index1 = hypre_InitializeTiming("ParCSR GMRES Solver");
-	    hypre_BeginTiming(time_index1);
-		
-		}
-
-	 HYPRE_FlexGMRESSolve(solver, (HYPRE_Matrix)par_A, (HYPRE_Vector)par_B, (HYPRE_Vector)par_X);
-	  if(param->timing){
-	    hypre_EndTiming(time_index1);
-	    hypre_PrintTiming("Solve phase times", comm);
-	    hypre_FinalizeTiming(time_index1);
-	    hypre_ClearTiming();}
-
-	 HYPRE_GMRESGetNumIterations(solver, &num_iter);
-	 HYPRE_GMRESGetFinalRelativeResidualNorm(solver, &final_res_norm);
-		
-		//HYPRE_ParCSRGMRESDestroy(solver);
-                    break;
-	case 2 : //PCG
-	   if(param->timing){
-	   time_index1 = hypre_InitializeTiming("PCG SETUP");
-	   hypre_BeginTiming(time_index1);
-	 }
-	
-	  HYPRE_PCGSetup(solver, (HYPRE_Matrix)par_A, (HYPRE_Vector)par_B, (HYPRE_Vector)par_X);
-	   if(param->timing){
-	       hypre_EndTiming(time_index);
-	       hypre_PrintTiming("SETUP PHASE TIME", comm);
-	       hypre_FinalizeTiming(time_index);
-	       hypre_ClearTiming();
-	     }
-	 
-	  if(param->timing){
-	    time_index1 = hypre_InitializeTiming("ParCSR PCG Solve");
-	    hypre_BeginTiming(time_index1);}
-
-	  HYPRE_PCGSolve(solver, (HYPRE_Matrix)par_A, (HYPRE_Vector)par_B, (HYPRE_Vector)par_X); 
-
-	  if(param->timing){
-	    hypre_EndTiming(time_index1);
-	    hypre_PrintTiming("Solve phase times", comm);
-	    hypre_FinalizeTiming(time_index1);
-	    hypre_ClearTiming();}
-
- 	
-	  HYPRE_ParCSRPCGGetNumIterations(solver,&dscg_num_its);
-	  HYPRE_ParCSRPCGGetFinalRelativeResidualNorm(solver,&final_res_norm);
-
-	  break;
-	case 4:
-	   if(param->timing){
-	   time_index1 = hypre_InitializeTiming("HYBRID SETUP");
-	   hypre_BeginTiming(time_index1);
-	 }
-	  HYPRE_ParCSRHybridSetup(solver,par_A,par_B,par_X);
-	   if(param->timing){
-      	  hypre_EndTiming(time_index);
-       	  hypre_PrintTiming("SETUP PHASE TIME", comm);
-     	  hypre_FinalizeTiming(time_index);
-      	  hypre_ClearTiming();
-  	   }
-
-	   if(param->timing){
-	  time_index1 = hypre_InitializeTiming("ParCSR Hybrid Solve");
-	  hypre_BeginTiming(time_index1);}
-
-	  HYPRE_ParCSRHybridSolve(solver,par_A,par_B,par_X);
-	  if(param->timing){
-	  hypre_EndTiming(time_index1);
-	  hypre_PrintTiming("Solve phase times", comm);
-	  hypre_FinalizeTiming(time_index1);
-	  hypre_ClearTiming();}
-
-	  HYPRE_ParCSRHybridGetNumIterations(solver,&num_iter);
-	  HYPRE_ParCSRHybridGetPCGNumIterations(solver,&pcg_num_its);
-	  HYPRE_ParCSRHybridGetDSCGNumIterations(solver,&dscg_num_its);
-	  HYPRE_ParCSRHybridGetFinalRelativeResidualNorm(solver,&final_res_norm);
-	   if(rk==0){
-		        printf("\n");
-         		printf("Iterations = %d\n", num_iter);
-        		printf("PCG_Iterations = %d\n", pcg_num_its);
-		        printf("DSCG_Iterations = %d\n", dscg_num_its);
-		        printf("Final Relative Residual Norm = %e\n", final_res_norm);
-		        printf("\n");
-		      }
-	  break;
-	case 5:
-	   if(param->timing){
-	   time_index1 = hypre_InitializeTiming("BoomerAMG  SETUP");
-	   hypre_BeginTiming(time_index1);
-	 }
-	  HYPRE_BoomerAMGSetup(solver,par_A, par_B,par_X);
-	  if(param->timing){
-	  time_index1 = hypre_InitializeTiming("BoomerAMG SETUP Solve");
-	  hypre_BeginTiming(time_index1);}
-	  HYPRE_BoomerAMGSolve(solver,par_A,par_B,par_X);
-	  if(param->timing){
-	    hypre_EndTiming(time_index1);
-	    hypre_PrintTiming("Solve phase times", comm);
-	    hypre_FinalizeTiming(time_index1);
-	    hypre_ClearTiming();}
-	  break;
-
-	  
-	default :
-	  break;
-	}
-	
-	   
-	   /*Reconstruction of vector*/
-	  delete [] iwork1; delete []mapptr;
-	  iwork1=new int[size+1]; mapptr=new int[size+1];
-	  int disp=0;
-          for(i=0;i<size;i++){
-          iwork1[i]=n/size; if(i==size-1) iwork1[i]=(n/size)+n%size;
-	   mapptr[i]=disp; disp+=iwork1[i];
-	  }
-	  mapptr[i]=disp;
-
-	    HYPRE_IJVectorGetValues(ij_X, n_loc, row1, X_loc);
-	    MPI_Gatherv(X_loc,n_loc, MPI_DOUBLE, xx,iwork1,mapptr,MPI_DOUBLE,0,comm);
-	    MPI_Bcast(xx,n,MPI_DOUBLE,0, comm);
-	     
-	    for(i=0;i<n;i++) {x[i]=xx[i]; if(param->scale) x[i]=x[i]*scaletmpc[i];}
-
-	    if(verbosity==0) {
-	     MPI_Barrier(comm);
-             t2 = dwalltime();
-	     t2=t2-t1;
-	     MPI_Reduce(&t2, &t1, 1, MPI_DOUBLE, MPI_MAX, 0,comm);
-	     MPI_Bcast(&t1, 1, MPI_DOUBLE,0,comm);
-             
-	     if(rk==0){printf("%s%18.6g%s","TIME FOR SOLVING ", fabs(t1) ,"\n \n");
-		       printf("%s%18.6g%s","RELATIVE RESIDU  ", final_res_norm ,"\n \n");	
-			printf("%s%d%s","NUMBER OF ITERATION ", num_iter ," \n \n");
-		      }
-         }
-
-	   
-
-	    if(X_loc!=NULL) free(X_loc);  if(rhs!=NULL) free(rhs); if(xx!=NULL) free(xx);
-	    if(b_loc!=NULL) free(b_loc);  if(row!=NULL) free(row); 
-	    if(iwork1!=NULL) delete [] iwork1; 
-	    if(mapptr!=NULL) delete [] mapptr;
-            }
-	  ~HypreSolver() { 
-	    	if(verbosity){
-	        cout << "~HypreSolver():" << endl;
-  		HYPRE_IJMatrixDestroy(ij_A);
-		HYPRE_IJVectorDestroy(ij_B);
-		HYPRE_IJVectorDestroy(ij_X);
-		switch (param->solver_id){
-                case 0 : //BICGSTAB solver
-          	  	 HYPRE_ParCSRBiCGSTABDestroy(solver);
-			switch(param->precond_id){
-			case 0:  HYPRE_BoomerAMGDestroy(precond); break;
-			case 5:  HYPRE_ParaSailsDestroy(precond); break;
-			case 6:  HYPRE_SchwarzDestroy(precond); break;
-			case 4:  HYPRE_ParCSRPilutDestroy(precond); break;
-			default:   break;
-			
-			}
-			break;
-
-                case 1 : //GMRES Solver
-			 HYPRE_ParCSRFlexGMRESDestroy(solver);
-			switch(param->precond_id){
-			case 0:  HYPRE_BoomerAMGDestroy(precond); break;
-			case 5:  HYPRE_ParaSailsDestroy(precond); break;
-			case 6:  HYPRE_SchwarzDestroy(precond); break;
-			case 4:  HYPRE_ParCSRPilutDestroy(precond); break;
-			default:  break;
-			
-			}
-			break;
-                   
-                case 3 : //PCG
-			 
-			 HYPRE_ParCSRPCGDestroy(solver);
-			switch(param->precond_id){
-			case 0:  HYPRE_BoomerAMGDestroy(precond); break;
-			case 5:  HYPRE_ParaSailsDestroy(precond); break;
-			case 6:  HYPRE_SchwarzDestroy(precond); break;
-			default:  break;
-			}
-			
-                  break;
-		case 4: //AMG-Hybrid
-			 HYPRE_ParCSRHybridDestroy(solver);  break;
-		case 5: //AMG
-			 HYPRE_BoomerAMGDestroy(solver);  break;
-		  default :  break;
-		}
-			}
-	}
- void addMatMul(const KN_<Complex> & x, KN_<Complex> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<Complex> &) (*this) * x; 
-  }
-};
-
-inline MatriceMorse<double>::VirtualSolver *
-BuildHypreSolver(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-    if(verbosity>9)
-      cout << " BuildSolverHypre>" << endl;
-	
-    return new HypreSolver(*A,ds.data_filename, ds.lparams, ds.dparams,(MPI_Comm *)ds.commworld);
-}
-
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-    Init();
-    };*/
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; 
-//DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse to default" << endl;
-    DefSparseSolver<double>::solver =SparseMatSolver_R;
-   
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-        return 1;
-
- 
-
-}
-
-bool SetHypreSolver()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse solver to Hyprempi" << endl;
-    DefSparseSolver<double>::solver  =BuildHypreSolver;
-    TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-    return 1;
-
-
-}
-<<<<<<< HEAD
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  if(verbosity>1)
-    cout << "\n Add: Hyprempi,  defaultsolver defaultsolverHyprempi" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuildHypreSolver;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("defaulttoHyprempi","(",new OneOperator0<bool>(SetHypreSolver));
-}
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
-  
-
-
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/interfacepastix.cpp b/examples++-mpi/interfacepastix.cpp
index 4c74c16..da1e638 100644
--- a/examples++-mpi/interfacepastix.cpp
+++ b/examples++-mpi/interfacepastix.cpp
@@ -183,7 +183,7 @@ void read_datafile_pastixff(const string &datafile, pastix_int_t *iparmtab, doub
 }
 
 // ATTENTION :: pastix_float_t  
-//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
+//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
 
 // CAS DOUBLE SEULEMENT 
 
@@ -249,7 +249,7 @@ public:
     Ncol = AA.m;
     Nrow = AA.n;
   
-    // Avant : on ecrit la transpos�e
+    // Avant : on ecrit la transpos�e
     /*
       ia = (pastix_int_t *) malloc( (Ncol+1)*sizeof(pastix_int_t));
       for(int ii=0; ii < Ncol+1; ii++){
diff --git a/examples++-mpi/interfacepastix.cpp.orig b/examples++-mpi/interfacepastix.cpp.orig
deleted file mode 100644
index 9d2da71..0000000
--- a/examples++-mpi/interfacepastix.cpp.orig
+++ /dev/null
@@ -1,565 +0,0 @@
-/*
-  Interface entre freefem++ et pastix
-*/
-//ff-c++-LIBRARY-dep: double_pastix   blas parmetis metis scotch  mpi fc
-//ff-c++-cpp-dep: 
-#include <mpi.h>
-#include  <iostream>
-using namespace std;
-   
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-
-
-// #include <ctype.h>
-// #include <stdio.h>
-// #include <stdlib.h>
-// #include <unistd.h>
-// //#include <pthread.h>
-// #include <string.h>
-// #include <time.h>
-// #include <sys/time.h>
-// #include "mpi.h"
-   
-// #include <assert.h>
-// #include "pastix.h"
-// #include "cscd_utils.h"
-// #include "read_matrix.h"
-
-#include <assert.h>
-extern "C"{
-#include "pastix.h"
-}
-//#include "cscd_utils.h"
-//#include "read_matrix.h"
-
-#undef memFree_null
-#define memFree_null(x) {if (x ==NULL) {fprintf(stdout,"%s:%d freeing NULL\n",__FILE__,__LINE__);} free(x); x=NULL;}
-
-#define STR_SIZE 256
-
-static pastix_int_t * pastixint(int * ii){ return (pastix_int_t*) (void *) ii;} 
-static pastix_float_t * pastixfloat(double * ii){ return (pastix_float_t*) (void *) ii;} 
-
-typedef struct pastix_param {
-  pastix_data_t          *pastix_data; /*Pointer used by PaStiX to keep information alive between calls */
-  MPI_Comm                comm;        /* Communicator used by PaStiX                                    */
-  pastix_int_t            Ncol;        /* Size of the Matrix                                             */
-  pastix_int_t           *ia;          /* Index of first element of each column in ja and avals          */  
-  pastix_int_t           *ja;          /* Rows of the unknows of the matrix                              */
-  pastix_float_t         *avals;       /* Values of the matrix                                           */
-  pastix_int_t           *perm;        /* Permutation used for re-numbering of the unknowns              */
-  pastix_int_t           *invp;        /* Inverse permutation                                            */
-  pastix_float_t         *rhs;         /* Right hand side                                                */
-  pastix_int_t           *iparm;       /* Integer parameters                                             */
-  double                 *dparm;       /* Floating parameters                                            */
-} pastix_param_t;
-
-
-
-void
-Morse_to_CSC(int m, int n, int nnz, 
-	     double *a, int *colind, int  *rowptr,
-	     pastix_float_t **at, pastix_int_t **rowind, 
-	     pastix_int_t **colptr)
-{
-    register int i, j, col, relpos;
-    pastix_int_t *marker;
-
-    /* Allocate storage for another copy of the matrix. */
-    *at     = (pastix_float_t *) malloc(sizeof(pastix_float_t)*nnz);
-    *rowind = (pastix_int_t *) malloc(sizeof(pastix_int_t)*nnz);
-    *colptr = (pastix_int_t *) malloc(sizeof(pastix_int_t)*(n+1));
-    marker  = (pastix_int_t *) malloc(sizeof(pastix_int_t)*n);
-    
-    for (i = 0; i < n; ++i)
-      marker[i] = 0;
-    /* Get counts of each column of A, and set up column pointers */
-    for (i = 0; i < m; ++i)
-	for (j = rowptr[i]; j < rowptr[i+1]; ++j) ++marker[colind[j]];
-    (*colptr)[0] = 0;
-    for (j = 0; j < n; ++j) {
-	(*colptr)[j+1] = (*colptr)[j] + marker[j];
-	marker[j] = (*colptr)[j];
-    }
-
-    /* Transfer the matrix into the compressed column storage. */
-    for (i = 0; i < m; ++i) {
-	for (j = rowptr[i]; j < rowptr[i+1]; ++j) {
-	    col = colind[j];
-	    relpos = marker[col];
-	    (*rowind)[relpos] = i;
-	    (*at)[relpos] = a[j];
-	    ++marker[col];
-	}
-    }
-
-    free(marker);
-}
-
-static const int MAX_CHAR_PER_LINE=256;
-void read_datafile_pastixff(const string &datafile, pastix_int_t *iparmtab, double *dparmtab){
- 
-  FILE*   m_File;
-  int     i = 0;
-  char    szbuff[MAX_CHAR_PER_LINE];
-  char*   token;
-
-  char filename[datafile.size()+1];  
-  strcpy( filename, datafile.c_str()); 
-
-  m_File = fopen(filename,"rt");
-
-  if(!m_File)
-    {
-      printf("error in reading filename %s\n",&filename);
-    }
-
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");
-  
-  if( !(strcmp(token,"iparm") == 0) ){
-    printf("freefem++: error in reading iparm parameter for pastix (see strcuture of ffpastix_iparm_dparm.txt) \n");
-    exit(1);
-  }
-  else{
-    printf("freefem++: reading iparm parameter for pastix \n");    
-  }
-  while(!feof(m_File) && i < 64)
-    {   
-      fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-      token = strtok(szbuff," /#!\t\n");
-      iparmtab[i] = (pastix_int_t)atol(token);
-      i++;
-    }
-
-  i=0;
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");  
-  if( !(strcmp(token,"dparm") == 0) ){
-    printf("freefem++: error in reading dparm parameter for pastix (see strcuture of ffpastix_iparm_dparm.txt) \n");
-    exit(1);
-  }
-  else{
-    printf("freefem++: reading dparm parameter for pastix \n");    
-  }
-  while(!feof(m_File) && i < 64)
-    {   
-      fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-      token = strtok(szbuff," /#!\t\n");
-      dparmtab[i] = atof(token);
-      i++;
-    }
- 
-  fclose(m_File);
-
-#ifdef OOC
-/*   if (iparmtab[IPARM_OOC_THREAD] > 1) */
-    iparmtab[IPARM_OOC_THREAD] = 1;
-#endif
-  /* On empeche le 2d avec NUMA_ALLOC */
-#ifdef NUMA_ALLOC
-  if (iparmtab[IPARM_DISTRIBUTION_LEVEL] != 0)
-    {
-      errorPrint("2D not available with NUMA allocation\n");
-      exit(-1);
-    }
-#endif
-}
-
-// ATTENTION :: pastix_float_t  
-//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
-
-// CAS DOUBLE SEULEMENT 
-
-
-class dSolvepastixmpi :   public MatriceMorse<double>::VirtualSolver   {
-  
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-  
-
-  int paraoption;
-  int myid, mpi_size;
-  int Nrow;
-  int mpi_flag;
-  int init_raff;
-  int thrd_flag;
-  int SYM;
-  
-  string data_option;
-  
-  mutable pastix_int_t    iparm[64];
-  mutable double          dparm[64];
-  mutable pastix_int_t    Ncol;
-  mutable pastix_int_t   *ia;
-  mutable pastix_int_t   *ja;
-  mutable pastix_float_t *avals;
-  mutable pastix_int_t   *loc2glob;
-  //char           *Type    = NULL;
-  //char           *RhsType = NULL;
-  mutable pastix_float_t *rhs;
-  mutable pastix_int_t   *perm;
-  mutable pastix_int_t   *invp;
-  mutable pastix_data_t  *pastix_data;
-  
-
-public:
-
-  dSolvepastixmpi(const MatriceMorse<double> &AA, string datafile, KN<long> &param_int, KN<double> &param_double, 
-		  KN<long> &pperm_r, KN<long> &pperm_c) : 
-    data_option(datafile) 
-  { 
-    //int m;
-    //int ierr;
-    struct timeval  tv1, tv2;
-   
-    ia    = NULL;
-    ja    = NULL;
-    avals   = NULL;
-    loc2glob = NULL;
-    rhs     = NULL;
-    pastix_data = NULL;
-    
-    // matrix assembled on host
-    MPI_Comm_rank(MPI_COMM_WORLD, &myid);
-    printf("- Rang MPI : %d\n", myid);
-    MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
-    // SYMETRIQUE
-    mpi_flag  = 0;
-    thrd_flag = 0;
-        
-    Ncol = AA.m;
-    Nrow = AA.n;
-  
-    // Avant : on ecrit la transpos�e
-    /*
-      ia = (pastix_int_t *) malloc( (Ncol+1)*sizeof(pastix_int_t));
-      for(int ii=0; ii < Ncol+1; ii++){
-      ia[ii] = AA.lg[ii]+1;
-      }
-      assert( ia[Ncol]-1 == AA.nbcoef );
-      
-      ja = (pastix_int_t *) malloc((ia[Ncol]-1)*sizeof(pastix_int_t));
-      for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = AA.cl[ii]+1;
-      
-      
-      if( sizeof(pastix_float_t) == sizeof(double) ){
-      avals = (pastix_float_t *) malloc( (ia[Ncol]-1)*sizeof(pastix_float_t));
-      for(int ii=0; ii < ia[Ncol]-1; ii++)
-      avals[ii] = AA.a[ii];
-      }
-    */    
-    // AA.cl : indices des colonnes
-    // AA.lg : pointeurs des lignes
-    Morse_to_CSC( AA.n , AA.m, AA.nbcoef, AA.a, AA.cl, AA.lg, &avals, &ja, &ia);
-    // ia : pointeurs des colonnes
-    // ja : indices des lignes
-    
-    cout << "AA.n= "<< AA.n << " AA.m=" <<  AA.m << " AA.nbcoef=" << AA.nbcoef << endl;
-    
-    for(int ii=0; ii < Ncol+1; ii++){
-      ia[ii] = ia[ii]+1;
-    }
-    assert( ia[Ncol]-1 == AA.nbcoef );
-    for(int ii=0; ii < ia[Ncol]-1; ii++){
-      ja[ii] = ja[ii]+1; 
-    }
-       
-    perm = (pastix_int_t *) malloc(Ncol*sizeof(pastix_int_t));
-    invp = (pastix_int_t *) malloc(Ncol*sizeof(pastix_int_t));
-    
-    rhs = (pastix_float_t *) malloc(Ncol*sizeof(pastix_float_t));
-    
-    // reading permutation given by the user
-    if(pperm_r) 
-      for(int ii=0; ii < Ncol; ii++)
-	perm[ii] = pperm_r[ii];
-    if(pperm_c)  
-      for(int ii=0; ii < Ncol; ii++)
-	invp[ii] = pperm_c[ii];
-   
-
-    // CAS DE LA  MATRICE NON DISTRIBUER
-    pastix_int_t init_raff;
-    fprintf(stdout,"-- INIT PARAMETERS --\n");
-    
-    
-
-    // reading iparm from array    
-    if(!data_option.empty()) read_datafile_pastixff(data_option,iparm,dparm);
-    else if(param_int || param_double){
-      if( param_int ) 
-      {
-	cout << "read param_int" << endl;
-	assert(param_int.N() == 64);
-	for(int ii=0; ii<64; ii++) 
-	  iparm[ii] = param_int[ii];
-	iparm[IPARM_MODIFY_PARAMETER] = API_YES;
-      }
-      if( param_double ) 
-      {
-	cout << "read param_double" << endl;
-	assert(param_double.N() == 64);
-	for(int ii=0; ii<64; ii++) 
-	  dparm[ii] = param_double[ii];
-      }
-    }  
-    else{
-      iparm[IPARM_MODIFY_PARAMETER] = API_NO;
-      cout << "initialize parameter" << endl;
-    }
-  
-    iparm[IPARM_START_TASK] = API_TASK_INIT;
-    iparm[IPARM_END_TASK]   = API_TASK_INIT;
-    iparm[IPARM_SYM] = API_SYM_NO; // Matrix is considered nonsymetric
-    
-    pastix(&pastix_data, MPI_COMM_WORLD, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm); 
-    fprintf(stdout,"-- FIN INIT PARAMETERS --\n");
-    init_raff = iparm[IPARM_ITERMAX];
-    
-    fflush(stdout);
-    /* Passage en mode verbose */
-    
-    iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    if( !param_int && data_option.empty() ){
-      iparm[IPARM_MATRIX_VERIFICATION] = API_YES;
-      iparm[IPARM_REFINEMENT] = API_RAF_GMRES;
-      iparm[IPARM_INCOMPLETE] = API_NO;
-    }
-
-    if( !param_double && data_option.empty()){
-      dparm[DPARM_EPSILON_REFINEMENT] = 1e-12;
-      dparm[DPARM_EPSILON_MAGN_CTRL] = 1e-32;
-    }
-
-    SYM = AA.symetrique; 
-    cout << "SYM = "<< SYM << endl;
-    // SYMETRIQUE
-    if( SYM == 1 ){
-      iparm[IPARM_SYM] = API_SYM_YES;
-      //iparm[IPARM_FACTORIZATION] = API_FACT_LDLT;
-    }
-    if( SYM == 0 ){
-      iparm[IPARM_SYM] = API_SYM_NO;
-      //iparm[IPARM_FACTORIZATION] = API_FACT_LU;
-    }
-    
-    /* Scotch */
-    fprintf(stdout,"-- Scotch --\n");
-    fflush(stdout);
-    iparm[IPARM_START_TASK] = API_TASK_ORDERING;
-    iparm[IPARM_END_TASK]   = API_TASK_ORDERING; 
-    pastix(&pastix_data, MPI_COMM_WORLD, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    
-    /* Fax */
-    fprintf(stdout,"-- Fax --\n");
-    iparm[IPARM_START_TASK] = API_TASK_SYMBFACT;
-    iparm[IPARM_END_TASK]   = API_TASK_SYMBFACT;
-    pastix(&pastix_data, MPI_COMM_WORLD, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    
-    /* Blend */
-    fprintf(stdout,"-- Blend --\n");
-    iparm[IPARM_START_TASK] = API_TASK_ANALYSE;
-    iparm[IPARM_END_TASK]   = API_TASK_ANALYSE;
-    pastix(&pastix_data, MPI_COMM_WORLD, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    
-    if( SYM == 1 ){
-      //iparm[IPARM_SYM] = API_SYM_YES;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LDLT;
-    }
-    if( SYM == 0 ){
-      //iparm[IPARM_SYM] = API_SYM_NO;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LU;
-    }
-
-    /* Factorisation */
-    iparm[IPARM_START_TASK] = API_TASK_NUMFACT;
-    iparm[IPARM_END_TASK]   = API_TASK_NUMFACT;
-    gettimeofday(&tv1, NULL);
-    fprintf(stdout,"-- SOPALIN --\n");
-    pastix(&pastix_data, MPI_COMM_WORLD, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call factorization : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));
-    
-  
-    
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]-1;
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]-1;
-  }
-  void Solver(const MatriceMorse<double> &AA,KN_<double> &x,const KN_<double> &b) const  {
-  
-    struct timeval  tv1, tv2;
-     // index for pastix
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]+1;
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]+1;
-
-    // give value of the second member
-    for(int ii=0; ii < Ncol; ii++)
-      rhs[ii] = b[ii];
-    
-    //fprintf(stdout,"SOLVE STEP %ld (in FACTORIZE STEP %ld)\n",(long)ii,(long)jj);
-    
-    /* updo */
-    iparm[IPARM_START_TASK] = API_TASK_SOLVE;
-    iparm[IPARM_END_TASK]   = API_TASK_SOLVE;
-    iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    gettimeofday(&tv1, NULL);
-    pastix(&pastix_data, MPI_COMM_WORLD, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call updown : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));    
-    
-    //for(int jj=0; jj < Ncol; jj++)
-    //  cout << "rhs["<< jj << "]=" << rhs[jj] << endl;
-    
-    
-    //fprintf(stdout,"RAFF STEP %ld (in FACTORIZE STEP %ld)\n",(long)ii,(long)jj);
-    /* raff */
-
-    
-    iparm[IPARM_START_TASK] = API_TASK_REFINE;
-    iparm[IPARM_END_TASK]   = API_TASK_REFINE;
-    //iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    iparm[IPARM_ITERMAX]    = init_raff;
-    gettimeofday(&tv1, NULL);
-    pastix(&pastix_data, MPI_COMM_WORLD, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call refinement : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));
-    
-    for(int ii=0; ii < Ncol; ii++)
-      x[ii] = rhs[ii];
-   
-    // index for freefem
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]-1;
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]-1;
-    
-  }
-
-  ~dSolvepastixmpi(){
-    /* mem free */
-    iparm[IPARM_START_TASK] = API_TASK_CLEAN;
-    iparm[IPARM_END_TASK]   = API_TASK_CLEAN;
-    pastix(&pastix_data, MPI_COMM_WORLD, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    
-    if( sizeof(pastix_int_t) != sizeof(int) )
-      {
-	memFree_null(ia);
-	memFree_null(ja);
-      }
-    /* Free mem no longer necessary */
-    memFree_null(rhs);
-   
-  }
-  
-  void addMatMul(const KN_<double> & x, KN_<double> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<double> &) (*this) * x; 
-  }
-
-};
-
-MatriceMorse<double>::VirtualSolver *
-BuildSolverpastixmpi(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-    if(verbosity>9)
-    cout << " BuildSolverpastixmpi<double>" << endl;
-    return new dSolvepastixmpi(*A,ds.data_filename, 
-			       ds.lparams, ds.dparams, ds.perm_r, ds.perm_c);
-}
-
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-    Init();
-    };*/ 
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-//DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity)
-	cout << " SetDefault sparse to default" << endl;
-    DefSparseSolver<double>::solver =SparseMatSolver_R;
-    //DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-    return false;
-}
-
-bool Setpastixmpi()
-{
-    if(verbosity)
-	cout << " SetDefault sparse solver to pastixmpi" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverpastixmpi;
-    //DefSparseSolver<Complex>::solver =BuildSolverpastixmpi;    
-    TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-    return false;
-}
-
-
-
-<<<<<<< HEAD
-
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  //SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: pastixmpi,  defaultsolver defaultsolverpastixmpi" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuildSolverpastixmpi;
-  //DefSparseSolver<Complex>::solver =BuildSolverpastixmpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("defaulttopastixmpi","(",new OneOperator0<bool>(Setpastixmpi));
-}
-<<<<<<< HEAD
-
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/mpi-cmaes.cpp.orig b/examples++-mpi/mpi-cmaes.cpp.orig
deleted file mode 100644
index 2a4d9ed..0000000
--- a/examples++-mpi/mpi-cmaes.cpp.orig
+++ /dev/null
@@ -1,405 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Sylvain Auliac
-// E-MAIL   : auliac at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-//ff-c++-LIBRARY-dep: mpi 
-//ff-c++-cpp-dep: ../examples++-load/cmaes.cpp -I../examples++-load
-
-/* 
-	This is a freefem interface of the Hansen's CMA-ES C optimizer.
-	The class CMAES is a quick C++ interface for the contents of the C files
-	then follow the real FreeFem++ stuff.
-*/
-
-
-#include  <iostream>
-using namespace std;
-#include "ff++.hpp"
-#include "mpi.h"
-#include "cmaes_interface.h"
-
-
-
-template<class T> struct MPI_TYPE {};
-template<> struct MPI_TYPE<long>      {static const MPI_Datatype  TYPE(){return MPI_LONG;}};
-template<> struct MPI_TYPE<int>      {static const MPI_Datatype TYPE(){return MPI_INT;}};
-template<> struct MPI_TYPE<double>    {static const MPI_Datatype TYPE(){return MPI_DOUBLE;}};
-template<> struct MPI_TYPE<char>    {static const MPI_Datatype TYPE(){return MPI_BYTE;}};
-
-
-class CMAES //Abstract class, because the fitness function prototype may differ from users to users
-{
-	public:
-		//typedef double (*FFT)(double const *); //Fitness Function Type
-		CMAES() : pop(0),fitvals(0),evo() {}
-		CMAES(int d,double *xstart,double *stddev,long seed,int lambda,const char *ipf="initials.par") : pop(0),fitvals(0),evo()
-		{
-			fitvals = init(d,xstart,stddev,seed,lambda,ipf);
-			cout << SayHello() << endl;
-		}
-		virtual ~CMAES() {exit();}
-		
-		void resume_distribution(char *filename) {return cmaes_resume_distribution(&evo, filename);}
-		double * const * & SamplePopulation() {return pop = cmaes_SamplePopulation(&evo);}
-		double * UpdateDistribution() {return cmaes_UpdateDistribution(&evo,fitvals);}
-		const char * TestForTermination() const {return cmaes_TestForTermination(&evo);}
-		double * const * & ReSampleSingle(int index) {return pop = cmaes_ReSampleSingle(&evo,index);}
-		double const * ReSampleSingle_old(double *rgx) {return cmaes_ReSampleSingle_old(&evo,rgx);}
-		void UpdateEigensystem(int flgforce) {return cmaes_UpdateEigensystem(&evo, flgforce);}
-		virtual void PopEval() =0;
-		//{for(int i=0;i<popsize();++i) fitvals[i] = ff(pop[i]);} //the thing to parralelize
-		
-		double axisratio() const {return cmaes_Get(&evo,"axisratio");}	//between lengths of longest and shortest principal axis of the distribution ellipsoid 
-		int eval() const {return floor(cmaes_Get(&evo,"eval"));}				//number of function evaluations
-		double fitness() const {return cmaes_Get(&evo,"fitness");}			//recent best function evaluation
-		double fbestever() const {return cmaes_Get(&evo,"fbestever");}  //ever best function value
-		int generation() const {return floor(cmaes_Get(&evo,"generation"));}
-		int maxeval() const {return floor(cmaes_Get(&evo,"maxeval"));}	//maximal number of function evaluations
-		int maxgen() const {return floor(cmaes_Get(&evo,"maxgen"));}		//maximal number of generations
-		double maxaxislength() const {return cmaes_Get(&evo,"maxaxislength");}
-		double minaxislength() const {return cmaes_Get(&evo,"minaxislength");}
-		double maxstddev() const {return cmaes_Get(&evo,"maxstddev");}
-		double minstddev() const {return cmaes_Get(&evo,"minstddev");}
-		int dimension() const {return floor(cmaes_Get(&evo,"dimension"));}
-		int popsize() const {return floor(cmaes_Get(&evo,"lambda"));}
-		double sigma() const {return cmaes_Get(&evo,"sigma");}
-		double * diagC() const {return const_cast<double*>(cmaes_GetPtr(&evo,"diag(C)"));}
-		double * diagD() const {return const_cast<double*>(cmaes_GetPtr(&evo,"diag(D)"));}
-		double * stddev() const {return const_cast<double*>(cmaes_GetPtr(&evo,"stddev"));}
-		double * xbestever() const {return const_cast<double*>(cmaes_GetPtr(&evo,"xbestever"));}
-		double * xbest() const {return const_cast<double*>(cmaes_GetPtr(&evo,"xbest"));}
-		double * xmean() const {return const_cast<double*>(cmaes_GetPtr(&evo,"xmean"));}
-		
-		void ReadSignals(char const * filename) const {cmaes_ReadSignals(&evo,filename);}
-		char * SayHello() const {return cmaes_SayHello(&evo);}
-		void WriteToFile(char const * keyword,char const * output_filename) const {cmaes_WriteToFile(&evo,keyword,output_filename);}
-		
-		virtual double * operator() () 
-		{
-			//ReadSignals("signals.par");
-			while(!TestForTermination())
-			{
-				SamplePopulation();
-				PopEval();
-				UpdateDistribution();
-				//ReadSignals("signals.par");
-			}
-			cout << "Stop : " << TestForTermination() << endl;
-			return xmean();
-		}
-		cmaes_t& optimizer() {return evo;}
-	protected:
-		double * const * pop;
-		double * fitvals;
-		double*& init(int dimension,double *xstart,double *stddev,long seed,int lambda,const char *input_parameter_filename)
-			{return fitvals = cmaes_init(&evo,dimension,xstart,stddev,seed,lambda,input_parameter_filename);}
-	private:
-		void exit() {cmaes_exit(&evo);}
-		mutable cmaes_t evo;
-};
-
-
-
-
-/*
-	Now comes the FreeFem ++ part :
-*/
-
-extern Block *currentblock;
-
-typedef double R;
-
-class OptimCMA_ES : public OneOperator 
-{
-	public:
-		typedef KN<R> Kn;
-		typedef KN_<R> Kn_;
-		const int cas;
-
-
-		class ffcalfunc  //   to call the freefem function .. J 
-		{ 
-			public:
-				Stack stack;
-				Expression JJ,theparame;
-				mutable int counter;
-    
-				ffcalfunc(Stack s,Expression JJJ,Expression epar) : stack(s),JJ(JJJ), theparame(epar), counter(0) {}
-				double J(Kn_  x) const 
-				{
-					++counter;
-					KN<double> *p=GetAny<KN<double> *>( (*theparame)(stack) );
-					*p=x;
-					double ret= GetAny<R>( (*JJ)(stack));
-					WhereStackOfPtr2Free(stack)->clean();
-					return  ret; 
-				}
-		}; 
-		
-		
-		class CMA_ES_MPI : public CMAES
-		{
-			public:
-				typedef KN<double> Rn;
-				typedef KN_<double> Rn_;
-		
-		
-				//CMA_ES_MPI() : CMAES(),x(0),fit(0) {}
-				/*CMA_ES(ffcalfunc &_ff,int d,Rn &xstart,double *stddev,long seed,int lambda)
-					: CMAES(d,xstart.n ? xstart:0,stddev,seed,lambda,"non"),x(&xstart),fit(&_ff) {}
-				CMA_ES(ffcalfunc &_ff,int d,Rn &xstart,const Rn &stddev,long seed,int lambda) 
-					: CMAES(d,xstart.n ? xstart:0,stddev,seed,lambda,"non"),x(&xstart),fit(&_ff) {}*/
-					
-				CMA_ES_MPI(ffcalfunc &_ff,Rn &xstart,const Rn &stddev,long seed,int lambda,MPI_Comm *_com)
-					: CMAES(),x(0),fit(&_ff),com(_com),myid(0),nproc(1),my_number_of_fitness_eval(0),index(0)
-				{
-					MPI_Comm_size(*com,&nproc);
-					MPI_Comm_rank(*com,&myid);
-					x = &xstart;
-					init(x->n,xstart.n ? xstart:0,stddev,seed,lambda,"non");
-					my_number_of_fitness_eval = (lambda/nproc) + (myid < (lambda%nproc) ? 1:0);
-					index = new int[nproc];
-					for(int i=0;i<nproc;++i) 
-					{
-						int inofe = lambda/nproc + ((i-1)<(lambda%nproc) ? 1:0);
-						index[i] = i>0 ? index[i-1]+inofe : 0;
-					}	
-					if(myid==0) cout << SayHello() << endl;
-				}
-				CMA_ES_MPI(ffcalfunc &_ff,Rn &xstart,const Rn &stddev,long seed,int lambda,MPI_Comm *_com,const char *ifname)
-					: CMAES(),x(0),fit(&_ff),com(_com),myid(0),nproc(1),my_number_of_fitness_eval(0),index(0)
-				{
-					MPI_Comm_size(*com,&nproc);
-					MPI_Comm_rank(*com,&myid);
-					x = &xstart;
-					init(x->n,xstart.n ? xstart:0,stddev,seed,lambda,ifname);
-					my_number_of_fitness_eval = (lambda/nproc) + (myid < (lambda%nproc) ? 1:0);
-					index = new int[nproc];
-					for(int i=0;i<nproc;++i) 
-					{
-						int inofe = lambda/nproc + ((i-1)<(lambda%nproc) ? 1:0);
-						index[i] = i>0 ? index[i-1]+inofe : 0;
-					}	
-					if(myid==0) cout << SayHello() << endl;
-				}
-				~CMA_ES_MPI()
-				{
-					if(index) delete [] index;
-					index=0;
-				}
-		
-				void PopEval() 
-				{
-					//cout << endl << "***** in popeval myid = " << myid << "*****" << endl;
-					for(int i=0;i<my_number_of_fitness_eval;++i) 
-					{
-						Rn_ popi(pop[i+index[myid]],dimension()); 
-						fitvals[i+index[myid]] = fit->J(popi);
-					}
-				}
-				double * operator() () 
-				{
-					while(!TestForTermination())
-					{
-						MPI_Barrier(*com);
-						SamplePopulation();//Every proc samples its own population... but only the one from proc 0 is used. Fortunately, this is a quick computation regarding the time spent on fitness function evaluation
-						for(int i=0;i<popsize();++i) MPI_Bcast(pop[i],dimension(),MPI_DOUBLE,0,*com); //send the population to every proc
-						PopEval(); //each proc do its work gently
-						for(int i=0;i<nproc;++i) 
-						{
-							int nn = i<nproc-1 ? index[i+1] - index[i] : popsize()/nproc;
-							MPI_Bcast(&fitvals[index[i]],nn,MPI_DOUBLE,i,*com);
-						}
-						UpdateDistribution();//There again, only proc 0 would really need to update its distribution
-					}
-					if(myid==0) cout << "Stop : " << TestForTermination() << endl;
-					return xmean();
-				}
-			private:
-				CMA_ES_MPI(const CMA_ES_MPI &);
-				CMA_ES_MPI& operator=(const CMA_ES_MPI &);
-				ffcalfunc *fit;
-				Rn *x;
-				MPI_Comm *com;
-				int nproc,myid,my_number_of_fitness_eval;
-				int * index;
-		};
-
-  
-
-		class E_CMA_ES: public E_F0mps 
-		{ 
-			public:
-				const int cas;
-				static basicAC_F0::name_and_type name_param[] ;
-				static const int n_name_param =12;
-				Expression nargs[n_name_param];
-				Expression X;
-				C_F0 inittheparam,theparam,closetheparam; 
-				Expression JJ;
-				long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-				R arg(int i,Stack stack,R a) const{ return nargs[i] ? GetAny<R>( (*nargs[i])(stack) ): a;}
-      
-				E_CMA_ES(const basicAC_F0 & args,int cc) : cas(cc)
-				{
-					int nbj= args.size()-1;
-					Block::open(currentblock); // make a new block to 
-					X = to<Kn*>(args[nbj]);
-					C_F0 X_n(args[nbj],"n");
-					//  the expression to init the theparam of all 
-					inittheparam = currentblock->NewVar<LocalVariable>("the parameter",atype<KN<R> *>(),X_n);
-					theparam = currentblock->Find("the parameter"); //  the expression for the parameter
-					args.SetNameParam(n_name_param,name_param,nargs);
-					const  Polymorphic * opJ=0;
-					if (nbj>0)
-					{
-						opJ=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-						assert(opJ);
-					}      
-					JJ= to<R>(C_F0(opJ,"(",theparam));
-					closetheparam=currentblock->close(currentblock);   // the cleanning block expression 
-				}
-    
-				virtual AnyType operator()(Stack stack)  const
-				{
-					double cost = 1e100;
-					WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005 
-					Kn &x = *GetAny<Kn *>((*X)(stack));	
-					long n=x.N();	
-					long seed =	arg(0,stack,0L); //The seed for random numbers generation
-					double initialStdDev = arg(1,stack,0.3); //Initial standard deviation
-					KN<double> iSD(n,1.);
-					iSD *= initialStdDev;
-					KN<double> initialStdDevs(nargs[2] ? GetAny<KN_<double> >((*nargs[2])(stack)) : (KN_<double>)iSD);
-					//cout << "dans le dylib :" << initialStdDevs << endl;
-					double stopTolFun = arg(3,stack,1.E-12);
-					double stopTolFunHist = arg(4,stack,0.);
-					double stopTolX = arg(5,stack,0.);
-					double stopTolUpXFactor = arg(6,stack,1.E3);
-					long popsize = arg(7,stack,4 + (long) floor(3*log(n)));
-					pcommworld vcommworld=0;
-					if (nargs[8]) vcommworld = GetAny<pcommworld>((*nargs[8])(stack));
-					
-					MPI_Comm mpiCommWorld = MPI_COMM_WORLD;
-					MPI_Comm * commworld= vcommworld ? (MPI_Comm *) vcommworld : & mpiCommWorld ;
-					//long mu = arg(8,stack,popsize/2);
-					
-					long iprint = verbosity;	
-					ffcalfunc ffJ(stack,JJ,theparam);
-					
-					//cout << endl << "ATTENTION :  " << *commworld << endl;
-					
-					int myid=0,nproc=1;
-					
-					MPI_Comm_size(*commworld,&nproc);
-					MPI_Comm_rank(*commworld,&myid);
-					
-					
-					
-					//cout << endl << "nbr de proc : " << nproc << " -- myid=" << myid << " -- world id=" << wr <<  endl;
-					
-					CMA_ES_MPI *optim=0;
-					if(nargs[9]) optim = new CMA_ES_MPI(ffJ,x,initialStdDevs,seed,popsize,commworld,(GetAny<string*>((*nargs[9])(stack)))->c_str());
-					else optim = new CMA_ES_MPI(ffJ,x,initialStdDevs,seed,popsize,commworld);
-					if(!nargs[9])
-					{
-						optim->optimizer().sp.stopTolFun = stopTolFun;
-						optim->optimizer().sp.stopTolFunHist = stopTolFunHist;
-						optim->optimizer().sp.stopTolX = stopTolX;
-						optim->optimizer().sp.stopTolUpXFactor = stopTolUpXFactor;
-						long meval = arg(10,stack,static_cast<long>(optim->maxeval()));
-						long mgen = arg(11,stack,static_cast<long>(optim->maxgen()));
-						optim->optimizer().sp.stopMaxFunEvals = meval;
-						optim->optimizer().sp.stopMaxIter = mgen;
-					}
-					
-					(*optim)();
-					cost = optim->fitness();
-					x = KN_<double>(optim->xbestever(),optim->dimension());
-					
-					delete optim;
-					closetheparam.eval(stack); // clean memory 
-					WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-					return cost; //SetAny<long>(0);  Modif FH  july 2005       
-				}
-				    
-				operator aType () const { return atype<double>();}         
-		};
-  
-		E_F0 * code(const basicAC_F0 & args) const {return new E_CMA_ES(args,cas);}
-  
-		OptimCMA_ES(int c) :   OneOperator(atype<double>(),atype<Polymorphic*>(),atype<KN<R> *>()),cas(c){}
-};
-
-basicAC_F0::name_and_type  OptimCMA_ES::E_CMA_ES::name_param[]= 
-{
-	{"seed",						&typeid(long) },
-	{"initialStdDev",		&typeid(double) },
-	{"initialStdDevs",	&typeid(KN_<double>) },
-	{"stopTolFun",			&typeid(double) },
-	{"stopTolFunHist",	&typeid(double) },
-	{"stopTolX",				&typeid(double) },
-	{"stopTolUpXFactor",&typeid(double) },
-	{"popsize",					&typeid(long) },
-	{"comm",						&typeid(pcommworld)},
-	{"paramFile",				&typeid(string*) },
-	{"stopMaxFunEval",  &typeid(long) },
-	{"stopMaxIter",  &typeid(long) }
-	
-	//{"mu",							&typeid(long) }
-};
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-  Init();
-  };*/
-
-
-static void Load_Init()  
-=======
-class Init { public:
-  Init();
-};
-
-static Init init;  //  une variable globale qui serat construite  au chargement dynamique 
-
-Init::Init()  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  Global.Add("cmaesMPI","(",new OptimCMA_ES(1)); 
-
-}
-
-
-
-
-
-
-<<<<<<< HEAD
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/parms_FreeFem.cpp.orig b/examples++-mpi/parms_FreeFem.cpp.orig
deleted file mode 100644
index 759c217..0000000
--- a/examples++-mpi/parms_FreeFem.cpp.orig
+++ /dev/null
@@ -1,1083 +0,0 @@
-// ORIG-DATE: 04/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : INRIA FUTUR
-// AUTHOR   : Guy Atenekeng
-// E-MAIL   : Guy_Antoine_Atenekeng_Kahou at lri.fr
-//
-// ALH - need reference to MPI to have the proper include for mpi.h on MacOS10.8
-//ff-c++-LIBRARY-dep: parms metis blas mpifc fc mpi pthread
-//ff-c++-cpp-dep: 
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-#include <mpi.h>
-#include  <iostream>
-using namespace std;
-
-
-#define MCW MPI_COMM_WORLD
-
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-
-/* Explain here what foobar does */
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include "psparslib.h"
-#include "generaldefs.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-extern "C" {
-
-  // ALH - 24/7/13 - we need to include metis/defs.h explicitely
-  // because pARMS also contains an include file called defs.h and
-  // both include directories are specified on the command line to
-  // compile this file.  Without this only one defs.h would be
-  // included, the one from the first package specified above on the
-  // line [[LIBRARY-dep]]
-
-  #include "../download/include/metis/defs.h"
-
-  #include "metis.h"
-}
-
-#ifdef WIN32
-
-// ALH - this activates the Windows DLL default export mechanism
-
-__declspec(dllexport) int not_used;
-
-// ALH - 24/7/13 - instanciate some global symbols which are not found by default in MS MPI Fortran libraries
-
-MPI_Fint* _imp__MPI_F_STATUS_IGNORE;
-MPI_Fint* _imp__MPI_F_STATUSES_IGNORE;
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#define BUFLEN 100
-#define NORHS 0
-
-#define BUFLEN 100
-
-//This functions come from pARMS package and consist to scale matrix 
-
-
-
-
-
-
-
-class parm_param {
-public:
-	mutable PrePar prepar;
-	mutable IterPar ipar;
-	mutable int sol_type;
-	mutable int  iov,scale, unsymm,method;
-	mutable int solver;
-	mutable int VERBOSE;
-	
-
-	public: parm_param(){
-		PARMS_malloc(prepar,1,_PrePar);
-		PARMS_malloc(ipar,1,_IterPar);  
-		/*----------------------------------------------------------------------  *
-		 * This function  sets some default  parameters just to get  started with *
-		 * pARMS.  There are  two arrays  which define  the parameters  in pARMS. *
-		 * Because ther\ e are so many methods, the number of parameters may seem *
-		 * overwhelming.. However\ , not all  are used. For example when add_ilut *
-		 * is  used  only  two parameters  are  r\  equired  which are  the  drop *
-		 * tolerance and the  max fill per row.. This  function s\ ets everything *
-		 * so that all the methods can be safely tested. YS -                     *
-		 *                                                                        *
-		 *------------------------------------------------------------------------*/
-		  int i; 
-		/*------------------------------------------------------------------------*/
-		  for (i=1; i<18; i++)
-		    ipar->ipar[i] = 0;
-		/* parameters to be set for the solver -- not all of these are used --  
-		     depending on the method selected -                                   */
-		/* parameters associated with various accelerators (inner/outer)          */
-		  ipar->ipar[0] = 3;       /* nlev in arms when used                      */
-		  ipar->ipar[1] = 20;      /* block size in arms when used                */
-		  ipar->ipar[5] = 30;      /* Outer iteration Krylov subs. dimension      */
-		  ipar->ipar[6] = 200;     /* Max. outer iterations                       */
-		  ipar->ipar[3] = 3;       /* Inner iteration Krylov subs. dimension      */
-		  ipar->ipar[4] = 3;       /* Max. inner iterations  */
-		  
-		  ipar->pgfpar[0] = 0.01;  /* tolerance for inner iteration when used     */
-		  ipar->pgfpar[1] = 1.e-10;/* tolerance for outer iteration               */
-		/* preconditioning parameters                                             */
-		  prepar->tolind = 0.1;    /* tolerance used for diag dom. filtration alg.*/
-		  prepar->lfil[0] = 20;    /* lfil0 (ilut, iluk, and arms)                */
-		  prepar->lfil[4] = 20;    /* lfil for Schur complement const.            */ 
-		  prepar->lfil[5] = 20;    /* lfil for Schur complement const.            */ 
-		  prepar->droptol[0]=.001; /* droptol0 (ilut, iluk, and arms)             */
-		  prepar->droptol[4]=.001; /* droptol for Schur complement const.         */ 
-		  prepar->droptol[5]=.001; /* droptol for Schur complement const.         */ 
-		  prepar->mc = 1;          /* multicoloring or not in ILU when used       */
-		 //Integer parameter
-		 iov=0; scale=1; unsymm=1; method= 2; VERBOSE=0; /*no statistic infos has print*/
-		 /*VERBOSE=1 Only informations on convergence will be print*/
-		 /*VERBOSE=2 Only informations on time will be print*/
-		  solver=0;
-		 
-		  memcpy(prepar->ipar, ipar->ipar, sizeof(int)*18);
-
-		  for (i=1; i<4; i++) {
-		    prepar->droptol[i] = prepar->droptol[0]; 
-		    prepar->lfil[i] = prepar->lfil[0];
-		  }
-		  prepar->lfil[6] = prepar->lfil[5];
-		  ipar->in_iters = 0;
-		 
-		/*-------------------- done  */                       
-	}
-	public: parm_param(const KN<long> &param_int, const KN<double> &param_double)
-	{
-		 int i; 
-		PARMS_malloc(prepar,1,_PrePar);
-		PARMS_malloc(ipar,1,_IterPar);  
-		for (i=1; i<18; i++)
-		 ipar->ipar[i] = 0;
-		
-		if(param_int.N()>0){if((param_int[0]<0)||(param_int[0]>2)) 
-		{printf("%s","WRONG SOLVER INDEX WE SET DEFAULT ONE \n"); solver=0; } else solver=param_int[0];}else solver=0;
-
-		if(param_int.N()>1){if((param_int[1]<0)||(param_int[1]>13)) 
-		{printf("%s","WRONG INDEX FOR PRECONDITIONER, WE SET DEFAULT ONE \n"); method=2; } 
-		else if((param_int[1]>=0)||(param_int[1]<=13)) method=param_int[1];}else method=2;
-		
-		if(param_int.N()>2){if(param_int[2]>0) ipar->ipar[5]=param_int[2]; else ipar->ipar[5]=30;}
-		else ipar->ipar[5]=30; /* Outer iteration Krylov subs. dimension      */
-
-
-		if(param_int.N()>3){if(param_int[3]>0) ipar->ipar[6]=param_int[3]; else ipar->ipar[6]=1000;}
-		else ipar->ipar[6]=1000; /* Max. outer iterations    */
-
-
-		if((method==3)||(method==7)||(method==11)) {if(param_int.N()>4) {if(param_int[4]>0) ipar->ipar[0]=param_int[4]; 
-		else ipar->ipar[0]=3;}	else ipar->ipar[0]=3;  } /* nlev in arms when used                      */
-
-		if(param_int.N()>5){ if(param_int[5]>0) ipar->ipar[3]=param_int[5]; else ipar->ipar[3]=3;}
-		else ipar->ipar[3]=3; /* Inner iteration Krylov subs. dimension */
-
-		if(param_int.N()>6){if(param_int[6]>0) ipar->ipar[4]=param_int[6]; else ipar->ipar[4]=3;}
-		else ipar->ipar[4]=3;  /* Max. inner iterations  */
-
-		if(param_int.N()>7){if(param_int[7]>=0) unsymm=param_int[7]; else unsymm=0;} else unsymm=0;
-
-		if(param_int.N()>8) {if(param_int[8]>=0) iov=param_int[8]; else iov=0;} else iov=0;
-		if(param_int.N()>9) {if(param_int[9]>0) scale=param_int[9]; else scale=1;}else scale=1;
-
-		if(param_int.N()>10){if(param_int[10]>0) ipar->ipar[1]=param_int[10]; else ipar->ipar[1]=20; }else ipar->ipar[1]=20;
-		 
-			
-
-		if(param_int.N()>11){if(param_int[11]>0) prepar->lfil[0]=param_int[11]; else prepar->lfil[0]=20;}
-		else prepar->lfil[0]=20; /* lfil0(ilut, iluk, and arms)   */
-
-		if(param_int.N()>12){if(param_int[12]>0) prepar->lfil[4]=param_int[12]; else prepar->lfil[4]=20;}
-		else prepar->lfil[4]=20; /* lfil for Schur complement const.   */
-
-		if(param_int.N()>13){if(param_int[13]>0) prepar->lfil[5]=param_int[13]; else prepar->lfil[5]=20;}
-		else prepar->lfil[5]=20; /* lfil for Schur complement const.   */		
-
-		if(param_int.N()>14){if(param_int[14]>0) prepar->mc=param_int[14]; else prepar->mc=1; }
-		else prepar->mc=1; 
-
-		if(param_int.N()>15){if(param_int[15]>0) ipar->in_iters=param_int[15]; else ipar->in_iters=0; }
-		else ipar->in_iters=0;
-		
-		if(param_int.N()>16){if(param_int[16]>0) VERBOSE=param_int[16]; else VERBOSE=0; }else VERBOSE=0;
-
-
-			
-
-
-		if(param_double.N()>0){if(param_double[0]>0) ipar->pgfpar[1]=param_double[0]; else ipar->pgfpar[1]=1.e-08;}
-		ipar->pgfpar[1]=1.e-08; /* tolerance for outer iteration               */
-
-		if(param_double.N()>1){if(param_double[1]>0) ipar->pgfpar[0]=param_double[1]; else ipar->pgfpar[0]=0.01;}
-		else ipar->pgfpar[0]=0.01;  /* tolerance for inner iteration when used     */
-
-		if(param_double.N()>2) {if(param_double[2]>0) prepar->tolind = param_double[2]; else prepar->tolind=0.1;}
-		else prepar->tolind=0.1; /* tolerance used for diag dom. filtration alg.*/
-
-		if(param_double.N()>3){if(param_double[3]>0) prepar->droptol[0]=param_double[3]; else prepar->droptol[0]=.001;}
-		else prepar->droptol[0]=.001;	/* droptol0 (ilut, iluk, and arms) */
-		if(param_double.N()>4) {if(param_double[4]>0) prepar->droptol[4]=param_double[4]; else prepar->droptol[4]=.001;}
-		else prepar->droptol[4]=.001; /* droptol for Schur complement const.         */ 
-
-		if(param_double.N()>5){if(param_double[5]>0) prepar->droptol[5]=param_double[5]; else prepar->droptol[5]=.001;}
-		else prepar->droptol[5]=.001; /* droptol for Schur complement const.         */ 
-
-		
-
-		memcpy(prepar->ipar, ipar->ipar, sizeof(int)*18);
-		  for (i=1; i<4; i++) {
-		    prepar->droptol[i] = prepar->droptol[0]; 
-		    prepar->lfil[i] = prepar->lfil[0];
-		  }
-		  prepar->lfil[6] = prepar->lfil[5];
-		 
-		 
-	}
-
-  public: parm_param(string datafile,DistMatrix dm)
-	{
-	  FILE *fp;
-	  char buf[BUFLEN], meth_buf[BUFLEN];
-	  int num;
-	  PARMS_malloc(prepar,1,_PrePar);
-  	  PARMS_malloc(ipar,1,_IterPar);  
-
-          parm_param();
-
-	  char * filename=new char[datafile.length()+1]; 
-                strcpy(filename,datafile.c_str()); 
- 	 /* read parameters for preconditioner and iteration from file  'filename' */
-  /*  ---- start modification by MS
-   */
- 	 if( (fp = fopen(filename, "r")) == NULL ){
-          fprintf(stderr, "Cannot open file inputs\n");
-    	  PARMS_Final();exit(1);
-    	}
-	  for (num=0; num< 18; num++)
-	    ipar->ipar[num] = 0; 
-
-  	num = 1;
-
-  while(fgets(buf, BUFLEN, fp) != NULL) {
-    switch(num) {
-     case 1:                             /* solver */
-      sscanf(buf, "%d", &solver);
-	if((solver!=0)&&(solver!=1)&&(solver!=2))
-	{printf("%s","WRONG SOLVER INDEX, WE SET DEFAULT ONE \n"); solver=0;}
-      break;
-    case 2:                             /* preconditionner */
-      sscanf(buf,"%s",meth_buf); 
-      method = assignprecon(meth_buf, dm);
-	if((method<0)||(method>13)) 
-	{printf("%s","WRONG INDEX FOR PRECONDITIONER, WE SET DEFAULT ONE \n"); method=2; }		
-      break;
-    case 3:                             /* im (Outer Krylov subs dim) */
-      sscanf(buf,"%d",&ipar->ipar[5]);
-      break;	
-    case 4:                             /* im (Outer Krylov subs dim) */
-      sscanf(buf,"%d",&ipar->ipar[6]);
-      break;	
-    case 5:                             /* outer tol */
-      sscanf(buf,"%lf",&ipar->pgfpar[1]);
-      break;	
-    case 6:                             /* inner tol */
-      sscanf(buf,"%lf",&ipar->pgfpar[0]);
-      break;
-    case 7:                             /* unsym */
-      sscanf(buf, "%d", &unsymm);
-      break;
-    case 8:                             /* inim (inned Krylov subs dim) */
-      sscanf(buf, "%d", &ipar->ipar[3]);
-      break;
-    case 9:                             /* Max. inner iterations     */ 
-      sscanf(buf,"%d",&ipar->ipar[4]);
-      break;
-    case 10:                             /* nlev   */
-      sscanf(buf, "%d", &iov);
-      break;
-    case 11:                             /*  scale  */ 
-      sscanf(buf,"%d",&scale);
-      break;
-    case 12:                             /* For printing result */ 
-      sscanf(buf, "%d", &VERBOSE);
-      break;
-    case 13:                             /* lfil0 (ilut, iluk, and arms) */
-      sscanf(buf, "%d", &prepar->lfil[0]);
-      break;
-    case 14:                             /* lfil 4 (schur construction) */
-      sscanf(buf, "%d", &prepar->lfil[4]);
-      break;
-    case 15:                             /* lfil 5 (ILUT for Schur) */
-      sscanf(buf, "%d", &prepar->lfil[5]);
-      break;
-    case 16:                             /* bsize   */
-      sscanf(buf,"%d",&ipar->ipar[1]);
-      break;
-    case 17:                              /* tolerance used for diag dom. filtration alg.*/  
-      sscanf(buf,"%lf",&prepar->tolind);
-      break;
-    case 18:                             /*droptol (0) -- simliar to lfil0*/
-      sscanf(buf, "%lf", &prepar->droptol[0]);
-      break;
-    case 19:                             /*droptol (4) -- simliar to lfil4*/
-      sscanf(buf, "%lf", &prepar->droptol[4]);
-      break;
-    case 20:                             /*droptol (5) -- simliar to lfil5*/
-      sscanf(buf, "%lf", &prepar->droptol[5]);
-      break;
-    case 21:                             /* multicoloring or not */ 
-      sscanf(buf, "%d", &prepar->mc);
-      break;
-    
-    default:
-      break;
-    }
-    num++;
-  }
-  fclose(fp);
-  
-  memcpy(prepar->ipar, ipar->ipar, sizeof(int)*18);
-  
-  prepar->droptol[1] = prepar->droptol[2] = prepar->droptol[3] =
-    prepar->droptol[0]; 
-  prepar->droptol[6] = prepar->droptol[5];
-  
-  prepar->lfil[1] = prepar->lfil[2] = prepar->lfil[3] =
-    prepar->lfil[0];
-  prepar->lfil[6] = prepar->lfil[5];
-  ipar->in_iters = 0; free(filename);
-
-	}
-	~parm_param(){
-		free(prepar); free(ipar); 
-	
-	}
-};
-
-
-int assignprecon( char *precon_str, DistMatrix dm) 
-{
-/*------------------------------------------------------------------ 
-     create preconditioner handler  
-   * precon    --  preconditioning handler
-   * add_ilu0  --  additive schwarz preconditioner with ilu0 as local
-                   preconditioner
-   * add_ilut  --  additive schwarz preconditioner with ilut as local
-                   preconditioner
-   * add_iluk  --  additive schwarz preconditioner with iluk as local
-                   preconditioner
-   * add_arms  --  additive schwarz preconditioner with arms as local
-                   preconditioner
-   * lsch_ilu0 --  schur complement preconditioner with ilu0 as local
-                   preconditioner		  
-   * lsch_ilut --  schur complement preconditioner with ilut as local
-                   preconditioner		  
-   * lsch_iluk --  schur complement preconditioner with iluk as local
-                   preconditioner		  
-   * lsch_arms --  schur complement preconditioner with arms as local
-                   preconditioner
-   * sch_gilu0 --  parallel ilu0 preconditioner
-   * sch_sgs   --  Schur-Symmetric GS preconditioner
-   *------------------------------------------------------------------*/
-  /* set the method label for preconditioning and parameter for inner
-     iteration -- actual labels (int) are defined in SRC/ARMS/data.h */ 
-
-  int ierr, method;
-
-  ierr = 0; method=0;
-
-  if(!strcmp(precon_str, "add_ilu0")) method = add_ilu0;
-  else if(!strcmp(precon_str, "add_ilut")) method = add_ilut;
-  else if(!strcmp(precon_str, "add_iluk")) method = add_iluk;
-  else if(!strcmp(precon_str, "add_arms")) method = add_arms;
-  else if(!strcmp(precon_str, "lsch_ilu0")) method = lsch_ilu0;
-  else if(!strcmp(precon_str, "lsch_ilut")) method = lsch_ilut;
-  else if(!strcmp(precon_str, "lsch_iluk")) method = lsch_iluk;
-  else if(!strcmp(precon_str, "lsch_arms")) method = lsch_arms;
-  else if(!strcmp(precon_str, "rsch_ilu0")) method = rsch_ilu0;
-  else if(!strcmp(precon_str, "rsch_ilut")) method = rsch_ilut;
-  else if(!strcmp(precon_str, "rsch_iluk")) method = rsch_iluk;
-  else if(!strcmp(precon_str, "rsch_arms")) method = rsch_arms;
-  else if(!strcmp(precon_str, "sch_sgs")) method = sch_sgs;
-  else if(!strcmp(precon_str, "sch_gilu0")) method = sch_gilu0;
-  else ierr = 1; 
-  char pcrM[40];
-  strcpy(pcrM,"invalid choice for the preconditioner \n");
- 
-  if (ErrHand(ierr, dm, pcrM)) 
-      exit(1) ; 
-  return method;cout << "Cette resolution semble prendre du temps" << endl;
-
-  }
-
-
-
-#define minint(a, b)       ( (a) < (b) ? (a) : (b) )
-#define maxint(a, b)       ( (a) > (b) ? (a) : (b) )
-#define max(a, b)       ( (a) > (b) ? (a) : (b) )
-#define min(a, b)   ( a < b ? (a) : (b) )
-#define fabsmin(a, b)   ( fabs(a) < fabs(b) ? (a) : (b) )
-#define fabsmax(a, b)   ( fabs(a) > fabs(b) ? (a) : (b) )
-
-
-
-class dSolvePARMS :   public MatriceMorse<double>::VirtualSolver   {
-
-	char 					mat_domain[BUFLEN];
-    	int *riord;
-	mutable int                     n, nnz, nloc;
-
-	int 					iov, scale, unsymm, method,solver,VERBOSE;
-	string data_option;
-	int                     rk, size;
-	mutable double 					*rhs1, res;
-	//double 					t1, t2, t3, t4;
-	double 					*u, *v;
-	int 					job,i1,i2;
-	mutable DistMatrix 				dm;  		//distributed matrix object
-	mutable PrePar 					prepar;  
-	mutable PreCon 					precon;  	//structure for preconditioner
-	mutable IterPar 				ipar;		//structure for iteration
-	mutable  int * maptmp1, *mapptr1;
-	double eps, tol_pivot_sym,tgv, tol_pivot,epsr;
-	mutable double t1,t2,t3,t4;
-	mutable char * meth[14];
-	mutable int *maptmp, *mapptr,*iwork1,*iwork;
-	mutable double *scaletmpr, *scaletmpc;
-	mutable MPI_Comm comm;
-	char *p;
-//Constructor construct the distribute matrix and also preconditionner
-public:
-  dSolvePARMS(const MatriceMorse<double> &AA,string datafile,  KN<long> &param_int,  KN<double> &param_double,  MPI_Comm  * mpicommw)
-	{
-	int n,i,job,nnz,ierr,tmp;
-	int *ptr2,*id_rows2;
-	double *vals2;
-	double *AAv;
-	int *p, *pr;	
-	
-
-	int 	 j,    node;
-	/* Initialize PARMSARSLIB environment */
-	 if(mpicommw==NULL){
-	comm=MPI_COMM_WORLD;
-	}
-	else
-	comm= *mpicommw;
-	// comm=MPI_COMM_WORLD;
-	 ierr = MPI_Comm_rank(comm, &rk);
-	 ierr = MPI_Comm_size(comm, &size);
-	 parm_param * pp;
-	/*Differents preconditionners use*/
-	 meth[0]=(char *)malloc(sizeof(char)*9); strcpy(meth[0],"add_ilu0"); meth[1]=(char *)malloc(sizeof(char)*9); strcpy(meth[1],"add_ilut"); 
-	 meth[2]=(char *)malloc(sizeof(char)*9); strcpy(meth[2],"add_iluk"); meth[3]=(char *)malloc(sizeof(char)*9); strcpy(meth[3],"add_arms");
-	 // FFCS - fixed "buffer overflow" warning by JHunt
-	 meth[4]=(char *)malloc(sizeof(char)*10); strcpy(meth[4],"lsch_ilu0"); meth[5]=(char *)malloc(sizeof(char)*10); strcpy(meth[5],"lsch_ilut");  
-	 meth[6]=(char *)malloc(sizeof(char)*10); strcpy(meth[6],"lsch_iluk"); meth[7]=(char *)malloc(sizeof(char)*10); strcpy(meth[7],"lsch_arms"); 	
-	 meth[8]=(char *)malloc(sizeof(char)*10); strcpy(meth[8],"rsch_ilu0"); meth[9]=(char *)malloc(sizeof(char)*10); strcpy(meth[9],"rsch_ilut");
-         meth[10]=(char *)malloc(sizeof(char)*10); strcpy(meth[10],"rsch_iluk"); meth[11]=(char *)malloc(sizeof(char)*10); strcpy(meth[11],"rsch_arms");
-	 meth[12]=(char *)malloc(sizeof(char)*10); strcpy(meth[12],"sch_gilu0"); meth[13]=(char *)malloc(sizeof(char)*8); strcpy(meth[13],"sch_sgs");
-	/*storage format of the matrix*/
-         char pcrM[4];
-	strcpy(pcrM,"csr");
-	
-	/*- Create Distributed Matrix dm in CSR format */
-		
-	CreateMat(&dm, pcrM);
-	
-	dm->comm->mpi_comm=comm;dm->comm->myproc=rk; dm->comm->npro=size; 
-
-	/*------ Create PrePar /iterPar pointer */
-	
-		
-	/*---- parameters for preconditioning and iteration*/
-	if((datafile.empty())&&(param_double==NULL)&&(param_int==NULL)){
-		if(dm->comm->myproc==0)
-		printf("%s","We are going to set default parameters because user did not specify any one  \n \n ");
-		
-		parm_param * pp= new parm_param(); 
-		 
-		iov=pp->iov; scale=pp->scale; unsymm=pp->unsymm; 
-		
-		method= assignprecon(meth[pp->method], dm);
-		
-		prepar=pp->prepar; ipar=pp->ipar; VERBOSE=pp->VERBOSE; solver=pp->solver;
-	
-	}
-	if(((param_double!=NULL)||(param_int!=NULL))&&(datafile.empty()))
-	{
-		if(dm->comm->myproc==0)
-  		  printf("%s","User have set parameter inside vector of parameter  \n");	
-
-	        parm_param * pp= new parm_param(param_int, param_double); 
-		iov=pp->iov; scale=pp->scale; unsymm=pp->unsymm; method= assignprecon(meth[pp->method], dm); 
-		prepar=pp->prepar; ipar=pp->ipar; VERBOSE=pp->VERBOSE; solver=pp->solver;
-              
-	}
-	if((!datafile.empty())&&((param_double==NULL)&&(param_int==NULL)))
-	{
-		if(dm->comm->myproc==0)
-		printf("%s","User have set parameter inside file of parameter  \n");
-		parm_param * pp= new parm_param(datafile, dm); 
-		iov=pp->iov; scale=pp->scale; unsymm=pp->unsymm; method=pp->method; 
-		prepar=pp->prepar; ipar=pp->ipar; VERBOSE=pp->VERBOSE; solver=pp->solver;
-	}
-	if(((solver==1)||(solver==2))&&((method!=0)||(method!=4))) 
-	{
-		if(dm->comm->myproc==0) 
-		printf("%s%s%s", "WE NOT GARANTI THE PRECONDITIONNER WILL WORK BECAUSE ACCELARATOR ", meth[method] ," NO NEED INNER ITERATION \n");
-		//MPI_Finalize();
-	}
-	if((dm->comm->myproc==0)&&(VERBOSE>=0)){
-		printf("###########################################\n");
-		printf("######### CALLING PARMS PACKAGE ###########\n");
-		if(solver==0)
-		printf("########### SOLVER : FGMRES #######\n");
-		if(solver==1)
-		printf("########### SOLVER : BiCGStab #######\n");
-		if(solver==2)
-		printf("########### SOLVER : DGMRES #######\n");
-		printf("%s%s%s","########### PRECONDITIONNER : ",  meth[method], "\n" );
-		printf("###########################################\n");
-	}
-
-	/*----from zero-based to 1-based before calling pARMS routine----*/
-	n=AA.n; nnz=AA.nbcoef;
-	PARMS_malloc(pr,n+1,int) ;
-	PARMS_malloc(p,nnz,int) ;
-	PARMS_malloc(AAv,nnz,double) ;
-
-	for(i=0;i<nnz;i++){
-	AAv[i]=AA.a[i];
-	p[i]=AA.cl[i];
-	if(i<=n) pr[i]=AA.lg[i];
-	}
-        
-	for(j=0; j<pr[n]; j++){
-		p[j]+=1;
-	}	
-	for(i=0; i<=n; i++){
-		pr[i]+=1;
-	}
-//	pr[0]=1;
-
-	double * vals1;
-	int * id_rows1, *ptr1;
-	/*-------- transpose the matrix to CSC format--*/
-	PARMS_malloc(vals1,nnz,double) ;
-	PARMS_malloc(id_rows1,nnz,int) ;
-	PARMS_malloc(ptr1,n+1,int) ;
-	job=1;
-	i=1;
-	
-	csrcsc(&n, &job, &i, AAv, p, pr, vals1, id_rows1, ptr1);
-	
- /*----------- compute C=A+B where B=transpose(A) -------*/	
-	
-	 if(unsymm) {
-	
-	PARMS_malloc(iwork,n,int);
-	PARMS_malloc(vals2, 2*nnz, double);
-	PARMS_malloc(id_rows2, 2*nnz, int);
-	PARMS_malloc(ptr2, n+1, int);
-	
-	for(i=0; i<nnz; i++) AAv[i]=0.0;
-	job=1;
-	i1=2*nnz; 
-
-	aplb(&n, &n, &job, vals1, id_rows1, ptr1, AAv, p, pr, 
-		  vals2, id_rows2, ptr2, &i1, iwork, &ierr);
-
-	
-
-	if(ierr) printf("error: in aplb, ierr=%d\n",ierr);
-	nnz=ptr2[n]-1;
-	if (!rk)
-        printf("Matrix pattern has been symmetrized; added %d nonzeros.\n",
-           ptr2[n]-pr[n]);
-
-	memcpy(pr, ptr2, (n+1)*sizeof(int));
-	p=(int *)realloc(p, nnz*sizeof(int));
-	AAv=(double *)realloc(AAv, nnz*sizeof(double));
-	memcpy(p, id_rows2, nnz*sizeof(int));
-	memcpy(AAv, vals2, nnz*sizeof(double));
-	free(vals1); free(vals2); free(id_rows1); free(id_rows2); free(ptr1); free(ptr2);
-	
-	}
-
-	 else {
-/*-------- simply overwrite A with B (transposed matrix)  */
-          nnz = ptr1[n]-1;
-      memcpy(pr, ptr1, (n+1)*sizeof(int));
-      memcpy(p, id_rows1, nnz*sizeof(int));
-      memcpy(AAv,  vals1, nnz*sizeof(double));
-    }
-	
-
-	/*------ scale the matrix */
-	  if(scale) {
-	    job = 1;
-	    tmp = 2; /*-- compute 2-norm */
-	    PARMS_malloc(scaletmpr,n,double) ; PARMS_malloc(scaletmpc,n,double) ;
-	    roscal(&n,&job,&tmp,AAv,p,pr,scaletmpr,AAv,p,pr,&ierr);
-	    if (ierr) fprintf(stderr, "Error: in roscal, ierr = %d\n", ierr);
-	
-	    coscal(&n,&job,&tmp,AAv,p,pr,scaletmpc,AAv,p,pr,&ierr);
-	    if (ierr) fprintf(stderr, "Error: in coscal, ierr = %d\n", ierr);
-	  } /*--- end of branch on scaling */
-
-	/* -------Matrix partitioning : Use Metis ----------*/
-	
-	PARMS_malloc(riord, n, int);
-	int wgtflag=0, numflag=1, volume;
-	
-	int option[5];
-	option[0]=0;
-	if(size>1){
-		METIS_PartGraphVKway(&n, pr, p, NULL, NULL, &wgtflag, &numflag,&size, option, &volume, riord);
-	}
-	else if(size==1){
-		for (i=0; i<n; i++) riord[i]=1;
-	}
-	
-	PARMS_malloc(iwork, n, int);
-	PARMS_malloc(maptmp, n, int);
-	PARMS_malloc(mapptr, size+1, int);
-	PARMS_malloc(iwork1, size+1, int);	
-	for(i=0; i<size; i++){
-		iwork[i]=0;
-	}
-	for(j=0; j<n; j++){
-		iwork[riord[j]-1]++;
-		
-	}
-	numflag=1;
-	for(i=0; i<size; i++){
-		mapptr[i]=numflag;
-		numflag+=iwork[i];
-	}
-	mapptr[size]=numflag;
-	
-	for (i=0; i<size; i++){
-		iwork[i]=mapptr[i]-1;
-	}
-	for(i=0; i<n; i++){
-		maptmp[iwork[riord[i]-1]]=i+1;
-		iwork[riord[i]-1]++;
-	}
-  	
-	
-	if(iov == 0) {
-/*------ in non-overlapping case, simply copy the node-to-processor info */
- 	   maptmp1= maptmp ;
-   	   mapptr1 = mapptr;
-  	}
-
-	if(iov != 0) {
-/*----- expand sub-domain if overlapping is desired */
-	int maxmp;
-   	 maxmp = 15*n;
-	
-    	 PARMS_malloc(maptmp1,maxmp,int) ;
-    	 PARMS_malloc(mapptr1,size+1,int) ;
-         expnddom(&n, &size, p, pr, maptmp, mapptr, maptmp1, &maxmp,mapptr1, iwork);   	
-	free(maptmp); free(mapptr);
-  }
-	
-	
-/*---map from global node lables to local ---*/
-	getmap(dm, maptmp1, mapptr1, &n);	
-/*---prepare for extraction of local submatrix  --*/
-	int tmp0=1;
-	tmp =1;
-	i1=mapptr1[rk];
-	i2=mapptr1[rk+1]-1;
-	nloc=i2-i1+1;
-	nnz=0;
-
-	for(i=i1; i <=i2; i++){
-		node=maptmp1[i-1];
-		nnz += pr[node]-pr[node-1];
-		
-	}
-	PARMS_malloc(vals1, nnz, double);
-	PARMS_malloc(id_rows1, nnz, int);
-	PARMS_malloc(ptr1, nloc+1, int);
-	/*---- extract the submatrix to be owned by rk */
-	
-
-	DPERM1(&i1,&i2,AAv,p,pr,vals1,id_rows1,ptr1,maptmp1,&tmp0,&tmp);
-	
-	
-	
-
-	 free(p); p=NULL; free(pr); pr=NULL; free(AAv); AAv=NULL;
-
-/* --- CSR to Distributed matrix structure ---*/
-	
-	 CopyCsrToDm(dm, vals1, id_rows1, ptr1);
-	 free(vals1); free(id_rows1); free(ptr1);
-	 vals1=NULL; id_rows1=NULL; ptr1=NULL;
-	
-/*--- create boundary information */
- 	 bdry(dm);
-
-/*--- set up the local data strucutre for the sparse matrix */
-	 setup(dm);
-	
-	
-	
-/*check consistency of input parameters for 'rsch*' and 'lsch*' preconditioners.
-	 -- at least one iteration on inner iterative solver should be performed for
-	 -- them, e.g., inner convergence tolerance; inner number of iterations and
-	 -- the inner subspace size should be nonzero.
-*/
-	
-	
-	 if (!strncmp(meth[method], "lsch", 4) || !strncmp(meth[method], "rsch", 4) ){
-		 ierr = 0;
-		 if (ipar->pgfpar[0] == 0.0){
-			 if (rk == 0)
-				 fprintf(stderr, "Error: Tolerance for inner solver\n");
-			 ierr = 1;
-		 }
-		 if (ipar->ipar[3] == 0){
-			 if (rk == 0)
-				 fprintf(stderr, "Error: Krylov subspace size for inner solver\n");
-			 ierr = 1;
-		 }
-		 if (ipar->ipar[4] == 0){
-			 if (rk == 0)
-				 fprintf(stderr, "Error: Maximum number of inner iterations\n");
-			 ierr = 1;
-		 }
-		 if (ierr == 1){
-			 if (rk == 0)
-				 fprintf(stderr,"should be nonzero to invoke the Schur Complement iteration\n ");
-			 PARMS_Final();
-			 exit(1);
-		 }
-	 }
-	
-	
-	 /*----- create preconditioner */
-	if(VERBOSE==3){
-	
-	  MPI_Barrier(dm->comm->mpi_comm);
-	 t1 = dwalltime();}
-	
-	 ierr = CreatePrec(dm,&precon,method,prepar,ipar);
-	
-	 
-	 if(VERBOSE==3) {
-	  MPI_Barrier(dm->comm->mpi_comm);
-	 t2 = dwalltime();
-	 t2 = fabs(t2-t1);
-	 double tmax=0.0;
-          MPI_Reduce(&t2, &tmax, 1, MPI_DOUBLE, MPI_MAX, 0,dm->comm->mpi_comm);
-   	  MPI_Bcast(&tmax, 1, MPI_INT,0,dm->comm->mpi_comm);
-	t2=tmax;
-	 }
-	 
-	 /*----- check for errors in preconditioning construction, quit if any */
-	 if (ierr != 0)
-	 fprintf(stderr, "Fatal Error (ierr = %d) in preconditioner construction on processor %d\nExiting...\n", ierr, rk);
-	 ierr = ierr*ierr;
-	 int tmp_ierr=0;
-
-	 MPI_Allreduce(&ierr, &tmp_ierr, 1, MPI_INT, MPI_SUM, dm->comm->mpi_comm);
-	 
-	 if ( tmp_ierr > 0 ){ 
-		 /* delete distributed local matrix */
-		 DeleteMat(&dm);
-		 /* delete distributed local vector */	 
-		 free(prepar);
-		 free(ipar);
-		 free(pp); 
-	         
-		 /* exit PARMS and MPI environment */
-		 PARMS_Final();
-		 exit(1);
-	 }	
-	
-}
-	void Solver(const MatriceMorse<double> &AA,KN_<double> &x,const KN_<double> &b) const  {
-	/* Vec structure
-	 rhs -- right hand side,
-	 sol -- solution,   
-	 xsol -- exact solution */
-	
-         Vec 	sol, rhs;
-	 int i,comt,node;
-	 int * poloc;
-	 double res1;
-	 double 	dnnz_pre, dgprec_nnz;
-	 nnz=AA.nbcoef;	
-
-	 CreateVec(&rhs);
-	 CreateVec(&sol);
-	 n=AA.n;
-	  double * rhsb=(double *)malloc(sizeof(double)*n);
-	 for(i=0;i<n;i++) rhsb[i]=b[i];
-	 /* Copy communication structure to Vec */
-	 CopyComm(dm,rhs);
-	 CopyComm(dm,sol);
-	 
-	 PARMS_malloc(rhs->vec, nloc, double); PARMS_malloc(poloc, nloc, int);
-	comt=0;
-	 if(scale)
-	     { for(i = 0; i < n; i++) 
-		rhsb[i] *= scaletmpr[i];
-		
-	}
-	
-
-	for(i=i1;i<=i2;i++)
-	{
-		  node = maptmp1[i-1];poloc[comt]=node-1;
-		  rhs->vec[comt]=rhsb[node-1];comt++;
-		  
-	}
-/*----Iteration count-------------------------------------*/
-	ipar->in_iters=0;
-	ipar->iters=0;
-	
-/*--- Permute RHS according to result of setup routine ---*/
-	 setuprhs(rhs);
-	   
-/*------- populate the initial guess with values */
-	 VecSetVal(sol,0.0); 
-/*------- calculate the norm of the residual on input */
-	 res1 = ResiNorm2(dm, sol, rhs);
-	 
-
-	 if(VERBOSE==3){
-	MPI_Barrier(dm->comm->mpi_comm);
-	 t3 = dwalltime(); }
-	double dgnnz;
-	if(VERBOSE==3){
-	dnnz_pre = precon->nnz_pre;
-        dgnnz = (double)nnz;
-	dgprec_nnz=0;
-	 MPI_Reduce(&dgprec_nnz, &dnnz_pre, 1, MPI_DOUBLE, MPI_SUM, 0, dm->comm->mpi_comm); 
-         }
-
-
-	 if(rk == 0) 	{
-			printf("Total NNZ(PreCon) / (NNZ*npro) = %6.2f\n",dgprec_nnz/dgnnz);
-			
-			
-		}
-		
-
-	if(solver==0) fgmresd(dm,precon,ipar,rhs,sol);
-	if(solver==1) dgmresd(dm,precon,ipar,rhs,sol);
-	if(solver==2) bcgstabd(dm,precon,ipar,rhs,sol);
-	
-	
-	 res = ResiNorm2(dm, sol, rhs);
-	
-
-	
-
-	if(VERBOSE==3){	
-	MPI_Barrier(dm->comm->mpi_comm);
-	 t4 = dwalltime(); 
-	 t4 = fabs(t4-t3); 
-	  double tmax=0;
-         MPI_Reduce(&t4, &tmax, 1, MPI_DOUBLE, MPI_MAX, 0,dm->comm->mpi_comm);
-   	 MPI_Bcast(&tmax, 1, MPI_DOUBLE,0,dm->comm->mpi_comm);
-	t4=tmax;
-	 }
-	 
-	 
-	 /*----find the norm of the solution error */
-	 i=1;
-	 t3 = -1.0;
-	 int j;
-	  for (i=0; i<nloc; i++){
-       		j=sol->node[i]-1; /* get the global node corresponding to node i*/
-		poloc[i]=j;
-    	 }
-	
-	 if (scale){
-/*--------- apply permutations to scaletmp */
-   	for (i=0; i<nloc; i++){
-       		j=sol->node[i]-1; /* get the global node corresponding to node i*/
-	        sol->vec[i] = sol->vec[i]*scaletmpc[j];
-	/*---- find the residual of the computed solution */  
-	}
-  }	
-	 /*-----  compute the relative error of computed solution */
-
-	 if((dm->comm->myproc == 0)&&(VERBOSE==3)) {
-		 fprintf(stdout,"################   SOLVER STATISTICS     ####################\n");
-		 fprintf(stdout, "OUTER ITERATIONS COUNT IS %d\n", ipar->iters);
-		 fprintf(stdout, "INNER ITERATION COUNT IS %d\n", ipar->in_iters);
-		 fprintf(stdout, "THE TOTAL TIME IS %16.8f\n", t2+t4);
-		 fprintf(stdout, "THE TIME FOR CREATING PRECONDITIONER IS %16.8f\n", t2);
-		 fprintf(stdout, "THE TIME FOR SOLVING PROCESS is %16.8f\n", t4);
-		 fprintf(stdout, "The 2-NORM OF THE RELATIVE RESIDUAL IS %16.8g\n", res/res1);
-	 }
-	 if((dm->comm->myproc == 0)&&(VERBOSE==2)) {
-		 fprintf(stdout, "THE TOTAL TIME IS %16.8f\n", t2+t4);
-		 fprintf(stdout, "THE TIME FOR CREATING PRECONDITIONER IS %16.8f\n", t2);
-		 fprintf(stdout, "THE TIME FOR SOLVING PROCESS is %16.8f\n", t4);
-	 }
-	 if((dm->comm->myproc == 0)&&(VERBOSE==1)) {
-		 fprintf(stdout, "OUTER ITERATIONS COUNT IS %d\n", ipar->iters);
-		 fprintf(stdout, "INNER ITERATION COUNT IS %d\n", ipar->in_iters);
-		 fprintf(stdout, "The 2-NORM OF THE RELATIVE RESIDUAL IS %16.8g\n", res/res1);
-		 
-		
-	 }
-
-  	  double *  xx= (double *)malloc(sizeof(double)*n);
-	 
-	 
-	   comt=0;
-	    
-	    
-	   for(i=0;i<dm->comm->npro;i++) mapptr[i]--;
-	   int *displs, *perm; 
-	   PARMS_malloc(displs, nloc, int);PARMS_malloc(perm, n, int);
-	 
-	
-	   MPI_Gatherv(&(sol->vec[0]), nloc, MPI_DOUBLE, &(xx[0]), iwork, mapptr ,  MPI_DOUBLE, 0,comm );
-	   MPI_Gatherv(&(poloc[0]), nloc, MPI_INT, &(perm[0]), iwork, mapptr ,  MPI_INT, 0,comm );
-	   MPI_Bcast(perm,AA.n,MPI_INT,0, comm);
-	   
-	   int *invp=(int *)malloc(sizeof(int)*n);
-	   for(i=0;i<n;i++) invp[perm[i]]=i;
-
-	   if(dm->comm->myproc==0){for(i=0;i<n;i++) x[i]=xx[invp[i]];  } 
-	   MPI_Bcast(x,AA.n,MPI_DOUBLE,0, comm);
-	   for(i=0;i<dm->comm->npro;i++) mapptr[i]++;
-	  /*Delete use vectors*/
-	   DeleteVec(&sol); DeleteVec(&rhs); free(xx);
-	   //This should be in Destructor
-	   free(perm); free(invp);
-	  	
-	
-	}
-	~dSolvePARMS()
-	{
-	 if(VERBOSE==3){
-	  cout << "~SolvePARMS:" << endl;
-	 free(mapptr);
-	 DeletePrec(precon); free(scaletmpc); free(scaletmpr);
-	 /*---- Delete distributed local matrix */
-	 DeleteMat(&dm);
-	 /*---- Delete distributed local vector */
-	free(prepar); free(ipar);
-	/*Delete matrix and right hand side*/
-	
-	}
-	 
-	  //PARMS_Final();
-
-         }
-     void addMatMul(const KN_<Complex> & x, KN_<Complex> & Ax) const 
-     {  
-      ffassert(x.N()==Ax.N());
-      Ax +=  (const MatriceMorse<Complex> &) (*this) * x; 
-     }
-};
-
-
-inline MatriceMorse<double>::VirtualSolver *
-BuilddSolvePARMS(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-	 if(verbosity>9)
-      cout << " BuildSolverMUMPSmpi<double>" << endl;
-
-	
-
-    return new dSolvePARMS(*A,ds.data_filename, ds.lparams, ds.dparams,(MPI_Comm *)ds.commworld);
-}
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-    Init();
-    };*/
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; 
-
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity>1)
-    cout << " SetDefault sparse to default" << endl;
-    DefSparseSolver<double>::solver =SparseMatSolver_R;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-    return TRUE;
-}
-
-bool SetdSolvePARMS()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse solver to PARMS" << endl;
-      DefSparseSolver<double>::solver  =BuilddSolvePARMS;
-     TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-     return TRUE;
-}
-<<<<<<< HEAD
-
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  //SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: pARMSmpi,  defaultsolver defaultsolverpARMSmpi" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuilddSolvePARMS;
-  //DefSparseSolver<Complex>::solver =BuildSolverMUMPSmpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("defaulttopARMSmpi","(",new OneOperator0<bool>(SetdSolvePARMS));
-}
-
-
-<<<<<<< HEAD
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/real_SuperLU_DIST_FreeFem.cpp.orig b/examples++-mpi/real_SuperLU_DIST_FreeFem.cpp.orig
deleted file mode 100644
index fe0a112..0000000
--- a/examples++-mpi/real_SuperLU_DIST_FreeFem.cpp.orig
+++ /dev/null
@@ -1,831 +0,0 @@
-//   for automatic  compilation with ff-c++
-//ff-c++-LIBRARY-dep: superlu_dist  blas parmetis metis mpi fc
-//ff-c++-cpp-dep: 
-//
-// ORIG-DATE: 02/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-#include <mpi.h>
-
-#include  <iostream>
-using namespace std;
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-#include "superlu_ddefs.h"
-#include "ffsuperludistoption.hpp"
-
-template <class R> struct SuperLUmpiDISTDriver
-{
-    
-};
-
-template <> struct SuperLUmpiDISTDriver<double>
-{
-  /* Driver routines */
-  static  Dtype_t R_SLU_T() { return SLU_D;} 
-  static void
-  
-  pgssvx(superlu_options_t *p1, SuperMatrix *p2, ScalePermstruct_t *p3,
-	  double *p4, int p5, int p6, gridinfo_t *p7,
-	  LUstruct_t *p8, SOLVEstruct_t *p9, double *p10,
-	  SuperLUStat_t *p11, int *p12)
-  { pdgssvx( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12 ); }
-  
-    
-  static void
-  pgssvx_ABglobal(superlu_options_t *p1, SuperMatrix *p2, 
-	 ScalePermstruct_t *p3,
-	 double *p4, int p5, int p6, gridinfo_t *p7,
-	 LUstruct_t *p8, double *p9,
-	 SuperLUStat_t *p10, int *p11)
-  { pdgssvx_ABglobal( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11); }
-        
-  static void
-  Print_CompRowLoc_Matrix_dist(SuperMatrix *p1)
-  {
-    dPrint_CompRowLoc_Matrix_dist(p1);
-  }
-
-  static void
-  Create_CompCol_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, int_t p4, 
-			     double *p5, int_t *p6, int_t *p7,
-			    Stype_t p8, Dtype_t p9, Mtype_t p10)
-  {
-    dCreate_CompCol_Matrix_dist(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10);
-  }
-  
-  static void
-  Create_CompRowLoc_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3,
-				 int_t p4, int_t p5, int_t p6,
-				 double *p7, int_t *p8, int_t *p9,
-				 Stype_t p10, Dtype_t p11, Mtype_t p12)
-  {
-    dCreate_CompRowLoc_Matrix_dist( p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12);
-  }
-   
-  static void
-  CompRow_to_CompCol_dist(int_t p1, int_t p2, int_t p3, 
-                         double *p4, int_t *p5, int_t *p6,
-                         double **p7, int_t **p8, int_t **p9)
-  {
-    dCompRow_to_CompCol_dist( p1,p2,p3,p4,p5,p6,p7,p8,p9 );
-  }
-
-  static void
-  Create_Dense_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, double *p4,
-			    int_t p5, Stype_t p6, Dtype_t p7,
-			    Mtype_t p8)
-  {
-    dCreate_Dense_Matrix_dist( p1,p2,p3,p4,p5,p6,p7,p8 );  
-  }
-
-  static void
-  Create_SuperNode_Matrix_dist(SuperMatrix *p1, int_t p2, int_t p3, int_t p4, 
-				double *p5, int_t *p6,
-				int_t *p7, int_t *p8,
-				int_t *p9, int_t *p10,
-				Stype_t p11, Dtype_t p12, Mtype_t p13)
-  {
-    dCreate_SuperNode_Matrix_dist(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,  p11,p12,p13);
-  }
-
-};
-
-template<class R>
-class SolveSuperLUmpi :   public MatriceMorse<R>::VirtualSolver, public SuperLUmpiDISTDriver<R>   {
-  
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-   
-   
-  //mutable char           equed[1];
-  //yes_no_t       equil;
-  mutable SuperMatrix    A;
-  NCformat       *Astore;
-  //NCformat       *Ustore;
-  //SCformat       *Lstore;
-
-  mutable superlu_options_t options;
-  mutable mem_usage_t    mem_usage;
-  mutable ScalePermstruct_t ScalePermstruct;
-  mutable LUstruct_t        LUstruct;
-  mutable SOLVEstruct_t     SOLVEstruct;
-  mutable gridinfo_t        grid;
-
-  string string_option;
-  string data_option;
-  R             *a;
-  int           *asub, *xa;
-  int_t m, n, nnz;
-  // rajout pour //
-  int_t nprow,npcol;  /* process rows and process columns*/
-
-
-  int matrixdist; // type of distributed matrix
-  MPI_Comm commworld ;
-  static const int assembled =0;
-  static const int distributedglobal =1;
-  static const int distributed =2;
-
-  int iam;
-
-public:
-  SolveSuperLUmpi(const MatriceMorse<R> &AA,int strategy,double ttgv, double epsilon,
-		  double pivot,double pivot_sym, string datafile,
-		  string param_char, KN<long> &pperm_r, KN<long> &pperm_c,void * ccommworld=0) : 
-    eps(epsilon),epsr(0),
-    tgv(ttgv),string_option(param_char),data_option(datafile),
-    tol_pivot_sym(pivot_sym),tol_pivot(pivot)
-  { 
-    commworld = ccommworld ? *static_cast<MPI_Comm*>( ccommworld) : MPI_COMM_WORLD;  
-    int rank;
-    MPI_Comm_rank(commworld, &rank); 
-    R*      B;
-    //R*      X;
-    SuperLUStat_t stat;
-    int            info, ldb, nrhs=0;
-    int            i;
-    double*        berr;
-    
-    //int iam;
-    // Add for distributed matrix
-    int_t         m_loc, m_loc_fst, fst_row, nnz_loc, fst_nnz;
-    R             *aloc;
-    int           *asubloc, *xaloc;
-    // End Add for distributed matrix
-    A.Store=0;
-   
-    int status;
-    // time variables
-
-    long int starttime,finishtime;
-    long int timeused;
-
-    // rajout debug
-    int myid;
-    if(verbosity) starttime = clock();
-
-
-    /* Defaults */
-    nrhs  = 0;
-
-    /* lecture de nprow and npcol */
-    // Cas max deux procs
-    nprow = 1;
-    npcol = 1;
-    matrixdist=0;
-    
-    
-    if(!data_option.empty()) read_nprow_npcol_matrixdist_superlu_datafile(&data_option, &nprow, &npcol, &matrixdist);
-    if(!string_option.empty()) read_nprow_npcol_freefem( &string_option, &nprow, &npcol, &matrixdist);
-    
-     /* ------------------------------------------------------------
-	 INITIALIZE THE SUPERLU PROCESS GRID. 
-	 ------------------------------------------------------------*/
-    if( (verbosity>1) && (rank ==0))
-    cout << "Real superlu_gridinit" << " " << commworld << " " << ccommworld <<endl;
-    superlu_gridinit(commworld, nprow, npcol, &grid);
-
-    /* Bail out if I do not belong in the grid. */
-    iam = grid.iam;
-    if ( iam >= nprow * npcol ){      
-      printf("this process is not used in superlu %d \n",iam);
-    }
-    else
-      {
-	/* set the default options */
-	set_default_options_dist(&options);
-	DiagScale_t optionDiagScale;
-
-	if(!string_option.empty()) read_options_freefem(&string_option,&options,&optionDiagScale);	
-	if(!data_option.empty()) read_options_superlu_datafile(&data_option,&options,&nprow, &npcol, &matrixdist,&optionDiagScale);
-
-	// matrix to procs and vectors
-	if( matrixdist == assembled ){
-	  
-	  if(!iam){
-	    if(verbosity>5)
-	      {
-		
-	    cout <<  "iam=" << iam << " " ;
-	    printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-	      }
-	    /* create the matrix for superlu_dist */
-	    n=AA.n;
-	    m=AA.m;
-	    nnz=AA.nbcoef;
-	  
-	    assert( AA.lg[n] == nnz );	   
-	    if(verbosity>5) printf("\tDimension\t%dx%d\t # nonzeros %d\n", m, n, nnz);
-	    
-	    /* transform Row to Col */
-	    // cela coute cher comme fonction //
-	    //dallocateA_dist(n, nnz, &a, &asub, &xa);
-	    //dCompRow_to_CompCol_dist(m,n,nnz,arow,asubrow,xarow,&a,&asub,&xa);
-	    
-	    dCompRow_to_CompCol_dist(m,n,nnz,AA.a,AA.cl,AA.lg,&a,&asub,&xa);
-	    
-	    /* Broadcast matrix A to the other PEs. */
-	    MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	    int infobcast=MPI_Bcast( a,    nnz, MPI_DOUBLE, 0, grid.comm );
-	    MPI_Bcast( asub, nnz, mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( xa,   n+1, mpi_int_t,  0, grid.comm );
-	    
-	    
-	  }
-	  else{
-	    /*
-	      printf("\tProcess grid\t%d X %d\n", grid.nprow, grid.npcol);
-<<<<<<< HEAD
-	       Receive matrix A from PE 0. */
-=======
-	      /* Receive matrix A from PE 0. */
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	    MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	    
-	    /* Allocate storage for compressed column representation. */
-	    dallocateA_dist(n, nnz, &a, &asub, &xa);
-	    
-	    int infobcast=MPI_Bcast( a, nnz, MPI_DOUBLE, 0, grid.comm );
-	    MPI_Bcast( asub, nnz, mpi_int_t,  0, grid.comm );
-	    MPI_Bcast( xa,   n+1, mpi_int_t,  0, grid.comm );
-	    
-	  }
-	  
-	  Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-	  if(verbosity>6)
-	  cout << "Debut: Create_CompCol_Matrix_dist" <<endl;
-	  // FFCS - "this->" required by g++ 4.7
-	  this->Create_CompCol_Matrix_dist(&A, m, n, nnz, a, asub, xa, SLU_NC, R_SLU, SLU_GE); 
-	  if(verbosity>6)
-	  cout << "Fin: Create_CompCol_Matrix_dist" <<endl;
-	  /* creation of pseudo solution + second member */
-	  
-	  if ( !(B = doubleMalloc_dist(m )) ){
-	    printf("probleme d allocation\n");
-	    exit(1);
-	  }
-	  
-	  if(verbosity>2 && rank ==0)
-	    printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-
-	  
-	  /* Initialize ScalePermstruct and LUstruct. */
-	  ScalePermstructInit(m, n, &ScalePermstruct);
-	  if( !(pperm_r==NULL)  ||  !(pperm_c==NULL) ) ScalePermstruct.DiagScale=optionDiagScale;
-	  if( !(pperm_r==NULL) ) 
-	    for(int ii=0; ii<m; ii++) ScalePermstruct.perm_r[ii] = pperm_r[ii];
-	  if( !(pperm_c==NULL) )
-	    for(int ii=0; ii<n; ii++) ScalePermstruct.perm_c[ii]= pperm_c[ii];
-	  
-	  if( ScalePermstruct.DiagScale != NOEQUIL ){
-	    printf("FreeFem++ doesn't support change of the original matrix"); 
-	    exit(1);
-	  }
-	  LUstructInit(m, n, &LUstruct);
-	  
-	  /* Initialize the statistics variables. */
-	  PStatInit(&stat);
-	  
-	  ldb = m;
-	  nrhs=1;
-	  if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	    printf("probleme d allocation\n");
-	    exit(1);
-	  }
-	  berr[0]=0.;
-    	
-	  if(verbosity && rank ==0)
-	    printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	
-	  /* INIT LU struct*/
-	  
-	  /* ONLY PERFORM THE LU DECOMPOSITION */
-	  //B.ncol = 0;  /* Indicate not to solve the system */
-	  
-	  nrhs=0;
-	  SuperLUmpiDISTDriver<R>::pgssvx_ABglobal(&options, &A,  &ScalePermstruct, B, ldb, nrhs, &grid,
-					       &LUstruct, berr, &stat, &info);
-	
-	  if(verbosity>2 && rank ==0)
-	    printf("LU factorization: pdgssvx()/p returns info %d\n", info);
-	  
-	  if ( verbosity) PStatPrint(&options,&stat,&grid);
-	  PStatFree(&stat);
-	  	 
-	}
-	//##########################################################
-	//
-	//       matrix distributed with matrix global given
-	//
-	//##########################################################
-	else if( matrixdist == distributedglobal) {
-	   if(!iam){
-
-	     if(verbosity>2) printf("\tProcess grid\t%d X %d iam=%d \n", grid.nprow, grid.npcol,iam);
-	
-	     /* create the matrix for superlu_dist */
-	     n=AA.n;
-	     m=AA.m;
-	     nnz=AA.nbcoef;
-	     a=AA.a;
-	     asub=AA.cl;
-	     xa=AA.lg;
-	     
-	     xa[n] = nnz;
-	     if(verbosity>6) printf("\tDimension\t%dx%d\t # nonzeros %d\n", m, n, nnz);
-	     
-	     /* Broadcast matrix A to the other PEs. */
-	     MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	     
-	     MPI_Bcast( AA.a,    nnz, MPI_DOUBLE, 0, grid.comm );
-	     MPI_Bcast( AA.cl, nnz, mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( AA.lg,   n+1, mpi_int_t,  0, grid.comm );
-	     
-	     
-	   }
-	   else{
-	     
-	     if(verbosity>6)printf("\tProcess grid\t%d X %d iam=%d \n", grid.nprow, grid.npcol,iam);
-	     /* Receive matrix A from PE 0. */
-	     MPI_Bcast( &m,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &n,   1,   mpi_int_t,  0, grid.comm );
-	     MPI_Bcast( &nnz, 1,   mpi_int_t,  0, grid.comm );
-	     
-	     /* Allocate storage for compressed column representation. */
-	     dallocateA_dist(n, nnz, &a, &asub, &xa);
-	     
-	     MPI_Bcast(    a,   nnz, MPI_DOUBLE,  0, grid.comm );
-	     MPI_Bcast( asub,   nnz,  mpi_int_t,  0, grid.comm );
-	     MPI_Bcast(   xa,   n+1,  mpi_int_t,  0, grid.comm );
-
-	   }
-	   
-	   /* Compute the number of rows to be distributed to local process */
-	   m_loc = m / (grid.nprow * grid.npcol); 
-	   m_loc_fst = m_loc;
-	   /* When m / procs is not an integer */
-	   if ((m_loc * grid.nprow * grid.npcol) != m) {
-	     /*m_loc = m_loc+1;
-	       m_loc_fst = m_loc;*/
-	     if (iam == (grid.nprow * grid.npcol - 1)) /* last proc. gets all*/
-	       m_loc = m - m_loc * (grid.nprow * grid.npcol - 1);
-	   }
-	   
-	   fst_row = iam * m_loc_fst;
-	   
-	   nnz_loc = xa[fst_row+m_loc]-xa[fst_row];
-	   
-	   xaloc = (int_t*) intMalloc_dist(m_loc+1);
-	   for(int ii=0; ii < m_loc; ii++){
-	     xaloc[ii] = xa[fst_row+ii]-xa[fst_row];	
-	   }
-	   
-	   xaloc[m_loc]=nnz_loc;
-	   
-	   fst_nnz = xa[fst_row];
-	   aloc    = (double*) doubleMalloc_dist(nnz_loc);
-	   asubloc = (int_t*)  intMalloc_dist(nnz_loc);
-	   
-	   for(int ii=0; ii < nnz_loc; ii++){
-	     aloc[ii] = a[fst_nnz+ii];
-	     asubloc[ii] = asub[fst_nnz+ii];
-	   }
-
-	   if( iam ){
-	     SUPERLU_FREE( a );
-	     SUPERLU_FREE( asub );
-	     SUPERLU_FREE( xa );
-	   }
-	   Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-	   
-	   if(verbosity>6) cout << "Debut: Create_CompRowCol_Matrix_dist" <<endl;
-	   dCreate_CompRowLoc_Matrix_dist(&A, m, n, nnz_loc, m_loc, fst_row, aloc, asubloc, xaloc, SLU_NR_loc, R_SLU, SLU_GE);
-	   
-	   if(verbosity>6) cout << "Fin: Create_CompRowCol_Matrix_dist" <<endl;
-	   /* creation of pseudo solution + second member */
-	   
-	   
-	   if ( !(B = doubleMalloc_dist(m_loc)) ){
-	     printf("probleme d allocation\n");
-	     exit(1);
-	   }
-	   
-	   for(int ii=0; ii < m_loc; ii++){
-	     B[ii] = 1.; //BB[fst_row+ii];
-	   }
-     
-	   if(verbosity >2 && rank ==0)
-	     printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	   
-	   /* set the default options */
-	   //set_default_options_dist(&options);
-	   //DiagScale_t optionDiagScale;
-	   //if(!string_option.empty()) read_options_freefem(&string_option,&options,&optionDiagScale);
-	   	   
-	   m=A.nrow;
-	   n=A.ncol;
-	   //printf("Dimension %dx%d; # nonzeros %d\n", A.nrow, A.ncol, nnz);
-	   /* Initialize ScalePermstruct and LUstruct. */
-	   ScalePermstructInit(m, n, &ScalePermstruct);
-	   if(pperm_r  ||  pperm_c ) ScalePermstruct.DiagScale=optionDiagScale;
-	   if(pperm_r) 
-	     for(int ii=0; ii<m; ii++) ScalePermstruct.perm_r[ii] = pperm_r[fst_row+ii];
-	   if(pperm_c) 
-	     for(int ii=0; ii<n; ii++) ScalePermstruct.perm_c[ii] = pperm_c[ii];
-	   
-	   LUstructInit(m, n, &LUstruct);
-	   
-	   /* Initialize the statistics variables. */
-	   PStatInit(&stat);
-	   
-	   ldb = m_loc;
-	   //ldx = m_loc;
-	   
-	   nrhs=1;
-	   if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	     printf("probleme d allocation\n");
-	     exit(1);
-	   }
-	   berr[0]=0.;
-	   
-	   /* ONLY PERFORM THE LU DECOMPOSITION */
-    
-	   nrhs=0;
-	   SuperLUmpiDISTDriver<R>::pgssvx(&options, &A,  &ScalePermstruct, B, ldb, nrhs, &grid,
-					   &LUstruct, &SOLVEstruct, berr, &stat, &info);
-	   
-	   if(verbosity >1 && rank ==0)
-	     printf("LU factorization: pdgssvx()/p returns info %d\n", info);
-	   
-	   if ( verbosity > 2 ) PStatPrint(&options,&stat,&grid);
-	   PStatFree(&stat);
-	}
-	else if( matrixdist == distributed) {
-	  printf("in construction\n");
-	  exit(1);
-	}
-	else{
-	  printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	  exit(1);
-	}
-	
-	SUPERLU_FREE( B );
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */
-	nrhs=1;
-	SUPERLU_FREE(berr);  	
-      
-	if(iam==0){
-	  finishtime = clock();
-	  timeused= (finishtime-starttime)/(1000 );
-	  if(verbosity>1)
-	    {
-	      
-	  printf("=====================================================\n");
-	  cout << "SuperLU_DIST : time factorisation :: " << timeused << " ms" <<endl;
-	  printf("=====================================================\n");
-	    }
-	}
-      }
-  }
-
-  void Solver(const MatriceMorse<R> &AA,KN_<R> &x,const KN_<R> &b) const  {
-    R*        B;
-    SuperLUStat_t  stat;
-    //int            iam;
-    int            info=0, ldb=m, nrhs=1;
-    int            i;
-    double*        berr;
-    double         ferr; 
-    double         rpg, rcond;
-      
-    int_t    m_loc,m_loc_fst,fst_row;
-    // time variable
-    long int starttime,finishtime;
-    long int timeused;
-
-    if( iam < nprow*npcol){
-
-      if(verbosity) starttime = clock();
-      
-      if(n != m) exit(1);
-      
-      ffassert ( &x[0] != &b[0]);
-      epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-      
-      Dtype_t R_SLU = SuperLUmpiDISTDriver<R>::R_SLU_T(); 
-      nrhs= 1;
-      
-
-  
-      //iam = grid.iam;
-      //if( iam < nprow*npcol){
-      /* Initialize the statistics variables. */
-      PStatInit(&stat);
-      /* cas matrix assembled */ 
-      if( matrixdist == assembled ){
-	
-	if( !(B = doubleMalloc_dist(m*nrhs)) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	
-	for(int ii=0; ii<n; ii++){
-	  B[ii]=b[ii];
-	}
-	
-	if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	berr[0]=0.;
-	
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */   
-	ldb = m;
-	//nrhs= 1;
-	SuperLUmpiDISTDriver<R>::pgssvx_ABglobal (&options, &A, &ScalePermstruct, B, ldb, nrhs, &grid,
-						  &LUstruct, berr, &stat, &info );
-	
-	if(verbosity>3)
-	  printf("Triangular solve: dgssvx() returns info %d\n", info);
-	
-	if(verbosity) PStatPrint(&options, &stat, &grid);   
-	
-	for(int ii=0; ii<n; ii++){
-	  x[ii] = B[ii]; 
-	}
-	
-	if(verbosity>2) cout << "   x min max " << x.min() << " " <<x.max() << endl;
-	
-      }
-      else if( matrixdist == distributedglobal) {
-	double*    xtemp;
-	//iam = grid.iam;
-	/* Compute the number of rows to be distributed to local process */
-	m_loc = m / (grid.nprow * grid.npcol); 
-	m_loc_fst = m_loc;
-	/* When m / procs is not an integer */
-	if ((m_loc * grid.nprow * grid.npcol) != m) {
-	  /*m_loc = m_loc+1;
-	    m_loc_fst = m_loc;*/
-	  if (iam == (grid.nprow * grid.npcol - 1)) /* last proc. gets all*/
-	    m_loc = m - m_loc * (grid.nprow * grid.npcol - 1);
-	}
-	
-	fst_row = iam * m_loc_fst;
-	
-	if ( !(B = doubleMalloc_dist(m_loc )) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	
-	//printf("initilisation B:");
-	for(int ii=0; ii<m_loc; ++ii){
-	  B[ii] = b[ii+fst_row];
-	  //printf("  B[%d]= %f  ",ii,B[ii]);
-	}
-	//printf(" :: fin \n");
-	//fflush(stdout);
-	
-      
-	if ( !(berr = doubleMalloc_dist(nrhs )) ){
-	  printf("probleme d allocation\n");
-	  exit(1);
-	}
-	berr[0]=0.;
-	
-	options.Fact = FACTORED; /* Indicate the factored form of A is supplied. */
-	//options.Equil = YES;
-	//options.Trans = TRANS;
-	
-	
-	ldb = m;
-	SuperLUmpiDISTDriver<R>::pgssvx(&options, &A, &ScalePermstruct, B, ldb, nrhs, &grid,
-					&LUstruct, &SOLVEstruct, berr, &stat, &info );
-	
-	if(verbosity>3)
-	  printf("Triangular solve: dgssvx() returns info %d\n", info);
-	
-	if ( !(xtemp = doubleMalloc_dist(AA.n)) ){
-	  printf("probleme d allocation de xtemp\n");
-	  exit(1);
-	}
-	
-      
-	int disp[nprow*npcol];
-	MPI_Allgather(&fst_row, 1, MPI_INT, disp, 1, MPI_INT, grid.comm);
-	
-	int recv[nprow*npcol];
-	MPI_Allgather(&m_loc, 1, MPI_INT, recv, 1, MPI_INT, grid.comm);
-	
-	MPI_Allgatherv(B, m_loc, MPI_DOUBLE, xtemp, recv, disp, MPI_DOUBLE, grid.comm);
-	
-	for(int ii= 0; ii< AA.n ; ii++)
-	  x[ii] = xtemp[ii];
-	
-	if(verbosity) cout << "   x min max " << x.min() << " " <<x.max() << endl;
-	
-	SUPERLU_FREE( xtemp );
-      
-      }
-      else if( matrixdist == distributed) {
-	printf("in construction\n");
-	exit(1);
-      }
-      else{
-	printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	exit(1);
-      }
-      
-
-      SUPERLU_FREE( B );
-      SUPERLU_FREE( berr );
-      
-      PStatFree(&stat);
-   
-      if(iam==0){
-	finishtime = clock();
-	timeused= (finishtime-starttime)/(1000 );
-	if(verbosity>1)
-	  {
-	    
-	  
-	printf("=====================================================\n");
-	cout << "SuperLu_DIST: time solve step :: " << timeused << " ms" <<endl;
-	printf("=====================================================\n");
-	  }
-      }
-    }
-    
-  }
-    
-  ~SolveSuperLUmpi() { 
-    //int iam;
-    //iam = grid.iam;
-    if(iam < nprow*npcol){
-      if(verbosity>4)
-	cout << "~SolveSuperLUmpi double:" << endl;
-      
-      if( matrixdist == assembled) {
-	//if( A.Store)  Destroy_CompCol_Matrix_dist(&A);
-	//if( L.Store && U.Store )  {
-	Destroy_LU(n, &grid, &LUstruct);
-	ScalePermstructFree(&ScalePermstruct);
-	LUstructFree(&LUstruct);
-	//}
-	if ( options.SolveInitialized ) {
-	  dSolveFinalize(&options, &SOLVEstruct);
-	}
-      }
-      else if( matrixdist == distributedglobal) {
-	Destroy_CompRowLoc_Matrix_dist(&A);
-	
-	Destroy_LU(n, &grid, &LUstruct);
-	ScalePermstructFree(&ScalePermstruct);
-	LUstructFree(&LUstruct);
-	
-	if ( options.SolveInitialized ) {
-	  dSolveFinalize(&options, &SOLVEstruct);
-	}
-      }
-      else if( matrixdist == distributed) {
-	printf("in construction\n");
-	exit(1);
-      }
-      else{
-	printf("matrix choice for SuperLU_DIST is assembled, distributedglobal and distributed \n");
-	exit(1);
-      }
-    }
-    printf("Real superlu_gridexit(&grid), %d\n",iam);
-    superlu_gridexit(&grid); 
-    
-  }
-  void addMatMul(const KN_<R> & x, KN_<R> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<R> &) (*this) * x; 
-  }
-     
-}; 
-
-
-
-
-MatriceMorse<double>::VirtualSolver *
-BuildSolverSuperLUmpi(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-    if(verbosity>9)
-    cout << " BuildSolverSuperLUmpi<double>" << endl;
-    return new SolveSuperLUmpi<double>(*A,ds.strategy,ds.tgv,ds.epsilon,ds.tol_pivot,ds.tol_pivot_sym,
-				       ds.data_filename, ds.sparams, ds.perm_r, ds.perm_c, ds.commworld);
-}
-
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-    Init();
-    };*/
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-//DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity)
-	cout << " SetDefault sparse to default" << endl;
-    DefSparseSolver<double>::solver =SparseMatSolver_R;
-    //DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-
-    return false;
-}
-
-bool SetSuperLUmpi()
-{
-    if(verbosity)
-	cout << " SetDefault sparse solver to SuperLUmpi double" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverSuperLUmpi;
-    //DefSparseSolver<Complex>::solver =BuildSolverSuperLUmpi;    
-    TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-
-    return false;
-}
-
-
-
-<<<<<<< HEAD
-
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  //SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: Real SuperLUdist,  defaultsolver defaultsolverSuperLUdist" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuildSolverSuperLUmpi;
-  //DefSparseSolver<Complex>::solver =BuildSolverSuperLUmpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("realdefaulttoSuperLUdist","(",new OneOperator0<bool>(SetSuperLUmpi));
-}
-
-<<<<<<< HEAD
-LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/real_pastix_FreeFem.cpp b/examples++-mpi/real_pastix_FreeFem.cpp
index 49e67bd..760f525 100644
--- a/examples++-mpi/real_pastix_FreeFem.cpp
+++ b/examples++-mpi/real_pastix_FreeFem.cpp
@@ -243,7 +243,7 @@ void read_datafile_pastixff(const string &datafile, int &mpi_flag, pastix_int_t
 }
 
 // ATTENTION :: pastix_float_t  
-//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
+//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
 
 // CAS DOUBLE SEULEMENT 
 
@@ -360,7 +360,7 @@ public:
       Nrow = AA.n;
       nnz  = AA.nbcoef;
 
-      // Avant : on ecrit la transpos�e
+      // Avant : on ecrit la transpos�e
       
       // AA.cl : indices des colonnes
       // AA.lg : pointeurs des lignes
diff --git a/examples++-mpi/real_pastix_FreeFem.cpp.orig b/examples++-mpi/real_pastix_FreeFem.cpp.orig
deleted file mode 100644
index d2f84e8..0000000
--- a/examples++-mpi/real_pastix_FreeFem.cpp.orig
+++ /dev/null
@@ -1,733 +0,0 @@
-// ORIG-DATE: 02/2009
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Jacques Morice
-// E-MAIL   : jacques.morice at ann.jussieu.fr
-//
-//ff-c++-LIBRARY-dep: double_pastix   blas parmetis metis scotch  mpi fc
-//ff-c++-cpp-dep: 
-
-/* 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-/*
-  Interface entre freefem++ et pastix
-*/
-#include <mpi.h>
-#include  <iostream>
-using namespace std;
-   
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-
-
-// #include <ctype.h>
-// #include <stdio.h>
-// #include <stdlib.h>
-// #include <unistd.h>
-// //#include <pthread.h>
-// #include <string.h>
-// #include <time.h>
-// #include <sys/time.h>
-// #include "mpi.h"
-   
-// #include <assert.h>
-// #include "pastix.h"
-// #include "cscd_utils.h"
-// #include "read_matrix.h"
-
-#include <assert.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include "pastix.h"
-//#include "cscd_utils.h"
-#ifdef __cplusplus
-}
-#endif
-//#include "read_matrix.h"
-
-#undef memFree_null
-#define memFree_null(x) {if (x ==NULL) {fprintf(stdout,"%s:%d freeing NULL\n",__FILE__,__LINE__);} free(x); x=NULL;}
-
-#define STR_SIZE 256
-
-static pastix_int_t * pastixint(int * ii){ return (pastix_int_t*) (void *) ii;} 
-static pastix_float_t * pastixfloat(double * ii){ return (pastix_float_t*) (void *) ii;} 
-
-typedef struct pastix_param {
-  pastix_data_t          *pastix_data; /*Pointer used by PaStiX to keep information alive between calls */
-  MPI_Comm                comm;        /* Communicator used by PaStiX                                    */
-  pastix_int_t            Ncol;        /* Size of the Matrix                                             */
-  pastix_int_t           *ia;          /* Index of first element of each column in ja and avals          */  
-  pastix_int_t           *ja;          /* Rows of the unknows of the matrix                              */
-  pastix_float_t         *avals;       /* Values of the matrix                                           */
-  pastix_int_t           *perm;        /* Permutation used for re-numbering of the unknowns              */
-  pastix_int_t           *invp;        /* Inverse permutation                                            */
-  pastix_float_t         *rhs;         /* Right hand side                                                */
-  pastix_int_t           *iparm;       /* Integer parameters                                             */
-  double                 *dparm;       /* Floating parameters                                            */
-} pastix_param_t;
-
-
-
-void
-Morse_to_CSC(int m, int n, int nnz, 
-	     double *a, int *colind, int  *rowptr,
-	     pastix_float_t **at, pastix_int_t **rowind, 
-	     pastix_int_t **colptr)
-{
-    register int i, j, col, relpos;
-    pastix_int_t *marker;
-
-    /* Allocate storage for another copy of the matrix. */
-    *at     = (pastix_float_t *) malloc(sizeof(pastix_float_t)*nnz);
-    *rowind = (pastix_int_t *) malloc(sizeof(pastix_int_t)*nnz);
-    *colptr = (pastix_int_t *) malloc(sizeof(pastix_int_t)*(n+1));
-    marker  = (pastix_int_t *) malloc(sizeof(pastix_int_t)*n);
-    
-    for (i = 0; i < n; ++i)
-      marker[i] = 0;
-    /* Get counts of each column of A, and set up column pointers */
-    for (i = 0; i < m; ++i)
-	for (j = rowptr[i]; j < rowptr[i+1]; ++j) ++marker[colind[j]];
-    (*colptr)[0] = 0;
-    for (j = 0; j < n; ++j) {
-	(*colptr)[j+1] = (*colptr)[j] + marker[j];
-	marker[j] = (*colptr)[j];
-    }
-
-    /* Transfer the matrix into the compressed column storage. */
-    for (i = 0; i < m; ++i) {
-	for (j = rowptr[i]; j < rowptr[i+1]; ++j) {
-	    col = colind[j];
-	    relpos = marker[col];
-	    (*rowind)[relpos] = i;
-	    (*at)[relpos] = a[j];
-	    ++marker[col];
-	}
-    }
-
-    free(marker);
-}
-
-static const int MAX_CHAR_PER_LINE=256;
-//void read_datafile_pastixff(const string &datafile, pastix_int_t *iparmtab, double *dparmtab){
-void read_datafile_pastixff(const string &datafile, int &mpi_flag, pastix_int_t *iparmtab, double *dparmtab){
-  FILE*   m_File;
-  int     i = 0;
-  char    szbuff[MAX_CHAR_PER_LINE];
-  char*   token;
-  
-  char filename[datafile.size()+1];  
-  strcpy( filename, datafile.c_str()); 
-
-  m_File = fopen(filename,"rt");
-
-  if(!m_File)
-    {
-      printf("error in reading filename %s\n",filename);
-    }
-
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");
-
-  
-  if( !(strcmp(token,"matrix") == 0) ){
-    printf("freefem++: error in reading matrix parameter for pastix (see strcuture of ffpastix_iparm_dparm.txt) \n");
-    exit(1);
-  }
-  else{
-    printf("freefem++: reading matrix parameter for pastix \n");    
-  }
-
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");
-  
-  if(strcmp(token,"assembled") == 0)
-    mpi_flag = 0;
-  else if(strcmp(token,"distributedglobal") == 0) 
-    mpi_flag = 1;
-  else if(strcmp(token,"distributed") == 0) 
-    mpi_flag = 2;
-  else{
-    printf("value of parameter matrix is not correct %s \n", token );
-  }
-
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");
-
-  if( !(strcmp(token,"iparm") == 0) ){
-    printf("freefem++: error in reading iparm parameter for pastix (see strcuture of ffpastix_iparm_dparm.txt) \n");
-    exit(1);
-  }
-  else{
-    printf("freefem++: reading iparm parameter for pastix \n");    
-  }
-  while(!feof(m_File) && i < 64)
-    {   
-      fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-      token = strtok(szbuff," /#!\t\n");
-      iparmtab[i] = (pastix_int_t)atol(token);
-      i++;
-    }
-
-  i=0;
-  fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-  token = strtok(szbuff," /#!\t\n");  
-  if( !(strcmp(token,"dparm") == 0) ){
-    printf("freefem++: error in reading dparm parameter for pastix (see strcuture of ffpastix_iparm_dparm.txt) \n");
-    exit(1);
-  }
-  else{
-    printf("freefem++: reading dparm parameter for pastix \n");    
-  }
-  while(!feof(m_File) && i < 64)
-    {   
-      fgets(szbuff,MAX_CHAR_PER_LINE,m_File);
-      token = strtok(szbuff," /#!\t\n");
-      dparmtab[i] = atof(token);
-      i++;
-    }
- 
-  fclose(m_File);
-
-#ifdef OOC
-/*   if (iparmtab[IPARM_OOC_THREAD] > 1) */
-    iparmtab[IPARM_OOC_THREAD] = 1;
-#endif
-  /* On empeche le 2d avec NUMA_ALLOC */
-#ifdef NUMA_ALLOC
-  if (iparmtab[IPARM_DISTRIBUTION_LEVEL] != 0)
-    {
-      errorPrint("2D not available with NUMA allocation\n");
-      exit(-1);
-    }
-#endif
-}
-
-// ATTENTION :: pastix_float_t  
-//      peut �tre soit un complex ou un reel cela depend de la maniere dont on a compiler pastix
-
-// CAS DOUBLE SEULEMENT 
-
-
-
-class dSolvepastixmpi :   public MatriceMorse<double>::VirtualSolver   {
-  
-  double eps;
-  mutable double  epsr;
-  double tgv;
-  double tol_pivot_sym,tol_pivot; //Add 31 oct 2005
-  
-
-  int paraoption;
-  int myid, mpi_size;
-  int Nrow;
-  int mpi_flag;
-  int init_raff;
-  int thrd_flag;
-  int SYM;
-  
-  string data_option;
-  
-  mutable pastix_int_t  iparm[64];
-  mutable double        dparm[64];
-  mutable pastix_int_t    Ncol;
-  mutable pastix_int_t   *ia;
-  mutable pastix_int_t   *ja;
-  mutable pastix_float_t *avals;
-  mutable pastix_int_t   *loc2glob;
-  //char           *Type    = NULL;
-  //char           *RhsType = NULL;
-  mutable pastix_float_t *rhs;
-  mutable pastix_int_t   *perm;
-  mutable pastix_int_t   *invp;
-  mutable pastix_data_t  *pastix_data;
-  MPI_Comm commworld ;
-
-public:
-
-  dSolvepastixmpi(const MatriceMorse<double> &AA, int strategy, double ttgv, double epsilon,
-		  double pivot, double pivot_sym, string datafile, KN<long> &pparam_int, KN<double> &pparam_double, 
-		  KN<long> &pperm_r, KN<long> &pperm_c,void * ccommworld ) : 
-    eps(epsilon),epsr(0),
-    tgv(ttgv),tol_pivot_sym(pivot_sym),tol_pivot(pivot),
-    data_option(datafile) 
-  { 
-    commworld = ccommworld ? *static_cast<MPI_Comm*>( ccommworld) : MPI_COMM_WORLD;    
-
-    KN_<long> param_int(pparam_int);
-    KN_<double> param_double(pparam_double);
-
-    //int m;
-    //int ierr;
-    struct timeval  tv1, tv2;
-    int nnz;
-   
-     // time variables
-    long int starttime,finishtime;
-    long int timeused;
-    if(verbosity) starttime = clock();
-
-    ia    = NULL;
-    ja    = NULL;
-    avals   = NULL;
-    loc2glob = NULL;
-    rhs     = NULL;
-    pastix_data = NULL;
-    
-    // matrix assembled on host
-    MPI_Comm_rank(commworld, &myid);
-    printf("- Rang MPI : %d\n", myid);
-    MPI_Comm_size(commworld, &mpi_size);
-    // SYMETRIQUE
-    // MPI_flag need to unselect for non distributed matrix
-    mpi_flag  = 0;
-    thrd_flag = 0;
-
-    // ######################  
-    //pastix_int_t init_raff;
-    fprintf(stdout,"-- INIT PARAMETERS --\n");
-    
-    // reading iparm from array    
-    if(!data_option.empty()){
-      read_datafile_pastixff(data_option,mpi_flag,iparm,dparm);
-      if(mpi_flag != 0) 
-	cerr << "ERROR :: GLOBAT INPUT MATRIX FOR ALL PROCS  matrix=assembled" << endl;
-    }
-    else if( !(param_int==NULL) || !(param_double==NULL) ){
-      if( !(param_int==NULL) ) 
-      {
-	cout << "read param_int" << endl;
-	assert(param_int.N() == 64);
-	for(int ii=0; ii<64; ii++) 
-	  iparm[ii] = param_int[ii];
-	iparm[IPARM_MODIFY_PARAMETER] = API_YES;
-      }
-      if( !(param_double==NULL) ) 
-      {
-	cout << "read param_double" << endl;
-	assert(param_double.N() == 64);
-	for(int ii=0; ii<64; ii++) 
-	  dparm[ii] = param_double[ii];
-      }
-    }  
-    else{
-      iparm[IPARM_MODIFY_PARAMETER] = API_NO;
-      cout << "initialize parameter" << endl;
-    }
-    
-    //################################
-    if( myid==0 ){
-      Ncol = AA.m;
-      Nrow = AA.n;
-      nnz  = AA.nbcoef;
-
-      // Avant : on ecrit la transpos�e
-      
-      // AA.cl : indices des colonnes
-      // AA.lg : pointeurs des lignes
-      Morse_to_CSC( AA.n , AA.m, AA.nbcoef, AA.a, AA.cl, AA.lg, &avals, &ja, &ia);
-      // ia : pointeurs des colonnes
-      // ja : indices des lignes
-      if(verbosity)
-      cout << "AA.n= "<< AA.n << " AA.m=" <<  AA.m << " AA.nbcoef=" << AA.nbcoef << endl;
-    
-     
-      for(int ii=0; ii < Ncol+1; ii++){
-	ia[ii] = ia[ii]+1;
-      }
-      assert( ia[Ncol]-1 == AA.nbcoef );
-      for(int ii=0; ii < ia[Ncol]-1; ii++){
-	ja[ii] = ja[ii]+1; 
-      }
-      //cout << " put  " << Ncol << " " << Nrow << " " << nnz << endl;            
-      MPI_Bcast( &Ncol,   1,    MPI_PASTIX_INT,   0, commworld );
-      MPI_Bcast( &Nrow,   1,    MPI_PASTIX_INT,   0, commworld );
-      MPI_Bcast( &nnz,    1,    MPI_PASTIX_INT,   0, commworld );
-
-      MPI_Bcast( avals, nnz,    MPI_PASTIX_FLOAT, 0, commworld );
-      MPI_Bcast(    ia, Ncol+1, MPI_PASTIX_INT,   0, commworld );
-      MPI_Bcast(    ja, nnz,    MPI_PASTIX_INT,   0, commworld );
-    }
-    else{
-      MPI_Bcast( &Ncol, 1,        MPI_PASTIX_INT,  0, commworld );
-      MPI_Bcast( &Nrow, 1,        MPI_PASTIX_INT,  0, commworld );
-      MPI_Bcast( &nnz,  1,        MPI_PASTIX_INT,  0, commworld );
-      //cout << " get " << Ncol << " " << Nrow << " " << nnz << endl;
-      avals = (pastix_float_t *) malloc( nnz*sizeof(pastix_float_t) );
-      ia = (pastix_int_t *) malloc( (Ncol+1)*sizeof(pastix_int_t) );
-      ja = (pastix_int_t *) malloc( nnz*sizeof(pastix_int_t) );
-
-      MPI_Bcast( avals, nnz,  MPI_PASTIX_FLOAT,   0, commworld );
-      MPI_Bcast(    ia, Ncol+1, MPI_PASTIX_INT,   0, commworld );
-      MPI_Bcast(    ja, nnz,    MPI_PASTIX_INT,   0, commworld );
-    }
-    //cout << " " << Ncol << " " << endl; 
-    perm = (pastix_int_t *) malloc(Ncol*sizeof(pastix_int_t));
-    invp = (pastix_int_t *) malloc(Ncol*sizeof(pastix_int_t));
-    
-    rhs = (pastix_float_t *) malloc(Ncol*sizeof(pastix_float_t));
-    
-    // reading permutation given by the user
-    if(pperm_r) 
-      for(int ii=0; ii < Ncol; ii++)
-	perm[ii] = pperm_r[ii];
-    if(pperm_c)  
-      for(int ii=0; ii < Ncol; ii++)
-	invp[ii] = pperm_c[ii];
-
-      
-    iparm[IPARM_START_TASK] = API_TASK_INIT;
-    iparm[IPARM_END_TASK]   = API_TASK_INIT;
-    iparm[IPARM_SYM] = API_SYM_NO; // Matrix is considered nonsymetric    
-
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm); 
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    fprintf(stdout,"-- FIN INIT PARAMETERS --\n");
-    init_raff = iparm[IPARM_ITERMAX];
-    
-    fflush(stdout);
-    /* Passage en mode verbose */
-    
-    iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    if( (param_int==NULL) && data_option.empty() ){
-      iparm[IPARM_MATRIX_VERIFICATION] = API_YES;
-      iparm[IPARM_REFINEMENT] = API_RAF_GMRES;
-      iparm[IPARM_INCOMPLETE] = API_NO;
-    }
-
-    if( (param_double==NULL) && data_option.empty()){
-      dparm[DPARM_EPSILON_REFINEMENT] = 1e-12;
-      dparm[DPARM_EPSILON_MAGN_CTRL] = 1e-32;
-    }
-
-//    cscd_checksym(Ncol, ia, ja, loc2glob, commworld);
-    
-//     if (iparm[IPARM_SYM]==API_SYM_YES)
-//       {
-// 	/* Symetric problem */
-// 	/* Build non oriented graph */
-// 	/* build non symmetric csc from symmetric csc */
-// 	/*maillage global*/
-// 	INT *tmpia;
-// 	INT *tmpja;
-// 	INT  tmpn;
-	
-// 	cscd_symgraph_int(*n2,   *col2,  *row2 , NULL,
-// 			  &tmpn, &tmpia, &tmpja, NULL,
-// 			  *loc2glob2, pastix_comm, API_YES);
-	
-// 	memFree_null(*col2);
-// 	*col2 = tmpia;
-// 	memFree_null(*row2);
-// 	*row2 = tmpja;
-// 	*n2   = tmpn;
-//       }
-    
-
-    SYM = AA.symetrique; 
-    cout << "SYM = "<< SYM << endl;
-    // SYMETRIQUE
-    if( SYM == 1 ){
-      iparm[IPARM_SYM] = API_SYM_YES;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LDLT;
-    }
-    if( SYM == 0 ){
-      iparm[IPARM_SYM] = API_SYM_NO;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LU;
-    }
-    
-    /* Scotch */
-    fprintf(stdout,"-- Scotch --\n");
-    fflush(stdout);
-    iparm[IPARM_START_TASK] = API_TASK_ORDERING;
-    iparm[IPARM_END_TASK]   = API_TASK_ORDERING; 
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl;  
-    iparm[IPARM_SYM] = API_SYM_NO;
-    /* Fax */
-    fprintf(stdout,"-- Fax --\n");
-    iparm[IPARM_START_TASK] = API_TASK_SYMBFACT;
-    iparm[IPARM_END_TASK]   = API_TASK_SYMBFACT;
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    /* Blend */
-    fprintf(stdout,"-- Blend --\n");
-    iparm[IPARM_START_TASK] = API_TASK_ANALYSE;
-    iparm[IPARM_END_TASK]   = API_TASK_ANALYSE;
-    if( SYM == 1 ){
-      //iparm[IPARM_SYM] = API_SYM_YES;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LDLT;
-    }
-    if( SYM == 0 ){
-      //iparm[IPARM_SYM] = API_SYM_NO;
-      iparm[IPARM_FACTORIZATION] = API_FACT_LU;
-    }
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-   
-    /* Factorisation */
-    iparm[IPARM_START_TASK] = API_TASK_NUMFACT;
-    iparm[IPARM_END_TASK]   = API_TASK_NUMFACT;
-    gettimeofday(&tv1, NULL);
-    fprintf(stdout,"-- SOPALIN --\n");
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-       cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call factorization : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));
-    
-   
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]-1;
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]-1;
-    
-    if(verbosity)
-      if(myid==0){
-	finishtime = clock();
-	timeused= (finishtime-starttime)/(1000);
-	printf("=====================================================\n");
-	cout << " pastix : time factorization  :: " << timeused << " ms" <<endl;
-	printf("=====================================================\n");
-      }
-
-  }
-  void Solver(const MatriceMorse<double> &AA,KN_<double> &x,const KN_<double> &b) const  {
-  
-    struct timeval  tv1, tv2;
-    // time variables
-    long int starttime,finishtime;
-    long int timeused;
-    if(verbosity) starttime = clock();
-    
-
-    // index for pastix    
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]+1;
-    assert( ia[Ncol]-1 == AA.nbcoef );
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]+1;
-    
-    
-    // give value of the second member
-    for(int ii=0; ii < Ncol; ii++){
-      rhs[ii] = b[ii];  
-    }
-    
-    
-
-    //fprintf(stdout,"SOLVE STEP %ld (in FACTORIZE STEP %ld)\n",(long)ii,(long)jj);
-    
-    /* updo */
-    iparm[IPARM_START_TASK] = API_TASK_SOLVE;
-    iparm[IPARM_END_TASK]   = API_TASK_SOLVE;
-    iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    gettimeofday(&tv1, NULL);
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call updown : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));    
-    
-    //if(verbosity > 1)
-    //  for(int jj=0; jj < Ncol; jj++)
-    //cout << "rhs["<< jj << "]=" << rhs[jj] << endl;
-    
-    
-    //fprintf(stdout,"RAFF STEP %ld (in FACTORIZE STEP %ld)\n",(long)ii,(long)jj);
-    /* raff */
-    
-    
-    iparm[IPARM_START_TASK] = API_TASK_REFINE;
-    iparm[IPARM_END_TASK]   = API_TASK_REFINE;
-    iparm[IPARM_RHS_MAKING] = API_RHS_B;
-    iparm[IPARM_ITERMAX]    = init_raff;
-    gettimeofday(&tv1, NULL);
-    if(mpi_flag == 0)
-      pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-    else
-      cerr << "error :: mpi_flag = 0 for calling pastix" << endl; 
-    gettimeofday(&tv2, NULL);
-    fprintf(stdout,"Time to call refinement : %ld usec\n", 
-	    (long)((tv2.tv_sec  - tv1.tv_sec ) * 1000000 + 
-		   tv2.tv_usec - tv1.tv_usec));
-
-    
-    for(int ii=0; ii < Ncol; ii++)
-      x[ii] = rhs[ii];
-       
-    // index for freefem
-    assert( ia[Ncol]-1 == AA.nbcoef );
-    for(int ii=0; ii < ia[Ncol]-1; ii++)
-      ja[ii] = ja[ii]-1;
-    for(int ii=0; ii < Ncol+1; ii++)
-      ia[ii] = ia[ii]-1;
-
-    if(verbosity)
-      if(myid==0){
-	finishtime = clock();
-	timeused= (finishtime-starttime)/(1000 );
-	printf("=====================================================\n");
-	cout << " pastix : time solve  :: " << timeused << " ms" <<endl;
-	printf("=====================================================\n");
-      }
-
-  
-  }
-
-  ~dSolvepastixmpi(){
-    /* mem free */
-    iparm[IPARM_START_TASK] = API_TASK_CLEAN;
-    iparm[IPARM_END_TASK]   = API_TASK_CLEAN;
-    
-    pastix(&pastix_data, commworld, Ncol,ia,ja,avals,perm,invp,rhs,1,iparm,dparm);
-      
-    //if( sizeof(pastix_int_t) != sizeof(int) )
-    //  {
-    memFree_null(ia);
-    memFree_null(ja);
-    //}
-    memFree_null(avals);
-    /* Free mem no longer necessary */
-    memFree_null(perm);
-    memFree_null(invp);
-    memFree_null(rhs);
-    
-  
-    
-  }
-  
-  void addMatMul(const KN_<double> & x, KN_<double> & Ax) const 
-  {  
-    ffassert(x.N()==Ax.N());
-    Ax +=  (const MatriceMorse<double> &) (*this) * x; 
-  }
-
-};
-
-MatriceMorse<double>::VirtualSolver *
-BuildSolverpastix_real_mpi(DCL_ARG_SPARSE_SOLVER(double,A))
-{
-    if(verbosity>9)
-    cout << " BuildSolverpastix_real_mpi<double>" << endl;
-    return new dSolvepastixmpi(*A,ds.strategy,ds.tgv,ds.epsilon,ds.tol_pivot,ds.tol_pivot_sym, ds.data_filename, 
-			       ds.lparams, ds.dparams, ds.perm_r, ds.perm_c, ds.commworld);
-}
-
-
-<<<<<<< HEAD
-/* --FH:   class Init { public:
-    Init();
-    };*/
-=======
-class Init { public:
-    Init();
-};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-//DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity)
-	cout << " SetDefault sparse to default" << endl;
-    DefSparseSolver<double>::solver =SparseMatSolver_R;
-    //DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-    return false;
-}
-
-bool Setpastixmpi()
-{
-    if(verbosity)
-	cout << " SetDefault sparse solver to pastixmpi" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverpastix_real_mpi;
-    //DefSparseSolver<Complex>::solver =BuildSolverpastix_real_mpi;    
-    TypeSolveMat::defaultvalue  = TypeSolveMatdefaultvalue;
-    return false;
-}
-
-
-
-<<<<<<< HEAD
-
-static void Load_Init()
-=======
-LOADINIT(Init);
-Init::Init()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{ 
-  
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  //SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  
-  if(verbosity>1)
-    cout << "\n Add: pastix,  defaultsolver defaultsolverpastix" << endl;
-  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-  DefSparseSolver<double>::solver =BuildSolverpastix_real_mpi;
-  //DefSparseSolver<Complex>::solver =BuildSolverpastix_real_mpi;
-  if(! Global.Find("defaultsolver").NotNull() )
-    Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  Global.Add("realdefaulttopastix","(",new OneOperator0<bool>(Setpastixmpi));
-}
-<<<<<<< HEAD
- LOADFUNC(Load_Init)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/removeDOF.cpp.orig b/examples++-mpi/removeDOF.cpp.orig
deleted file mode 100644
index f680d48..0000000
--- a/examples++-mpi/removeDOF.cpp.orig
+++ /dev/null
@@ -1,278 +0,0 @@
-<<<<<<< HEAD
-=======
-//ff-c++-LIBRARY-dep: cxx11 
->>>>>>> upstream/3.34.2
-#ifndef _ALL_IN_ONE_
-#include "ff++.hpp"
-#include <algorithm>
-#include <vector>
-#include <cmath>
-#endif
-#include <utility>
-
-#ifndef EPS
-#define EPS 1e-12
-#endif
-
-template<class T>
-class removeDOF_Op : public E_F0mps {
-    public:
-        Expression A;
-        Expression R;
-        Expression x;
-        Expression out;
-        static const int n_name_param = 3;
-        static basicAC_F0::name_and_type name_param[];
-        Expression nargs[n_name_param];
-        removeDOF_Op(const basicAC_F0&  args, Expression param1, Expression param2, Expression param3, Expression param4) : A(param1), R(param2), x(param3), out(param4) {
-            args.SetNameParam(n_name_param, name_param, nargs);
-        }
-
-        AnyType operator()(Stack stack) const;
-};
-
-template<class T>
-basicAC_F0::name_and_type removeDOF_Op<T>::name_param[] = {
-    {"symmetrize", &typeid(bool)},
-    {"condensation", &typeid(KN<long>*)},
-    {"interaction", &typeid(Matrice_Creuse<T>*)}
-};
-
-template<class T>
-class removeDOF : public OneOperator {
-    public:
-        removeDOF() : OneOperator(atype<long>(), atype<Matrice_Creuse<T>*>(), atype<Matrice_Creuse<double>*>(), atype<KN<T>*>(), atype<KN<T>*>()) {}
-
-        E_F0* code(const basicAC_F0& args) const {
-            return new removeDOF_Op<T>(args, t[0]->CastTo(args[0]), t[1]->CastTo(args[1]), t[2]->CastTo(args[2]), t[3]->CastTo(args[3]));
-        }
-};
-
-template<class T>
-AnyType removeDOF_Op<T>::operator()(Stack stack)  const {
-    Matrice_Creuse<T>* pA = GetAny<Matrice_Creuse<T>* >((*A)(stack));
-    Matrice_Creuse<T>* pR = GetAny<Matrice_Creuse<T>* >((*R)(stack));
-    KN<T>* pX = GetAny<KN<T>* >((*x)(stack));
-    KN<T>* pOut = GetAny<KN<T>* >((*out)(stack));
-    ffassert(pA && pR && pX && pOut);
-    pA->Uh = pR->Uh;
-    pA->Vh = pR->Vh;
-    MatriceMorse<T> *mA = static_cast<MatriceMorse<T>*>(&(*pA->A));
-    MatriceMorse<T> *mR = static_cast<MatriceMorse<T>*>(&(*pR->A));
-    bool symmetrize = nargs[0] ? GetAny<bool>((*nargs[0])(stack)) : false;
-    KN<long>* condensation = nargs[1] ? GetAny<KN<long>* >((*nargs[1])(stack)) : (KN<long>*) 0;
-
-    unsigned int n = condensation ? condensation->n : mR->nbcoef;
-    int* lg = new int[n + 1];
-    int* cl;
-    T* val;
-    T* b;
-    if(pOut->n == 0) {
-        b = new T[n];
-        pOut->set(b, n);
-    }
-
-    std::vector<signed int> tmpVec;
-    if(!condensation) {
-        tmpVec.resize(mA->n);
-        for(unsigned int i = 0; i < n; ++i)
-            tmpVec[mR->cl[i]] = i + 1;
-        if(!mA->symetrique) {
-            std::vector<std::pair<int, T> > tmp;
-            tmp.reserve(mA->nbcoef);
-
-            lg[0] = 0;
-            for(unsigned int i = 0; i < n; ++i) {
-                for(unsigned int j = mA->lg[mR->cl[i]]; j < mA->lg[mR->cl[i] + 1]; ++j) {
-                    unsigned int col = tmpVec[mA->cl[j]];
-                    if(col != 0 && abs(mA->a[j]) > EPS) {
-                        if(symmetrize) {
-                            if(col - 1 <= i)
-                                tmp.emplace_back(col - 1, mA->a[j]);
-                        }
-                        else
-                            tmp.emplace_back(col - 1, mA->a[j]);
-                    }
-                }
-                std::sort(tmp.begin() + lg[i], tmp.end(), [](const std::pair<unsigned int, T>& lhs, const std::pair<unsigned int, T>& rhs) { return lhs.first < rhs.first; });
-                *(*pOut + i) = *(*pX + mR->cl[i]);
-                lg[i + 1] = tmp.size();
-            }
-            mA->nbcoef = tmp.size();
-            if(symmetrize)
-                mA->symetrique = true;
-            else
-                mA->symetrique = false;
-
-            cl = new int[tmp.size()];
-            val = new T[tmp.size()];
-
-            for(unsigned int i = 0; i < tmp.size(); ++i) {
-                cl[i]  = tmp[i].first;
-                val[i] = tmp[i].second;
-            }
-        }
-        else {
-            std::vector<std::vector<std::pair<unsigned int, T> > > tmp(n);
-            for(unsigned int i = 0; i < n; ++i)
-                tmp[i].reserve(mA->lg[mR->cl[i] + 1] - mA->lg[mR->cl[i]]);
-
-            unsigned int nnz = 0;
-            for(unsigned int i = 0; i < n; ++i) {
-                for(unsigned int j = mA->lg[mR->cl[i]]; j < mA->lg[mR->cl[i] + 1]; ++j) {
-                    unsigned int col = tmpVec[mA->cl[j]];
-                    if(col != 0 && abs(mA->a[j]) > EPS) {
-                        if(i < col - 1)
-                            tmp[col - 1].emplace_back(i, mA->a[j]);
-                        else
-                            tmp[i].emplace_back(col - 1, mA->a[j]);
-                        ++nnz;
-                    }
-                }
-                *(*pOut + i) = *(*pX + mR->cl[i]);
-            }
-            mA->nbcoef = nnz;
-            cl = new int[nnz];
-            val = new T[nnz];
-            nnz = 0;
-            lg[0] = 0;
-            for(unsigned int i = 0; i < n; ++i) {
-                std::sort(tmp[i].begin(), tmp[i].end(), [](const std::pair<unsigned int, T>& lhs, const std::pair<unsigned int, T>& rhs) { return lhs.first < rhs.first; });
-                for(typename std::vector<std::pair<unsigned int, T> >::const_iterator it = tmp[i].begin(); it != tmp[i].end(); ++it) {
-                    cl[nnz] = it->first;
-                    val[nnz++] = it->second;
-                }
-                lg[i + 1] = nnz;
-            }
-
-        }
-        delete [] mA->cl;
-        delete [] mA->lg;
-        delete [] mA->a;
-        mA->n = n;
-        mA->m = n;
-        mA->N = n;
-        mA->M = n;
-        mA->lg = lg;
-        mA->cl = cl;
-        mA->a = val;
-    }
-    else {
-        tmpVec.reserve(mA->n);
-        unsigned int i = 0, j = 1;
-        for(unsigned int k = 0; k < mA->n; ++k) {
-            if(k == *(*condensation + i)) {
-                ++i;
-                tmpVec.emplace_back(i);
-            }
-            else {
-                tmpVec.emplace_back(-j);
-                ++j;
-            }
-        }
-
-
-//        if(!mA->symetrique) {
-            std::vector<std::pair<int, T> > tmpInterior;
-            std::vector<std::pair<int, T> > tmpBoundary;
-            std::vector<std::pair<int, T> > tmpInteraction;
-            tmpInterior.reserve(mA->nbcoef);
-            tmpBoundary.reserve(mA->nbcoef);
-            tmpInteraction.reserve(mA->nbcoef);
-
-            lg[0] = 0;
-            for(unsigned int i = 0; i < mA->n; ++i) {
-                int row = tmpVec[i];
-                if(row < 0) {
-                    for(unsigned int j = mA->lg[i]; j < mA->lg[i + 1]; ++j) {
-                        int col = tmpVec[mA->cl[j]];
-                        if(col < 0)
-                            tmpInterior.emplace_back(-col - 1, mA->a[j]);
-                        else
-                            tmpInteraction.emplace_back(col - 1, mA->a[j]);
-                    }
-
-                }
-                else {
-                    for(unsigned int j = mA->lg[i]; j < mA->lg[i + 1]; ++j) {
-                        int col = tmpVec[mA->cl[j]];
-                        if(col > 0)
-                            tmpBoundary.emplace_back(col - 1, mA->a[j]);
-                    }
-                    // std::sort(tmp.begin() + lg[i], tmp.end());
-                    *(*pOut + i) = *(*pX + *(*condensation + i));
-                    lg[i + 1] = tmpBoundary.size();
-                }
-            }
-            cl = new int[tmpBoundary.size()];
-            val = new T[tmpBoundary.size()];
-            for(unsigned int i = 0; i < tmpBoundary.size(); ++i) {
-                cl[i]  = tmpBoundary[i].first;
-                val[i] = tmpBoundary[i].second;
-            }
-//        }
-        MatriceMorse<T>* m = new MatriceMorse<T>(n, n, tmpBoundary.size(), mA->symetrique, val, lg, cl, true);
-        pR->typemat = TypeSolveMat(TypeSolveMat::GMRES);
-        pR->A.master(m);
-        m->dummy = false;
-    }
-    return 0L;
-}
-
-template<class T>
-long symmetrizeCSR(Matrice_Creuse<T>* const& A) {
-    MatriceMorse<T>* mA = static_cast<MatriceMorse<T>*>(&(*A->A));
-    if(!mA->symetrique) {
-        mA->symetrique = true;
-        std::vector<int> cl;
-        std::vector<T> a;
-        a.reserve(mA->nbcoef);
-        cl.reserve(mA->nbcoef);
-        unsigned int save = mA->lg[0];
-        for(unsigned int i = 0; i < mA->n; ++i) {
-            for(unsigned int j = save; j < mA->lg[i + 1]; ++j) {
-                int col = mA->cl[j];
-                if(col <= i) {
-                    T val = mA->a[j];
-                    if(abs(val) > EPS) {
-                        a.emplace_back(val);
-                        cl.emplace_back(col);
-                    }
-                }
-                else
-                    break;
-            }
-            save = mA->lg[i + 1];
-            mA->lg[i + 1] = cl.size();
-        }
-        delete [] mA->cl;
-        delete [] mA->a;
-        int* col = new int[cl.size()];
-        T* val = new T[cl.size()];
-        for(unsigned int i = 0; i < cl.size(); ++i) {
-            col[i] = cl[i];
-            val[i] = a[i];
-        }
-        mA->cl = col;
-        mA->a = val;
-        mA->nbcoef = cl.size();
-    }
-    return 0L;
-}
-
-#ifndef _ALL_IN_ONE_
-/* --FH:   class Init {
-    public:
-        Init();
-	};
-Init ...; */
-static void Load_Initrm() {
-    Global.Add("removeDOF", "(", new removeDOF<double>);
-    Global.Add("removeDOF", "(", new removeDOF<std::complex<double>>);
-    Global.Add("symmetrizeCSR", "(", new OneOperator1_<long, Matrice_Creuse<double>* >(symmetrizeCSR<double>));
-}
- LOADFUNC(Load_Initrm)
-#endif
-
-// std::sort(tmp.begin() + lg[i], tmp.end(), [](const std::pair<int, T>& lhs, const std::pair<int, T>& rhs) { return lhs.first < rhs.first; } );
-
diff --git a/examples++-mpi/schwarz.cpp.orig b/examples++-mpi/schwarz.cpp.orig
deleted file mode 100644
index dc166df..0000000
--- a/examples++-mpi/schwarz.cpp.orig
+++ /dev/null
@@ -1,473 +0,0 @@
-<<<<<<< HEAD
-//ff-c++-LIBRARY-dep:   hpddm  umfpack amd mumps scalapack blas [mkl]   mpifc  fc mpi  pthread   [petsc]
-//ff-c++-cpp-dep: 
-
-=======
-//ff-c++-LIBRARY-dep: cxx11   hpddm  umfpack amd  scalapack blas [mkl]   mpifc  fc mpi  pthread   [petsc] 
-//ff-c++-cpp-dep: 
-
-// mumps est avec petsc ..
-#ifdef WITH_mumps
-#define MUMPSSUB
-#define DMUMPS
-#endif
-
->>>>>>> upstream/3.34.2
-#ifdef WITH_mkl
-#include <complex>
-#define MKL_Complex16 std::complex<double>
-#define MKL_Complex8 std::complex<float>
-#define MKL_INT int
-#include <mkl.h>
-#endif
-
-
-<<<<<<< HEAD
-#ifndef WITH_PETSC 
-#pragma message("schwarz plugin compile without PETSc")
-=======
-#ifndef WITH_petsc 
-#pragma message("schwarz plugin compile without PETSc")
-#else
-#define MUMPSSUB
-#define DMUMPS
->>>>>>> upstream/3.34.2
-#endif
-
-#define HPDDM_BDD  0
-#define HPDDM_FETI 0
-
-
-#include <math.h>
-#include <mpi.h>
-#include <ff++.hpp>
-#include "AFunction_ext.hpp"
-#include <HPDDM.hpp>
-
-template<class T>
-class STL {
-    T* const _it;
-    const int _size;
-    public:
-        STL(const KN<T>& v) : _it(v), _size(v.size()) { };
-        int size() const {
-            return _size;
-        }
-        T* begin() const {
-            return _it;
-        }
-        T* end() const {
-            return _it + _size;
-        }
-};
-template<class K>
-class Pair {
-    public:
-        Pair() : p() { };
-        std::pair<MPI_Request, const K*>* p;
-        void init() {
-        }
-        void destroy() {
-        }
-};
-
-<<<<<<< HEAD
-#ifdef WITH_PETSC
-=======
-#ifdef WITH_petsc
->>>>>>> upstream/3.34.2
-#include "PETSc.hpp"
-#endif
-
-namespace Schwarz {
-template<class Type, class K>
-class initDDM_Op : public E_F0mps {
-    public:
-        Expression A;
-        Expression Mat;
-        Expression o;
-        Expression R;
-        static const int n_name_param = 3;
-        static basicAC_F0::name_and_type name_param[];
-        Expression nargs[n_name_param];
-        initDDM_Op(const basicAC_F0& args, Expression param1, Expression param2, Expression param3, Expression param4) : A(param1), Mat(param2), o(param3), R(param4) {
-            args.SetNameParam(n_name_param, name_param, nargs);
-        }
-
-        AnyType operator()(Stack stack) const;
-};
-template<class Type, class K>
-basicAC_F0::name_and_type initDDM_Op<Type, K>::name_param[] = {
-    {"communicator", &typeid(pcommworld)},
-    {"scaling", &typeid(KN<typename HPDDM::Wrapper<K>::ul_type>*)},
-    {"deflation", &typeid(FEbaseArrayKn<K>*)},
-};
-template<class Type, class K>
-class initDDM : public OneOperator {
-    public:
-        initDDM() : OneOperator(atype<Type*>(), atype<Type*>(), atype<Matrice_Creuse<K>*>(), atype<KN<long>*>(), atype<KN<KN<long>>*>()) { }
-
-        E_F0* code(const basicAC_F0& args) const {
-            return new initDDM_Op<Type, K>(args, t[0]->CastTo(args[0]), t[1]->CastTo(args[1]), t[2]->CastTo(args[2]), t[3]->CastTo(args[3]));
-        }
-};
-template<class Type, class K>
-AnyType initDDM_Op<Type, K>::operator()(Stack stack) const {
-    Type* ptA = GetAny<Type*>((*A)(stack));
-    MatriceMorse<K>* mA = static_cast<MatriceMorse<K>*>(&(*GetAny<Matrice_Creuse<K>*>((*Mat)(stack))->A));
-    KN<long>* ptO = GetAny<KN<long>*>((*o)(stack));
-    KN<KN<long>>* ptR = GetAny<KN<KN<long>>*>((*R)(stack));
-    MPI_Comm* comm = nargs[0] ? (MPI_Comm*)GetAny<pcommworld>((*nargs[0])(stack)) : 0;
-    if(ptO && mA) {
-        HPDDM::MatrixCSR<K>* dA = new HPDDM::MatrixCSR<K>(mA->n, mA->m, mA->nbcoef, mA->a, mA->lg, mA->cl, mA->symetrique);
-        ptA->HPDDM::template Subdomain<K>::initialize(dA, STL<long>(*ptO), *ptR, comm);
-    }
-    FEbaseArrayKn<K>* deflation = nargs[2] ? GetAny<FEbaseArrayKn<K>*>((*nargs[2])(stack)) : 0;
-    K** const& v = ptA->getVectors();
-    if(deflation && deflation->N > 0 && !v) {
-        K** ev = new K*[deflation->N];
-        *ev = new K[deflation->N * deflation->get(0)->n];
-        for(int i = 0; i < deflation->N; ++i) {
-            ev[i] = *ev + i * deflation->get(0)->n;
-            std::copy(&(*deflation->get(i))[0], &(*deflation->get(i))[deflation->get(i)->n], ev[i]);
-        }
-        ptA->setVectors(ev);
-        ptA->Type::super::initialize(deflation->N);
-    }
-    KN<typename HPDDM::Wrapper<K>::ul_type>* ptD = nargs[1] ? GetAny<KN<typename HPDDM::Wrapper<K>::ul_type>*>((*nargs[1])(stack)) : 0;
-    if(ptD)
-        ptA->initialize(*ptD);
-    else
-        std::cerr << "Something is really wrong here !" << std::endl;
-    return ptA;
-}
-
-template<class Type, class K>
-class attachCoarseOperator_Op : public E_F0mps {
-    public:
-        Expression comm;
-        Expression A;
-        static const int n_name_param = 7;
-        static basicAC_F0::name_and_type name_param[];
-        Expression nargs[n_name_param];
-        attachCoarseOperator_Op(const basicAC_F0& args, Expression param1, Expression param2) : comm(param1), A(param2) {
-            args.SetNameParam(n_name_param, name_param, nargs);
-        }
-
-        AnyType operator()(Stack stack) const;
-};
-template<class Type, class K>
-basicAC_F0::name_and_type attachCoarseOperator_Op<Type, K>::name_param[] = {
-    {"A", &typeid(Matrice_Creuse<K>*)},
-    {"B", &typeid(Matrice_Creuse<K>*)},
-    {"pattern", &typeid(Matrice_Creuse<K>*)},
-    {"threshold", &typeid(typename HPDDM::Wrapper<K>::ul_type)},
-    {"parameters", &typeid(KN<long>*)},
-    {"timing", &typeid(KN<double>*)},
-    {"ret", &typeid(Pair<K>*)}
-};
-template<class Type, class K>
-class attachCoarseOperator : public OneOperator {
-    public:
-        attachCoarseOperator() : OneOperator(atype<long>(), atype<pcommworld>(), atype<Type*>()) { }
-
-        E_F0* code(const basicAC_F0& args) const {
-            return new attachCoarseOperator_Op<Type, K>(args, t[0]->CastTo(args[0]), t[1]->CastTo(args[1]));
-        }
-};
-template<class Type, class K>
-AnyType attachCoarseOperator_Op<Type, K>::operator()(Stack stack) const {
-    pcommworld ptComm = GetAny<pcommworld>((*comm)(stack));
-    MPI_Comm comm = *(MPI_Comm*)ptComm;
-    Type* ptA = GetAny<Type*>((*A)(stack));
-    MatriceMorse<K>* mA = nargs[0] ? static_cast<MatriceMorse<K>*>(&(*GetAny<Matrice_Creuse<K>*>((*nargs[0])(stack))->A)) : 0;
-    KN<long>* ptParm = nargs[4] ? GetAny<KN<long>*>((*nargs[4])(stack)) : 0;
-    if(ptParm && ptParm->n != 5) {
-        if(ptParm->n == 1) {
-            ptParm->resize(5);
-            (*ptParm)[HPDDM::P] = 1;
-        }
-        else if(ptParm->n == 2)
-            ptParm->resize(5);
-        else
-            cout << "Input array must be of size 1, 2, or 5 !" << endl;
-        if(ptParm->n == 5) {
-            (*ptParm)[HPDDM::TOPOLOGY] = 0;
-            (*ptParm)[HPDDM::DISTRIBUTION] = HPDDM::DMatrix::NON_DISTRIBUTED;
-            (*ptParm)[HPDDM::STRATEGY] = 3;
-        }
-    }
-    KN<double>* timing = nargs[5] ? GetAny<KN<double>*>((*nargs[5])(stack)) : 0;
-    Pair<K>* pair = nargs[6] ? GetAny<Pair<K>*>((*nargs[6])(stack)) : 0;
-    typename HPDDM::Wrapper<K>::ul_type threshold = nargs[3] ? GetAny<typename HPDDM::Wrapper<K>::ul_type>((*nargs[3])(stack)) : 0;
-    std::vector<unsigned short> parm(5);
-    if(ptParm) {
-        parm[HPDDM::P]            = (*ptParm)[HPDDM::P];
-        parm[HPDDM::TOPOLOGY]     = (*ptParm)[HPDDM::TOPOLOGY];
-        parm[HPDDM::DISTRIBUTION] = (*ptParm)[HPDDM::DISTRIBUTION];
-        parm[HPDDM::STRATEGY]     = (*ptParm)[HPDDM::STRATEGY];
-    }
-    else {
-        parm[HPDDM::P]            = 1;
-        parm[HPDDM::TOPOLOGY]     = 0;
-        parm[HPDDM::DISTRIBUTION] = HPDDM::DMatrix::NON_DISTRIBUTED;
-        parm[HPDDM::STRATEGY]     = 3;
-    }
-    unsigned short nu = ptParm ? (*ptParm)[HPDDM::NU] : 20;
-    nu = std::max(nu, static_cast<unsigned short>(1));
-    std::pair<MPI_Request, const K*>* ret = nullptr;
-    if(mA) {
-        HPDDM::MatrixCSR<K> dA(mA->n, mA->m, mA->nbcoef, mA->a, mA->lg, mA->cl, mA->symetrique);
-        MatriceMorse<K>* mB = nargs[1] ? static_cast<MatriceMorse<K>*>(&(*GetAny<Matrice_Creuse<K>*>((*nargs[1])(stack))->A)) : nullptr;
-        MatriceMorse<K>* mP = nargs[2] ? static_cast<MatriceMorse<K>*>(&(*GetAny<Matrice_Creuse<K>*>((*nargs[2])(stack))->A)) : nullptr;
-        const HPDDM::MatrixCSR<K>* const dP = mP ? new HPDDM::MatrixCSR<K>(mP->n, mP->m, mP->nbcoef, mP->a, mP->lg, mP->cl, mP->symetrique) : nullptr;
-        double t = MPI_Wtime();
-        if(mB) {
-            HPDDM::MatrixCSR<K> dB(mB->n, mB->m, mB->nbcoef, mB->a, mB->lg, mB->cl, mB->symetrique);
-            ptA->template solveGEVP<EIGENSOLVER>(&dA, nu, threshold, &dB, dP);
-        }
-        else
-            ptA->template solveGEVP<EIGENSOLVER>(&dA, nu, threshold, nullptr, dP);
-        mA->nbcoef = dA._nnz;
-        mA->a = dA._a;
-        mA->lg = dA._ia;
-        mA->cl = dA._ja;
-        if(timing)
-            (*timing)[3] = MPI_Wtime() - t;
-        delete dP;
-        parm[HPDDM::NU]           = nu;
-        if(ptA->exclusion(comm)) {
-            if(pair)
-                pair->p = ptA->template buildTwo<1>(comm, parm);
-            else
-                ret = ptA->template buildTwo<1>(comm, parm);
-        }
-        else {
-            if(pair)
-                pair->p = ptA->template buildTwo<0>(comm, parm);
-            else
-                ret = ptA->template buildTwo<0>(comm, parm);
-        }
-    }
-    else {
-        if(!threshold) {
-            parm[HPDDM::NU]       = nu;
-            ret = ptA->template buildTwo<2>(comm, parm);
-        }
-    }
-    delete ret;
-    return 0L;
-}
-
-template<class Type, class K>
-class solveDDM_Op : public E_F0mps {
-    public:
-        Expression A;
-        Expression x;
-        Expression rhs;
-        static const int n_name_param = 9;
-        static basicAC_F0::name_and_type name_param[];
-        Expression nargs[n_name_param];
-        solveDDM_Op(const basicAC_F0& args, Expression param1, Expression param2, Expression param3) : A(param1), x(param2), rhs(param3) {
-            args.SetNameParam(n_name_param, name_param, nargs);
-        }
-
-        AnyType operator()(Stack stack) const;
-};
-template<class Type, class K>
-basicAC_F0::name_and_type solveDDM_Op<Type, K>::name_param[] = {
-    {"eps", &typeid(typename HPDDM::Wrapper<K>::ul_type)},
-    {"dim", &typeid(long)},
-    {"iter", &typeid(long)},
-    {"timing", &typeid(KN<double>*)},
-    {"solver", &typeid(long)},
-    {"pipelined", &typeid(long)},
-    {"excluded", &typeid(bool)},
-    {"ret", &typeid(Pair<K>*)},
-    {"O", &typeid(Matrice_Creuse<K>*)}
-};
-template<class Type, class K>
-class solveDDM : public OneOperator {
-    public:
-        solveDDM() : OneOperator(atype<long>(), atype<Type*>(), atype<KN<K>*>(), atype<KN<K>*>()) { }
-
-        E_F0* code(const basicAC_F0& args) const {
-            return new solveDDM_Op<Type, K>(args, t[0]->CastTo(args[0]), t[1]->CastTo(args[1]), t[2]->CastTo(args[2]));
-        }
-};
-template<class Type, class K>
-AnyType solveDDM_Op<Type, K>::operator()(Stack stack) const {
-    KN<K>* ptX = GetAny<KN<K>*>((*x)(stack));
-    KN<K>* ptRHS = GetAny<KN<K>*>((*rhs)(stack));
-    Type* ptA = GetAny<Type*>((*A)(stack));
-    typename HPDDM::Wrapper<K>::ul_type eps = nargs[0] ? GetAny<typename HPDDM::Wrapper<K>::ul_type>((*nargs[0])(stack)) : 1e-8;
-    unsigned short dim = nargs[1] ? GetAny<long>((*nargs[1])(stack)) : 50;
-    unsigned short iter = nargs[2] ? GetAny<long>((*nargs[2])(stack)) : 50;
-    KN<double>* timing = nargs[3] ? GetAny<KN<double>*>((*nargs[3])(stack)) : 0;
-    Pair<K>* pair = nargs[7] ? GetAny<Pair<K>*>((*nargs[7])(stack)) : 0;
-    if(pair)
-        if(pair->p) {
-            int flag;
-            MPI_Test(&(pair->p->first), &flag, MPI_STATUS_IGNORE);
-        }
-    MatriceMorse<K>* mA = nargs[8] ? static_cast<MatriceMorse<K>*>(&(*GetAny<Matrice_Creuse<K>*>((*nargs[8])(stack))->A)) : 0;
-    long solver = nargs[4] ? GetAny<long>((*nargs[4])(stack)) : 0;
-    double timer = MPI_Wtime();
-    if(mA && (solver == 6 || solver == 7)) {
-        HPDDM::MatrixCSR<K> dA(mA->n, mA->m, mA->nbcoef, mA->a, mA->lg, mA->cl, mA->symetrique);
-        ptA->callNumfact(&dA);
-    }
-    else
-        ptA->callNumfact(nullptr);
-    ptA->setType(solver == 1 || solver == 6 || solver == 11);
-    if(timing) (*timing)[1] = MPI_Wtime() - timer;
-    long pipelined = nargs[5] ? GetAny<long>((*nargs[5])(stack)) : 0;
-    bool excluded = nargs[6] ? GetAny<bool>((*nargs[6])(stack)) : false;
-    if(pair)
-        if(pair->p) {
-            if(timing)
-                timer = MPI_Wtime();
-            MPI_Wait(&(pair->p->first), MPI_STATUS_IGNORE);
-            if(timing)
-                (*timing)[4] = MPI_Wtime() - timer;
-            delete [] pair->p->second;
-            delete pair->p;
-        }
-    timer = MPI_Wtime();
-    int rank;
-    MPI_Comm_rank(ptA->getCommunicator(), &rank);
-    if(!excluded) {
-        if(solver == 1)
-            HPDDM::IterativeMethod::CG(*ptA, (K*)*ptX, (K*)*ptRHS, iter, eps, MPI_COMM_WORLD, rank == 0 && !excluded ? 1 : 0);
-        else
-            switch(pipelined) {
-#if (OMPI_MAJOR_VERSION > 1 || (OMPI_MAJOR_VERSION == 1 && OMPI_MINOR_VERSION >= 7)) || MPICH_NUMVERSION >= 30000000
-                case 1:  HPDDM::IterativeMethod::GMRES<HPDDM::PIPELINED>(*ptA, (K*)*ptX, (K*)*ptRHS, dim, iter, eps, MPI_COMM_WORLD, rank == 0 && !excluded ? 1 : 0); break;
-#endif
-#if defined(DPASTIX) || defined(DMKL_PARDISO)
-                case 2:  HPDDM::IterativeMethod::GMRES<HPDDM::FUSED>(*ptA, (K*)*ptX, (K*)*ptRHS, dim, iter, eps, MPI_COMM_WORLD, rank == 0 && !excluded ? 1 : 0); break;
-#endif
-                default: HPDDM::IterativeMethod::GMRES<HPDDM::CLASSICAL>(*ptA, (K*)*ptX, (K*)*ptRHS, dim, iter, eps, MPI_COMM_WORLD, rank == 0 && !excluded ? 1 : 0); break;
-            }
-    }
-    else {
-        if(solver == 1)
-            HPDDM::IterativeMethod::CG(*ptA, (K*)nullptr, (K*)nullptr, iter, eps, MPI_COMM_WORLD, rank == 0 && !excluded ? 1 : 0);
-        else
-            switch(pipelined) {
-#if (OMPI_MAJOR_VERSION > 1 || (OMPI_MAJOR_VERSION == 1 && OMPI_MINOR_VERSION >= 7)) || MPICH_NUMVERSION >= 30000000
-                case 1:  HPDDM::IterativeMethod::GMRES<HPDDM::PIPELINED, true>(*ptA, (K*)nullptr, (K*)nullptr, dim, iter, eps, MPI_COMM_WORLD, rank == 0 && !excluded ? 1 : 0); break;
-#endif
-#if defined(DPASTIX) || defined(DMKL_PARDISO)
-                case 2:  HPDDM::IterativeMethod::GMRES<HPDDM::FUSED, true>(*ptA, (K*)nullptr, (K*)nullptr, dim, iter, eps, MPI_COMM_WORLD, rank == 0 && !excluded ? 1 : 0); break;
-#endif
-                default: HPDDM::IterativeMethod::GMRES<HPDDM::CLASSICAL, true>(*ptA, (K*)nullptr, (K*)nullptr, dim, iter, eps, MPI_COMM_WORLD, rank == 0 && !excluded ? 1 : 0); break;
-            }
-    }
-    timer = MPI_Wtime() - timer;
-    if(!excluded) {
-        if(rank == 0)
-            std::cout << scientific << " --- system solved (in " << timer << ")" << std::endl;
-        typename HPDDM::Wrapper<K>::ul_type storage[2];
-        ptA->computeError(*ptX, *ptRHS, storage);
-        if(rank == 0)
-            std::cout << scientific << " --- error = " << storage[1] << " / " << storage[0] << std::endl;
-    }
-    return 0L;
-}
-
-double distributedDot(KN<double>* const& A, KN<double>* const& in, KN<double>* const& out) {
-    double* tmp = new double[in->n];
-    HPDDM::Wrapper<double>::diagv(in->n, *A, *in, tmp);
-    KN_<double> KN(tmp, in->n);
-    double dot = (KN, *out);
-    MPI_Allreduce(MPI_IN_PLACE, &dot, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
-    delete [] tmp;
-    return dot;
-}
-
-template<class T, class U>
-class GMV {
-    public:
-        const T t;
-        const U u;
-        GMV(T v, U w) : t(v), u(w) {}
-        void prod(U x) const;
-};
-template<class Type, class U>
-class GMV<Type*, U> {
-    public:
-        const Type* t;
-        const U u;
-        GMV(Type* v, U w) : t(v), u(w) {}
-        void prod(U x) const { t->GMV(*(this->u), *x); };
-};
-template<class R, class A, class B> R Build(A a, B b) {
-    return R(a, b);
-}
-template<class Type, class K>
-KN<K>* GlobalMV(KN<K>* Ax, GMV<Type*, KN<K>*> A) {
-    A.prod(Ax);
-    return Ax;
-}
-
-template<template<class, char> class Type, class K, char S>
-void add() {
-    Dcl_Type<Type<K, S>*>(Initialize<Type<K, S>>, Delete<Type<K, S>>);
-
-    TheOperators->Add("<-", new initDDM<Type<K, S>, K>);
-    Global.Add("attachCoarseOperator", "(", new attachCoarseOperator<Type<K, S>, K>);
-    Global.Add("DDM", "(", new solveDDM<Type<K, S>, K>);
-    Dcl_Type<GMV<Type<K, S>*, KN<K>*>>();
-    TheOperators->Add("*", new OneOperator2<GMV<Type<K, S>*, KN<K>*>, Type<K, S>*, KN<K>*>(Build));
-    TheOperators->Add("=", new OneOperator2<KN<K>*, KN<K>*, GMV<Type<K, S>*, KN<K>*>>(GlobalMV));
-    if(std::is_same<K, double>::value)
-        Global.Add("dscalprod", "(", new OneOperator3_<double, KN<double>*, KN<double>*, KN<double>*>(distributedDot));
-}
-}
-
-
-
-static void  Load_Init() {
-    const char ds = 'S';
-    const char zs = 'G';
-    Schwarz::add<HpSchwarz, double, ds>();
-    zzzfff->Add("dschwarz", atype<HpSchwarz<double, ds>*>());
-    Schwarz::add<HpSchwarz, std::complex<double>, zs>();
-    zzzfff->Add("zschwarz", atype<HpSchwarz<std::complex<double>, zs>*>());
-<<<<<<< HEAD
-#ifdef WITH_PETSC
-=======
-#ifdef WITH_petsc
->>>>>>> upstream/3.34.2
-    int argc = pkarg->n;
-    char** argv = new char*[argc];
-    for(int i = 0; i < argc; ++i)
-        argv[i] = const_cast<char*>((*(*pkarg)[i].getap())->c_str());
-    PetscInitialize(&argc, &argv, 0, "");
-    delete [] argv;
-    ff_atend(finalizePETSc);
-    Dcl_Type<DistributedCSR*>(Initialize<DistributedCSR>, Delete<DistributedCSR>);
-    Dcl_Type<GMV<DistributedCSR*, KN<double>*>>();
-    zzzfff->Add("dmatrix", atype<DistributedCSR*>());
-    TheOperators->Add("<-", new OneOperator1_<long, DistributedCSR*>(initEmptyCSR));
-    TheOperators->Add("<-", new initCSR<double>);
-    TheOperators->Add("*", new OneOperator2<GMV<DistributedCSR*, KN<double>*>, DistributedCSR*, KN<double>*>(Build));
-    TheOperators->Add("=", new OneOperator2<KN<double>*, KN<double>*, GMV<DistributedCSR*, KN<double>*>>(GlobalMV));
-    Global.Add("set", "(", new setOptions<double>());
-    Global.Add("distributedNumbering", "(", new OneOperator2_<long, DistributedCSR*, KN<double>*>(distributedNumbering));
-    Global.Add("renumber", "(", new OneOperator2_<long, DistributedCSR*, FEbaseArrayKn<double>*>(renumberCSR));
-    Global.Add("solvePETSc", "(", new OneOperator2_<long, DistributedCSR*, KN<double>*>(solvePETSc));
-    Dcl_Type<DistributedCSR_inv>();
-    TheOperators->Add("^", new OneBinaryOperatorPETSc());
-    Dcl_Type<Inv<DistributedCSR_inv, KN<double>*>>();
-    TheOperators->Add("*", new OneOperator2<Inv<DistributedCSR_inv, KN<double>*>, DistributedCSR_inv, KN<double>*>(Build));
-    TheOperators->Add("=", new OneOperator2<KN<double>*, KN<double>*, Inv<DistributedCSR_inv, KN<double>*>>(InvPETSc));
-#endif
-    Dcl_Type<Pair<double>*>(InitP<Pair<double>>, Destroy<Pair<double>>);
-    zzzfff->Add("dpair", atype<Pair<double>*>());
-    Dcl_Type<Pair<std::complex<double>>*>(InitP<Pair<std::complex<double>>>, Destroy<Pair<std::complex<double>>>);
-    zzzfff->Add("zpair", atype<Pair<std::complex<double>>*>());
-}
-
-LOADFUNC(Load_Init);
diff --git a/examples++-mpi/schwarz.edp.orig b/examples++-mpi/schwarz.edp.orig
deleted file mode 100644
index c1b7b9c..0000000
--- a/examples++-mpi/schwarz.edp.orig
+++ /dev/null
@@ -1,133 +0,0 @@
-<<<<<<< HEAD
-load "schwarz"
-load "metis"
-load "utility"
-load "removeDOF"
-include "getARGV.idp"
-
-searchMethod = 1;
-
-macro minimalMesh()square(1, 1)// EOM
-macro generateTh(name)name = square(global, global, [x, y], label = l);// EOM
-macro grad(u)[dx(u), dy(u)]// EOM
-macro bbN(boundingMesh, overshoot, ThGlobal)
-            real[int] bb(4);
-            bb2d(bb, boundingMesh/*, intersection = possibleIntersection, offset = 2. * overlap / global*/);
-            bb(0) -= overshoot;
-            bb(1) += overshoot;
-            bb(2) -= overshoot;
-            bb(3) += overshoot;
-
-            ThGlobal = trunc(ThGlobal, (x >= bb(0) && x <= bb(1) && y >= bb(2) && y <= bb(3)));// EOM
-macro meshN()mesh// EOM
-macro intN()int2d// EOM
-macro measureN()area// EOM
-macro def(u)u// EOM
-macro init(u)u// EOM
-include "additional.idp"
-
-int overlap = getARGV("-overlap", 1);
-func Pk = P1;
-
-verbosity = getARGV("-v", 0);
-int s = getARGV("-split", 1);
-int global = getARGV("-global", 200);
-int solver = getARGV("-solver", 3); // 1: Additive Schwarz + CG, 2: RAS + GMRES, 3: GENEO + GMRES
-int i, j;
-int[int] l = [1, 2, 2, 2];
-
-mesh Th = minimalMesh;
-fespace Wh(Th, Pk);
-build(generateTh, Th, ThBorder, ThOverlap, s, D, numberIntersection, arrayIntersection, restrictionIntersection, Wh, Pk, mpiCommWorld)
-
-macro Varf(varfName, meshName, PhName)
-    varf varfName(u, v) = intN(meshName)((grad(u)' * grad(v))) + intN(meshName)(v) + on(1, u = 0.0);// EOM
-assemble(Mat, rhs, Wh, Th, ThBorder, Varf)
-
-dschwarz A(Mat, arrayIntersection, restrictionIntersection, scaling = D);
-
-if(mpisize > 1 && solver == 3) {
-    int[int] parm(1);
-    parm(0) = getARGV("-nu", 20);
-    macro EVproblem(varfName, meshName, PhName)
-        varf varfName(u, v) = intN(meshName)((grad(u)' * grad(v))) + on(1, u = 0.0);// EOM
-    EVproblem(vPbNoPen, Th, Ph)
-    matrix<real> noPen = vPbNoPen(Wh, Wh, solver = CG);
-    if(solver == 3) // standard GenEO, no need for RHS -> deduced from LHS (Neumann matrix)
-        attachCoarseOperator(mpiCommWorld, A, A = noPen, parameters = parm);
-}
-
-Wh<real> def(u); // this will be the solution
-
-DDM(A, u[], rhs, dim = getARGV("-gmres_restart", 60), iter = getARGV("-iter", 60), eps = getARGV("-eps", 1e-8), solver = solver);
-plotMPI(Th, u[], "Global solution", Pk, def, 3, 1)
-=======
-if ( mpisize != 2 ) {
-cout << " sorry number of processeur !=2 " << endl;
-exit(1);}
-verbosity=3;
-real pi=4*atan(1);
-int inside = 2;
-int outside = 1;
-border a(t=1,2){x=t;y=0;label=outside;};
-border b(t=0,1){x=2;y=t;label=outside;};
-border c(t=2,0){x=t ;y=1;label=outside;};
-border d(t=1,0){x = 1-t; y = t;label=inside;};
-border e(t=0, pi/2){ x= cos(t); y = sin(t);label=inside;};
-border e1(t=pi/2, 2*pi){ x= cos(t); y = sin(t);label=outside;}; 
-int n=4;
-mesh th,TH;
-
-if (mpirank == 0) 
- {
- th = buildmesh( a(5*n) + b(5*n) + c(10*n) + d(5*n));
- cout << " end th  " << endl;
-// processor(1) << th ;
-// processor(1) >> TH;
-}
-else
- {
- TH = buildmesh ( e(5*n) + e1(25*n) );
- cout << " end TH  " << endl;
-// processor(0) << TH ;
-// processor(0) >> th;
- }
-broadcast(processor(0),th);
-broadcast(processor(1),TH);
-
-
-
-fespace vh(th,P1);
-fespace VH(TH,P1);
-vh u=0,v; VH U,V;
-int i=0;
-
-problem PB(U,V,init=i,solver=Cholesky) = 
-    int2d(TH)( dx(U)*dx(V)+dy(U)*dy(V) )
-  + int2d(TH)( -V) + on(inside,U = u)  +    on(outside,U= 0 ) ;
-problem pb(u,v,init=i,solver=Cholesky) = 
-    int2d(th)( dx(u)*dx(v)+dy(u)*dy(v) )
-  + int2d(th)( -v) + on(inside ,u = U) +    on(outside,u = 0 ) ;
-
-
-for ( i=0 ;i< 10; i++) 
-{ 
-  cout << mpirank << " looP " << i << endl;
-  if (mpirank == 0)
-  {   
-   PB;
-   processor(1) << U[];
-   processor(1) >> u[];
-  }
-  else 
-  {
-   pb;
-   processor(0) >> U[];
-   processor(0) << u[];
-  }
-  //  if (mpirank==0)  
-  // plot(U,u,wait=true,ps="Uu"+i+".eps");
-};
- if (mpirank==0)  
-    plot(U,u,ps="Uu.eps");
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-mpi/utility.cpp.orig b/examples++-mpi/utility.cpp.orig
deleted file mode 100644
index 3762e48..0000000
--- a/examples++-mpi/utility.cpp.orig
+++ /dev/null
@@ -1,430 +0,0 @@
-<<<<<<< HEAD
-//ff-c++-LIBRARY-dep:  hpddm  scalapack blas  mpifc  fc mpi  pthread 
-=======
-//ff-c++-LIBRARY-dep: cxx11   hpddm  scalapack blas  mpifc  fc mpi  pthread 
->>>>>>> upstream/3.34.2
-//ff-c++-cpp-dep: 
-#ifndef _ALL_IN_ONE_
-#include "ff++.hpp"
-#include "AFunction_ext.hpp"
-#include <vector>
-#include <cmath>
-#include <mpi.h>
-#endif
-
-class Boundingbox2D_Op : public E_F0mps {
-    public:
-        Expression arrayBB;
-        Expression Th;
-        static const int n_name_param = 0;
-        static basicAC_F0::name_and_type name_param[];
-        Expression nargs[n_name_param];
-        Boundingbox2D_Op(const basicAC_F0& args, Expression param1, Expression param2) : arrayBB(param1), Th(param2) {
-            args.SetNameParam(n_name_param, name_param, nargs);
-        }
-        AnyType operator()(Stack stack) const;
-};
-
-class Boundingbox2D : public OneOperator {
-    public:
-        Boundingbox2D() : OneOperator(atype<long>(), atype<KN<double>* >(), atype<pmesh>()) {}
-        E_F0* code(const basicAC_F0& args) const
-        {
-            return new Boundingbox2D_Op(args, t[0]->CastTo(args[0]), t[1]->CastTo(args[1]));
-        }
-};
-
-AnyType Boundingbox2D_Op::operator()(Stack stack) const {
-    Mesh* pTh = GetAny<Mesh*>((*Th)(stack));
-    KN<double> minmax(4); // x.min, x.max, y.min, y.max
-    R2 p1(pTh->bedges[0][0]);
-    R2 p2(pTh->bedges[0][1]);
-    /* If array has even number of elements then
-       initialize the first two elements as minimum and
-       maximum */
-    if(p1.x > p2.x) {
-        minmax[1] = p1.x;
-        minmax[0] = p2.x;
-    }
-    else {
-        minmax[0] = p1.x;
-        minmax[1] = p2.x;
-    }
-    if(p1.y > p2.y) {
-        minmax[3] = p1.y;
-        minmax[2] = p2.y;
-    }
-    else {
-        minmax[2] = p1.y;
-        minmax[3] = p2.y;
-    }
-    for(int e = 1; e < pTh->neb; ++e) {
-        R2 p1(pTh->bedges[e][0]);
-        R2 p2(pTh->bedges[e][1]);
-
-        if(p1.x > p2.x) {
-            if(p1.x > minmax[1])
-                minmax[1] = p1.x;
-            if(p2.x < minmax[0])
-                minmax[0] = p2.x;
-        }
-        else {
-            if(p2.x > minmax[1])
-                minmax[1] = p2.x;
-            if(p1.x < minmax[0])
-                minmax[0] = p1.x;
-        }
-        if(p1.y > p2.y) {
-            if(p1.y > minmax[3])
-                minmax[3] = p1.y;
-            if(p2.y < minmax[2])
-                minmax[2] = p2.y;
-        }
-        else {
-            if(p2.y > minmax[3])
-                minmax[3] = p2.y;
-            if(p1.y < minmax[2])
-                minmax[2] = p1.y;
-        }
-    }
-    KN<double>* bb = GetAny<KN<double>* >((*arrayBB)(stack));
-    *bb = minmax;
-    return 0L;
-}
-
-class Boundingbox3D_Op : public E_F0mps {
-    public:
-        Expression arrayBB;
-        Expression Th;
-        static const int n_name_param = 0;
-        static basicAC_F0::name_and_type name_param[];
-        Expression nargs[n_name_param];
-        Boundingbox3D_Op(const basicAC_F0& args, Expression param1, Expression param2) : arrayBB(param1), Th(param2) {
-            args.SetNameParam(n_name_param, name_param, nargs);
-        }
-        AnyType operator()(Stack stack) const;
-};
-
-basicAC_F0::name_and_type Boundingbox3D_Op::name_param[] = { };
-basicAC_F0::name_and_type Boundingbox2D_Op::name_param[] = { };
-
-class Boundingbox3D : public OneOperator {
-    public:
-        Boundingbox3D() : OneOperator(atype<long>(), atype<KN<double>* >(), atype<pmesh3>()) {}
-        E_F0* code(const basicAC_F0& args) const
-        {
-            return new Boundingbox3D_Op(args, t[0]->CastTo(args[0]), t[1]->CastTo(args[1]));
-        }
-};
-
-AnyType Boundingbox3D_Op::operator()(Stack stack) const {
-    Mesh3* pTh = GetAny<Mesh3*>((*Th)(stack));
-    KN<double> minmax(6); // x.min, x.max, y.min, y.max, z.min, z.max
-    const Triangle3& K1(pTh->be(0));
-    const Triangle3& K2(pTh->be(1));
-    if(K1[0].x > K1[1].x) {
-        minmax[1] = K1[0].x;
-        minmax[0] = K1[1].x;
-    }
-    else {
-        minmax[0] = K1[0].x;
-        minmax[1] = K1[1].x;
-    }
-    if(K1[0].y > K1[1].y) {
-        minmax[3] = K1[0].y;
-        minmax[2] = K1[1].y;
-    }
-    else {
-        minmax[2] = K1[0].y;
-        minmax[3] = K1[1].y;
-    }
-    if(K1[0].z > K1[1].z) {
-        minmax[5] = K1[0].z;
-        minmax[4] = K1[1].z;
-    }
-    else {
-        minmax[4] = K1[0].z;
-        minmax[5] = K1[1].z;
-    }
-    //
-    if(K1[2].x > K2[0].x) {
-        if(K1[2].x > minmax[1])
-            minmax[1] = K1[2].x;
-        if(K2[0].x < minmax[0])
-            minmax[0] = K2[0].x;
-    }
-    else {
-        if(K2[0].x > minmax[1])
-            minmax[1] = K2[0].x;
-        if(K1[2].x < minmax[0])
-            minmax[0] = K1[2].x;
-    }
-    if(K1[2].y > K2[0].y) {
-        if(K1[2].y > minmax[3])
-            minmax[3] = K1[2].y;
-        if(K2[0].y < minmax[2])
-            minmax[2] = K2[0].y;
-    }
-    else {
-        if(K2[0].y > minmax[3])
-            minmax[3] = K2[0].y;
-        if(K1[2].y < minmax[2])
-            minmax[2] = K1[2].y;
-    }
-    if(K1[2].z > K2[0].z) {
-        if(K1[2].z > minmax[5])
-            minmax[5] = K1[2].z;
-        if(K2[0].z < minmax[4])
-            minmax[4] = K2[0].z;
-    }
-    else {
-        if(K2[0].z > minmax[5])
-            minmax[5] = K2[0].z;
-        if(K1[2].z < minmax[4])
-            minmax[4] = K1[2].z;
-    }
-    //
-    if(K2[1].x > K2[2].x) {
-        if(K2[1].x > minmax[1])
-            minmax[1] = K2[1].x;
-        if(K2[2].x < minmax[0])
-            minmax[0] = K2[2].x;
-    }
-    else {
-        if(K2[2].x > minmax[1])
-            minmax[1] = K2[2].x;
-        if(K2[1].x < minmax[0])
-            minmax[0] = K2[1].x;
-    }
-    if(K2[1].y > K2[2].y) {
-        if(K2[1].y > minmax[3])
-            minmax[3] = K2[1].y;
-        if(K2[2].y < minmax[2])
-            minmax[2] = K2[2].y;
-    }
-    else {
-        if(K2[2].y > minmax[3])
-            minmax[3] = K2[2].y;
-        if(K2[1].y < minmax[2])
-            minmax[2] = K2[1].y;
-    }
-    if(K2[1].z > K2[2].z) {
-        if(K2[1].z > minmax[5])
-            minmax[5] = K2[1].z;
-        if(K2[2].z < minmax[4])
-            minmax[4] = K2[2].z;
-    }
-    else {
-        if(K2[2].z > minmax[5])
-            minmax[5] = K2[2].z;
-        if(K2[1].z < minmax[4])
-            minmax[4] = K2[1].z;
-    }
-
-    int i = 3;
-    while(i < (pTh->nbe)-1) {
-        const Triangle3& Ka(pTh->be(i));
-        const Triangle3& Kb(pTh->be(i+1));
-        if(Ka[0].x > Ka[1].x) {
-            if(Ka[0].x > minmax[1])
-                minmax[1] = Ka[0].x;
-            if(Ka[1].x < minmax[0])
-                minmax[0] = Ka[1].x;
-        }
-        else {
-            if(Ka[1].x > minmax[1])
-                minmax[1] = Ka[1].x;
-            if(Ka[0].x < minmax[0])
-                minmax[0] = Ka[0].x;
-        }
-        if(Ka[0].y > Ka[1].y) {
-            if(Ka[0].y > minmax[3])
-                minmax[3] = Ka[0].y;
-            if(Ka[1].y < minmax[2])
-                minmax[2] = Ka[1].y;
-        }
-        else {
-            if(Ka[1].y > minmax[3])
-                minmax[3] = Ka[1].y;
-            if(Ka[0].y < minmax[2])
-                minmax[2] = Ka[0].y;
-        }
-        if(Ka[0].z > Ka[1].z) {
-            if(Ka[0].z > minmax[5])
-                minmax[5] = Ka[0].z;
-            if(Ka[1].z < minmax[4])
-                minmax[4] = Ka[1].z;
-        }
-        else {
-            if(Ka[1].z > minmax[5])
-                minmax[5] = Ka[1].z;
-            if(Ka[0].z < minmax[4])
-                minmax[4] = Ka[0].z;
-        }
-        //
-        if(Ka[2].x > Kb[0].x) {
-            if(Ka[2].x > minmax[1])
-                minmax[1] = Ka[2].x;
-            if(Kb[0].x < minmax[0])
-                minmax[0] = Kb[0].x;
-        }
-        else {
-            if(Kb[0].x > minmax[1])
-                minmax[1] = Kb[0].x;
-            if(Ka[2].x < minmax[0])
-                minmax[0] = Ka[2].x;
-        }
-        if(Ka[2].y > Kb[0].y) {
-            if(Ka[2].y > minmax[3])
-                minmax[3] = Ka[2].y;
-            if(Kb[0].y < minmax[2])
-                minmax[2] = Kb[0].y;
-        }
-        else {
-            if(Kb[0].y > minmax[3])
-                minmax[3] = Kb[0].y;
-            if(Ka[2].y < minmax[2])
-                minmax[2] = Ka[2].y;
-        }
-        if(Ka[2].z > Kb[0].z) {
-            if(Ka[2].z > minmax[5])
-                minmax[5] = Ka[2].z;
-            if(Kb[0].z < minmax[4])
-                minmax[4] = Kb[0].z;
-        }
-        else {
-            if(Kb[0].z > minmax[5])
-                minmax[5] = Kb[0].z;
-            if(Ka[2].z < minmax[4])
-                minmax[4] = Ka[2].z;
-        }
-        //
-        if(Kb[1].x > Kb[2].x) {
-            if(Kb[1].x > minmax[1])
-                minmax[1] = Kb[1].x;
-            if(Kb[2].x < minmax[0])
-                minmax[0] = Kb[2].x;
-        }
-        else {
-            if(Kb[2].x > minmax[1])
-                minmax[1] = Kb[2].x;
-            if(Kb[1].x < minmax[0])
-                minmax[0] = Kb[1].x;
-        }
-        if(Kb[1].y > Kb[2].y) {
-            if(Kb[1].y > minmax[3])
-                minmax[3] = Kb[1].y;
-            if(Kb[2].y < minmax[2])
-                minmax[2] = Kb[2].y;
-        }
-        else {
-            if(Kb[2].y > minmax[3])
-                minmax[3] = Kb[2].y;
-            if(Kb[1].y < minmax[2])
-                minmax[2] = Kb[1].y;
-        }
-        if(Kb[1].z > Kb[2].z) {
-            if(Kb[1].z > minmax[5])
-                minmax[5] = Kb[1].z;
-            if(Kb[2].z < minmax[4])
-                minmax[4] = Kb[2].z;
-        }
-        else {
-            if(Kb[2].z > minmax[5])
-                minmax[5] = Kb[2].z;
-            if(Kb[1].z < minmax[4])
-                minmax[4] = Kb[1].z;
-        }
-        i += 2;
-    }
-    if((pTh->nbe)%2 == 1) {
-        const Triangle3& Ka(pTh->be(i));
-        if(Ka[0].x > Ka[1].x) {
-            if(Ka[0].x > minmax[1])
-                minmax[1] = Ka[0].x;
-            if(Ka[1].x < minmax[0])
-                minmax[0] = Ka[1].x;
-        }
-        else {
-            if(Ka[1].x > minmax[1])
-                minmax[1] = Ka[1].x;
-            if(Ka[0].x < minmax[0])
-                minmax[0] = Ka[0].x;
-        }
-        if(Ka[0].y > Ka[1].y) {
-            if(Ka[0].y > minmax[3])
-                minmax[3] = Ka[0].y;
-            if(Ka[1].y < minmax[2])
-                minmax[2] = Ka[1].y;
-        }
-        else {
-            if(Ka[1].y > minmax[3])
-                minmax[3] = Ka[1].y;
-            if(Ka[0].y < minmax[2])
-                minmax[2] = Ka[0].y;
-        }
-        if(Ka[0].z > Ka[1].z) {
-            if(Ka[0].z > minmax[5])
-                minmax[5] = Ka[0].z;
-            if(Ka[1].z < minmax[4])
-                minmax[4] = Ka[1].z;
-        }
-        else {
-            if(Ka[1].z > minmax[5])
-                minmax[5] = Ka[1].z;
-            if(Ka[0].z < minmax[4])
-                minmax[4] = Ka[0].z;
-        }
-
-        if(Ka[2].x < minmax[0])
-            minmax[0] = Ka[2].x;
-        else if(Ka[2].x > minmax[1])
-            minmax[1] = Ka[2].x;
-        if(Ka[2].y < minmax[2])
-            minmax[2] = Ka[2].y;
-        else if(Ka[2].y > minmax[3])
-            minmax[3] = Ka[2].y;
-        if(Ka[2].z < minmax[4])
-            minmax[4] = Ka[2].z;
-        else if(Ka[2].z > minmax[5])
-            minmax[5] = Ka[2].z;
-    }
-    KN<double>* bb = GetAny<KN<double>* >((*arrayBB)(stack));
-    *bb = minmax;
-
-    return 0L;
-}
-
-long long_to_double(KN<double>* const& A, KN<long>* const& B) {
-    for(int i = 0; i < B->n; ++i)
-        A->operator[](i) = B->operator[](i);
-    return 0L;
-}
-
-long findDiff(KN<double>* const& array, KN<long>* const& val) {
-    std::set<double> vals;
-    for(unsigned int i = 0; i < array->n; ++i)
-        vals.insert(array->operator[]((int)i));
-    val->resize(vals.size());
-    unsigned short i = 0;
-    for(std::set<double>::iterator it = vals.begin(); it != vals.end(); ++it, ++i)
-        val->operator[]((int)i) = *it;
-    return 0L;
-}
-
-#ifndef _ALL_IN_ONE_
-/* --FH:   class Init {
-    public:
-        Init();
-};
-
-Init ...; */
-static void Load_Init() {
-    Global.Add("bb2d", "(", new Boundingbox2D);
-    Global.Add("bb3d", "(", new Boundingbox3D);
-    Global.Add("fast", "(", new OneOperator2_<long, KN<double>*, KN<long>*>(long_to_double));
-    Global.Add("findDiff", "(", new OneOperator2_<long, KN<double>*, KN<long>*>(findDiff));
-}
- LOADFUNC(Load_Init)
-#endif
-
diff --git a/examples++-other/Makefile.in b/examples++-other/Makefile.in
deleted file mode 100644
index 4edc35a..0000000
--- a/examples++-other/Makefile.in
+++ /dev/null
@@ -1,954 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = examples++-other
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-
-# $Id$
-TESTS = lap3-cpu.edp
-EXTRA_DIST = *.edp speedtest.sh
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT = TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .log .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++-other/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++-other/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-lap3-cpu.edp.log: lap3-cpu.edp
-	@p='lap3-cpu.edp'; \
-	b='lap3-cpu.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: all all-am check check-TESTS check-am clean clean-generic \
-	cscopelist-am ctags-am distclean distclean-generic distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am recheck tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-tutorial/._NSUzawaCahouetChabart.edp b/examples++-tutorial/._NSUzawaCahouetChabart.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-tutorial/._NSUzawaCahouetChabart.edp and /dev/null differ
diff --git a/examples++-tutorial/._cavityNewtow.edp b/examples++-tutorial/._cavityNewtow.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-tutorial/._cavityNewtow.edp and /dev/null differ
diff --git a/examples++-tutorial/._schwarz-no-overlap.edp b/examples++-tutorial/._schwarz-no-overlap.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-tutorial/._schwarz-no-overlap.edp and /dev/null differ
diff --git a/examples++-tutorial/._string.edp b/examples++-tutorial/._string.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++-tutorial/._string.edp and /dev/null differ
diff --git a/examples++-tutorial/Makefile.in b/examples++-tutorial/Makefile.in
deleted file mode 100644
index 418b3d5..0000000
--- a/examples++-tutorial/Makefile.in
+++ /dev/null
@@ -1,1405 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# $Id$
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-EXTRA_PROGRAMS = Laplace$(EXEEXT)
-subdir = examples++-tutorial
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp \
-	$(top_srcdir)/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am_Laplace_OBJECTS = Laplace.$(OBJEXT)
-Laplace_OBJECTS = $(am_Laplace_OBJECTS)
-Laplace_LDADD = $(LDADD)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-SOURCES = $(Laplace_SOURCES)
-DIST_SOURCES = $(Laplace_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-TESTS = adapt.edp adaptindicatorP1.edp adaptindicatorP2.edp algo.edp array.edp a_tutorial.edp beam.edp  calculus.edp cavity.edp convect2.edp convect-apt.edp convect.edp dumptable.edp ex-vf.edp FE.edp fluidStructAdapt.edp fluidStruct.edp freeboundary.edp freeboundary-weak.edp LapDG2.edp Laplace.edp LaplaceP1bis.edp LaplaceP1.edp LaplaceP1P2h.edp LaplaceRT.edp mesh.edp movemesh.edp nolinear-elas.edp NSUzawaCahouetChabart.edp onde.edp periodic4.edp Periodic.edp plot.edp readmesh.edp region. [...]
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT = TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw
-LIST_IDP = *.idp
-EXTRA_DIST = *.edp *.idp aile.msh xyf all.edp regtests.edp regtests.m4 ref.edp
-Laplace_SOURCES = Laplace.cpp
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .log .o .obj .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++-tutorial/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++-tutorial/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-Laplace$(EXEEXT): $(Laplace_OBJECTS) $(Laplace_DEPENDENCIES) $(EXTRA_Laplace_DEPENDENCIES) 
-	@rm -f Laplace$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(Laplace_OBJECTS) $(Laplace_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Laplace.Po at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-adapt.edp.log: adapt.edp
-	@p='adapt.edp'; \
-	b='adapt.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-adaptindicatorP1.edp.log: adaptindicatorP1.edp
-	@p='adaptindicatorP1.edp'; \
-	b='adaptindicatorP1.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-adaptindicatorP2.edp.log: adaptindicatorP2.edp
-	@p='adaptindicatorP2.edp'; \
-	b='adaptindicatorP2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-algo.edp.log: algo.edp
-	@p='algo.edp'; \
-	b='algo.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-array.edp.log: array.edp
-	@p='array.edp'; \
-	b='array.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-a_tutorial.edp.log: a_tutorial.edp
-	@p='a_tutorial.edp'; \
-	b='a_tutorial.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-beam.edp.log: beam.edp
-	@p='beam.edp'; \
-	b='beam.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-calculus.edp.log: calculus.edp
-	@p='calculus.edp'; \
-	b='calculus.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-cavity.edp.log: cavity.edp
-	@p='cavity.edp'; \
-	b='cavity.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convect2.edp.log: convect2.edp
-	@p='convect2.edp'; \
-	b='convect2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convect-apt.edp.log: convect-apt.edp
-	@p='convect-apt.edp'; \
-	b='convect-apt.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-convect.edp.log: convect.edp
-	@p='convect.edp'; \
-	b='convect.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-dumptable.edp.log: dumptable.edp
-	@p='dumptable.edp'; \
-	b='dumptable.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-ex-vf.edp.log: ex-vf.edp
-	@p='ex-vf.edp'; \
-	b='ex-vf.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-FE.edp.log: FE.edp
-	@p='FE.edp'; \
-	b='FE.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-fluidStructAdapt.edp.log: fluidStructAdapt.edp
-	@p='fluidStructAdapt.edp'; \
-	b='fluidStructAdapt.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-fluidStruct.edp.log: fluidStruct.edp
-	@p='fluidStruct.edp'; \
-	b='fluidStruct.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-freeboundary.edp.log: freeboundary.edp
-	@p='freeboundary.edp'; \
-	b='freeboundary.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-freeboundary-weak.edp.log: freeboundary-weak.edp
-	@p='freeboundary-weak.edp'; \
-	b='freeboundary-weak.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LapDG2.edp.log: LapDG2.edp
-	@p='LapDG2.edp'; \
-	b='LapDG2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Laplace.edp.log: Laplace.edp
-	@p='Laplace.edp'; \
-	b='Laplace.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceP1bis.edp.log: LaplaceP1bis.edp
-	@p='LaplaceP1bis.edp'; \
-	b='LaplaceP1bis.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceP1.edp.log: LaplaceP1.edp
-	@p='LaplaceP1.edp'; \
-	b='LaplaceP1.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceP1P2h.edp.log: LaplaceP1P2h.edp
-	@p='LaplaceP1P2h.edp'; \
-	b='LaplaceP1P2h.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-LaplaceRT.edp.log: LaplaceRT.edp
-	@p='LaplaceRT.edp'; \
-	b='LaplaceRT.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-mesh.edp.log: mesh.edp
-	@p='mesh.edp'; \
-	b='mesh.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-movemesh.edp.log: movemesh.edp
-	@p='movemesh.edp'; \
-	b='movemesh.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-nolinear-elas.edp.log: nolinear-elas.edp
-	@p='nolinear-elas.edp'; \
-	b='nolinear-elas.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSUzawaCahouetChabart.edp.log: NSUzawaCahouetChabart.edp
-	@p='NSUzawaCahouetChabart.edp'; \
-	b='NSUzawaCahouetChabart.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-onde.edp.log: onde.edp
-	@p='onde.edp'; \
-	b='onde.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-periodic4.edp.log: periodic4.edp
-	@p='periodic4.edp'; \
-	b='periodic4.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Periodic.edp.log: Periodic.edp
-	@p='Periodic.edp'; \
-	b='Periodic.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-plot.edp.log: plot.edp
-	@p='plot.edp'; \
-	b='plot.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-readmesh.edp.log: readmesh.edp
-	@p='readmesh.edp'; \
-	b='readmesh.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-region.edp.log: region.edp
-	@p='region.edp'; \
-	b='region.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-saverestore.edp.log: saverestore.edp
-	@p='saverestore.edp'; \
-	b='saverestore.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-schwarz-gc.edp.log: schwarz-gc.edp
-	@p='schwarz-gc.edp'; \
-	b='schwarz-gc.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-schwarz-no-overlap.edp.log: schwarz-no-overlap.edp
-	@p='schwarz-no-overlap.edp'; \
-	b='schwarz-no-overlap.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-schwarz-overlap.edp.log: schwarz-overlap.edp
-	@p='schwarz-overlap.edp'; \
-	b='schwarz-overlap.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-sparse-matrix.edp.log: sparse-matrix.edp
-	@p='sparse-matrix.edp'; \
-	b='sparse-matrix.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-sparse-cmatrix.edp.log: sparse-cmatrix.edp
-	@p='sparse-cmatrix.edp'; \
-	b='sparse-cmatrix.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-StokesUzawa.edp.log: StokesUzawa.edp
-	@p='StokesUzawa.edp'; \
-	b='StokesUzawa.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-tablefunction.edp.log: tablefunction.edp
-	@p='tablefunction.edp'; \
-	b='tablefunction.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-intlevelset.edp.log: intlevelset.edp
-	@p='intlevelset.edp'; \
-	b='intlevelset.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-exec-local
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-TESTS \
-	check-am clean clean-generic clean-local cscopelist-am ctags \
-	ctags-am distclean distclean-compile distclean-generic \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-exec-local \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
-	ps ps-am recheck tags tags-am uninstall uninstall-am
-
-
-all-local: all.edp regtests.edp  freefem++.pref
-
-all.edp:
-	(echo "NoUseOfWait=true;int verbosityy=verbosity;"; \
-	for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$$'` ; do  \
-		echo ' cout << "--------- file : '$$i' --------------------------------------------------------" << endl;' ;\
-		echo "verbosity=verbosityy;" ; \
-		echo \{ include \"$$i\"\;\}\; ;\
-		echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\
-	done) > $@
-
-clean-local:
-	-rm *.fg *.eps *~ *.ps  *.mesh *.mesh.gmsh f.txt	u.txt A.matrix	mm.matrix mm.b sphere-a.faces	sphere-a.points	sphere.faces	sphere.points toto.Th		toto.am_fmt	toto.dbg.gmsh toto.Th.gmsh	toto.dbg	toto.msh plot.gp ListOfAllocPtr-8.bin ffglut*.ppm th.msh Th1.msh		Th12.msh	th.msh 	emptymesh-2.msh	 thermic.dat
-# To create a new set of reference values in "ref.edp"
-Ref: makeref.edp freefem++.pref
-	../src/nw/FreeFem++-nw makeref.edp
-install-exec-local:: 
-	$(mkinstalldirs) -m 755 $(DESTDIR)$(ff_prefix_dir)/idp
-	$(INSTALL)  -m 555  $(LIST_IDP)  $(DESTDIR)$(ff_prefix_dir)/idp
-
-makeref.edp: regtests.m4 ../regtests.m4
-	m4 regtests.m4 > makeref.edp
-freefem++.pref:
-	echo loadpath = \"../examples++-load/\" >freefem++.pref
-	echo loadpath += \"./\" >>freefem++.pref
-
-# To check the scripts against their reference values
-regtests.edp: regtests.m4 ../regtests.m4
-	m4 -DASSERT regtests.m4 > regtests.edp
-FORCE:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/examples++-tutorial/sparse-cmatrix.edp.orig b/examples++-tutorial/sparse-cmatrix.edp.orig
deleted file mode 100644
index 5e7aad5..0000000
--- a/examples++-tutorial/sparse-cmatrix.edp.orig
+++ /dev/null
@@ -1,162 +0,0 @@
-//  sparse matrix test  ---
-// example of the new matrix feature in version 1.40
-// -------------------------------------------------
-<<<<<<< HEAD
-for(int step=0; step <2; ++step)
-{
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-mesh  TH = square(3,4);
-mesh  th = square(2,3);
-mesh  Th = square(4,4);
-
-complex ccc;
-ccc= 1;
-cout << ccc << endl;
-fespace VH(TH,P1);
-fespace Vh(th,P1);
-fespace Wh(Th,P1);
-
-matrix RB= interpolate(VH,Vh);  // build interpolation matrix Vh->Vh 
-matrix RBB= interpolate(Wh,Vh);  // build interpolation matrix
-matrix<complex> B=RB;
-B = B*(1+2i);
-
-matrix<complex> BB=RBB;
-
-varf vA(u,v) = int2d(Th)(dx(u)*dx(v)+dy(u)*dy(v))+ int1d(Th)(u*v); 
-matrix<complex> A=vA(Wh,Wh);
-Vh<complex> ml=0;
-cout << " ml " << ml[] << endl;
-varf vML(u,v) = int2d(th)(1.*v);
-ml[]=vML(0,Vh); // build the P1 mass lump of P1
-cout << ml[] << endl;
-matrix<complex> ML(ml[]); // matrix diagonal
-cout << "ML="<<ML << endl;
-cout << "B="<<B << endl;
-matrix<complex> BML=B*ML; // a faire 
-matrix<complex> tB=B';        //'; transpose and conjugate 
-cout << "tB=" << tB << endl;
-matrix<complex> MLtB=ML'*B'; // 
-
-cout << "BML="<<BML << endl;
-cout << "MLtB=" << MLtB << endl;
-
-// WARNING if UMFPACK is not install
-// the UMFPACK solver is replace by LU 
-//  but LU need skyline matrix 
-int typesolver=UMFPACK;
-if(HaveUMFPACK) typesolver=GMRES; 
-  set(A,solver=typesolver); // set a solver 
-
-VH<complex> uH=0;
-Vh<complex> uh=x+y+1i*(x-y);
-uH[]= B*uh[];
-Vh uHr = imag(uH);
-plot(uHr,wait=1);
-matrix<complex> BtA = BB'*A;//';
-matrix<complex> BtAB = BtA*BB;
-if(HaveUMFPACK)  
-  set(BtAB,solver=UMFPACK);  
- else 
-  set(BtAB,solver=GMRES);  
-  Vh<complex> ff=1+1i;
-Vh<complex> xx;
-Vh xxr;
-cout << " ------ " << endl;
-
-xx[]=BtAB^-1*ff[];
-cout << " ------ " << endl;
-xx[]=BtAB^-1*ff[];
-cout << " ------ " << endl;
-xxr=imag(xx);
-plot(xxr, wait=1);
-
-{
-  int N=10;
-  complex [int,int] A(N,N);
-  complex [int] a(N),b(N),bb(N);
-  A =0;
-  for (int i=0;i<N;i++)
-    {
-      A(i,i)=1.+i;
-      if(i+1 < N)    A(i,i+1)=-i-1i*i;
-      a[i]=i*(1.+2i);
-    }
-  b=A*a;
-  
-  cout << " b =" << b << endl ;
-  cout << " a =" << a << endl ;
-  cout << " b'*b (hermissian product) = " << b'*b << endl; //';
-  cout << " a'*a = " << a'*a << endl;//';;
-  assert( abs(imag(b'*b)) <1e-5);//')));
-  cout << "xxxx\n"; 
-  matrix<complex> sparseA=A;
-  
-  cout << sparseA << endl;
-  sparseA = 2*sparseA+sparseA;
-  sparseA = 4*sparseA+sparseA*(5+1i); //  * 27
-  matrix<complex> sparseB=sparseA;//+sparseA+sparseA; ;
-  cout << sparseA << endl;
-  cout << sparseB << endl; // *81 
-  cout << "sparseB = " << sparseB(0,0) << endl;
-  // ajoute version  2.0-2
-  sparseA=A;
-  verbosity=4;
-  if(HaveUMFPACK)		
-    set(sparseA,solver=UMFPACK,tolpivot=1e-10,tolpivotsym=1e-9);  
-  else 
-    set(sparseA,solver=GMRES);  
-  bb=sparseA^-1*a;
-  verbosity=1;
-  b = sparseA*bb;
-  b -= a;
-  cout << " nb coef sparseA " << sparseA.nbcoef << endl; 
-  cout << " ||b.||_1  " << b.l1 << endl;
-  cout << " ||b.||_2  " << b.l2 << endl;
-  cout << " ||b.||_infty  " << b.linfty << endl;
-  assert(b.l1 < 1e-10);
-}
-{// version 3.8    
-  mesh Th=square(2,2);
-  fespace Xh(Th,P1);
-  varf vv(u,v)= int2d(Th)( ((2+1i)*u*v)')+int2d(Th)((3+2i)*v);//');
-  varf vr(u,v)= int2d(Th)( u*v);//');
-
-  matrix<complex> A=vv(Xh,Xh);
-  matrix  Ar=vr(Xh,Xh);
-  complex[int] vc=vv(0,Xh);
-  real[int] vrr=vc.re,vii=vc.im;
-  vrr=vc.re;
-  vii=vc.im;
-  cout << "vc[0] = " <<vc[0] << " = " << vc.re[0] << " +i " << vc.im[0] <<endl;
-  cout << [ 1i, 1i]'*[ 1i, 1i] <<endl;//'; 
-  // real part un complex par of matrix . 
-  Ar = A.re;
-  cout <<" A(0,0) = " << A(0,0)  << "   ";
-  cout << " A.re(0.0) = " << Ar(0,0) << "   " ;
-  Ar = A.im; 
-  cout << " A.im(0.0) = " << Ar(0,0) << endl  ;
-
-  
-  macro Grada(u) [  phia*dx(u) + phiax*u ,dy(u) ]// ...
-    func phia = exp(-2i*pi*x);
-  func phiax = -2i*pi*exp(-2i*pi*x);
-
-  varf va(u,v)= int2d(Th)( Grada(v)'*Grada(u) ) ;//');
-  A = va(Xh,Xh);
-  matrix<complex> At=A';
-  cout << A(1,2)' << " ==  " << At(2,1) << endl;
-  A = A+ (-1)*At;
-  cout << A << endl;
-  // copy and initialisation of complex matric with real matrix. 
- A = Ar; 
- matrix<complex> Ac=Ar; 
-
-
-
-}
-<<<<<<< HEAD
-}
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++-tutorial/sparse-matrix.edp.orig b/examples++-tutorial/sparse-matrix.edp.orig
deleted file mode 100644
index 4d83f85..0000000
--- a/examples++-tutorial/sparse-matrix.edp.orig
+++ /dev/null
@@ -1,250 +0,0 @@
-//  sparse matrix test  ---
-// example of the new matrix feature in version 1.40
-// -------------------------------------------------
-<<<<<<< HEAD
-for(int step=0; step<2; ++step) // make to time the test to find memoire leak ..
-{ 
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-mesh  TH = square(3,4);
-mesh  th = square(2,3);
-mesh  Th = square(4,4);
-
-
-fespace VH(TH,P1);
-fespace Vh(th,P1);
-fespace Wh(Th,P1);
-
-matrix B= interpolate(VH,Vh);  // build interpolation matrix Vh->Vh 
-matrix BB= interpolate(Wh,Vh);  // build interpolation matrix
-varf vA(u,v) = int2d(Th)(dx(u)*dx(v)+dy(u)*dy(v))+ int1d(Th)(u*v); 
-matrix A=vA(Wh,Wh);
-
-
-
-Vh ml=0;
-varf vML(u,v) = int2d(th)(1*v);
-ml[]=vML(0,Vh); // build the P1 mass lump of P1
-cout << ml[] << endl;
-matrix ML(ml[]); // matrix diagonal
-cout << "ML="<<ML << endl;
-cout << "B="<<B << endl;
-matrix BML=B*ML;
-matrix tB=B';        //'; transpose 
-//cout << "tB=" << tB << endl;
-matrix MLtB=ML'*B'; // 
-
-//cout << "BML="<<BML << endl;
-//cout << "MLtB=" << MLtB << endl;
-
-// WARNING if UMFPACK is not install
-// the UMFPACK solver is replace by LU 
-//  but LU need skyline matrix 
-if(HaveUMFPACK)
-  set(A,solver=UMFPACK); // set a solver 
- else 
-   set(A,solver=GMRES); // set a solver 
-VH uH=0;
-Vh uh=x+y;
-uH[]= B*uh[];
-plot(uH,wait=1);
-matrix BtA = BB'*A;//';
-matrix BtAB = BtA*BB;
-if(HaveUMFPACK)  
-  set(BtAB,solver=UMFPACK);  
- else 
-   set(BtAB,solver=GMRES);  
-Vh ff=1;
-Vh xx;
-cout << " ------ " << xx[].n << " = " << BtAB.n << "x" << BtAB.m << " " << ff[].n <<  endl;
-
-xx[]=BtAB^-1*ff[];
-cout << " ------ " << endl;
-xx[]=BtAB^-1*ff[];
-cout << " ------ " << endl;
-plot(xx, wait=1);
-
-{
-  int N=10;
-  real [int,int] A(N,N);
-  real [int] a(N),b(N),c(N);
-  int [int] II(N);
-  int [int] JJ(N);
-  int [int] III(N);
-  int [int] JJJ(N);
-  for (int i=0;i<N;i++)
-    {
-      II(i)=i*2;
-      III(i)=(i*1023)%N;
-      JJJ(i)=(i*7)%N;
-      JJ(i)=20-i;
-    }	
-  A =0;
-  for (int i=0;i<N;i++)
-    {
-      A(i,i)=1+i;
-      if(i+1 < N)    A(i,i+1)=-i;
-      a[i]=i;
-    }
-  b=a(III);  //  b(i)=a(iii(i))
-  c(III)=a;  //  c(III(i)) = a(i)
-  cout << " III = " << III << endl;
-  cout << " a(III)     " <<  b << endl;
-  cout << " a(III^1) = " << c  << endl;
-  for (int i=0;i<N;i++)
-    assert( int(c[int(b[i])]) == i);
-  
-  matrix sA=A;
-  {
-    {
-      ofstream ff("A.matrix");
-      ff  << sA; 
-    }
-    matrix ssA;
-    {
-      ifstream ff("A.matrix");
-      ff >> ssA;
-      ssA = (1.)*sA+ (-1.)*ssA;
-      cout  << ssA << endl; 
-    }
-  }
-  
-  matrix tAA=sA+sA';//';
-  matrix ttAA=sA'+sA;//';
-  // matrix tttAA=sA'-sA;
-  // matrix ttAA=sA'-sA;
-  A += 2*a*a';  //'//  produit tensoriel
-  matrix A1=   A(II^-1,JJ^-1);   //  do A1(II(i),JJ(j)) = A(i),j) $
-  matrix A2=   A(III,JJJ);   //  do   $A2(i,j) = A(III(i),JJJ(i)) $
-  matrix sA1=   sA(II^-1,JJ^-1); //  do A1(II(i),JJ(i)) = A( 
-  matrix sA2=   sA(III,JJJ);   //  do A = A 
-  
-  matrix A0 = (a*a')(II^-1,JJ^-1); //');
-  matrix A3 = (a*a')(III,JJJ);//');
-  
-  cout << " ------------------- " << endl;
-  // cout <<  " A  = " << A << endl;
-  // cout <<  " A1 = " << A1 <<endl;
-  cout << " 8,9 -> " <<II[8] << " " <<  JJ[9] <<" " << A(9,8)<< " " << A1(II[9],JJ[8]) << endl;
-  assert(A(9,1) == 2*a[9]*a[1]);  
-  
-  for (int i9=0;i9<N;++i9)
-    for (int j9=0;j9<N;++j9)
-      {
-	
-	if( abs(A(j9,i9))> 0.01) 
-	  assert(A1(II[j9],JJ[i9]) == A(j9,i9));
-	if( abs(A(III(j9),JJJ(i9))) > 0.01) 
-	  assert(A2(j9,i9) == A(III(j9),JJJ(i9) )) ;
-	//     cout << " i9,j9 -> " <<II[i9] << " " <<  JJ[j9] <<endl;
-	if( abs(a[i9]*a[j9])> 0.01) 
-	  assert(A0(II[i9],JJ[j9]) == a[i9]*a[j9]);
-	if( abs(a[III[i9]]*a[JJJ[j9]])> 0.01) 
-	  assert(A3(i9,j9) == a[III[i9]]*a[JJJ[j9]]);
-      }
-  b=A*a;
-  c=-9;
-  cout << "xxxx\n"; 
-  matrix sparseA=A;
-  //cout << sparseA << endl;
-  sparseA = 2*sparseA+sparseA;
-  sparseA = 4*sparseA+sparseA*5; //  * 27
-  matrix sparseB=sparseA+sparseA+sparseA; ;
-  //cout << sparseA << endl;
-  //cout << sparseB << endl; // *81 
-  cout << "sparseB = " << sparseB(0,0) << endl;
-  
-  cout << " -------- block matrix \n " << endl;
-  matrix B = [ [sparseA, 0 , sparseA ], 
-               [ 0, sparseA , 0 ] ,
-               [0, 0, sparseB' ]];//']];
-  matrix B2 = [ [sparseA], [sparseA]];
-  
-  assert( B2.n == sparseA.n*2);
-  assert( B2.m == sparseA.m);
-  
-  matrix B1 = [ [sparseA, sparseA] ];
-  assert( B1.m == sparseA.m*2); // FH. bug before version  2.11-4 (10/01/2007)
-  assert( B1.n == sparseA.n);
-  
-  
-  real[int] x([a,b,c]); //  construct the block vector x form a,b,c,
-  //  where the size is  sum of size of a,b,c, 
-  x=[a,b,c]; // set x to to the block vector (the vector x is  resize if it necessary
-  cout << " abc =" << a[2] << " " << b[3] << " "<< c[4] << endl;
-  cout << " xxx =" << x[2] << " " << x[3+N] << " "<< x[4+N*2] << endl;
-  x = x*10;
-  [a,b,c]=x; // set the block vector a,b,c  from concecutive part of  x;
-  cout << " abc*10 == "  << a[2] << " " << b[3] << " "<< c[4] << endl;
-  
-  
-  // remark  the size of sum of size must be equal to the size of x.  
-  //cout << " B = " << B << endl; 
-  cout << B(8,29) << " ===  " <<  sparseA(8,9) << endl;
-  cout << B(28,27)
-       << " ===  " <<  sparseB(7,8) << endl;
-  B(8,29)=100;  // change the value an existing coef 
-  cout << " B(8,29) " <<  B(8,29) << endl;
-  cout << " -------- block matrix \n " << endl;
-}
-//  build FE  matrice with differente meshes (here 3) 
-varf vM(u,v)=int1d(Th,qforder=1)(u*v);
-matrix MM=vM(Vh,VH);
-//cout << MM << endl;
-Vh unVh=0,wVh=0;
-VH unVH=0,wVH=0;
-unVh[]=1;
-unVH[]=1;
-wVh[] = MM' * unVH[] ; //'
-wVH[] = MM * unVh[] ; 
-
-//cout << "wWh : " << wVh[] << endl;
-//cout <<" wVH : " << wVH[] << endl;
-// array of matrix v2.4-1 
-cout << " array of matrix   \n" ;
-matrix[int]  aM(10);
-aM[0]= MM;
-aM[3]= MM;
-aM[9]= MM;
-// aM.resize(4);
-//  aM.resize(10);  bug on debian ? FH 
-
-//  add version 2.17 --- 
-{
-  real[int] coef([1,2,3,5,6]);
-  int[int]  lg(  [1,3,6,9,100]);
-  int[int]  cl(  [1,4,9,0,0]);
-  
-  // a diagonal matrix
-  matrix A=[coef];
-  cout << " A = " << A << endl;
-  // a raw matrix  
-  matrix B=[lg,cl,coef];
-  cout << " B = " << B << endl;
-  [lg,cl,coef] = A; 
-  cout<< " lg    : "  << lg << endl;
-  cout << " cl   : " << cl << endl;
-  cout << " coef = "<< coef << endl;
-  
-}
-
-// version 3.1-1
-cout << MM << endl;
-MM.resize(10,100);
-cout << MM << endl;
-
-{  //  test renumbering of sub mesh ..
-  func Pk=P2;
-  int[int] n2ok(1); 
-  mesh ThC = trunc(Th,x < 0.5,new2old=n2ok);
-  fespace VFh(Th,Pk);
-  fespace VCh(ThC,Pk);
-  verbosity= 100; 
-  int[int] n2o=restrict(VCh,VFh,n2ok);
-  cout << " n2o " << n2o << endl;
-  
-}
-<<<<<<< HEAD
-}
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/examples++/._NSP1P2.edp b/examples++/._NSP1P2.edp
deleted file mode 100644
index f7a8f68..0000000
Binary files a/examples++/._NSP1P2.edp and /dev/null differ
diff --git a/examples++/Makefile.in b/examples++/Makefile.in
deleted file mode 100644
index 36e2af1..0000000
--- a/examples++/Makefile.in
+++ /dev/null
@@ -1,1123 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# $Id$
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = examples++
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/test-driver
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-TESTS = aadaptation.edp aalapacien.edp aalaplace-nc.edp aamove.edp aaRT.edp arrayoFVh.edp bilap.edp D2.edp demo1.edp demo.edp funct.edp lapacienprecon.edp lap_mat.edp NSP1P1b.edp NSP1P1.edp NSP1P2.edp parareal.edp Richard.edp teste.edp testFE.edp wafer-heating-laser-axi.edp
-LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-ff
-TESTS_ENVIRONMENT = TEST_FFPP=$(TEST_FFPP) FLAGS_FFPP=-nw
-EXTRA_DIST = *.edp all.edp regtests.edp regtests.m4 ref.edp
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .log .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples++/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples++/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-aadaptation.edp.log: aadaptation.edp
-	@p='aadaptation.edp'; \
-	b='aadaptation.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-aalapacien.edp.log: aalapacien.edp
-	@p='aalapacien.edp'; \
-	b='aalapacien.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-aalaplace-nc.edp.log: aalaplace-nc.edp
-	@p='aalaplace-nc.edp'; \
-	b='aalaplace-nc.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-aamove.edp.log: aamove.edp
-	@p='aamove.edp'; \
-	b='aamove.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-aaRT.edp.log: aaRT.edp
-	@p='aaRT.edp'; \
-	b='aaRT.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-arrayoFVh.edp.log: arrayoFVh.edp
-	@p='arrayoFVh.edp'; \
-	b='arrayoFVh.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-bilap.edp.log: bilap.edp
-	@p='bilap.edp'; \
-	b='bilap.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-D2.edp.log: D2.edp
-	@p='D2.edp'; \
-	b='D2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-demo1.edp.log: demo1.edp
-	@p='demo1.edp'; \
-	b='demo1.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-demo.edp.log: demo.edp
-	@p='demo.edp'; \
-	b='demo.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-funct.edp.log: funct.edp
-	@p='funct.edp'; \
-	b='funct.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-lapacienprecon.edp.log: lapacienprecon.edp
-	@p='lapacienprecon.edp'; \
-	b='lapacienprecon.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-lap_mat.edp.log: lap_mat.edp
-	@p='lap_mat.edp'; \
-	b='lap_mat.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSP1P1b.edp.log: NSP1P1b.edp
-	@p='NSP1P1b.edp'; \
-	b='NSP1P1b.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSP1P1.edp.log: NSP1P1.edp
-	@p='NSP1P1.edp'; \
-	b='NSP1P1.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-NSP1P2.edp.log: NSP1P2.edp
-	@p='NSP1P2.edp'; \
-	b='NSP1P2.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-parareal.edp.log: parareal.edp
-	@p='parareal.edp'; \
-	b='parareal.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-Richard.edp.log: Richard.edp
-	@p='Richard.edp'; \
-	b='Richard.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-teste.edp.log: teste.edp
-	@p='teste.edp'; \
-	b='teste.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-testFE.edp.log: testFE.edp
-	@p='testFE.edp'; \
-	b='testFE.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-wafer-heating-laser-axi.edp.log: wafer-heating-laser-axi.edp
-	@p='wafer-heating-laser-axi.edp'; \
-	b='wafer-heating-laser-axi.edp'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
- at am__EXEEXT_TRUE@.test$(EXEEXT).log:
- at am__EXEEXT_TRUE@	@p='$<'; \
- at am__EXEEXT_TRUE@	$(am__set_b); \
- at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
- at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: all all-am all-local check check-TESTS check-am clean \
-	clean-generic clean-local cscopelist-am ctags-am distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am recheck tags-am \
-	uninstall uninstall-am
-
-
-all-local: all.edp regtests.edp freefem++.pref
-
-all.edp:
-	(echo "NoUseOfWait=true;int verbosityy=verbosity;"; \
-	for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$$'` ; do  \
-		echo ' cout << "--------- file : '$$i' --------------------------------------------------------" << endl;' ;\
-		echo "verbosity=verbosityy;" ; \
-		echo \{ include \"$$i\"\;\}\; ;\
-		echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\
-	done) > $@
-
-# To create a new set of reference values in "ref.edp"
-clean-local:
-	-rm *.fg *.eps *~ *.ps  Th?.faces  Th?.points Th?.BB Th?.mesh.gmsh   ListOf?llocPtr*.bin ffglut*.ppm 	toto.txt
-Ref: makeref.edp
-	../src/nw/FreeFem++-nw makeref.edp
-
-makeref.edp: regtests.m4 ../regtests.m4
-	m4 regtests.m4 > makeref.edp
-freefem++.pref:
-	echo loadpath = \"../examples++-load/\" >freefem++.pref
-	echo loadpath += \"./\" >>freefem++.pref
-
-# To check the scripts against their reference values
-regtests.edp: regtests.m4 ../regtests.m4
-	m4 -DASSERT regtests.m4 > regtests.edp
-FORCE:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/Algo/Makefile.in b/src/Algo/Makefile.in
deleted file mode 100644
index 74cfb84..0000000
--- a/src/Algo/Makefile.in
+++ /dev/null
@@ -1,588 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-
-# This is not compiled as a separate library because its
-# interconnections with other libraries have not been solved.
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/Algo
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = BFGS.hpp BrentLS.hpp CG.hpp CubicLS.hpp defs.hpp lgalgo.cpp	\
-LineSearch.hpp NewtonRaphson.hpp NRJ.hpp Optima.hpp Param.hpp		\
-RosenBrock.hpp
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Algo/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/Algo/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
-	ctags-am distclean distclean-generic distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/Graphics/._ffglut.cpp b/src/Graphics/._ffglut.cpp
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/Graphics/._ffglut.cpp and /dev/null differ
diff --git a/src/Graphics/._getprog-unix.hpp b/src/Graphics/._getprog-unix.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/Graphics/._getprog-unix.hpp and /dev/null differ
diff --git a/src/Graphics/._gggg.cpp b/src/Graphics/._gggg.cpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/Graphics/._gggg.cpp and /dev/null differ
diff --git a/src/Graphics/._gggg.cpp.orig b/src/Graphics/._gggg.cpp.orig
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/Graphics/._gggg.cpp.orig and /dev/null differ
diff --git a/src/Graphics/._sansrgraph.cpp b/src/Graphics/._sansrgraph.cpp
deleted file mode 100644
index e9604e8..0000000
Binary files a/src/Graphics/._sansrgraph.cpp and /dev/null differ
diff --git a/src/Graphics/Makefile.in b/src/Graphics/Makefile.in
deleted file mode 100644
index a251f86..0000000
--- a/src/Graphics/Makefile.in
+++ /dev/null
@@ -1,589 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/Graphics
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = glrgraph.hpp  macglrgraf.cpp	\
-macrgraf.cpp Pcrgraph.cpp  rgraph.hpp		\
-sansrgraph.cpp xglrgraf.cpp Xrgraph.cpp DefColor.cpp   \
-getprog-unix.hpp mode_open.hpp ffglut.hpp ff-win32.cpp
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Graphics/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/Graphics/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-local \
-	cscopelist-am ctags-am distclean distclean-generic distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am tags-am uninstall uninstall-am
-
-
-# FFCS: no compilation here, so the tags file must be built by hand
-tags:TAGS
-TAGS:
-	etags *.?pp
-clean-local::
-	-rm TAGS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/Makefile.in b/src/Makefile.in
deleted file mode 100644
index c12bb4e..0000000
--- a/src/Makefile.in
+++ /dev/null
@@ -1,783 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-	ctags-recursive dvi-recursive html-recursive info-recursive \
-	install-data-recursive install-dvi-recursive \
-	install-exec-recursive install-html-recursive \
-	install-info-recursive install-pdf-recursive \
-	install-ps-recursive install-recursive installcheck-recursive \
-	installdirs-recursive pdf-recursive ps-recursive \
-	tags-recursive uninstall-recursive
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-	distdir
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = libMesh  bamglib femlib  Graphics Algo lglib fflib 	\
-nw mpi  bamg medit bin-win32 
-
-EXTRA_DIST = FreeFem++-CoCoa Carbon.r  \
-solver/MUMPS_FreeFem.cpp \
-solver/README_COMPILE \
-solver/complex_SuperLU_DIST_FreeFem.cpp \
-solver/complex_pastix_FreeFem.cpp \
-solver/ffsuperludistoption.hpp \
-solver/hips_FreeFem.cpp \
-solver/hypre_FreeFem.cpp \
-solver/makefile \
-solver/makefile-common.inc \
-solver/makefile-sparsesolver.inc \
-solver/parms_FreeFem.cpp \
-solver/real_SuperLU_DIST_FreeFem.cpp \
-solver/real_pastix_FreeFem.cpp \
-solver/wrapper_dotblas.c \
-solver/wrapper_dotblas.f \
-solver/wrapper_dotblas1.c \
-solver/wrapper_dotblas1.f 
-
-all: all-recursive
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-	@fail=; \
-	if $(am__make_keepgoing); then \
-	  failcom='fail=yes'; \
-	else \
-	  failcom='exit 1'; \
-	fi; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    $(am__make_dryrun) \
-	      || test -d "$(distdir)/$$subdir" \
-	      || $(MKDIR_P) "$(distdir)/$$subdir" \
-	      || exit 1; \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-recursive
-all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
-	check-am clean clean-generic cscopelist-am ctags ctags-am \
-	distclean distclean-generic distclean-tags distdir dvi dvi-am \
-	html html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am tags tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/bamg/Makefile.am.orig b/src/bamg/Makefile.am.orig
deleted file mode 100644
index 198d57e..0000000
--- a/src/bamg/Makefile.am.orig
+++ /dev/null
@@ -1,34 +0,0 @@
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-CXXLD=$(STATICTOOL) $(CXX)
-
-bin_PROGRAMS=$(BAMGPROG)
-EXTRA_PROGRAMS=bamg  cvmsh2 #drawbdmesh
-bamg_SOURCES=bamg.cpp global.cpp
-<<<<<<< HEAD
-bamg_DEPENDENCIES=../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o ../fflib/write_hdf5.o	../fflib/write_xdmf.o
-
-cvmsh2_SOURCES=cvmsh2.cpp global.cpp
-cvmsh2_DEPENDENCIES=../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o ../fflib/write_hdf5.o	../fflib/write_xdmf.o
-=======
-bamg_DEPENDENCIES=../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o 
-
-cvmsh2_SOURCES=cvmsh2.cpp global.cpp
-cvmsh2_DEPENDENCIES=../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-#EXTRA_drawbdmesh_SOURCES= # ../Graphics/Xrgraph.cpp ../Graphics/Pcrgraph.cpp 
-#drawbdmesh_DEPENDENCIES=../fflib/libff.a  @STD_GRAPH_OBJ@
-#drawbdmesh_SOURCES= drawbdmesh.cpp 
-#drawbdmesh_LDADD = @STD_GRAPH_OBJ@ $(LDADD)  @STD_LIBS@ @LIBSNOCONSOLE@
-
-<<<<<<< HEAD
-LDADD= ../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o ../fflib/write_hdf5.o	../fflib/write_xdmf.o
-AM_CPPFLAGS=-I$(srcdir)/../fflib -I$(srcdir)/../bamglib -I$(srcdir)/../Graphics $(HDF5_CPPFLAGS)
-=======
-LDADD= ../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o 
-AM_CPPFLAGS=-I$(srcdir)/../fflib -I$(srcdir)/../bamglib -I$(srcdir)/../Graphics
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-
diff --git a/src/bamg/Makefile.in b/src/bamg/Makefile.in
deleted file mode 100644
index 2406449..0000000
--- a/src/bamg/Makefile.in
+++ /dev/null
@@ -1,768 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-EXTRA_PROGRAMS = bamg$(EXEEXT) cvmsh2$(EXEEXT)
-subdir = src/bamg
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_bamg_OBJECTS = bamg.$(OBJEXT) global.$(OBJEXT)
-bamg_OBJECTS = $(am_bamg_OBJECTS)
-bamg_LDADD = $(LDADD)
-am_cvmsh2_OBJECTS = cvmsh2.$(OBJEXT) global.$(OBJEXT)
-cvmsh2_OBJECTS = $(am_cvmsh2_OBJECTS)
-cvmsh2_LDADD = $(LDADD)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-SOURCES = $(bamg_SOURCES) $(cvmsh2_SOURCES)
-DIST_SOURCES = $(bamg_SOURCES) $(cvmsh2_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-CXXLD = $(STATICTOOL) $(CXX)
-bin_PROGRAMS = $(BAMGPROG)
-bamg_SOURCES = bamg.cpp global.cpp
-bamg_DEPENDENCIES = ../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o ../fflib/write_hdf5.o	../fflib/write_xdmf.o
-cvmsh2_SOURCES = cvmsh2.cpp global.cpp
-cvmsh2_DEPENDENCIES = ../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o ../fflib/write_hdf5.o	../fflib/write_xdmf.o
-
-#EXTRA_drawbdmesh_SOURCES= # ../Graphics/Xrgraph.cpp ../Graphics/Pcrgraph.cpp 
-#drawbdmesh_DEPENDENCIES=../fflib/libff.a  @STD_GRAPH_OBJ@
-#drawbdmesh_SOURCES= drawbdmesh.cpp 
-#drawbdmesh_LDADD = @STD_GRAPH_OBJ@ $(LDADD)  @STD_LIBS@ @LIBSNOCONSOLE@
-LDADD = ../fflib/Mesh2.o ../fflib/MeshDraw.o ../fflib/MeshGeom.o ../fflib/MeshQuad.o ../fflib/MeshRead.o ../fflib/MeshWrite.o  ../fflib/Meshio.o ../fflib/Metric.o ../fflib/QuadTree.o ../fflib/R2.o ../fflib/SetOfE4.o ../fflib/write_hdf5.o	../fflib/write_xdmf.o
-AM_CPPFLAGS = -I$(srcdir)/../fflib -I$(srcdir)/../bamglib -I$(srcdir)/../Graphics $(HDF5_CPPFLAGS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/bamg/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/bamg/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-	fi; \
-	for p in $$list; do echo "$$p $$p"; done | \
-	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p \
-	  ; then echo "$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n;h' \
-	    -e 's|.*|.|' \
-	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
-	sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
-	    else { print "f", $$3 "/" $$4, $$1; } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	    test -z "$$files" || { \
-	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	    } \
-	; done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' \
-	`; \
-	test -n "$$list" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-bamg$(EXEEXT): $(bamg_OBJECTS) $(bamg_DEPENDENCIES) $(EXTRA_bamg_DEPENDENCIES) 
-	@rm -f bamg$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(bamg_OBJECTS) $(bamg_LDADD) $(LIBS)
-
-cvmsh2$(EXEEXT): $(cvmsh2_OBJECTS) $(cvmsh2_DEPENDENCIES) $(EXTRA_cvmsh2_DEPENDENCIES) 
-	@rm -f cvmsh2$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(cvmsh2_OBJECTS) $(cvmsh2_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/bamg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cvmsh2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/global.Po at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
-	clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
-	distclean distclean-compile distclean-generic distclean-tags \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-binPROGRAMS install-data install-data-am \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
-	ps ps-am tags tags-am uninstall uninstall-am \
-	uninstall-binPROGRAMS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/bamglib/._Mesh2.h~HEAD b/src/bamglib/._Mesh2.h~HEAD
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/bamglib/._Mesh2.h~HEAD and /dev/null differ
diff --git a/src/bamglib/._Mesh2.h~upstream_3.34.2 b/src/bamglib/._Mesh2.h~upstream_3.34.2
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/bamglib/._Mesh2.h~upstream_3.34.2 and /dev/null differ
diff --git a/src/bamglib/._MeshWrite.cpp~HEAD b/src/bamglib/._MeshWrite.cpp~HEAD
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/bamglib/._MeshWrite.cpp~HEAD and /dev/null differ
diff --git a/src/bamglib/._MeshWrite.cpp~upstream_3.34.2 b/src/bamglib/._MeshWrite.cpp~upstream_3.34.2
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/bamglib/._MeshWrite.cpp~upstream_3.34.2 and /dev/null differ
diff --git a/src/bamglib/._Metric.cpp b/src/bamglib/._Metric.cpp
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/bamglib/._Metric.cpp and /dev/null differ
diff --git a/src/bamglib/._QuadTree.cpp b/src/bamglib/._QuadTree.cpp
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/bamglib/._QuadTree.cpp and /dev/null differ
diff --git a/src/bamglib/._meshtype.h~HEAD b/src/bamglib/._meshtype.h~HEAD
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/bamglib/._meshtype.h~HEAD and /dev/null differ
diff --git a/src/bamglib/._meshtype.h~upstream_3.34.2 b/src/bamglib/._meshtype.h~upstream_3.34.2
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/bamglib/._meshtype.h~upstream_3.34.2 and /dev/null differ
diff --git a/src/bamglib/._write_hdf5.hpp b/src/bamglib/._write_hdf5.hpp
deleted file mode 100644
index 361d6a9..0000000
Binary files a/src/bamglib/._write_hdf5.hpp and /dev/null differ
diff --git a/src/bamglib/._write_xdmf.cpp b/src/bamglib/._write_xdmf.cpp
deleted file mode 100644
index 361d6a9..0000000
Binary files a/src/bamglib/._write_xdmf.cpp and /dev/null differ
diff --git a/src/bamglib/._write_xdmf.hpp b/src/bamglib/._write_xdmf.hpp
deleted file mode 100644
index 361d6a9..0000000
Binary files a/src/bamglib/._write_xdmf.hpp and /dev/null differ
diff --git a/src/bamglib/Makefile.am.orig b/src/bamglib/Makefile.am.orig
deleted file mode 100644
index 21babce..0000000
--- a/src/bamglib/Makefile.am.orig
+++ /dev/null
@@ -1,15 +0,0 @@
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-
-# This is not compiled as a separate library because its
-# interconnections with other libraries have not been solved.
-
-EXTRA_DIST=Mesh2.cpp Mesh2.h MeshDraw.cpp MeshGeom.cpp Meshgibbs.cpp	\
-Meshio.cpp Meshio.h MeshQuad.cpp MeshRead.cpp meshtype.h MeshWrite.cpp	\
-Metric.cpp Metric.h QuadTree.cpp QuadTree.h R2.cpp R2.h SetOfE4.cpp	\
-<<<<<<< HEAD
-SetOfE4.h write_hdf5.cpp write_hdf5.hpp write_xdmf.cpp write_xdmf.hpp
-=======
-SetOfE4.h
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
diff --git a/src/bamglib/Makefile.in b/src/bamglib/Makefile.in
deleted file mode 100644
index 5c4e96c..0000000
--- a/src/bamglib/Makefile.in
+++ /dev/null
@@ -1,589 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-
-# This is not compiled as a separate library because its
-# interconnections with other libraries have not been solved.
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/bamglib
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = Mesh2.cpp Mesh2.h MeshDraw.cpp MeshGeom.cpp Meshgibbs.cpp	\
-Meshio.cpp Meshio.h MeshQuad.cpp MeshRead.cpp meshtype.h MeshWrite.cpp	\
-Metric.cpp Metric.h QuadTree.cpp QuadTree.h R2.cpp R2.h SetOfE4.cpp	\
-SetOfE4.h write_hdf5.cpp write_hdf5.hpp write_xdmf.cpp write_xdmf.hpp
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/bamglib/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/bamglib/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
-	ctags-am distclean distclean-generic distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/bamglib/Mesh2.cpp b/src/bamglib/Mesh2.cpp
index 153213a..c8bf3f2 100644
--- a/src/bamglib/Mesh2.cpp
+++ b/src/bamglib/Mesh2.cpp
@@ -2501,7 +2501,7 @@ void Triangles::Insert()
    quadtree->Add(*v0);
    quadtree->Add(*v1);
    
-  // on ajoute les sommets un � un 
+  // on ajoute les sommets un � un 
   Int4 NbSwap=0;
 
   time1=CPUtime();
@@ -2680,7 +2680,7 @@ void Triangles::FindSubDomain(int OutSide=0)
 		Triangle * tc =  HeapTriangle[i]; // triangle courant
 		if( ! tc->Locked(na)) // arete non frontiere
 		{
-		    Triangle * ta = tc->TriangleAdj(na) ; // n� triangle adjacent
+		    Triangle * ta = tc->TriangleAdj(na) ; // n� triangle adjacent
 		    if (ta->link == 0 ) // non deja chainer => on enpile
 		    { 
 			i++;
diff --git a/src/bamglib/Mesh2.cpp.orig b/src/bamglib/Mesh2.cpp.orig
deleted file mode 100644
index 7960975..0000000
--- a/src/bamglib/Mesh2.cpp.orig
+++ /dev/null
@@ -1,5205 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifdef __MWERKS__
-#ifdef __INTEL__
-//#pragma global_optimizer off
-//#pragma inline_depth(0)
-//#pragma optimization_level 2
-#endif
-//#pragma inline_depth 0
-#endif
-extern bool withrgraphique;
-#include <stdio.h>
-#include <string.h>
-#include <math.h> 
-#include <time.h>
-#include <iostream>
-using namespace std; 
-
-#include "Mesh2.h"
-#include "QuadTree.h"
-#include "SetOfE4.h"
-
-namespace bamg {
-
-
-#ifdef DEBUG1
-extern int SHOW ; // for debugging 
-int SHOW = 0; // for debugging 
-
-#endif
-
-int  Triangles::counter = 0;
-
-Triangles * CurrentTh =0;
-
-int hinterpole=1;
-
-
-long NbUnSwap =0;
-int  ForDebugging = 0;
-const Direction NoDirOfSearch = Direction();
-#ifndef NDEBUG 
-inline void MyAssert(int i,char*ex,char * file,long line) 
-{
-  if( i) {
-    cerr << "Error Assert:" << ex << " in " << file << " line: " << line << endl;
-#ifdef  NOTFREEFEM
-    exit(1); 
-#else
-    throw(ErrorExec("exit",1000));
-#endif
-  }
-}
-#endif
-
-Int4 AGoodNumberPrimeWith(Int4 n)
-{
-  const Int4 BigPrimeNumber[] ={ 567890359L,
-				 567890431L,  567890437L,  567890461L,  567890471L,
-				 567890483L,  567890489L,  567890497L,  567890507L,
-				 567890591L,  567890599L,  567890621L,  567890629L , 0};
-  
-  Int4 o = 0;
-  Int4 pi = BigPrimeNumber[1];
-  for (int i=0; BigPrimeNumber[i]; i++) {
-    Int4 r = BigPrimeNumber[i] % n;
-    Int4 oo = Min(Min(r,n-r),Min(Abs(n-2*r),Abs(n-3*r)));
-    if ( o < oo) 
-      o=oo,pi=BigPrimeNumber[i];}
-  //  cout << " AGoodNumberPrimeWith " << n << " " <<pi << " "<< o << endl;
-  return pi; 
-}
-
-class Triangles;
-<<<<<<< HEAD
-void MeshError(int Err,const Triangles *Th){
-=======
-void MeshError(int Err,Triangles *Th){ 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
- cerr << " Fatal error in the meshgenerator " << Err << endl ;
-#ifdef  NOTFREEFEM
-    exit(1); 
-#else
-  throw(ErrorMesh("Bamg",Err,Th));
-#endif
-}
-
- ostream& operator <<(ostream& f, const  Triangle & ta)
-  {
-    if(CurrentTh)
-      f << "[" << CurrentTh->Number(ta) << "::" 
-     <<  CurrentTh->Number(ta.ns[0]) << "," 
-     <<  CurrentTh->Number(ta.ns[1]) << "," 
-     <<  CurrentTh->Number(ta.ns[2]) << "," 
-     << "{" <<  CurrentTh->Number(ta.at[0]) << " " << ta.aa[0] << "} " 
-     << "{" <<  CurrentTh->Number(ta.at[1]) << " " << ta.aa[1] << "} " 
-     << "{" <<  CurrentTh->Number(ta.at[2]) << " " << ta.aa[2] << "} " 
-     << "]" ;
-     else
-       f << "[" 
-     << ta.ns[0] << "," 
-     << ta.ns[1] << "," 
-     << ta.ns[2] << "," 
-     << "{" << ta.at[0] << " " << ta.aa[0] << "} " 
-     << "{" << ta.at[1] << " " << ta.aa[1] << "} " 
-     << "{" << ta.at[2] << " " << ta.aa[2] << "} " 
-     << "]" ;
-   return f;}
-
-void  swap(Triangle *t1,Int1 a1,
-                 Triangle *t2,Int1 a2,
-                 Vertex *s1,Vertex *s2,Icoor2 det1,Icoor2 det2)
-{ // swap 
-  // --------------------------------------------------------------
-  // Int1 a2=aa[a];// les 2 numero de l arete dans les 2 triangles
-  //                               
-  //               sb                     sb    
-  //             / | \                   /   \                      !
-  //         as1/  |  \                 /a2   \                     !
-  //           /   |   \               /    t2 \                    !
-  //       s1 /t1  | t2 \s2  -->   s1 /___as2___\s2                 !
-  //          \  a1|a2  /             \   as1   /  
-  //           \   |   /               \ t1    /   
-  //            \  |  / as2             \   a1/    
-  //             \ | /                   \   /     
-  //              sa                       sa   
-  //  -------------------------------------------------------------
-  int as1 = NextEdge[a1];
-  int as2 = NextEdge[a2];
-  int ap1 = PreviousEdge[a1];
-  int ap2 = PreviousEdge[a2];
-#ifdef DRAWING1
-  couleur(0);
-  t1->Draw();
-  t2->Draw();
-#endif
-#ifdef DEBUG1
-  t1->check();
-  t2->check();
-#endif
-  (*t1)(VerticesOfTriangularEdge[a1][1]) = s2 ; // avant sb
-  (*t2)(VerticesOfTriangularEdge[a2][1]) = s1  ; // avant sa
-  // mise a jour des 2 adjacences externes 
-  TriangleAdjacent taas1 = t1->Adj(as1),
-    taas2 = t2->Adj(as2),
-    tas1(t1,as1), tas2(t2,as2),
-    ta1(t1,a1),ta2(t2,a2);
-#ifdef DEBUG
-  assert( ! ta1.Locked());
-  assert( ! ta2.Locked());
-#endif
-  // externe haut gauche
-  taas1.SetAdj2(ta2, taas1.GetAllFlag_UnSwap());
-   // externe bas droite
-  taas2.SetAdj2(ta1, taas2.GetAllFlag_UnSwap());
-  // remove the Mark  UnMarkSwap 
-  t1->SetUnMarkUnSwap(ap1);
-  t2->SetUnMarkUnSwap(ap2);
-  // interne 
-  tas1.SetAdj2(tas2);
-
-  t1->det = det1;
-  t2->det = det2;
-
-  t1->SetTriangleContainingTheVertex();
-  t2->SetTriangleContainingTheVertex();
-#ifdef DEBUG1
-  t1->check();
-  t2->check();
-#endif
-#ifdef DRAWING1 
-  couleur(1);
-  t1->Draw();
-  t2->Draw();
-#endif 
-#ifdef DRAWING1
-  if(  CurrentTh)
-    CurrentTh->inquire();
-#endif
-
-} // end swap 
-
-
-
-
-
-Int4 FindTriangle(Triangles &Th, Real8 x, Real8 y, double* a,int & inside)
- {
-   CurrentTh=&Th;
-   assert(&Th);
-   I2 I = Th.toI2(R2(Min(Max(Th.pmin.x,x),Th.pmax.x),Min(Max(Th.pmin.y,y),Th.pmax.y))); 
-   Icoor2 dete[3];
-   Triangle & tb = *Th.FindTriangleContening(I,dete);
-   
-   if  (tb.link) 
-     { // internal point in a true triangles
-       a[0]= (Real8) dete[0]/ tb.det;
-       a[1]= (Real8) dete[1] / tb.det;
-       a[2] = (Real8) dete[2] / tb.det;
-	 inside = 1;	 
-	 return Th.Number(tb);
-     } 
-   else 
-     {
-       inside = 0; 
-       double aa,bb;
-       TriangleAdjacent  ta=CloseBoundaryEdgeV2(I,&tb,aa,bb);	 
-       int k = ta;
-       Triangle * tc = ta;
-       if (!tc->link) 
-	 { ta = ta.Adj();
-	 tc=ta;
-	 k = ta;
-	 Exchange(aa,bb);
-	 assert(tc->link);
-	 }
-       a[VerticesOfTriangularEdge[k][0]] = aa;
-       a[VerticesOfTriangularEdge[k][1]] = bb;
-       a[OppositeVertex[k]] = 1- aa -bb;
-       return Th.Number(tc);
-     }
- }
-
-
-TriangleAdjacent CloseBoundaryEdge(I2 A,Triangle *t, double &a,double &b) {
-// 
-  //  cout << " - ";   	 
-  int k=(*t)(0) ?  ((  (*t)(1) ? ( (*t)(2) ? -1 : 2) : 1  )) : 0;
-  int dir=0;
-  assert(k>=0);
-  int kkk=0;  
-  Icoor2 IJ_IA,IJ_AJ;
-  TriangleAdjacent edge(t,OppositeEdge[k]);          
-  for (;;edge = dir >0 ? Next(Adj(Next(edge))) : Previous(Adj(Previous(edge)))) 
-   {  
-   
-    assert(kkk++<1000);      
-    Vertex  &vI =  *edge.EdgeVertex(0);
-    Vertex  &vJ =  *edge.EdgeVertex(1);
-    I2 I=vI, J=vJ, IJ= J-I;
-    IJ_IA = (IJ ,(A-I));
-    //   cout << A << vI.i << vJ.i << edge << " " <<  IJ_IA << " dir " << dir <<endl;
-    if (IJ_IA<0) {
-     if (dir>0) {a=1;b=0;return edge;}// change of signe => I
-     else {dir=-1;
-        continue;}};// go in direction i 
-    IJ_AJ = (IJ ,(J-A));
-    if (IJ_AJ<0) {
-    if(dir<0)  {a=0;b=1;return edge;}            
-    else {dir = 1;
-       continue;}}// go in direction j
-    double IJ2 = IJ_IA + IJ_AJ;
-    assert(IJ2);
-    a= IJ_AJ/IJ2;
-    b= IJ_IA/IJ2;
-    //    cout<< "CloseBoundaryEdge a = " << a << " b= " << b << endl;
-    return edge;
-  } 
-}
-
-TriangleAdjacent Triangle::FindBoundaryEdge(int i) const
-{
-  // turn around  the vertex ns[i] also call  s
-#ifdef DEBUG
-   Vertex * s  =  ns[i];
-#endif
-  Triangle   *t = (Triangle *) this , *ttc;
-  int k=0,j = EdgesVertexTriangle[i][0],jc;
-  int exterieur  = !link  ;
-  
-  do 
-    {
-      int exterieurp = exterieur;
-      k++; 
-#ifdef DEBUG
-      assert( s == & (*t)[VerticesOfTriangularEdge[j][1]] );
-#endif
-      ttc =  t->at[j];
-      exterieur = !ttc->link;
-      if (exterieur+exterieurp == 1) 
-	return TriangleAdjacent(t,j);
-      jc = NextEdge[t->aa[j]&3];
-      t = ttc;
-      j = NextEdge[jc];
-      assert(k<2000);
-    } while ( (this!= t)); 
-  return TriangleAdjacent(0,0);
- 
-}
-
-
-TriangleAdjacent CloseBoundaryEdgeV2(I2 C,Triangle *t, double &a,double &b) 
-{ 
- // walk around the vertex 
- // version 2 for remove the probleme if we fill the hole
-  //int bug=1;
-  //  Triangle *torigine = t;
-  // restart:
-  //   int dir=0;
-  assert(t->link == 0);
-  // to have a starting edges 
-  // try the 3 edge bourna-- in case of internal hole 
-  // and choice  the best 
-  // 
-  // 
-  // the probleme is in case of  the fine and long internal hole
-  // for exemple neart the training edge of a wing
-  // 
-  Vertex * s=0,*s1=0, *s0=0;
-  Icoor2 imax = MaxICoor22;
-  Icoor2 l0 = imax,l1 = imax;
-  double dd2 =  imax;// infinity
-  TriangleAdjacent er; 
-  int  cas=-2;
-  for (int j=0;j<3;j++)
-    { 
-      TriangleAdjacent ta=t->FindBoundaryEdge(j);
-      if  (! (Triangle *) ta) continue;
-      s0 = ta.EdgeVertex(0);
-      s1 = ta.EdgeVertex(1);
-      I2 A = * s0;
-      I2 B = *ta.EdgeVertex(1);
-      I2 AB = B-A,AC=C-A,BC=B-C;
-      Icoor2  ACAC = (AC,AC), BCBC = (BC,BC);
-      Icoor2  AB2  =   Norme2_2(AB); //  ||AB||^2
-      Icoor2  ABAC  =   (AB,AC);         //  AB.AC|
-      
-      double d2;
-      if ( ABAC < 0 )   // DIST A
-        {
-           if ( (d2=(double) ACAC)  <  dd2) 
-             {
-	       //  cout << " A "  << d2  << " " <<  dd2;
-               er = ta;
-               l0 = ACAC;
-               l1 = BCBC;
-               cas = 0;
-               s = s0;
-             }
-        }
-      else if (ABAC > AB2)  // DIST B
-        {
-           if ( (d2=(double) BCBC)  <  dd2) 
-             {
-	       // cout << " B "  << d2  << " " <<  dd2;
-               dd2 = d2;
-               er = Adj(ta); // other direction
-               l0 = BCBC;
-               l1 = ACAC;
-               cas = 1;
-               s = s1;
-             }
-        }
-      else  // DIST AB
-        { 
-
-          double det_2 =  (double) Det(AB,AC); 
-          det_2 *= det_2; // square of area*2 of triangle ABC
-          d2 = det_2/ (double) AB2; // hauteur^2 in C of of triangle ABC      
-	  //	  cout << " AB " << d2 << " " << dd2 
-	  //      << " " << CurrentTh->Number(ta.EdgeVertex(0)) 
-	  //     << " " << CurrentTh->Number(ta.EdgeVertex(1)) << " " ;
-
-          if (d2 < dd2) 
-	       {
-	         dd2 = d2;
-	         er = ta;
-	         l0 = (AC,AC);
-	         l1 = (BC,BC);
-	         s = 0;
-                 cas = -1;
-		 //	 cout << " ABAC " <<  ABAC << " ABAC " << ABAC
-		 //	      << " AB2 " << AB2 << endl;
-		 b = ((double) ABAC/(double) AB2);
-		 a = 1 - b;
-	       }
-        }
-     }
-   assert(cas !=-2);
-   // l1 = ||C s1||  , l0 = ||C s0||
-   // where s0,s1 are the vertex of the edge er
-
-   if ( s) 
-     { 
-       t=er;
-       TriangleAdjacent edge(er); 
-       
-       int kkk=0;  
-       int linkp = t->link == 0;
-       
-       Triangle * tt=t=edge=Adj(Previous(edge));
-       //  cout << CurrentTh->Number(t) << " " << linkp << endl;
-       do  {  // loop around vertex s
-	 
-	 assert(edge.EdgeVertex(0)==s && kkk++<10000);
-	 
-	 int link = tt->link == 0;
-	 //	 cout << CurrentTh->Number(tt) << " " << link << " " << CurrentTh->Number(s) 
-	 //	      << " " << CurrentTh->Number(er.EdgeVertex(0)) 
-	 //	      << " " << CurrentTh->Number(er.EdgeVertex(1)) 
-	 //	      << " " << CurrentTh->Number(edge.EdgeVertex(0)) 
-	 //	      << " " << CurrentTh->Number(edge.EdgeVertex(1)) 
-	 //	      <<  endl;
-	 if ((link + linkp) == 1) 
-	   { // a boundary edge 
-	     Vertex * st = edge.EdgeVertex(1);
-	     I2 I=*st;
-	     Icoor2  ll = Norme2_2 (C-I);
-	     if (ll < l1) {  // the other vertex is neart 
-	       s1=st;
-	       l1=ll;
-	       er = edge;
-	       if(ll<l0) { // change of direction --
-		 s1=s;
-		 l1=l0;
-		 s=st;
-		 l0=ll;
-		 t=tt;
-		 edge=Adj(edge);
-		 link=linkp;
-		 er = edge;
-	       }
-	     }
-	   }
-	 
-	 linkp=link;
-	 edge=Adj(Previous(edge));
-	 tt = edge;
-       } while (t!=tt);
-
-       assert((Triangle *) er);
-       I2 A((I2)*er.EdgeVertex(0));
-       I2 B((I2)*er.EdgeVertex(1));
-       I2 AB=B-A,AC=C-A,CB=B-C;
-       double aa =  (double) (AB,AC);
-       double bb =  (double) (AB,CB);
-       //  cout << " " << aa << " " << bb 
-       //    << " " << CurrentTh->Number(er.EdgeVertex(0)) 
-       //	    << " " << CurrentTh->Number(er.EdgeVertex(1)) ;
-       if (aa<0)       a=1,b=0;
-       else if(bb<0)   a=0,b=1;
-       else  
-	 {
-	   a  = bb/(aa+bb);
-	   b  = aa/(aa+bb);
-	 }
-     }
-   
-   //   cout <<" return= " <<  CurrentTh->Number(er.EdgeVertex(0)) << " " 
-   //	<<  CurrentTh->Number(er.EdgeVertex(1)) << " " << a 
-   //	<< " " << b <<" " << l0 << " " <<l1 <<endl;
-   return er;
-} 
-
-
-
-Metric Triangles::MetricAt  (const R2 & A) const
-  { //if ((vertices <= &v) && (vertices < v+nbv)) return v.m;
-    I2 a = toI2(A);
-    Icoor2 deta[3];
-    Triangle * t =FindTriangleContening(a,deta);
-    if (t->det <0) { // outside
-      double ba,bb;
-      TriangleAdjacent edge= CloseBoundaryEdge(a,t,ba,bb) ;
-      return Metric(ba,*edge.EdgeVertex(0),bb,*edge.EdgeVertex(1));}
-     else { // inside
-      Real8   aa[3];
-      Real8 s = deta[0]+deta[1]+deta[2];
-      aa[0]=deta[0]/s;
-      aa[1]=deta[1]/s;
-      aa[2]=deta[2]/s;
-      return Metric(aa,(*t)[0],(*t)[1],(*t)[2]);
-     }
-  }
-
-
-void ListofIntersectionTriangles::SplitEdge(const Triangles & Bh,
-       const R2 &A,const R2  &B,int nbegin)
-{ //  SplitEdge
-  //  if(SHOW)  cout << " splitedge " << A << B << " " <<  nbegin << endl;
-  Triangle *tbegin, *t;
-
-  Icoor2 deta[3], deti,detj;
-  Real8 ba[3];
-  int nbt =0,ifirst=-1,ilast;
-  int i0,i1,i2;
-  int ocut,i,j,k=-1;
-  //  int OnAVertices =0;
-  Icoor2 dt[3];
-  I2 a = Bh.toI2(A) ,b= Bh.toI2(B);// compute  the Icoor a,b
-  I2 vi,vj;  
-  int iedge =-1;// not a edge
-
-  if(nbegin)  {// optimisation 
-    // we suppose  knowing the starting  triangle
-    t=tbegin=lIntTria[ilast=(Size-1)].t;
-    if (tbegin->det>=0) 
-    ifirst = ilast;}  
-  else {// not optimisation 
-    init();
-    t=tbegin = Bh.FindTriangleContening(a,deta);
-    //    if(SHOW) cout <<t << " " << Real8(deta[0])/t->det<< " " << Real8(deta[1])/t->det
-    //		  << " " << Real8(deta[2])/t->det << endl;
-    if( t->det>=0)
-      ilast=NewItem(t,Real8(deta[0])/t->det,Real8(deta[1])/t->det,Real8(deta[2])/t->det);
-    else 
-     {// find the nearest boundary edge  of the vertex A
-      // find a edge or such normal projection a the edge IJ is on the edge
-      //   <=> IJ.IA >=0 && IJ.AJ >=0
-      ilast=ifirst;
-      double ba,bb;
-      TriangleAdjacent edge=CloseBoundaryEdge(a,t,ba,bb);
-      Vertex & v0 = *edge.EdgeVertex(0), & v1 = *edge.EdgeVertex(1);
-      NewItem(A,Metric(ba,v0,bb,v1));
-      t=edge;
-      // test if the point b is in the same side
-      if (det(v0.i,v1.i,b)>=0) {
-	//cout << " All the edge " << A << B << endl;
-	TriangleAdjacent edge=CloseBoundaryEdge(a,t,ba,bb);
-	Vertex & v0 = *edge.EdgeVertex(0), & v1 = *edge.EdgeVertex(1);
-	NewItem(A,Metric(ba,v0,bb,v1));
-	return;
-      }
-     } // find the nearest boundary edge  of the vertex A
-   } // end not optimisation 
-  if (t->det<0) {  // outside departure
-    while (t->det <0) { // intersection boundary edge and a,b,
-      k=(*t)(0) ?  ((  (*t)(1) ? ( (*t)(2) ? -1 : 2) : 1  )) : 0;
-      assert(k>=0);
-      ocut = OppositeEdge[k];
-      i=VerticesOfTriangularEdge[ocut][0];
-      j=VerticesOfTriangularEdge[ocut][1];
-      vi=(*t)[i];
-      vj=(*t)[j];
-      deti = bamg::det(a,b,vi);
-      detj = bamg::det(a,b,vj);
-     //  if(SHOW) {  penthickness(3);
-// 	Move(vi);Line(vj);CurrentTh->inquire();penthickness(1);
-//         cout << Bh.Number(tbegin) << " " << Bh.Number(t) << " i= " << i <<" j= " <<  j << " k=" << k 
-//       	   << " deti= " << deti << " detj= " << detj 
-// 	     << " v = " << Bh.Number((*t)[i]) << (*t)[i].r <<  " " << Bh.Number((*t)[j]) << (*t)[j].r  << endl;}
-      if (deti>0) // go to  i direction on gamma
-	ocut = PreviousEdge[ocut];      
-      else if (detj<=0) // go to j direction on gamma
-	ocut = NextEdge[ocut];         
-      TriangleAdjacent tadj =t->Adj(ocut);
-      t = tadj;
-      iedge= tadj; 
-      if (t == tbegin) { // 
-	double ba,bb;
-	if (verbosity>7) 
-	  cout << "       SplitEdge: All the edge " << A << B << nbegin <<  det(vi,vj,b) 
-	       << " deti= " << deti <<  " detj=" <<detj << endl;
-	TriangleAdjacent edge=CloseBoundaryEdge(a,t,ba,bb);
-	Vertex & v0 = *edge.EdgeVertex(0), & v1 = *edge.EdgeVertex(1);
-	NewItem(A,Metric(ba,v0,bb,v1));
-	return;
-	/*
-	cerr << nbegin <<  det(vi,vj,b) << " deti= " << deti <<  " detj=" <<detj << endl;
-	cerr << "SplitEdge on boucle A" << A << " B = " << B << endl;
-
-#ifdef DRAWING
-	reffecran();
-	Bh.Draw();
-        penthickness(5);
-	Move(A);
-	Line(B);
-        penthickness(1);
-
-	Bh.inquire();
-        penthickness(5);
-	Move(A);
-	Line(B);
-        penthickness(1);
-	Bh.inquire();
-#endif	
-	MeshError(997);*/
-      }
-    } //  end while (t->det <0)
-    // theoriticaly we have: deti =<0 and detj>0
-  
-      // computation of barycentric coor
-    // test if the point b is on size on t
-    // we revert vi,vj because vi,vj is def in Adj triangle
-    if ( det(vi,vj,b)>=0) {
-      if (verbosity>7)
-      cout << "       SplitEdge: all AB outside " << A << B << endl;
-      t=tbegin;
-      Real8 ba,bb;
-      TriangleAdjacent edge=CloseBoundaryEdge(b,t,ba,bb);
-      NewItem(B,Metric(ba,*edge.EdgeVertex(0),bb,*edge.EdgeVertex(1)));
-      return;
-    }
-    else
-      {
-	k = OppositeVertex[iedge];
-	i=VerticesOfTriangularEdge[iedge][0];
-	j=VerticesOfTriangularEdge[iedge][1];
-	Real8 dij = detj-deti;
-	assert(i+j+k == 0 + 1 +2);
-	ba[j] =  detj/dij;
-	ba[i] = -deti/dij;
-	ba[k] = 0;
-// 	if(SHOW) cout << i << " " << j << " " << k << " " << ba[i] << " " << ba[j] << endl;
-	ilast=NewItem(t,ba[0],ba[1],ba[2]); }
-  }  //  outside departure
-
-     
-   
-  // recherche the intersection of [a,b] with Bh Mesh.
-  // we know  a triangle ta contening the vertex a
-  // we have 2 case for intersection [a,b] with a edge [A,B] of Bh
-  // 1) the intersection point is in ]A,B[
-  // 2)                        is A or B
-  // first version --- 
-  for (;;) {
-    //    t->Draw();
-    if (iedge < 0) {
-      i0 =0;i1=1;i2=2;
-      dt[0] =bamg::det(a,b,(*t)[0]);
-      dt[1] =bamg::det(a,b,(*t)[1]);
-      dt[2] =bamg::det(a,b,(*t)[2]);}
-    else {
-      i2 = iedge;
-      i0 = NextEdge[i2];
-      i1 = NextEdge[i0]; 
-      dt[VerticesOfTriangularEdge[iedge][0]] = detj;// we revert i,j because
-      dt[VerticesOfTriangularEdge[iedge][1]] = deti;// we take the Triangle by the other side
-      dt[iedge] = det(a,b,(*t)[OppositeVertex[iedge]]);}
-    
-    // so we have just to see the transition from - to + of the det0..2 on edge of t
-    // because we are going from a to b
-    if       ((dt[i=VerticesOfTriangularEdge[i0][0]] <  0) &&
-              ( dt[j=VerticesOfTriangularEdge[i0][1]] > 0))
-      ocut =i0;
-    else  if ((dt[i=VerticesOfTriangularEdge[i1][0]] <  0) &&
-              (dt[j=VerticesOfTriangularEdge[i1][1]] >  0))
-      ocut =i1;
-    else  if ((dt[i=VerticesOfTriangularEdge[i2][0]] <  0) && 
-              (dt[j=VerticesOfTriangularEdge[i2][1]] >  0))
-      ocut =i2;
-    else if   ((dt[i=VerticesOfTriangularEdge[i0][0]] == 0) &&
-              ( dt[j=VerticesOfTriangularEdge[i0][1]] >  0))
-      ocut =i0;
-    else  if ((dt[i=VerticesOfTriangularEdge[i1][0]] == 0) &&
-              (dt[j=VerticesOfTriangularEdge[i1][1]] >  0))
-      ocut =i1;
-    else  if ((dt[i=VerticesOfTriangularEdge[i2][0]] == 0) && 
-              (dt[j=VerticesOfTriangularEdge[i2][1]] >  0))
-      ocut =i2;
-    else if   ((dt[i=VerticesOfTriangularEdge[i0][0]] <  0) &&
-              ( dt[j=VerticesOfTriangularEdge[i0][1]] == 0))
-      ocut =i0;
-    else  if ((dt[i=VerticesOfTriangularEdge[i1][0]] <  0) &&
-              (dt[j=VerticesOfTriangularEdge[i1][1]] == 0))
-      ocut =i1;
-    else  if ((dt[i=VerticesOfTriangularEdge[i2][0]] <  0) && 
-              (dt[j=VerticesOfTriangularEdge[i2][1]] == 0))
-      ocut =i2;
-    else { //  On a edge (2 zero)
-      k =0;
-      if (dt[0]) ocut=0,k++; 
-      if (dt[1]) ocut=1,k++; 
-      if (dt[2]) ocut=2,k++;
-      if(k == 1) {
-        if (dt[ocut] >0) // triangle upper AB
-          ocut = NextEdge[ocut];
-        i= VerticesOfTriangularEdge[ocut][0];
-        j= VerticesOfTriangularEdge[ocut][1];
-      }
-      else  {
-        cerr << " Bug Split Edge " << endl;
-        cerr << " dt[0]= " << dt[0] 
-             << " dt[1]= " << dt[1] 
-             << " dt[2]= "<< dt[2] << endl;
-        cerr << i0 << " " << i1 << " " << i2 << endl;
-        cerr << " A = " << A << " B= " << B << endl;
-        cerr << " Triangle t = " <<  *t << endl;
-        cerr << (*t)[0] << (*t)[1] << (*t)[0] << endl;
-        cerr << " nbt = " << nbt << endl;
-        MeshError(100);}}
-    
-    k = OppositeVertex[ocut];
-
-    Icoor2 detbij = bamg::det((*t)[i],(*t)[j],b);
-
-    
-    if (detbij >= 0) { //we find the triangle contening b
-      dt[0]=bamg::det((*t)[1],(*t)[2],b);
-      dt[1]=bamg::det((*t)[2],(*t)[0],b);
-      dt[2]=bamg::det((*t)[0],(*t)[1],b);
-#ifdef DEBUG 
-      assert(dt[0] >= 0);
-      assert(dt[1] >= 0);
-      assert(dt[2] >= 0);
-#endif
-      Real8 dd = t->det;
-      NewItem(t,dt[0]/dd,dt[1]/dd,dt[2]/dd);      
-      return ;}
-    else { // next triangle by  adjacent by edge ocut 
-      deti = dt[i];
-      detj = dt[j];
-      Real4 dij = detj-deti;
-      ba[i] =  detj/dij;
-      ba[j] = -deti/dij;
-      ba[3-i-j ] = 0;
-      ilast=NewItem(t, ba[0],ba[1],ba[2]);      
-      
-      TriangleAdjacent ta =t->Adj(ocut);
-      t = ta;
-      iedge= ta; 
-      if (t->det <= 0)  {
-        double ba,bb;
-        TriangleAdjacent edge=CloseBoundaryEdge(b,t,ba,bb);
-        NewItem(B,Metric(ba,*edge.EdgeVertex(0),bb,*edge.EdgeVertex(1)));
-	// 	cout << " return " << ba << " " << bb << endl;
-	// ajoute le 03 frev 1997 par F. hecht
-        return;
-        }
-     }// we  go outside of omega 
-  } // for(;;)
- 
-   
-} // routine SplitEdge
-
-
-int  ListofIntersectionTriangles::NewItem(Triangle * tt,Real8 d0,Real8 d1,Real8 d2) { 
-   int n;
-  R2 x(0,0);
-  if ( d0) x =      (*tt)[0].r * d0;
-  if ( d1) x = x +  (*tt)[1].r * d1;
-  if ( d2) x = x +  (*tt)[2].r * d2;
-  // newer add same point 
-  if(!Size ||  Norme2_2(lIntTria[Size-1].x-x)) {
-    if (Size==MaxSize) ReShape();
-    lIntTria[Size].t=tt;
-    lIntTria[Size].bary[0]=d0;
-    lIntTria[Size].bary[1]=d1;
-    lIntTria[Size].bary[2]=d2;
-    lIntTria[Size].x = x;
-    Metric m0,m1,m2;
-     Vertex * v;
-    if ((v=(*tt)(0))) m0    = v->m;
-    if ((v=(*tt)(1))) m1    = v->m;
-    if ((v=(*tt)(2))) m2    = v->m;
-    lIntTria[Size].m =  Metric(lIntTria[Size].bary,m0,m1,m2);
-#ifdef DEBUG1
-    if(SHOW) { cout << "SHOW       ++ NewItem =" << Size << x ;
-    cout << " " << d0 << " " << d1 << " " << d2 <<endl;}
-#endif
-    n=Size++;}
-  else n=Size-1;
-  return n;
-}
-int ListofIntersectionTriangles::NewItem(R2 A,const Metric & mm) {  
-   int n;
-  if(!Size ||  Norme2_2(lIntTria[Size-1].x-A)) {
-    if (Size==MaxSize) ReShape();
-    lIntTria[Size].t=0;
-    lIntTria[Size].x=A;
-    lIntTria[Size].m=mm;
-#ifdef DEBUG1
-    if (SHOW)  cout << "SHOW       ++ NewItem A" << Size << A << endl;
-#endif
-    n=Size++;
-   }
-  else  n=Size-1;
- return  n; 
-}
-
-Real8  ListofIntersectionTriangles::Length()
-{
-  //  cout << " n= " << Size << ":" ;
-  assert(Size>0);
-  // computation of the length      
-  R2 C;
-  Metric Mx,My;
-  int ii,jj;
-  R2 x,y,xy;
-  
-  SegInterpolation *SegI=lSegsI;
-  SegI=lSegsI;
-  lSegsI[NbSeg].last=Size;// improvement 
-  
-  int EndSeg=Size;
-     
-  y = lIntTria[0].x;
-  Real8 sxy, s = 0;
-  lIntTria[0].s =0;
-  SegI->lBegin=s;
-
-  for (jj=0,ii=1;ii<Size;jj=ii++) 
-    {  
-      // seg jj,ii
-      x=y;
-      y = lIntTria[ii].x;
-      xy = y-x;
-      Mx = lIntTria[ii].m;
-      My = lIntTria[jj].m;
-      //      Real8 &sx=  lIntTria[ii].sp; // previous seg
-      //  Real8 &sy=  lIntTria[jj].sn; // next seg
-      //      sx = Mx(xy);
-      //      sy = My(xy);
-      //   sxy = (Mx(xy)+ My(xy))/2.0;
-      sxy =  LengthInterpole(Mx,My,xy);
-      s += sxy;
-      lIntTria[ii].s = s;
-      if (ii == EndSeg) 
-	SegI->lEnd=s,
-	  SegI++,
-	  EndSeg=SegI->last,
-	  SegI->lBegin=s;
-      
-      //    cout << ii << " " << jj << x<< y <<xy << s <<  lIntTria[ii].m  ;
-    }
-  len = s;
-  SegI->lEnd=s;
-
-  //  cout << " len= " << s << endl;
-  return s;
-}
-
-Int4 ListofIntersectionTriangles::NewPoints(Vertex * vertices,Int4 & nbv,Int4  nbvx)
-{
-
-  const Int4 nbvold = nbv;
-  Real8 s = Length();
-  if (s <  1.5 ) return 0;
-  //////////////////////   
-  int ii = 1 ;
-  R2 y,x;
-  Metric My,Mx ;
-  Real8 sx =0,sy;
-  int nbi = Max(2,(int) (s+0.5));
-  Real8 sint = s/nbi;
-  Real8 si = sint;
-
-  int EndSeg=Size;
-  SegInterpolation *SegI=0;
-  if (NbSeg) 
-    SegI=lSegsI,EndSeg=SegI->last;
-  
-  for (int k=1;k<nbi;k++)
-    {
-      while ((ii < Size) && ( lIntTria[ii].s <= si )) 
-	if (ii++ == EndSeg) 
-	  SegI++,EndSeg=SegI->last;
-
-      int ii1=ii-1;
-      x  =lIntTria[ii1].x;
-      sx =lIntTria[ii1].s;
-      Metric Mx=lIntTria[ii1].m;
-#ifdef DEBUG    
-      double lx = lIntTria[ii-1].sn;
-#endif
-      y  =lIntTria[ii].x;
-      sy =lIntTria[ii].s;
-      Metric My=lIntTria[ii].m;
-#ifdef DEBUG    
-      double ly =lIntTria[ii].sp;  
-      assert( sx <= si);
-      assert( si <= sy);
-      assert( sy != sx);
-#endif 
-
-      Real8 lxy = sy-sx;
-      Real8 cy = abscisseInterpole(Mx,My,y-x,(si-sx)/lxy);
-      
-      R2 C;
-      Real8 cx = 1-cy;
-      C = SegI ? SegI->F(si): x * cx + y *cy;
-
-    si += sint;
-    if ( nbv<nbvx) {
-      vertices[nbv].r = C;
-      vertices[nbv++].m = Metric(cx,lIntTria[ii-1].m,cy,lIntTria[ii].m);
-      if((verbosity/100%10)==2)
-      cout << "   -- Add point " << nbv-1 << " " << vertices[nbv-1] << " " << vertices[nbv-1].m << endl;
-
-#ifdef DEBUG
-      if(k>1) {
-	R2 AB = vertices[nbv-2].r - vertices[nbv-1].r ;
-	Real8 dp = LengthInterpole(vertices[nbv-2].m,vertices[nbv-1].m,AB);
-	if (dp > 1.6) {
-	  cerr << "PB calcul new Int.  points trop loin l=" << dp << " v=" << nbv-1 << " " << nbv-2 <<Mx<<My<<y-x << endl;
-	}
-	}
-#endif
-    }
-    else return nbv-nbvold;
-  }
-  return nbv-nbvold;
-}
-
-int SwapForForcingEdge(Vertex   *  & pva ,Vertex  * &   pvb ,
-      TriangleAdjacent & tt1,Icoor2 & dets1, Icoor2 & detsa,Icoor2 & detsb, int & NbSwap)
-{ // l'arete ta coupe l'arete pva pvb
-  // de cas apres le swap sa coupe toujours
-  // on cherche l'arete suivante 
-  // on suppose que detsa >0 et detsb <0
-  // attention la routine echange pva et pvb 
-
-   if(tt1.Locked()) return 0; // frontiere croise 
-
-  TriangleAdjacent tt2 = Adj(tt1);
-  Triangle *t1=tt1,*t2=tt2;// les 2 triangles adjacent
-  Int1 a1=tt1,a2=tt2;// les 2 numero de l arete dans les 2 triangles
-  assert ( a1 >= 0 && a1 < 3 );
-   
-  Vertex & sa= (* t1)[VerticesOfTriangularEdge[a1][0]];
-  Vertex & s1= (*t1)[OppositeVertex[a1]];
-  Vertex & s2= (*t2)[OppositeVertex[a2]];
-  
-
-  Icoor2 dets2 = det(*pva,*pvb,s2);
-
-#ifdef DEBUG
-  Vertex & sb= (*t1)[VerticesOfTriangularEdge[a1][1]];
-  Icoor2 wdets1 = det(*pva,*pvb,s1);  
-  Icoor2 wdetsa = det(*pva,*pvb,sa);
-  Icoor2 wdetsb = det(*pva,*pvb,sb);
-  assert(wdets1 == dets1);
-  assert(wdetsa == detsa);
-  assert(wdetsb == detsb);
-#endif
-  
-  Icoor2 det1=t1->det , det2=t2->det ;
-#ifdef DEBUG  
-  assert(det1>0 && det2 >0);
-  Icoor2 ddet1 = det((*t1)[0],(*t1)[1],(*t1)[2]);
-  Icoor2 ddet2 = det((*t2)[0],(*t2)[1],(*t2)[2]);
-   if ((det1 != ddet1) || (det2 != ddet2) )
-    {
-      assert(det1 == ddet1);
-      assert(det2 == ddet2);
-     }
-   Icoor2 detvasasb = det(*pva,sa,sb);
-   Icoor2 detvbsasb = det(*pvb,sa,sb);
-   if (  CurrentTh && !  ( ( (detvasasb <= 0) && (detvbsasb >= 0)) || ( (detvasasb >= 0) && (detvbsasb <= 0)))) 
-     {
-       cout << " detvasasb =" <<  detvasasb << "detvbsasb = " <<  detvbsasb 
-	    << " " << pva << " " << pvb << " "  <<CurrentTh <<endl;
-#ifdef DRAWING1
-       reffecran();
-       CurrentTh->Draw();
-       penthickness(10);
-       pva->MoveTo();pvb->LineTo();
-       penthickness(1);
-       CurrentTh->inquire();
-#endif       
-   }
-     assert( ( (detvasasb <= 0) && (detvbsasb >= 0)) || ( (detvasasb >= 0) && (detvbsasb <= 0)));
-#endif
-
-  Icoor2 detT = det1+det2;
-  assert((det1>0 ) && (det2 > 0));
-  assert ( (detsa < 0) && (detsb >0) ); // [a,b] cut infinite line va,bb
-  Icoor2 ndet1 = bamg::det(s1,sa,s2);
-  Icoor2 ndet2 = detT - ndet1;
-
-  int ToSwap =0; //pas de swap
-  if ((ndet1 >0) && (ndet2 >0)) 
-    { // on peut swaper  
-      if ((dets1 <=0 && dets2 <=0) || (dets2 >=0 && detsb >=0))
-        ToSwap =1; 
-      else // swap alleatoire 
-        if (BinaryRand()) 
-          ToSwap =2; 
-    }
-#ifdef DEBUG
-  if (ForDebugging) {
-    cerr << "swap = " << ToSwap << " ndet1 " << ndet1 << ", ndet2 " << ndet2 << "det1  " << det1 << " det2 " <<  det2  
-	 << " if1 = " << ((ndet1 >0) && (ndet2 >0)) 
-	 << " if2 = " << ((dets1 <=0 && dets2 <=0) || (dets2 >=0 && detsb >=0)) << endl;
-#ifdef DRAWING
-  couleur(0);
-  t1->Draw();
-  t2->Draw();
-#endif
-  }
-#endif
-  if (ToSwap) NbSwap++,
-     bamg::swap(t1,a1,t2,a2,&s1,&s2,ndet1,ndet2);
-  
-#ifdef DEBUG
-  if (ForDebugging) {
-#ifdef DRAWING
-  couleur(4);
-  t1->Draw();
-  t2->Draw();
-  rattente(1);
-#endif
-  }
-#endif
-  int ret=1;
-
-  if (dets2 < 0) {// haut
-    dets1 = ToSwap ? dets1 : detsa ;
-    detsa = dets2; 
-    tt1 =  Previous(tt2) ;}
-  else if (dets2 > 0){// bas 
-    dets1 = ToSwap ? dets1 : detsb ;
-    detsb = dets2;
-    //xxxx tt1 = ToSwap ? tt1 : Next(tt2);
-    if(!ToSwap) tt1 =  Next(tt2);
-    }
-  else { // changement de sens 
-     if (ForDebugging)  cout << "changement de sens" << endl;
-    ret = -1;
-    Exchange(pva,pvb);
-    Exchange(detsa,detsb);
-    Exchange(dets1,dets2);
-    Exchange(tt1,tt2);
-    dets1=-dets1;
-    dets2=-dets2;
-    detsa=-detsa;
-    detsb=-detsb;
-
-    if (ToSwap)
-    {
-      if (dets2 < 0) {// haut
-        dets1 = (ToSwap ? dets1 : detsa) ;
-        detsa = dets2; 
-        tt1 =  Previous(tt2) ;}
-      else if (dets2 > 0){// bas 
-        dets1 = (ToSwap ? dets1 : detsb) ;
-        detsb =  dets2;
-        if(!ToSwap) tt1 =  Next(tt2);
-       }
-      else {// on a fin ???
-        tt1 = Next(tt2);
-        ret =0;}
-    }
-  }
-  return ret;
-}
-
-int ForceEdge(Vertex &a, Vertex & b,TriangleAdjacent & taret)  
-{ 
-#ifdef DEBUG
- restart: // for debug 
-#endif
-  int NbSwap =0;
-  assert(a.t && b.t); // the 2 vertex is in a mesh 
-  int k=0;
-  taret=TriangleAdjacent(0,0); // erreur 
-  
-  TriangleAdjacent tta(a.t,EdgesVertexTriangle[a.vint][0]);
-  Vertex   *v1, *v2 = tta.EdgeVertex(0),*vbegin =v2;
-  // we turn around a in the  direct sens  
-   
-  Icoor2 det2 = v2 ? det(*v2,a,b): -1 , det1;
-  if(v2) // normal case 
-    det2 = det(*v2,a,b);
-  else { // no chance infini vertex try the next
-    tta= Previous(Adj(tta));
-    v2 = tta.EdgeVertex(0);
-    vbegin =v2;
-    assert(v2);
-    det2 = det(*v2,a,b);
- //   cout << " No Change try the next" << endl;
-  }
-
-#ifdef DRAWING1
-  a.MoveTo();b.LineTo();
-#endif
-
-  while (v2 != &b) {
-    TriangleAdjacent tc = Previous(Adj(tta));    
-    v1 = v2; 
-    v2 = tc.EdgeVertex(0);
-    det1 = det2;
-#ifdef DEBUG
-    assert( v1 ==  tta.EdgeVertex(0));
-    assert( &a ==  tc.EdgeVertex(1) );
-#endif
-    det2 =  v2 ? det(*v2,a,b): det2; 
-    
-    if((det1 < 0) && (det2 >0)) { 
-      // try to force the edge 
-      Vertex * va = &a, *vb = &b;
-      tc = Previous(tc);
-      assert ( v1 && v2);
-      Icoor2 detss = 0,l=0,ks;
-      // cout << "Real ForcingEdge " << *va << *vb << detss << endl;
-#ifdef DEBUG
-      Icoor2 dettt1 =  det(*v1,a,b);
-      Icoor2 dettt2 =  det(*v2,a,b);
-
-      if (!(dettt1==det1 && dettt2==det2))
-	{
-	  assert(ForDebugging==0);
-          ForDebugging=1;
-	  goto restart;
-	}
-	
-#endif 
-      while ((ks=SwapForForcingEdge(  va,  vb, tc, detss, det1,det2,NbSwap)))
-	if(l++ > 10000000) {
-	  cerr << " Loop in forcing Egde AB" 
-               <<"\n vertex A " << a 
-               <<"\n vertex B " <<  b 
-               <<"\n nb de swap " << NbSwap 
-               <<"\n nb of try  swap too big = " <<  l << " gearter than " <<  1000000 << endl;
-   
-         if ( CurrentTh ) 
-            cerr << " vertex number " << CurrentTh->Number(a) << " " <<  CurrentTh->Number(b) << endl;
-#ifdef DEBUG
-	  ForDebugging = 1;
-#endif
-#ifdef DRAWING1
-          if (  CurrentTh ) {
-	    reffecran();
-            couleur(6);
-	    CurrentTh->Draw();
-            couleur(1);
-	    penthickness(10);
-	    a.MoveTo();b.LineTo();
-	    penthickness(1);
-	    CurrentTh->inquire();
-            couleur(6);
-	    l=0;
-	    reffecran();
-            while (ks=SwapForForcingEdge(  va,  vb, tc, detss, det1,det2,NbSwap) && (l++ < 1000))
-             cerr << " " << CurrentTh->Number(tc.EdgeVertex(0))<<" " <<CurrentTh->Number(tc.EdgeVertex(1)) << " ";
-	  }
-#endif	  
-	  MeshError(990);
-	}
-      Vertex *aa = tc.EdgeVertex(0), *bb = tc.EdgeVertex(1);
-      if ((( aa == &a ) && (bb == &b)) ||  ((bb ==  &a ) && (aa == &b))) {
-	tc.SetLock();
-	a.Optim(1,0);
-	b.Optim(1,0);
-	taret = tc;
-	return NbSwap;
-      }
-      else 
-      {
-	  taret = tc;
-	  return -2; // error  boundary is crossing
-/*	  cerr << "Fatal Error  boundary is crossing  ";
-	  if(CurrentTh)
-	  {
-	      cerr << " edge:  [" << CurrentTh->Number(a) << ", " << CurrentTh->Number(b) <<  " ] and [ ";
-	      cerr    << CurrentTh->Number(aa) << " " << CurrentTh->Number(bb) << " ] " << endl;
-	  }
-	  MeshError(991);
-*/	  
-      }
-    }
-    tta = tc;
-    assert(k++<2000);
-    if ( vbegin == v2 ) return -1;// error 
-  }
-
-  tta.SetLock();
-  taret=tta;
-  a.Optim(1,0);
-  b.Optim(1,0);
-  return NbSwap; 
-}
-
-
-int Triangle::swap(Int2 a,int koption){
-#ifdef DEBUG
-  if(a &4 ) return 0;// arete lock 
-  int munswap1 = a/4;
-  a &=3;
-#else
- if(a/4 !=0) return 0;// arete lock or MarkUnSwap
-#endif
-
-   Triangle *t1=this,*t2=at[a];// les 2 triangles adjacent
-   Int1 a1=a,a2=aa[a];// les 2 numero de l arete dans les 2 triangles
-#ifdef DEBUG
-  if(a2 & 4) return 0; // arete lock
-  int munswap2 = a2/4;
-  a2 &= 3;
-#else
-  if(a2/4 !=0) return 0; // arete lock or MarkUnSwap
-#endif
-  
-   Vertex  *sa=t1->ns[VerticesOfTriangularEdge[a1][0]];
-   Vertex  *sb=t1->ns[VerticesOfTriangularEdge[a1][1]];
-   Vertex  *s1=t1->ns[OppositeVertex[a1]];
-   Vertex  *s2=t2->ns[OppositeVertex[a2]];
-
-#ifdef DEBUG
-  assert ( a >= 0 && a < 3 );  
-#endif
-  
-   Icoor2 det1=t1->det , det2=t2->det ;
-   Icoor2 detT = det1+det2;
-   Icoor2 detA = Abs(det1) + Abs(det2);
-   Icoor2 detMin = Min(det1,det2);
-
-   int OnSwap = 0;       
-   // si 2 triangle infini (bord) => detT = -2;
-   if (sa == 0) {// les deux triangles sont frontieres
-     det2=bamg::det(s2->i,sb->i,s1->i);
-     OnSwap = det2 >0;}
-   else if (sb == 0) { // les deux triangles sont frontieres
-     det1=bamg::det(s1->i,sa->i,s2->i);
-     OnSwap = det1 >0;}
-   else if(( s1 != 0) && (s2 != 0) ) {
-     det1 = bamg::det(s1->i,sa->i,s2->i);
-     det2 = detT - det1;
-     OnSwap = (Abs(det1) + Abs(det2)) < detA;
-   
-     Icoor2 detMinNew=Min(det1,det2);
-     //     if (detMin<0 && (Abs(det1) + Abs(det2) == detA)) OnSwap=BinaryRand();// just for test   
-     if (! OnSwap &&(detMinNew>0)) {
-       OnSwap = detMin ==0;
-       if (! OnSwap) {
-	 int  kopt = koption;
-        while (1)
-	 if(kopt) {
-	 // critere de Delaunay pure isotrope
-	  Icoor2 xb1 = sb->i.x - s1->i.x,
-	   x21 = s2->i.x - s1->i.x,
-	   yb1 = sb->i.y - s1->i.y,
-	   y21 = s2->i.y - s1->i.y,
-	   xba = sb->i.x - sa->i.x, 
-	   x2a = s2->i.x - sa->i.x,
-	   yba = sb->i.y - sa->i.y,
-	   y2a = s2->i.y - sa->i.y;
-	  double
-	   cosb12 =  double(xb1*x21 + yb1*y21),
-	   cosba2 =  double(xba*x2a + yba*y2a) ,
-	   sinb12 = double(det2),
-	   sinba2 = double(t2->det);
-
-	 
-	 // angle b12 > angle ba2 => cotg(angle b12) < cotg(angle ba2)
-	 OnSwap =  ((double) cosb12 * (double)  sinba2) <  ((double) cosba2 * (double) sinb12);
-//  	 if(CurrentTh) 
-//  	   cout << "swap " << CurrentTh->Number(sa) << " " << CurrentTh->Number(sb) << " " ;
-//  	 cout <<  cosb12 << " " <<  sinba2 << " "  <<  cosba2 << " " << sinb12 
-//  	      << " Onswap = " <<  OnSwap << endl;
-	  break;
-	 }
-	 else 
-	   {	
-	     // critere de Delaunay anisotrope 
-	     Real8 som;
-	     I2 AB=(I2) *sb - (I2) *sa;
-	     I2 MAB2=((I2) *sb + (I2) *sa);
-	     R2 MAB(MAB2.x*0.5,MAB2.y*0.5);
-	     I2 A1=(I2) *s1 - (I2) *sa;
-	     I2 D = (I2) * s1 - (I2) * sb ;
-	     R2 S2(s2->i.x,s2->i.y);
-	     R2 S1(s1->i.x,s1->i.y);
-	     {
-	       Metric M=s1->m;
-	       R2 ABo = M.Orthogonal(AB);
-	       R2 A1o = M.Orthogonal(A1);
-	       // (A+B)+ x ABo = (S1+B)/2+ y A1 
-	       // ABo x - A1o y =  (S1+B)/2-(A+B)/2 = (S1-B)/2 = D/2
-	       double dd = Abs(ABo.x*A1o.y)+Abs(ABo.y*A1o.x);
-	       double d = (ABo.x*A1o.y - ABo.y*A1o.x)*2; // because D/2
-	       if (Abs(d) > dd*1.e-3) {
-		 R2 C(MAB+ABo*((D.x*A1o.y - D.y*A1o.x)/d));
-		 som  = M(C - S2)/M(C - S1);
-	       } else 
-		{kopt=1;continue;}
-		
-	     }
-	     {
-	       Metric M=s2->m;
-	       R2 ABo = M.Orthogonal(AB);
-	       R2 A1o = M.Orthogonal(A1);
-	       // (A+B)+ x ABo = (S1+B)/2+ y A1 
-	       // ABo x - A1o y =  (S1+B)/2-(A+B)/2 = (S1-B)/2 = D/2 
-	       double dd = Abs(ABo.x*A1o.y)+Abs(ABo.y*A1o.x);
-	       double d = (ABo.x*A1o.y - ABo.y*A1o.x)*2; // because D/2
-	       if(Abs(d) > dd*1.e-3) {
-		 R2 C(MAB+ABo*((D.x*A1o.y - D.y*A1o.x)/d));
-		 som  += M(C - S2)/M(C -  S1);
-	       } else 
-		{kopt=1;continue;}
-	     }
-	     OnSwap = som < 2;
-	     break;
-	 }
-  
-       } // OnSwap 
-     } // (! OnSwap &&(det1 > 0) && (det2 > 0) )
-   }
-#ifdef  DEBUG1   
-   if (OnSwap &&  ( munswap1  || munswap2)) {
-     cout << " erreur Mark unswap T " << CurrentTh->Number(t1) << " " <<  CurrentTh->Number(t2) << endl
-	  << *t1 << endl
-          << *t2 << endl;
-     return 0;
-   }
-#endif 
-   if( OnSwap ) 
-       bamg::swap(t1,a1,t2,a2,s1,s2,det1,det2);
-   else {
-     NbUnSwap ++;
-      t1->SetMarkUnSwap(a1);     
-   }
-   return OnSwap;
-}
-
-Real8  Vertex::Smoothing(Triangles & Th,const Triangles & BTh,Triangle  * & tstart ,Real8 omega)
-{
-#ifdef DEBUG  
-    Int4 NbSwap =0;
-#endif
-   Vertex * s  = this;
-  Vertex &vP = *s,vPsave=vP;
-  //  if (vP.on) return 0;// Don't move boundary vertex  
-  
-   Triangle * tbegin= t , *tria = t , *ttc;
- 
-   int k=0,kk=0,j = EdgesVertexTriangle[vint][0],jc;
-  R2 P(s->r),PNew(0,0);
-  //  cout << BTh.quadtree << " " <<  BTh.quadtree->root << endl;
-  // assert(BTh.quadtree && BTh.quadtree->root);
-  do {
-	k++; 
-	
-#ifdef DEBUG
-    assert( s == & (*tria)[VerticesOfTriangularEdge[j][1]] );
-    assert( tria->det >0);
-#endif
-    if (!tria->Hidden(j))
-      {
-	Vertex &vQ = (*tria)[VerticesOfTriangularEdge[j][0]]; 
-	
-	R2 Q = vQ,QP(P-Q);
-	Real8 lQP = LengthInterpole(vP,vQ,QP);
-	PNew += Q+QP/Max(lQP,1e-20);
-	kk ++;
-      }
-     ttc =  tria->TriangleAdj(j);
-     jc = NextEdge[tria->NuEdgeTriangleAdj(j)];
-     tria = ttc;
-     j = NextEdge[jc];
-     assert(k<2000);
-  } while ( tbegin != tria); 
-  if (kk<4) return 0;
-  PNew = PNew/(Real8)kk;
-  R2 Xmove((PNew-P)*omega);
-  PNew = P+Xmove;
-  Real8 delta=Norme2_2(Xmove); 
-  
-  
-  // 
-  Icoor2 deta[3];
-  I2 IBTh  = BTh.toI2(PNew);
-  
-  tstart=BTh.FindTriangleContening(IBTh,deta,tstart);  
-  
-  if (tstart->det <0) 
-    { // outside
-      double ba,bb;
-      TriangleAdjacent edge= CloseBoundaryEdge(IBTh,tstart,ba,bb) ;
-      tstart = edge;
-      vP.m= Metric(ba,*edge.EdgeVertex(0),bb,*edge.EdgeVertex(1));
-    }
-  else 
-    { // inside
-      Real8   aa[3];
-      Real8 s = deta[0]+deta[1]+deta[2];
-      aa[0]=deta[0]/s;
-      aa[1]=deta[1]/s;
-      aa[2]=deta[2]/s;
-      vP.m = Metric(aa,(*tstart)[0],(*tstart)[1],(*tstart)[2]);
-    }
-  
-  // recompute the det of the triangle
-  vP.r = PNew;
-  
-  vP.i = Th.toI2(PNew);
-
-  Vertex vPnew = vP;
-  
-  int ok=1;
-  int loop=1;
-  k=0;
-  while (ok) 
-    {
-      ok =0;
-      do {
-	k++; 
-	double detold = tria->det;
-	tria->det =  bamg::det( (*tria)[0],(*tria)[1]  ,(*tria)[2]);
-	if (loop) 
-	  {
-	    Vertex *v0,*v1,*v2,*v3;
-	    if (tria->det<0) ok =1;			       
-	    else if (tria->Quadrangle(v0,v1,v2,v3))
-	      {
-		vP = vPsave;
-		Real8 qold =QuadQuality(*v0,*v1,*v2,*v3);
-		vP = vPnew;
-		Real8 qnew = QuadQuality(*v0,*v1,*v2,*v3);
-		if (qnew<qold) ok = 1;
-	      }
-	    else if ( (double)tria->det < detold/2 ) ok=1;
-	    
-	  }
-        tria->SetUnMarkUnSwap(0);
-        tria->SetUnMarkUnSwap(1);
-        tria->SetUnMarkUnSwap(2);
-	ttc =  tria->TriangleAdj(j);
-	jc = NextEdge[tria->NuEdgeTriangleAdj(j)];
-	tria = ttc;
-	j = NextEdge[jc];
-	assert(k<2000);
-      } while ( tbegin != tria); 
-      if (ok && loop) vP=vPsave; // no move 
-      loop=0;
-    }
-  return delta;
-}
-
-
-
-
-void Triangles::Add( Vertex & s,Triangle * t, Icoor2 * det3) 
-{
-  // -------------------------------------------
-  //             s2
-  //                                            !
-  //             /|\                            !
-  //            / | \                           !
-  //           /  |  \                          !
-  //    tt1   /   |   \ tt0                     !
-  //         /    |s   \                        !
-  //        /     .     \                       !
-  //       /  .      `   \                      !
-  //      / .           ` \                     !
-  //      ----------------                      !
-  //   s0       tt2       s1
-  //-------------------------------------------- 
-  
-  Triangle * tt[3]; // the 3 new Triangles
-  Vertex &s0 = (* t)[0], &s1=(* t)[1], &s2=(* t)[2];
-  Icoor2  det3local[3];
-  int infv = &s0 ?  ((  &s1 ? ( &s2  ? -1 : 2) : 1  )) : 0;
-  // infv = ordre of the infini vertex (null)
-   int nbd0 =0; // number of zero det3
-   int izerodet=-1,iedge; // izerodet = egde contening the vertex s
-  Icoor2 detOld = t->det;
-  
-  if ( (( infv <0 ) && (detOld <0)) ||  (( infv >=0  ) && (detOld >0)) ) 
-    {
-      cerr << "  infv " << infv << " det = " << detOld << endl;
-      cerr << Number(s) << " "<< Number(s0) << " "  
-	   << Number(s1) << " "  << Number(s2) << endl;
-      MeshError(3);
-    }
-  
-  // if det3 do not exist then constuct det3
-  if (!det3) { 
-    det3 = det3local; // alloc 
-    if ( infv<0 ) {
-      det3[0]=bamg::det(s ,s1,s2);
-      det3[1]=bamg::det(s0,s ,s2);
-      det3[2]=bamg::det(s0,s1,s );}
-    else { 
-      // one of &s1  &s2  &s0 is NULL so (&si || &sj) <=> !&sk
-      det3[0]=  &s0 ? -1  : bamg::det(s ,s1,s2) ;
-      det3[1]=  &s1 ? -1 : bamg::det(s0,s ,s2) ;
-      det3[2]=  &s2 ? -1 : bamg::det(s0,s1,s ) ;}}
-
-  
-  if (!det3[0]) izerodet=0,nbd0++;
-  if (!det3[1]) izerodet=1,nbd0++;
-  if (!det3[2]) izerodet=2,nbd0++;
-  
-  if  (nbd0 >0 ) // point s on a egde or on a vertex 
-  {
-    if (nbd0 == 1) {
-      iedge = OppositeEdge[izerodet];
-      TriangleAdjacent ta = t->Adj(iedge);
-
-#ifdef DEBUG1      
-      cout << " the point " << Number(s) << " is the edge " <<  izerodet 
-	   << " of " << Number(t)	   << " det3 = " 
-	   << det3[0] << " " <<  det3[1] << " " <<  det3[2] << " " <<  endl;
-      cout  << " ta = "  <<  ta << "ta->det =" << ((Triangle*) ta)->det  
-	    << " "<< t->det<< endl;
-#endif
-
-      // the point is on the edge 
-      // if the point is one the boundary 
-      // add the point in outside part 
-      if ( t->det >=0) { // inside triangle
-	if ((( Triangle *) ta)->det < 0 ) {
-	  // add in outside triangle 
-	  Add(s,( Triangle *) ta);
-	  return;}
-      }}
-    else {
-      cerr << " bug  " << nbd0 <<endl;
-      cerr << " Bug double points in " << endl ;
-      cerr << " s = " << Number(s) << " " <<  s << endl;
-      cerr << " s0 = "<< Number(s0) << " "  << s0 << endl;
-      cerr << " s1 = "<< Number(s1) << " "  << s1 << endl;
-      cerr << " s2 = "<< Number(s2) << " "  << s2 << endl;
-      MeshError(5,this);}
-  }
-  // remove de MarkUnSwap edge
-  t->SetUnMarkUnSwap(0);     
-  t->SetUnMarkUnSwap(1);     
-  t->SetUnMarkUnSwap(2);
-
-  tt[0]= t;
-  tt[1]= &triangles[nbt++];
-  tt[2]= &triangles[nbt++];
-  
-  if (nbt>nbtx) {
-    cerr << " No enougth triangles " << endl;
-    MeshError(999,this);
-  }
-
-  *tt[1]=   *tt[2]= *t;
-// gestion of the link
-   tt[0]->link=tt[1];
-   tt[1]->link=tt[2]; 
-  
-  (* tt[0])(OppositeVertex[0])=&s;
-  (* tt[1])(OppositeVertex[1])=&s;
-  (* tt[2])(OppositeVertex[2])=&s;
-
-  tt[0]->det=det3[0];
-  tt[1]->det=det3[1];
-  tt[2]->det=det3[2];         
-
-  //  update adj des triangles externe 
-  tt[0]->SetAdjAdj(0);
-  tt[1]->SetAdjAdj(1);
-  tt[2]->SetAdjAdj(2);
-  //  update des adj des 3 triangle interne
-  const int i0 = 0;
-  const int i1= NextEdge[i0];
-  const int i2 = PreviousEdge[i0];
-
-  tt[i0]->SetAdj2(i2,tt[i2],i0);
-  tt[i1]->SetAdj2(i0,tt[i0],i1);
-  tt[i2]->SetAdj2(i1,tt[i1],i2);
-  
-  tt[0]->SetTriangleContainingTheVertex();
-  tt[1]->SetTriangleContainingTheVertex();
-  tt[2]->SetTriangleContainingTheVertex();
- 
- 
-  // swap if the point s is on a edge
-  if(izerodet>=0) {
-    //  cout << " the point s is on a edge =>swap " << iedge << " "  << *tt[izerodet] << endl;
-    int rswap =tt[izerodet]->swap(iedge);
-    
-    if (!rswap) 
-     {
-       cout << " Pb swap the point s is on a edge =>swap " << iedge << " "  << *tt[izerodet] << endl;
-#ifdef DRAWING
-       if(  CurrentTh &&  withrgraphique) 
-        {
-       reffecran();
-       
-       DrawMark(s.r);
-          CurrentTh->inquire();
-       DrawMark(s.r);
-       rattente(1); 
-        }      
-#endif
-     }
-    assert(rswap);
-  }
- 
-#ifdef DEBUG 
-  tt[0]->check();
-  tt[1]->check();
-  tt[2]->check();
-#endif
-#ifdef DRAWING1 
-  tt[0]->Draw();
-  tt[1]->Draw();
-  tt[2]->Draw();
-#endif
-  
-}
-
-
-Int4  Triangles::SplitInternalEdgeWithBorderVertices()
-{
-  Int4 NbSplitEdge=0;
-  SetVertexFieldOn();  
-  Int4 it;
-  Int4 nbvold=nbv;
-  for (it=0;it<nbt;it++)
-    {
-      Triangle &t=triangles[it];
-      if (t.link)
-	for (int j=0;j<3;j++)
-	  if(!t.Locked(j) && !t.Hidden(j)){
-	    Triangle &tt = *t.TriangleAdj(j);
-	    if ( &tt && tt.link && it < Number(tt)) 
-	      { // an internal edge 
-		Vertex &v0 = t[VerticesOfTriangularEdge[j][0]];
-		Vertex &v1 = t[VerticesOfTriangularEdge[j][1]];
-		if (v0.on && v1.on)
-		  {
-		    R2 P= ((R2) v0 + (R2) v1)*0.5;
-		    if ( nbv<nbvx) {
-		      vertices[nbv].r = P;
-		      vertices[nbv++].m = Metric(0.5,v0.m,0.5,v1.m);
-		      vertices[nbv].ReferenceNumber=0;
-		      vertices[nbv].DirOfSearch = NoDirOfSearch ;
-		    }
-		    NbSplitEdge++;
-		    if (verbosity>7)
-		      cout <<" Internal edge with two vertices on boundary" 
-			   << Number(v0) << " " << Number(v1) << " by " <<  endl;
-		  }
-	      }
-	  }
-    }
-  ReMakeTriangleContainingTheVertex();    
-  if (nbvold!=nbv) 
-    {
-      Int4  iv = nbvold;
-      Int4 NbSwap = 0;
-      Icoor2 dete[3];  
-      for (Int4 i=nbvold;i<nbv;i++) 
-	{// for all the new point
-	  Vertex & vi = vertices[i];
-	  vi.i = toI2(vi.r);
-      vi.r = toR2(vi.i);
-      //      if (!quadtree->ToClose(vi,seuil,hi,hj)) {
-      // a good new point 
-      vi.ReferenceNumber=0; 
-      vi.DirOfSearch =NoDirOfSearch;
-      //	cout << " Add " << Number(vi) << " " << vi 
-      // << "   " <<  Number(vi) << " <--> " << Number(vi) <<endl;
-      Triangle *tcvi = FindTriangleContening(vi.i,dete);
-      if (tcvi && !tcvi->link) {
-	cout << i <<  " PB insert point " << Number(vi) << vi << Number(vi) 
-	     << " tcvi = " << tcvi << " " << tcvi->link << endl;
-	cout << (*tcvi)[1] <<  (*tcvi)[2] << endl;
-	tcvi = FindTriangleContening(vi.i,dete);
-	cout << (*tcvi)[1] <<  (*tcvi)[2] << endl;
-#ifdef DRAWING1
-	inquire();
-	penthickness(5);
-	DrawMark(vi.r);
-	penthickness(1);
-	inquire();
-#endif
-	
-	MeshError(1001,this);
-      }
-      
-      
-      quadtree->Add(vi);
-#ifdef DRAWING1
-      DrawMark(vi.r);
-#endif
-      assert (tcvi && tcvi->det >= 0) ;// internal 
-      Add(vi,tcvi,dete);
-      NbSwap += vi.Optim(1);          
-      iv++;
-      //      }
-	}
-      if (verbosity>3) 
-	{
-	  cout << "    Nb Of New Point " << iv ;
-	  cout << " Nb swap = " << NbSwap << " to  split internal edges with border vertices" ;}
-      
-      nbv = iv;
-    }
-  if (NbSplitEdge >  nbv-nbvold)
-  {
-    cout << " Warning not enough vertices  to split all internal edges "  << endl
-	 << "    we lost " << NbSplitEdge - ( nbv-nbvold) << " Edges Sorry " << endl;
-      warning = 2;
-  }
-  if (verbosity>2)
-  cout << "SplitInternalEdgeWithBorderVertices: Number of splited edge " << NbSplitEdge << endl;
-  return  NbSplitEdge;
-}
-Int4 Triangles::InsertNewPoints(Int4 nbvold,Int4 & NbTSwap)
- {
-  Real8 seuil= 1.414/2 ;// for two close point 
-  Int4 i;
- // insertion part --- 
-
-  const Int4 nbvnew = nbv-nbvold;
-  if (verbosity>5) 
-    cout << "    Try to Insert the " <<nbvnew<< " new points " << endl;  
-  Int4 NbSwap=0;
-  Icoor2 dete[3];
-  
-  // construction d'un ordre aleatoire 
-  if (! nbvnew) 
-    return 0; 
-  if (nbvnew) {
-  const Int4 PrimeNumber= AGoodNumberPrimeWith(nbv)  ;
-  Int4 k3 = rand()%nbvnew ; 
-  for (Int4 is3=0; is3<nbvnew; is3++) {
-     Int4 j = nbvold +(k3 = (k3 + PrimeNumber)% nbvnew);
-     Int4 i = nbvold+is3; 
-    ordre[i]= vertices + j;
-    ordre[i]->ReferenceNumber=i;
-  }
-  // be carefull 
-  Int4  iv = nbvold;
-  for (i=nbvold;i<nbv;i++) 
-    {// for all the new point
-      Vertex & vi = *ordre[i];
-      vi.i = toI2(vi.r);
-      vi.r = toR2(vi.i);
-      Real4 hx,hy;
-      vi.m.Box(hx,hy);
-      Icoor1 hi=(Icoor1) (hx*coefIcoor),hj=(Icoor1) (hy*coefIcoor);
-      if (!quadtree->ToClose(vi,seuil,hi,hj)) 
-        {
-			// a good new point 
-			Vertex & vj = vertices[iv];
-			Int4 j = vj.ReferenceNumber; 
-			assert( &vj== ordre[j]);
-			if(i!=j)
-			  { //  for valgring 
-			    Exchange(vi,vj);
-			    Exchange(ordre[j],ordre[i]);
-			  }
-		      vj.ReferenceNumber=0; 
-			//	cout << " Add " << Number(vj) << " " << vj 
-			// << "   " <<  Number(vi) << " <--> " << Number(vj) <<endl;
-			Triangle *tcvj = FindTriangleContening(vj.i,dete);
-			if (tcvj && !tcvj->link) 
-			 {
-			  cerr << i <<  " PB insert point " << Number(vj) << vj << Number(vi) 
-			       << " tcvj = " << tcvj << " " << tcvj->link << endl;
-			  cerr << (*tcvj)[1] <<  (*tcvj)[2] << endl;
-			  tcvj = FindTriangleContening(vj.i,dete);
-			  cout << (*tcvj)[1] <<  (*tcvj)[2] << endl;
-#ifdef DRAWING1
-		 	  inquire();
-			  penthickness(5);
-			  DrawMark(vj.r);
-			  penthickness(1);
-			  
-			  inquire();
-#endif
-	  
-	          MeshError(1001,this);
-	         }
-	
-	
-	        quadtree->Add(vj);
-#ifdef DRAWING1
-	        DrawMark(vj.r);
-#endif
-			assert (tcvj && tcvj->det >= 0) ;// internal 
-			Add(vj,tcvj,dete);
-			NbSwap += vj.Optim(1);          
-			iv++;
-         }
-    } 
-  if (verbosity>3) {
-    cout << "    Nb Of New Point " << iv << " Nb Of To close Points " << nbv-iv ;
-    cout << " Nb swap = " << NbSwap << " after " ;}
-
-    nbv = iv;
-  }
-
-#ifdef DRAWING1
-  inquire();
-#endif
-
-  for (i=nbvold;i<nbv;i++) 
-    NbSwap += vertices[i].Optim(1);  
-   if (verbosity>3) 
-     cout << " NbSwap = " <<  NbSwap << endl;
-
-
-  NbTSwap +=  NbSwap ;
-#ifdef DEBUG
-{  
-  Int4 NbErr=0;
-  Int4 i;
-  for (i=0;i<nbt;i++)
-    if (triangles[i].link) 
-      {
-      double dd =Det(triangles[i][1].r-triangles[i][0].r,triangles[i][2].r-triangles[i][0].r);
-      if(dd <=0) 
-	{
-	  NbErr++;
-	  cerr << " det triangle i " << i << " = " << triangles[i].det ;
-	  cerr << " det triangle  " << dd ;
-	    cerr << " Les trois sommets " ;
-	    cerr << Number(triangles[i][0]) << " "  << Number(triangles[i][1]) << " " 
-		 << Number(triangles[i][2]) << endl;
-	    cerr << "I2     " <<triangles[i][0].r << triangles[i][1].r << triangles[i][2].r << endl;
-	    cerr << "R2     " << triangles[i][0].i << triangles[i][1].i << triangles[i][2].i << endl;
-	    cerr << "I2-R2 =" <<toR2(triangles[i][0].i)-triangles[i][0].r 
-		 << toR2(triangles[i][1].i)-triangles[i][1].r
-		 << toR2(triangles[i][2].i)-triangles[i][2].r << endl;
-	}
-      }
-  if(NbErr) { 
-#ifdef DRAWING
-    Int4 kkk=0;
-    //  UnMarkUnSwapTriangle();
-    //  for (i=0;i<nbv;i++)
-    //  kkk += vertices[i].Optim(0);
-    if(verbosity>3)
-    cout << "    Nb of swap louche " << kkk << endl;
-    if(kkk) {
-  for (i=0;i<nbt;i++)
-    if (triangles[i].link) 
-      {
-      double dd =Det(triangles[i][1].r-triangles[i][0].r,triangles[i][2].r-triangles[i][0].r);
-      if(dd <=0) 
-	{
-	  NbErr++;
-	  cerr << " xxxdet triangle i " << i << " = " << triangles[i].det ;
-	  cerr << " xxxdet triangle  " << dd ;
-	    cerr << " xxxLes trois sommets " ;
-	    cerr << Number(triangles[i][0]) << " "  << Number(triangles[i][1]) << " " 
-		 << Number(triangles[i][2]) << endl;
-	    cerr << triangles[i][0].r << triangles[i][1].r << triangles[i][2].r << endl;
-	    cerr << triangles[i][0].i << triangles[i][1].i << triangles[i][2].i << endl;
-	}
-      } }
-   inquire();
-#endif
-    //   MeshError(11);
-  }
-  
-}
-#endif
-  return nbv-nbvold;
- 
- }
-void  Triangles::NewPoints(Triangles & Bh,int KeepBackVertex)
-{ // Triangles::NewPoints
-  Int4 nbtold(nbt),nbvold(nbv);
-  if (verbosity>2) 
-    cout << "  -- Triangles::NewPoints ";
-  if (verbosity>3)cout <<  " nbv (in)  on Boundary  = " << nbv  <<endl;
-  Int4 i,k;
-  int j;
-  Int4 *first_np_or_next_t = new Int4[nbtx];
-  Int4 NbTSwap =0;
-//    insert old point
-    nbtold = nbt;
-    
-  if (KeepBackVertex && (&Bh != this) && (nbv+Bh.nbv< nbvx)) 
-   {
-  //   Bh.SetVertexFieldOn();
-     for (i=0;i<Bh.nbv;i++)
-      { 
-        Vertex & bv = Bh[i];
-        if (!bv.on) {
-          vertices[nbv].r = bv.r;
-          vertices[nbv++].m = bv.m;}
-      }
-     int nbv1=nbv;
-     Bh.ReMakeTriangleContainingTheVertex();     
-     InsertNewPoints(nbvold,NbTSwap)   ;            
-     if (verbosity>2)
-        cout <<  "      (Nb of Points from background mesh  = " 
-             << nbv-nbvold  << " / " << nbv1-nbvold << ")" << endl;
-   }  
-  else 
-    Bh.ReMakeTriangleContainingTheVertex();     
-
-  Triangle *t;
-  // generation of the list of next Triangle 
-  // at 1 time we test all the triangles
-  Int4 Headt =0,next_t;
-  for(i=0;i<nbt;i++)
-    first_np_or_next_t[i]=-(i+1);
-  // end list i >= nbt 
-  // the list of test triangle is 
-  // the next traingle on i is  -first_np_or_next_t[i]
-  int iter=0;
-  // Big loop 
-  do {
-    iter++;
-    nbtold = nbt;
-    nbvold = nbv;
-#ifdef DRAWING1  
-  inquire();
-#endif  
-
-  // default size of  IntersectionTriangle
-
-  i=Headt;
-  next_t=-first_np_or_next_t[i];
-  for(t=&triangles[i];i<nbt;t=&triangles[i=next_t],next_t=-first_np_or_next_t[i]) 
-    { // for each triangle  t
-      // we can change first_np_or_next_t[i]
-      //      cout << " Do the triangle " << i << " Next_t=" << next_t << endl;
-      assert(i>=0 && i < nbt );
-      first_np_or_next_t[i] = iter; 
-      for(j=0;j<3;j++)
-	{ // for each edge 
-	  TriangleAdjacent tj(t,j);
-	  Vertex & vA = * tj.EdgeVertex(0);
-	  Vertex & vB = * tj.EdgeVertex(1);
-	  
-	  if (!t->link) continue;// boundary
-	  if (t->det <0) continue;
-	  if (t->Locked(j)) continue;
-
-	  TriangleAdjacent tadjj = t->Adj(j);	  
-	  Triangle * ta= tadjj;
-
-	  if (ta->det <0) continue;	  
-	  
-	  R2 A = vA;
-	  R2 B = vB;
-	  
-	  k=Number(ta);
-	  
-	  if(first_np_or_next_t[k]==iter)  // this edge is done before 
-	    continue; // next edge of the triangle 
-	  
-	  //const Int4 NbvOld = nbv;
-	  lIntTria.SplitEdge(Bh,A,B);
-	  lIntTria.NewPoints(vertices,nbv,nbvx);
-	} // end loop for each edge 
-      
-    }// for triangle   
-  
-#ifdef DRAWING1
-  cout << "  -------------------------------------------- " << endl;
-  inquire();
-  reffecran();
-  Draw();
-  penthickness(2);
-#endif
-
-   if (!InsertNewPoints(nbvold,NbTSwap)) 
-     break;
-     
-   for (i=nbtold;i<nbt;i++)
-     first_np_or_next_t[i]=iter;
-
-  Headt = nbt; // empty list 
-  for (i=nbvold;i<nbv;i++) 
-    { // for all the triangle contening the vertex i
-       Vertex * s  = vertices + i;
-       TriangleAdjacent ta(s->t, EdgesVertexTriangle[s->vint][1]);
-       Triangle * tbegin= (Triangle*) ta;
-       Int4 kt;
-       do { 
-	 kt = Number((Triangle*) ta);
-	 if (first_np_or_next_t[kt]>0) 
-	   first_np_or_next_t[kt]=-Headt,Headt=kt;
-	 assert( ta.EdgeVertex(0) == s);
-	 ta = Next(Adj(ta));
-       } while ( (tbegin != (Triangle*) ta)); 
-    }   
-   
-  } while (nbv!=nbvold);
-  
-  delete []  first_np_or_next_t;
-
-  Int4 NbSwapf =0,NbSwp;
-  
-  // bofbof 
-  
-  
-  NbSwp = NbSwapf;
-  for (i=0;i<nbv;i++)
-    NbSwapf += vertices[i].Optim(0);
-  /*
-  for (i=0;i<nbv;i++)
-    NbSwapf += vertices[i].Optim(0);
-  for (i=0;i<nbv;i++)
-    NbSwapf += vertices[i].Optim(0);
-  for (i=0;i<nbv;i++)
-    NbSwapf += vertices[i].Optim(0);
-  for (i=0;i<nbv;i++)
-    NbSwapf += vertices[i].Optim(0);
-    */
-  NbTSwap +=  NbSwapf ;
-  if (verbosity>3) cout << "   " ;
-  if (verbosity>2) 
-     cout << " Nb Of Vertices =" << nbv << " Nb of triangles = " << nbt-NbOutT 
-	  << " NbSwap final = " << NbSwapf << " Nb Total Of Swap = " << NbTSwap << endl;
-
-
-}
-
-void  Triangles::NewPointsOld(Triangles & Bh)
-{ // Triangles::NewPointsOld
-  Real8 seuil= 0.7 ;// for two neart point 
-  if (verbosity>1) 
-    cout << " begin :  Triangles::NewPointsOld " << endl;
-  Int4 i,k;
-  int j;
-  Int4 BeginNewPoint[3];
-  Int4 EndNewPoint[3];
-#ifdef TRACETRIANGLE
-  Int4 trace=0;
-#endif
-  int step[3];
-  Int4 *first_np_or_next_t = new Int4[nbtx];
-  Int4 ColorEdge[3];
-  Int4 color=-1;
-  Triangle *t;
-  // generation of the list of next Triangle 
-  // at 1 time we test all the triangles
-  Int4 Headt =0,next_t;
-  for(i=0;i<nbt;i++)
-    first_np_or_next_t[i]=-(i+1);
-  // end list i >= nbt 
-  // the list of test triangle is 
-  // the next Triangle on i is  -first_np_or_next_t[i]
-  Int4 nbtold,nbvold;
-
-  // Big loop 
-  do {
-    nbtold = nbt;
-    nbvold = nbv;
-#ifdef DRAWING1  
-  inquire();
-#endif  
-
-  // default size of  IntersectionTriangle
-
-  i=Headt;
-  next_t=-first_np_or_next_t[i];
-  for(t=&triangles[i];i<nbt;t=&triangles[i=next_t],next_t=-first_np_or_next_t[i]) 
-    { // for each triangle  t
-      // we can change first_np_or_next_t[i]
-#ifdef TRACETRIANGLE
-      trace =  TRACETRIANGLE <0 ? 1 : i == TRACETRIANGLE;
-#endif
-      //      cout << " Do the triangle " << i << " Next_t=" << next_t << endl;
-      assert(i>=0 && i < nbt );
-      first_np_or_next_t[i] = nbv; // to save the fist new point of triangle
-      for(j=0;j<3;j++)
-	{ // for each edge 
-	  TriangleAdjacent tj(t,j);
-	  // color++;// the color is 3i+j
-          color = 3*i + j ;;
-	  ColorEdge[j]=color;
-	  BeginNewPoint[j]=nbv;
-	  EndNewPoint[j]=nbv-1;
-	  step[j]=1;// right sens 
-	  Vertex & vA = * tj.EdgeVertex(0);
-	  Vertex & vB = * tj.EdgeVertex(1);
-	  
-#ifdef TRACETRIANGLE
-	  if(trace) {
-	    cout << " i " << Number(vA) <<" j "<<  Number(vB) 
-		 << " "  << t->Locked(j) ;
-	  }
-#endif
-	  if (!t->link) continue;// boundary
-	  if (t->det <0) continue;
-	  if (t->Locked(j)) continue;
-
-	  TriangleAdjacent tadjj = t->Adj(j);	  
-	  Triangle * ta= tadjj;
-
-	  if (ta->det <0) continue;	  
-	  
-	  R2 A = vA;
-	  R2 B = vB;
-	  
-	  k=Number(ta);
-	  // the 2 opposite vertices 
-	  const Vertex & vC1  =  *tj.OppositeVertex();
-	  const Vertex & vC2 = *tadjj.OppositeVertex();
-	  
-#ifdef TRACETRIANGLE
-	  trace = trace || k == TRACETRIANGLE;
-	  if(trace) {
-	    cout << "Test Arete " << i << " AB = " << A << B 
-		 << "i "  <<Number(vA)<< "j" <<Number(vB); 
-	    cout << " link" <<(int)t->link << " ta=" << Number( ta) 
-		 << " det " <<ta->det ;
-	    cout << " hA = " <<vA.m.h << " hB = " <<vB.m.h ;
-	    cout << " loc " << ta->Locked(j) << endl;
-	  }
-#endif
-	  
-	  if(first_np_or_next_t[k]>0) { // this edge is done before 
-	    // find the color of the edge and begin , end of newpoint
-	     int kk = t->NuEdgeTriangleAdj(j);
-	    assert ((*t)(VerticesOfTriangularEdge[j][0]) == (*ta)(VerticesOfTriangularEdge[kk][1]));
-	    assert ((*t)(VerticesOfTriangularEdge[j][1]) == (*ta)(VerticesOfTriangularEdge[kk][0]));
-	     Int4 kolor =3*k + kk;
-	    ColorEdge[j]=kolor;
-	     Int4 kkk= 1;
-	    step[j]=-1;// other sens 
-	    BeginNewPoint[j]=0;
-	    EndNewPoint[j]=-1; // empty list          
-	    for (Int4 iv=first_np_or_next_t[k];iv<nbv;iv++) 
-	      if (vertices[iv].color > kolor) 
-		break; // the color is passed            
-	      else if (vertices[iv].color == kolor) {
-		EndNewPoint[j]=iv; 
-		if (kkk) // one time test
-		  kkk=0,BeginNewPoint[j]=iv;}
-	    continue; // next edge of the triangle 
-	  } // end  if( k < i) 
-       
-	  
-#ifdef DRAWING1
-	  penthickness(2); Move(A);Line(B);   penthickness(1);
-#endif
-	  const Int4 NbvOld = nbv;
-	  lIntTria.SplitEdge(Bh,A,B);
-	  // Int4 NbvNp =
-	  lIntTria.NewPoints(vertices,nbv,nbvx);
-	  Int4 nbvNew=nbv;
-	  nbv = NbvOld;
-	  for (Int4 iv=NbvOld;iv<nbvNew;iv++) {
-	    vertices[nbv].color = color;
-	    vertices[nbv].ReferenceNumber=nbv;// circular link
-	    R2 C =  vertices[iv].r;
-	    vertices[nbv].r =  C;
-	    vertices[nbv].m =  vertices[iv].m ;
-	    // test if the new point is not to close to the 2 opposite vertex
-	    R2 CC1 = C-vC1 , CC2 = C-vC2;
-	    if (   (  (vC1.m(CC1) + vertices[nbv].m(CC1)) >  seuil)
-		&& (  (vC2.m(CC2) + vertices[nbv].m(CC2)) >  seuil) )
-	      nbv++;
-	  }
-	    
-	  EndNewPoint[j] = nbv-1;
-	} // end loop for each edge 
-
-#ifdef TRACETRIANGLE
-      if(trace) {
-	// verification des point cree 
-	cout << "\n ------------ " << t->link << " " << t->det 
-	     << " b " << BeginNewPoint[0] << " " << BeginNewPoint[1]
-	     << " " << BeginNewPoint[2] << " " 
-	     << " e " << EndNewPoint[0] << " " << EndNewPoint[1] 
-	     << " " << EndNewPoint[2] << " " 
-	     << " s " << step[0] << " " << step[1] << " " << step[2] << " " 
-	     <<  endl;
-      }
-#endif
-
-      if (!t->link) continue;// boundary
-      if (t->det<=0) continue;// outside 
-      //      continue;
-      for(int j0=0;j0<3;j0++)
-	for (Int4 i0= BeginNewPoint[j0]; i0 <= EndNewPoint[j0];i0++)
-	  {
-	   // find the neart  point one the opposite edge 
-           // to compute i1
-	    Vertex & vi0 = vertices[i0];
-	    int kstack = 0;
-	    Int4 stack[10];
-	 //   Int4 savRef[10];
-	    int j1 = j0; 
-	    while (j0 != (j1 = NextEdge[j1])) {//loop on the 2 other edge
-	      // computation of the intersection of edge j1 and DOrto
-	      // take the good sens 
-	      
-	      if (BeginNewPoint[j1]> EndNewPoint[j1])
-	        continue; // 
-              else if (EndNewPoint[j1] - BeginNewPoint[j1] <1) {
-                for (Int4 ii1= BeginNewPoint[j1];ii1<=EndNewPoint[j1];ii1++)
-                    stack[kstack++] = ii1;
-                 continue;}
-	      
-                
-	      int k0,k1;
-	      if (step[j1]<0) k0=1,k1=0; // reverse
-	      else k0=0,k1=1; 
-	      R2 V10 = (R2)(*t)[VerticesOfTriangularEdge[j1][k0]];
-	      R2 V11 = (R2)(*t)[VerticesOfTriangularEdge[j1][k1]];
-	      R2 D = V11-V10;
-	      Real8 c0 =  vi0.m(D,(R2) vi0);
-
-	      Real8 c10 =  vi0.m(D,V10);
-	      Real8 c11 =  vi0.m(D,V11);
-
-	      Real8 s;
-	      //cout << " --i0 = " << i0  << D  << V10 << V11 << endl ;
-	      //cout << "   c10 " <<  c10 << " c0 " << c0 << " c11 " << c11 << endl;
-	      if (( c10 < c0 ) && (c0 < c11)) 
-		s = (c11-c0)/(c11-c10);
-	      else if  (( c11 < c0 ) && (c0 < c10)) 
-		s = (c11-c0) /(c11-c10);
-	      else break;
-	      R2 VP = V10*s + V11*(1-s);
-	      int sss = (c11-c10) >0 ? 1 : -1;
-#ifdef DRAWING1
-	      penthickness(2);
-	      Move((R2) vi0);
-	      Line(VP);
-	      penthickness(1);
-#endif
-	      // find the 2 point by dichotomie
-	      //cout << "   t =" << Number(t) << " c0 " << c0  ;
-	      Int4 ii0 =  BeginNewPoint[j1];
-	      Int4 ii1 =  EndNewPoint[j1];	     
-              Real8 ciii=-1,cii0=-1,cii1=-1  ;
- 	      if ( sss * ((cii0=vi0.m(D,(R2) vertices[ii0]))- c0) >0 )  
-		stack[kstack++] = ii0;//cout << " add+0 " << ii0;
- 	      else if ( sss * ((cii1=  vi0.m(D ,(R2) vertices[ii1]))- c0) < 0 )  
-		stack[kstack++] = ii1;//cout << " add+1 " << ii1;
-              else {
-	        while ((ii1-ii0)> 1) {
-		  Int4 iii = (ii0+ii1)/2;
-	          ciii = vi0.m( D ,(R2) vertices[iii]);
-		  //cout << " (iii = " << iii << " " <<  ciii << ") ";
-		  if ( sss * (ciii - c0) <0 )  ii0 = iii;
-		  else ii1 = iii;}	        	      
-	        stack[kstack++] = ii0;// cout << " add0 " << ii0;
-	        if (ii1 != ii0)  stack[kstack++] = ii1;//cout << " add1 " << ii1;
-              }
-#ifdef DEBUG2
-	      cout << "ii1 = " << ii1 
-		   << " ii0 = " << ii0 << endl;
-              cout << "   cccc = " << cii0 << " " << ciii 
-		   << " " << cii1 << " sss=" << sss << endl;
-#endif
-	      if (kstack >5) // bug ?
-	    	cout << "NewPoints: bug????? " << kstack << " stack  " << stack[kstack]<< endl;
-	    }
-	    
-	    stack[kstack++] = -1; // to stop
-	    Int4 i1;
-	    kstack =0; 
-	    while( (i1=stack[kstack++]) >= 0) 
-	      { // the two parameter is i0 and i1 
-	      assert(i1 < nbv && i1 >= 0);
-	      assert(i0 < nbv && i0 >= 0);
-	      assert(i1 != i0);
-	      R2 v01 = (R2) vertices[i1]- (R2) vertices[i0];
-	      Real8 d01 = (vertices[i0].m(v01) + vertices[i1].m(v01));
-		
-
-#ifdef DRAWING1
-	      Move(vertices[i0].r);
-	      Line(vertices[i1].r);
-#endif
-#ifdef TRACETRIANGLE
-	      if(trace) {
-		cout << "\n test j" << j <<" "  << i0 
-		     << " " << i1 << " d01=" << d01 <<endl;}
-#endif
-	      assert (i0 >= nbvold);
-	      assert (i1 >= nbvold);
-	      assert(i0 != i1);
-	      if (d01 == 0) 
-		break; 
-	      if ( d01 < seuil)
-              {
-		if (i1<nbvold) {
-		  // remove all the points i0;
-		   Int4 ip,ipp;
-		  for  (ip=i0;i0 != (ipp = vertices[ip].ReferenceNumber);ip=ipp)
-		    vertices[ip].ReferenceNumber = -1;// mark remove
-		  vertices[ip].ReferenceNumber = -1;// mark remove
-		}
-	      else {
-		// remove on of two points
-		 Int4 ip0, ip1, ipp0,ipp1;
-		 int kk0=1,kk1=1;
-		// count the number of common points to compute weight w0,w1
-		for  (ip0=i0;i0 != (ipp0 = vertices[ip0].ReferenceNumber);ip0=ipp0) kk0++;
-		for  (ip1=i1;i1 != (ipp1 = vertices[ip1].ReferenceNumber);ip1=ipp1) kk1++;
-		
-		 Real8 w0 = ((Real8) kk0)/(kk0+kk1);
-		 Real8 w1 = ((Real8) kk1)/(kk0+kk1);
-
-		// make a circular link
-		Exchange(vertices[i0].ReferenceNumber,vertices[i1].ReferenceNumber);
-		// the new coordinate 
-		R2 C //= vertices[i0] ;
-		  =  vertices[i0].r *w0 + vertices[i1].r* w1;
-
-#ifdef TRACETRIANGLE
-		if(trace) {
-		  cout << "\n ref = "<< vertices[i0].ref << " " <<vertices[i1].ref <<endl;
-		}
-#endif    
-#ifdef DRAWING1  
-		Move(vertices[i0].r);
-		Line(vertices[i1].r);
-		DrawMark(C);
-#endif		
-		// update the new point points of the list 
-		for  (ip0=i0;i0 != (ipp0 = vertices[ip0].ReferenceNumber);ip0=ipp0)
-		  vertices[ip0].r = C;	      
-		vertices[ip0].r = C;
-	      }
-              }
-	    }
-	} // for (i0= ....
-  }// for triangle   
-
-#ifdef DRAWING1
-  cout << " -------------------------------------------- " << endl;
-  inquire();
-  reffecran();
-  Draw();
-  penthickness(2);
-#endif
-  
-  // remove of all the double points
-
-  Int4 ip,ipp,kkk=nbvold;
-  for (i=nbvold;i<nbv;i++) 
-     if (vertices[i].ReferenceNumber>=0) {// good points
-    //  cout <<" i = " << i ;
-      for  (ip=i;i != (ipp = vertices[ip].ReferenceNumber);ip=ipp)
-         vertices[ip].ReferenceNumber = -1;// mark remove
-      vertices[ip].ReferenceNumber = -1;// mark remove
-      // cout << i << " ---> " << kkk << endl;        
-      vertices[kkk] = vertices[i];
-      vertices[kkk].i = toI2(vertices[kkk].r);
-#ifdef DRAWING1
-      DrawMark(vertices[kkk]);
-#endif
-      vertices[kkk++].ReferenceNumber = 0;
-      
-     } 
-#ifdef DRAWING1  
-  penthickness(1);
-#endif
-    
- // insertion part --- 
-
-  const Int4 nbvnew = kkk-nbvold;
-
-  cout << "    Remove " << nbv - kkk  << " to close  vertex " ;
-  cout << " and   Insert the " <<nbvnew<< " new points " << endl;  
-  nbv = kkk;
-  Int4 NbSwap=0;
-  Icoor2 dete[3];
-  
-  // construction d'un ordre aleatoire 
-  if (! nbvnew) 
-    break; 
-  if (nbvnew) {
-  const Int4 PrimeNumber= AGoodNumberPrimeWith(nbv)  ;
-  Int4 k3 = rand()%nbvnew ; 
-  for (Int4 is3=0; is3<nbvnew; is3++) 
-    ordre[nbvold+is3]= &vertices[nbvold +(k3 = (k3 + PrimeNumber)% nbvnew)];
-
-  for (i=nbvold;i<nbv;i++) 
-    { Vertex * vi = ordre[i];
-      Triangle *tcvi = FindTriangleContening(vi->i,dete);
-      //     Vertex * nv =  quadtree->NearestVertex(vi->i.x,vi->i.y);
-      //      cout << " Neart Vertex of "  << Number(vi)<< vi->i << " is " 
-      //   << Number(nv) << nv->i  << endl;
-      // Int4  kt = Number(tcvi);
-      // 
-      
-      quadtree->Add(*vi); //
-#ifdef DRAWING1
-      DrawMark(vi->r);
-#endif
-      assert (tcvi->det >= 0) ;// internal 
-      Add(*vi,tcvi,dete),NbSwap += vi->Optim(1);          
-    }  
-  }
-  cout << " Nb swap = " << NbSwap << " after " ;
-#ifdef DRAWING1
-  inquire();
-#endif
-
-  for (i=nbvold;i<nbv;i++) 
-    NbSwap += vertices[i].Optim(1);  
-  cout << NbSwap << endl;
-
-  for (i=nbtold;i<nbt;i++)
-     first_np_or_next_t[i]=1;
-
-  Headt = nbt; // empty list 
-  for (i=nbvold;i<nbv;i++) 
-    { // for all the triangle contening the vertex i
-       Vertex * s  = vertices + i;
-       TriangleAdjacent ta(s->t, EdgesVertexTriangle[s->vint][1]);
-       Triangle * tbegin= (Triangle*) ta;
-       Int4 kt;
-       do { 
-	 kt = Number((Triangle*) ta);
-	 if (first_np_or_next_t[kt]>0) 
-	   first_np_or_next_t[kt]=-Headt,Headt=kt;
-	 assert( ta.EdgeVertex(0) == s);
-	 ta = Next(Adj(ta));
-       } while ( (tbegin != (Triangle*) ta)); 
-    }
-
-
-  } while (nbv!=nbvold);
-  delete []  first_np_or_next_t;
-#ifdef  DEBUG
-  int nberr=0;
-  for (int it=0;it<nbt;it++)
-    if(triangles[it].det==0) 
-      if(nberr++<10) cerr << "Bug Triangle nul" << it << triangles[it] << endl;
-  if(nberr) MeshError(992,this);
-#endif
-  cout << " end :  Triangles::NewPoints old  nbv=" << nbv << endl;
-
-}
-
-void Triangles::Insert() 
-{
-  if (verbosity>2) cout << "  -- Insert initial " << nbv << " vertices " << endl ;
-  Triangles * OldCurrentTh =CurrentTh;
-
-  CurrentTh=this;
-  double time0=CPUtime(),time1,time2,time3;
-  SetIntCoor();
-  Int4 i;
-  for (i=0;i<nbv;i++) 
-    ordre[i]= &vertices[i] ;
-
-  // construction d'un ordre aleatoire 
-  const Int4 PrimeNumber= AGoodNumberPrimeWith(nbv) ;
-  Int4 k3 = rand()%nbv ; 
-  for (int is3=0; is3<nbv; is3++) 
-    ordre[is3]= &vertices[k3 = (k3 + PrimeNumber)% nbv];
-
-
-
-
-  for (i=2 ; det( ordre[0]->i, ordre[1]->i, ordre[i]->i ) == 0;) 
-    if  ( ++i >= nbv) {
-      cerr << " All the vertices are aline " << endl;
-      MeshError(998,this); }
-          
-  // echange i et 2 dans ordre afin 
-  // que les 3 premiers ne soit pas aligne
-  Exchange( ordre[2], ordre[i]);
-  
-  // on ajoute un point a l'infini pour construire le maillage
-  // afin d'avoir une definition simple des aretes frontieres
-  nbt = 2;
-  
-  
-  // on construit un maillage trivale forme
-  // d'une arete et de 2 triangles
-  // construit avec le 2 aretes orientes et 
-  Vertex *  v0=ordre[0], *v1=ordre[1];
-  
-  triangles[0](0) = 0; // sommet pour infini 
-  triangles[0](1) = v0;
-  triangles[0](2) = v1;
-  
-  triangles[1](0) = 0;// sommet pour infini 
-  triangles[1](2) = v0;
-  triangles[1](1) = v1;
-  const int e0 = OppositeEdge[0];
-  const int e1 = NextEdge[e0];
-  const int e2 = PreviousEdge[e0];
-  triangles[0].SetAdj2(e0, &triangles[1] ,e0);
-  triangles[0].SetAdj2(e1, &triangles[1] ,e2);
-  triangles[0].SetAdj2(e2, &triangles[1] ,e1);
-  
-  triangles[0].det = -1;  // faux triangles
-  triangles[1].det = -1;  // faux triangles
-  
-  triangles[0].SetTriangleContainingTheVertex();
-  triangles[1].SetTriangleContainingTheVertex();
-  
-  triangles[0].link=&triangles[1];
-  triangles[1].link=&triangles[0];
-  
-#ifdef DEBUG 
-  triangles[0].check();
-  triangles[1].check();
-#endif  
-  //  nbtf = 2;
-   if (  !quadtree )  quadtree = new QuadTree(this,0);
-   quadtree->Add(*v0);
-   quadtree->Add(*v1);
-   
-  // on ajoute les sommets un � un 
-  Int4 NbSwap=0;
-
-  time1=CPUtime();
-
-    if (verbosity>3) cout << "  -- Begin of insertion process " << endl;
-
-  for (Int4 icount=2; icount<nbv; icount++) {
-    Vertex *vi  = ordre[icount];
-    //    cout << " Insert " << Number(vi) << endl;
-    Icoor2 dete[3];
-    Triangle *tcvi = FindTriangleContening(vi->i,dete);
-    quadtree->Add(*vi); 
-    Add(*vi,tcvi,dete);
-    NbSwap += vi->Optim(1,0);
-#ifdef DRAWING1
-    inquire();
-#endif
-    
-  }// fin de boucle en icount
-  time2=CPUtime();
-  if (verbosity>3) 
-    cout << "    NbSwap of insertion " <<    NbSwap 
-	 << " NbSwap/Nbv " <<  (float) NbSwap / (float) nbv 
-	 << " NbUnSwap " << NbUnSwap << " Nb UnSwap/Nbv " 
-	 << (float)NbUnSwap /(float) nbv 
-	 <<endl;
-  NbUnSwap = 0;
-  // construction d'un ordre aleatoire 
-  //  const int PrimeNumber= (nbv % 999983) ? 1000003: 999983 ;
-#ifdef NBLOOPOPTIM
-
-  k3 = rand()%nbv ; 
-  for (int is4=0; is4<nbv; is4++) 
-    ordre[is4]= &vertices[k3 = (k3 + PrimeNumber)% nbv];
-  
-  double timeloop = time2 ;
-  for(int Nbloop=0;Nbloop<NBLOOPOPTIM;Nbloop++) 
-    {
-      double time000 = timeloop;
-      Int4  NbSwap = 0;
-      for (int is1=0; is1<nbv; is1++) 
-	NbSwap += ordre[is1]->Optim(0,0);
-      timeloop = CPUtime();
-  if (verbosity>3) 
-      cout << "    Optim Loop "<<Nbloop<<" NbSwap: " <<  NbSwap 
-	   << " NbSwap/Nbv " 	   <<  (float) NbSwap / (float) nbv 
-	   << " CPU=" << timeloop - time000 << "  s, " 
-	   << " NbUnSwap/Nbv " << (float)NbUnSwap /(float) nbv  
-	   <<  endl;
-      NbUnSwap = 0;
-      if(!NbSwap) break;
-    }
-  ReMakeTriangleContainingTheVertex(); 
-  // because we break the TriangleContainingTheVertex
-#endif
-#ifdef  DEBUG
-  int nberr=0;
-  for (int it=0;it<nbt;it++)
-    if(triangles[it].det==0) 
-      if(nberr++<10) cerr << "Bug Triangle nul" << it << triangles[it] << endl;
-  if(nberr) MeshError(991,this);
-#endif
-  time3=CPUtime();
-  if (verbosity>4) 
-  cout << "    init " << time1 - time0 << " initialisation,  " 
-       << time2 - time1 << "s, insert point  " 
-       << time3 -time2 << "s, optim " << endl
-       << "     Init Total Cpu Time = " << time3 - time0 << "s " << endl;
-  
-#ifdef DRAWING1
-  inquire();
-#endif  
-  CurrentTh=OldCurrentTh;
-}
-
-
-void Triangles::ForceBoundary()
-{
-  if (verbosity > 2)
-    cout << "  -- ForceBoundary  nb of edge " << nbe << endl;
-  int k=0;
-  Int4  nbfe=0,nbswp=0,Nbswap=0;
-  for (Int4 t = 0; t < nbt; t++)  
-    if (!triangles[t].det)
-      k++,cerr << " det T" << t << " = " << 0 << endl;
-  if (k!=0) {
-    cerr << " ther is  " << k << "  triangles of mes = 0 " << endl;
-    MeshError(11,this);}
-  
-  TriangleAdjacent ta(0,0);
-  for (Int4 i = 0; i < nbe; i++) 
-    {
-      nbswp =  ForceEdge(edges[i][0],edges[i][1],ta);
-      
-      if ( nbswp < 0) 	k++;
-      else Nbswap += nbswp;
-      if (nbswp) nbfe++;
-      if ( nbswp < 0 && k < 5)
-      {
-         cerr << " Missing  Edge " << i << " v0 =  " << Number(edges[i][0]) << edges[i][0].r
-      	   <<" v1= " << Number(edges[i][1]) << edges[i][1].r << " " << edges[i].on->Cracked() << "  " << (Triangle *) ta ;
-	  if(ta.t)
-	  {
-	      Vertex *aa = ta.EdgeVertex(0), *bb = ta.EdgeVertex(1);  
-	      cerr << " crossing with  [" << Number(aa) << ", " << Number(bb) << "]\n";
-	  }
-	  else cerr << endl;
-	   
-      }
-      if ( nbswp >=0 && edges[i].on->Cracked())
-	  ta.SetCracked();
-    }
-		  
-  
-  if (k!=0) {
-    cerr << " they is " << k << " lost edges " << endl;
-    cerr << " The boundary is crossing may be!" << endl;
-    MeshError(10,this);
-  }
-  for (Int4 j=0;j<nbv;j++)
-    Nbswap +=  vertices[j].Optim(1,0);
-  if (verbosity > 3)
-    cout << "     Nb of inforced edge = " << nbfe << " Nb of Swap " << Nbswap << endl;
-
-}
-
-void Triangles::FindSubDomain(int OutSide=0)
-{
-    //#define DRAWING1
-    
-    if (verbosity >2)
-    {
-	if (OutSide)
-	    cout << "  -- Find all external sub-domain ";	
-	else
-	    cout << "  -- Find all internal sub-domain ";
-      if(verbosity>99)
-	{
-	  
-	  for(int i=0;i<nbt;++i)
-	      cout << i<< " " << triangles[i] << endl;
-	}
-	
-    }
-    // if (verbosity > 4) cout << " OutSide=" << OutSide << endl;
-    short * HeapArete = new short[nbt];
-    Triangle  **  HeapTriangle = new Triangle*  [nbt];
-    Triangle *t,*t1;
-    Int4 k,it;
-    
-    for (Int4 itt=0;itt<nbt;itt++) 
-	triangles[itt].link=0; // par defaut pas de couleur
-#ifdef DRAWING1
-    reffecran();
-#endif
-    
-    Int4  NbSubDomTot =0;
-    for ( it=0;it<nbt;it++)  { 
-	if ( ! triangles[it].link  ) {
-	    t = triangles + it;
-	    NbSubDomTot++;; // new composante connexe
-	    Int4 i = 0; // niveau de la pile 
-	    t->link = t ; // sd forme d'un triangle cicular link
-#ifdef DRAWING1
-	    t->Draw(NbSubDomTot-1);
-#endif
-	    
-	    
-	    HeapTriangle[i] =t ; 
-	    HeapArete[i] = 3;
-	    
-	    while (i >= 0) // boucle sur la pile
-	    { while ( HeapArete[i]--) // boucle sur les 3 aretes 
-	    { 
-		int na =  HeapArete[i];
-		Triangle * tc =  HeapTriangle[i]; // triangle courant
-		if( ! tc->Locked(na)) // arete non frontiere
-		{
-		    Triangle * ta = tc->TriangleAdj(na) ; // n� triangle adjacent
-		    if (ta->link == 0 ) // non deja chainer => on enpile
-		    { 
-			i++;
-#ifdef DRAWING1
-			ta->Draw(NbSubDomTot-1);
-#endif
-			ta->link = t->link ;  // on chaine les triangles
-			t->link = ta ;  // d'un meme sous domaine          
-			HeapArete[i] = 3; // pour les 3 triangles adjacents
-			HeapTriangle[i] = ta;
-		    }}
-	    } // deplie fin de boucle sur les 3 adjacences
-		i--;
-	    }          
-	}      
-    }
-    
-    // supression de tous les sous domaine infini <=>  contient le sommet NULL
-    it =0;
-    NbOutT = 0;
-    while (it<nbt) {
-	if (triangles[it].link) 
-	{ 
-	    if (!( triangles[it](0) &&  triangles[it](1) &&  triangles[it](2) )) 
-	    {
-		// infini triangle 
-		NbSubDomTot --;
-		//  cout << " triangle infini " << it << triangles[it] << endl;
-		t=&triangles[it];
-		NbOutT--;  // on fait un coup de trop. 
-		while  (t){ // cout << Number(t) << " " << endl;
-		    NbOutT++;
-		    t1=t;
-		    t=t->link;
-		    t1->link=0;}//while (t)
-	    }
-	}   
-	it++;} // end while (it<nbt)
-    if (nbt == NbOutT ||  !NbSubDomTot) 
-    {
-	cout << "\n error : " <<  NbOutT << " " << NbSubDomTot <<" " << nbt << endl;
-	cerr << "Error: The boundary is not close => All triangles are outside " << endl;
-	MeshError(888,this);
-    }
-    
-    delete [] HeapArete;
-    delete [] HeapTriangle;
-    
-    
-    if (OutSide|| !Gh.subdomains || !Gh.NbSubDomains ) 
-    { // No geom sub domain
-	Int4 i;
-	if (subdomains) delete [] subdomains;
-	subdomains = new SubDomain[ NbSubDomTot];
-	NbSubDomains=  NbSubDomTot;
-	for ( i=0;i<NbSubDomains;i++) {
-	    subdomains[i].head=NULL;
-	    subdomains[i].ref=i+1;
-	}
-	Int4 * mark = new Int4[nbt];
-	for (it=0;it<nbt;it++)
-	    mark[it]=triangles[it].link ? -1 : -2;
-	
-	it =0;
-	k = 0;
-	while (it<nbt) {
-	    if (mark[it] == -1) {
-		t1 = & triangles[it];
-		t = t1->link;
-		mark[it]=k;
-#ifdef DRAWING1  
-		t1->Draw(k);
-#endif
-		subdomains[k].head = t1;
-		// cout << " New -- " << Number(t1) << " " << it << endl;
-		do {// cout << " k " << k << " " << Number(t) << endl;
-		    mark[Number(t)]=k;
-#ifdef DRAWING1  
-		    t->Draw(k);
-#endif
-		    t=t->link;
-		} while (t!=t1);
-#ifdef DRAWING1  
-		t1->Draw(k);
-#endif
-		mark[it]=k++;}
-	    //    else if(mark[it] == -2 ) triangles[it].Draw(999);
-	    it++;} // end white (it<nbt)
-	assert(k== NbSubDomains);
-	if(OutSide) 
-	{
-	    //  to remove all the sub domain by parity adjacents
-	    //  because in this case we have only the true boundary edge
-	    // so teh boundary is manifold
-	    Int4 nbk = NbSubDomains;
-	    while (nbk)
-		for (it=0;it<nbt && nbk ;it++)
-		    for (int na=0;na<3 && nbk ;na++)
-		    {
-			Triangle *ta = triangles[it].TriangleAdj(na);
-			Int4 kl = ta ? mark[Number(ta)] : -2;
-			Int4 kr = mark[it];
-			if(kr !=kl) {
-			    //cout << kl << " " << kr << " rl "  << subdomains[kl].ref
-			    // << " rr " << subdomains[kr].ref ;
-			    if (kl >=0 && subdomains[kl].ref <0 && kr >=0 && subdomains[kr].ref>=0)
-				nbk--,subdomains[kr].ref=subdomains[kl].ref-1;
-			    if (kr >=0 && subdomains[kr].ref <0 && kl >=0 && subdomains[kl].ref>=0)
-				nbk--,subdomains[kl].ref=subdomains[kr].ref-1;
-			    if(kr<0 && kl >=0 && subdomains[kl].ref>=0)
-				nbk--,subdomains[kl].ref=-1;
-			    if(kl<0 && kr >=0 && subdomains[kr].ref>=0)
-				nbk--,subdomains[kr].ref=-1;
-			    //   cout << " after \t "   
-			    //	 << kl << subdomains[kl].ref << " rr " << kr 
-			    // << subdomains[kr].ref << endl;
-			}
-		    }
-			//  cout << subdomains[0].ref << subdomains[1].ref << endl;
-			Int4  j=0;
-	    for ( i=0;i<NbSubDomains;i++)
-		if((-subdomains[i].ref) %2) { // good 
-					      //cout << " sudom ok  = " << i << " " << subdomains[i].ref
-					      // << " " << (-subdomains[i].ref) %2 << endl;
-		    if(i != j) 
-			Exchange(subdomains[i],subdomains[j]);
-		    j++;}
-		    else
-		    { //cout << " remove sub domain " << i << endl;
-			t= subdomains[i].head;
-			while  (t){// cout << Number(t) << " " << endl;
-			    NbOutT++;
-			    t1=t;
-			    t=t->link;
-			    t1->link=0;}//while (t)
-		    }
-		    
-		    if(verbosity>4)
-			cout << " Number of remove sub domain (OutSideMesh) =" << NbSubDomains-j << endl;
-	    NbSubDomains=j;
-	}
-	
-	delete []  mark; 
-	
-    }
-    else
-    { // find the head for all sub domaine
-	if (Gh.NbSubDomains != NbSubDomains && subdomains)
-	    delete [] subdomains, subdomains=0;
-	if (! subdomains  ) 
-	    subdomains = new SubDomain[ Gh.NbSubDomains];
-	NbSubDomains =Gh.NbSubDomains;
-	if(verbosity>4)
-	    cout << "     find the " << NbSubDomains << " sub domain " << endl;
-	Int4 err=0;
-	ReMakeTriangleContainingTheVertex();
-	Int4 * mark = new Int4[nbt];
-	Edge **GeometricalEdgetoEdge = MakeGeometricalEdgeToEdge();
-        
-	for (it=0;it<nbt;it++)
-	    mark[it]=triangles[it].link ? -1 : -2;
-	Int4 inew =0;
-	for (Int4 i=0;i<NbSubDomains;i++) 
-	{
-	    GeometricalEdge &eg = *Gh.subdomains[i].edge;
-	    subdomains[i].ref = Gh.subdomains[i].ref;
-	    int ssdlab = subdomains[i].ref;
-	    // by carefull is not easy to find a edge create from a GeometricalEdge 
-	    // see routine MakeGeometricalEdgeToEdge
-	    Edge &e = *GeometricalEdgetoEdge[Gh.Number(eg)];
-	    assert(&e);
-	    Vertex * v0 =  e(0),*v1 = e(1);
-	    Triangle *t  = v0->t;
-	    int sens = Gh.subdomains[i].sens;
-	    // test if ge and e is in the same sens 
-	    //	cout << " geom edge = " <<  Gh.Number(eg) <<" @" << &eg << " ref = " << subdomains[i].ref 
-	    //     << " ref edge =" << eg.ref << " sens " << sens ;
-	    if (((eg[0].r-eg[1].r),(e[0].r-e[1].r))<0)
-		sens = -sens ;
-	    subdomains[i].sens = sens;
-	    subdomains[i].edge = &e;
-	    //	cout << " sens " << sens << " in geom " << eg[0].r << eg[1].r << " in mesh  " << e[0].r << e[1].r << endl;
-	    //	cout << "  v0 , v1 = " << Number(v0) << " "  << Number(v1) << endl;
-	    assert(t && sens);
-	    
-	    TriangleAdjacent  ta(t,EdgesVertexTriangle[v0->vint][0]);// previous edges
-		
-	    while (1) 
-	    {
-		assert( v0 == ta.EdgeVertex(1) );
-		//	 cout << " recherche " << Number( ta.EdgeVertex(0)) << endl;
-		if (ta.EdgeVertex(0) == v1) { // ok we find the edge
-		    if (sens>0)  
-			subdomains[i].head=t=Adj(ta);
-		    else 
-			subdomains[i].head=t=ta;
-		    //cout << "      triangle  =" << Number(t) << " = " << (*t)[0].r <<  (*t)[1].r <<  (*t)[2].r << endl;
-		    if(t<triangles || t >= triangles+nbt || t->det < 0 
-		        || t->link == 0) // Ajoute aout 200 
-		     {
-			cerr << " Error in the def of sub domain "<<i
-			     << " form border " << NbSubDomains - i  << "/" << NbSubDomains
-			     << ": Bad sens  " << Gh.Number(eg) <<" "<< sens <<  endl;  
-			err++;
-			break;}
-		    Int4 it = Number(t);
-		    if (mark[it] >=0) {
-                        
-			if(verbosity>10)
-			    cerr << "     Warning: the sub domain " << i << " ref = " << subdomains[i].ref 
-				<< " is previouly defined with "  <<mark[it] << " ref = " << subdomains[mark[it]].ref
-				<< " skip this def " << endl;
-			break;}
-		    if(i != inew) 
-			Exchange(subdomains[i],subdomains[inew]);
-		    inew++;
-		    Triangle *tt=t;
-		    Int4 kkk=0;
-		    do 
-		    {
-			kkk++;
-			assert(mark[Number(tt)]<0);
-#ifdef DRAWING1
-			tt->Draw(i);
-#endif
-			mark[Number(tt)]=i;
-			tt=tt->link;
-		    } while (tt!=t);
-		    if(verbosity>7)
-			cout << "     Nb de triangles dans le sous domaine " << i << " de ref " << subdomains[i].ref << " = " << kkk << endl;
-		    break;}
-		ta = Previous(Adj(ta));         
-		if(t == (Triangle *) ta) {
-		    err++;
-		    cerr << " Error in the def of sub domain " << i 
-			<< " edge=" << Gh.Number(eg) << " " << sens << endl;
-		    break;}
-		//         cout << " NB of remove subdomain " << NbSubDomTot-NbSubDomains<< endl;
-		
-	    }
-		
-	}
-	if (err) MeshError(777,this);
-	
-	if (inew < NbSubDomains) {
-	    if (verbosity>5) 
-		cout << "     Warning: We remove " << NbSubDomains-inew << " SubDomains " << endl;
-	    NbSubDomains=inew;}
-	
-	
-	for (it=0;it<nbt;it++)
-	    if ( mark[it] ==-1 ) 
-		NbOutT++,triangles[it].link =0;
-	delete [] GeometricalEdgetoEdge;
-	delete [] mark;
-	
-    }
-    
-#ifdef DRAWING1
-    inquire();
-#endif
-    NbOutT=0;
-    for (it=0;it<nbt;it++) 
-	if(!triangles[it].link)  NbOutT++;
-    if (verbosity> 4)
-	cout << "    " ;
-    if (verbosity> 2)
-	cout << " Nb of Sub borned Domain  = " <<  NbSubDomTot << " NbOutTriangles = " << NbOutT <<endl;
-#ifdef DRAWING1
-    inquire();
-#endif
-    
-    //#undef DRAWING1
-    
-    
-}
-void Triangles::ReNumberingVertex(Int4 * renu)
-{
-  // warning be carfull because pointeur
-  // from on mesh to over mesh 
-  //  --  so do ReNumbering a the beginning
-  Vertex * ve = vertices+nbv;
-  Int4 it,ie,i;
-  
-  for ( it=0;it<nbt;it++) 
-    triangles[it].ReNumbering(vertices,ve,renu);
-  
-  for ( ie=0;ie<nbe;ie++) 
-    edges[ie].ReNumbering(vertices,ve,renu);
-  
-  for (i=0;i< NbVerticesOnGeomVertex;i++)
-    {
-      Vertex *v = VerticesOnGeomVertex[i].mv;
-      if (v>=vertices && v < ve)
-	VerticesOnGeomVertex[i].mv=vertices+renu[Number(v)];
-    }
-  
-  for (i=0;i< NbVerticesOnGeomEdge;i++)
-    {
-      Vertex *v =VerticesOnGeomEdge[i].mv;
-      if (v>=vertices && v < ve)
-	 VerticesOnGeomEdge[i].mv=vertices+renu[Number(v)];
-    }
-
-  for (i=0;i< NbVertexOnBThVertex;i++)
-    {
-      Vertex *v=VertexOnBThVertex[i].v;
-      if (v>=vertices && v < ve)
-	VertexOnBThVertex[i].v=vertices+renu[Number(v)];
-    }
-  
-  for (i=0;i< NbVertexOnBThEdge;i++)
-    {
-      Vertex *v=VertexOnBThEdge[i].v;
-      if (v>=vertices && v < ve)
-	VertexOnBThEdge[i].v=vertices+renu[Number(v)];
-    }
-
-  // move the Vertices without a copy of the array 
-  // be carefull not trivial code 
-  Int4 j;
-  for ( it=0;it<nbv;it++) // for all sub cycles of the permutation renu
-    if (renu[it] >= 0) // a new sub cycle
-      { 
-        i=it;
-        Vertex ti=vertices[i],tj;
-        while ( (j=renu[i]) >= 0) 
-         { // i is old, and j is new 
-           renu[i] = -1-renu[i]; // mark 
-           tj = vertices[j]; // save new
-           vertices[j]= ti; // new <- old
-           i=j;     // next 
-           ti = tj;
-         }  
-     }
-  if (quadtree) 
-  {  delete quadtree;
-   quadtree = new QuadTree(this);
-  }
- for ( it=0;it<nbv;it++)
-   renu[i]= -renu[i]-1;
-  
-}
-void Triangles::ReNumberingTheTriangleBySubDomain(bool justcompress)
- {
-  Int4 *renu= new Int4[nbt];
-   Triangle *t0,*t,*te=triangles+nbt;
-   Int4 k=0,it,i,j;
-      
-  for ( it=0;it<nbt;it++) 
-    renu[it]=-1; // outside triangle 
-  for ( i=0;i<NbSubDomains;i++)
-   { 
-     t=t0=subdomains[i].head;
-     assert(t0); // no empty sub domain
-     do { 
-       Int4 kt = Number(t);
-       assert(kt>=0 && kt < nbt );
-       assert(renu[kt]==-1);
-       renu[kt]=k++;
-       }
-     while (t0 != (t=t->link));
-   }
-  if (verbosity>9)
-    cout << " number of inside triangles " << k << " nbt = " << nbt << endl;
-  // take is same numbering if possible    
-  if(justcompress)
-      for ( k=0,it=0;it<nbt;it++) 
-     if(renu[it] >=0 ) 
-       renu[it]=k++;
-   
-   // put the outside triangles at the end
-   for ( it=0;it<nbt;it++) 
-    if (renu[it]==-1) 
-      renu[it]=k++;
-      
-    assert(k == nbt);
-   // do the change on all the pointeur 
-   for ( it=0;it<nbt;it++)
-     triangles[it].ReNumbering(triangles,te,renu);
-     
-   for ( i=0;i<NbSubDomains;i++)
-     subdomains[i].head=triangles+renu[Number(subdomains[i].head)];
-   
-  // move the Triangles  without a copy of the array 
-  // be carefull not trivial code 
-  for ( it=0;it<nbt;it++) // for all sub cycles of the permutation renu
-    if (renu[it] >= 0) // a new sub cycle
-      { 
-        i=it;
-        Triangle ti=triangles[i],tj;
-        while ( (j=renu[i]) >= 0) 
-         { // i is old, and j is new 
-           renu[i] = -1; // mark 
-           tj = triangles[j]; // save new
-           triangles[j]= ti; // new <- old
-           i=j;     // next 
-           ti = tj;
-         }  
-     }
-   delete [] renu;
-   nt = nbt - NbOutT;
-
-#ifdef DEBUG
-// verif 
-     for ( it=0;it<nbt;it++)
-      triangles[it].check();
-#endif   
- }
-Int4  Triangles::ConsRefTriangle(Int4 *reft) const
-{
-  assert(reft);
-   Triangle *t0,*t;
-   Int4 k=0, num;   
-  for (Int4 it=0;it<nbt;it++) 
-    reft[it]=-1; // outside triangle 
-  for (Int4 i=0;i<NbSubDomains;i++)
-   { 
-     t=t0=subdomains[i].head;
-     assert(t0); // no empty sub domain
-     //  Int4 color=i+1;// because the color 0 is outside triangle
-     do { k++;
-       num = Number(t);
-       assert(num>=0 &&num < nbt);
-       reft[num]=i;
-       //  cout << Number(t0) << " " <<Number(t)<< " "  << i << endl;
-       }
-     while (t0 != (t=t->link));
-   }
-  //  NbOutT = nbt - k;
-  if (verbosity>5) 
-    cout << " Nb of Sub Domain =" << NbSubDomains  << " Nb of In Triangles " << k 
-	 << " Nbt = " << nbt << " Out Triangles = " << nbt - k <<  endl;
-   
-  return k;   
-
-}
-
-/*
-void Triangles::ConsLinkTriangle()
-{
-  for (Int4 i=0;i<NbSubDomains;i++)
-    subdomains[i].head=0;
-   Triangle * t=triangles,*tend = triangles+nbt,*hst;
-  for (;t<tend;t++)
-   {  
-       if (t->link) 
-        {
-           Int4 color = t->color-1;
-          assert(color<NbSubDomains && color>=0);
-          if (hst=subdomains[color].head) {
-            t->link=hst->link;
-            hst->link=t; }
-          else {
-            subdomains[color].head = t;
-            t->link=t;}// circular link         
-        }
-     }
- {
-   for (Int4 i=0;i<NbSubDomains;i++)
-     assert(subdomains[i].head);
- }
-   
-}
-*/
-/* void Triangles::RandomInit() 
-{ 
- //  Meshbegin = vertices;
- //  Meshend  = vertices + nbvx;
-   nbv = nbvx;
-   for (int i = 0; i < nbv; i++)
-     {
-        vertices[i].r.x= rand();
-        vertices[i].r.y= rand();
-        vertices[i].ref = 0;
-     }
-}
-void Triangles::CubeInit(int n,int m) 
-{ 
-  //  nbvx = n*m;
- //  Meshbegin = vertices;
-  // Meshend  = vertices + nbvx;
-   nbv = n*m;
-   assert(nbv <= nbvx);
-   int k =0;
-   for (int i = 0; i < n; i++)
-   for (int j = 0; j < m; j++)
-     {
-        vertices[k].r.x= i;
-        vertices[k].r.y= j;
-        vertices[k++].ref = 0;
-     }
-}
-*/
-Vertex * Triangles::NearestVertex(Icoor1 i,Icoor1 j) 
-   { return  quadtree->NearestVertex(i,j); } 
-
-
-void Triangles::PreInit(Int4 inbvx,char *fname)
-{
-  srand(19999999);
-  OnDisk =0;
-  NbRef=0;
-  //  allocGeometry=0;
-  identity=0;
-  NbOfTriangleSearchFind =0;
-  NbOfSwapTriangle =0;
-  nbiv=0;
-  nbv=0;
-  nbvx=inbvx;
-  nbt=0;
-  NbOfQuad = 0;
-  nbtx=2*inbvx-2;
-  NbSubDomains=0;
-  NbVertexOnBThVertex=0;
-  NbVertexOnBThEdge=0;
-  VertexOnBThVertex=0;
-  VertexOnBThEdge=0;
-  
-  NbCrackedVertices=0;
-  NbCrackedEdges =0;
-  CrackedEdges  =0;  
-  nbe = 0; 
-  name = fname ;
-  warning=0;
-  if (inbvx) {
-    vertices=new Vertex[nbvx];
-    assert(vertices);
-    ordre=new Vertex* [nbvx];
-    assert(ordre);
-    triangles=new Triangle[nbtx];
-    assert(triangles);}
-  else {
-    vertices=0;
-    ordre=0;
-    triangles=0;
-    nbtx=0;
-   }
-  if ( name || inbvx)
-    {
-      time_t timer =time(0);
-      char buf[70];     
-      strftime(buf ,70,", Date: %y/%m/%d %H:%M %Ss",localtime(&timer));
-      counter++; 
-      char countbuf[30];   
-      sprintf(countbuf,"%d",counter);
-      int lg =0 ;
-      if (&BTh != this && BTh.name)
-	lg = strlen(BTh.name)+4;
-      identity = new char[ lg + strlen(buf) + strlen(countbuf)+ 2  + 10 + ( Gh.name ? strlen(Gh.name) + 4 : 0)];
-      identity[0]=0;
-      if (lg)
-	strcat(strcat(strcat(identity,"B="),BTh.name),", ");
-
-      if (Gh.name)
-	strcat(strcat(identity,"G="),Gh.name);
-      strcat(strcat(identity,";"),countbuf);
-      strcat(identity,buf);
-      // cout << "New MAILLAGE "<< identity << endl;
-    } 
-  
-  quadtree=0;
-//  edgescomponante=0;
-  edges=0;
-  VerticesOnGeomVertex=0;
-  VerticesOnGeomEdge=0;
-  NbVerticesOnGeomVertex=0;
-  NbVerticesOnGeomEdge=0;
-//  nbMaxIntersectionTriangles=0;
-//  lIntTria;
-  subdomains=0;
-  NbSubDomains=0;
-//  Meshbegin = vertices;
-//  Meshend  = vertices + nbvx;
-  if (verbosity>98) 
-    cout << "Triangles::PreInit() " << nbvx << " " << nbtx 
-	 << " " << vertices 
-	 << " " << ordre << " " <<  triangles <<endl;
-
-}
-
-void Triangles::GeomToTriangles1(Int4 inbvx,int KeepBackVertices) 
-{ 
-//#define DRAWING1
-  Gh.NbRef++;// add a ref to Gh
-
-  
-/************************************************************************* 
-// methode in 2 step
-// 1 - compute the number of new edge to allocate
-// 2 - construct the edge
- remark: 
-  in this part we suppose to have a background mesh with the same
-  geometry 
-  
-  To construct the discretisation of the new mesh we have to 
-  rediscretize the boundary of background Mesh 
-  because we have only the pointeur from the background mesh to the geometry.
-  We need the abcisse of the background mesh vertices on geometry
-  so a vertex is 
-  0 on GeometricalVertex ;
-  1 on GeometricalEdge + abcisse
-  2 internal 
-  
-  *************************************************************************/
-  assert(&BTh.Gh == &Gh);
-
- // if(verbosity==100) Gh.Write("/tmp/gg.gmsh");
-  BTh.NbRef++; // add a ref to BackGround Mesh
-  PreInit(inbvx);
-  BTh.SetVertexFieldOn();
-#ifdef DRAWING
-  if (withrgraphique)
-   { BTh.InitDraw();
-  reffecran(); 
-  CurrentTh = this;}
-#endif
-  int * bcurve = new int[Gh.NbOfCurves]; // 
-  
-  // we have 2 ways to make the loop 
-  // 1) on the geometry 
-  // 2) on the background mesh
-  //  if you do the loop on geometry, we don't have the pointeur on background,
-  //  and if you do the loop in background we have the pointeur on geometry
-  // so do the walk on  background
-  //  Int4 NbVerticesOnGeomVertex;
-  //  VertexOnGeom * VerticesOnGeomVertex;  
-  //  Int4 NbVerticesOnGeomEdge;
-  //  VertexOnGeom * VerticesOnGeomEdge;
-  
-  
-  NbVerticesOnGeomVertex=0;
-  NbVerticesOnGeomEdge=0;
-  //1 copy of the  Required vertex
-  int i; 
-  for ( i=0;i<Gh.nbv;i++)
-    if (Gh[i].Required()) NbVerticesOnGeomVertex++;
-  
-  VerticesOnGeomVertex = new VertexOnGeom[NbVerticesOnGeomVertex];
-  VertexOnBThVertex = new VertexOnVertex[NbVerticesOnGeomVertex];
-  //
-  if( NbVerticesOnGeomVertex >= nbvx) 
-    {
-      cerr << " Too much vertices on geometry " << NbVerticesOnGeomVertex << " >= " << nbvx << endl; 
-      MeshError(1,this);
-    }
-  assert(vertices);
-  for (i=0;i<Gh.nbv;i++)
-    if (Gh[i].Required()) {//Gh  vertices Required
-        vertices[nbv] =  Gh[i];
-        vertices[nbv].i = I2(0,0);
-        Gh[i].to = vertices + nbv;// save Geom -> Th
-        VerticesOnGeomVertex[nbv]= VertexOnGeom(vertices[nbv],Gh[i]);
-	// cout << "--------- "  <<Number(Gh[i].to) << " " << Gh[i].to << " " << i << endl;
-	nbv++;}
-    else Gh[i].to=0;
-  // 
-  for (i=0;i<BTh.NbVerticesOnGeomVertex;i++)
-    { 
-      VertexOnGeom & vog = BTh.VerticesOnGeomVertex[i];
-      if (vog.IsRequiredVertex()) {
-	 GeometricalVertex * gv = vog;
-	 Vertex *bv = vog;
-	 assert(gv->to);// use of Geom -> Th
-	 VertexOnBThVertex[NbVertexOnBThVertex++] = VertexOnVertex(gv->to,bv);
-	 gv->to->m = bv->m; // for taking the metrix of the background mesh
-	 ;}
-    }
-  assert(NbVertexOnBThVertex == NbVerticesOnGeomVertex);
-// new stuff FH with curve
-//  find the begin of the curve in BTh
-{
-  Gh.UnMarkEdges();	
-  int bfind=0;
-/*
-   cout << " nb curves = " << Gh.NbOfCurves << endl;
-   for(int i=0;i<Gh.NbOfCurves ;i++)
-     {
-        cout << " Curve " << i << " begin e=" << Gh.Number(Gh.curves[i].be) << " k=" << Gh.curves[i].kb 
-             << "  end e= " << Gh.Number(Gh.curves[i].ee) << " k=" << Gh.curves[i].ke << endl;
-     }*/
-  for (int i=0;i<Gh.NbOfCurves;i++)
-   {
-    bcurve[i]=-1; 
-   }
-  
-  for (int iedge=0;iedge<BTh.nbe;iedge++) 
-    {      
-      Edge & ei = BTh.edges[iedge];
-      for(int je=0;je<2;je++) // for the 2 extremites
-	 if (!ei.on->Mark() && ei[je].on->IsRequiredVertex() )
-	    {
-	      // a begin of curve 
-	      int nc = ei.on->CurveNumber;
-	      
-	      //cout << "curve " <<  nc << " v " << Gh.Number((GeometricalVertex *) *ei[je].on) << " "
-	      //     << " e "  << " " << Gh.Number(ei.on) << " vc " << Gh.Number((*Gh.curves[nc].be)[Gh.curves[nc].kb]) << endl;
-	      if(
-	         ei.on==Gh.curves[nc].be    && 
-	         (GeometricalVertex *) *ei[je].on == &(*Gh.curves[nc].be)[Gh.curves[nc].kb] //  same extremity 
-	         )     
-	        { 
-	        // cout << " find " << endl;
-	         bcurve[nc]=iedge*2+je;
-	         bfind++;	
-	        }      
-            }
-    } 
-   assert( bfind==Gh.NbOfCurves);
-}          
-// method in 2 + 1 step 
-//  0.0) compute the length and the number of vertex to do allocation
-//  1.0)  recompute the length
-//  1.1)   compute the  vertex 
-  Int4 nbex=0,NbVerticesOnGeomEdgex=0;
-  for (int step=0; step <2;step++)
-    {
-      Int4 NbOfNewPoints=0;
-      Int4 NbOfNewEdge=0;
-      Int4 iedge;
-      Gh.UnMarkEdges();	
-/*   add Curve loop  FH    
-      // find a starting back groud edges to walk 
-      for (iedge=0;iedge<BTh.nbe;iedge++) {      
-	    Edge & ei = BTh.edges[iedge];
-	    for(int jedge=0;jedge<2;jedge++) // for the 2 extremites
-	     if (!ei.on->Mark() && ei[jedge].on->IsRequiredVertex() )
-	    {
-*/  
-// new code FH 2004 
-       Real8 L=0;
-       for (int icurve=0;icurve<Gh.NbOfCurves;icurve++)
-            { 
-              iedge=bcurve[icurve]/2;
-              int jedge=bcurve[icurve]%2;
-              if( ! Gh.curves[icurve].master) continue; // we skip all equi curve
-	      Edge & ei = BTh.edges[iedge];
-	      // warning: ei.on->Mark() can be change in
-	      // loop for(jedge=0;jedge<2;jedge++) 
-	      // new curve  
-	      // good the find a starting edge 
-	      Real8 Lstep=0,Lcurve=0;// step between two points   (phase==1) 
-	      Int4 NbCreatePointOnCurve=0;// Nb of new points on curve     (phase==1) 
-
-	      
-	      //    cout.precision(16);
-	      for(int phase=0;phase<=step;phase++) 
-		{
-
-		  for(Curve * curve= Gh.curves+icurve;curve;curve= curve->next)
-		     {
-
-		    int icurveequi= Gh.Number(curve);
-  
-                   if( phase == 0 &&  icurveequi != icurve)  continue;
-
-                  int k0=jedge,k1;
-                  Edge * pe=  BTh.edges+iedge;
-		  //GeometricalEdge *ong = ei.on;
-                   int iedgeequi=bcurve[icurveequi]/2;
-                   int jedgeequi=bcurve[icurveequi]%2;
-
-                  int k0equi=jedgeequi,k1equi;		  
-                  Edge * peequi= BTh.edges+iedgeequi;
-		  GeometricalEdge *ongequi = peequi->on;
-		  
-                  Real8 sNew=Lstep;// abcisse of the new points (phase==1) 
-                  L=0;// length of the curve
-                  Int4 i=0;// index of new points on the curve
-                   GeometricalVertex * GA0 = *(*peequi)[k0equi].on;
-                  Vertex *A0;
-                  A0 = GA0->to;  // the vertex in new mesh
-                  Vertex *A1;
-		  VertexOnGeom *GA1;
-                  Edge * PreviousNewEdge = 0;
-		  //  cout << "  --------------New Curve phase " << phase 
-		  //       << "---------- A0=" << *A0 << ei[k0]  <<endl;
-                  assert (A0-vertices>=0 && A0-vertices <nbv);
-                  if(ongequi->Required() ) 
-                        {
-                         GeometricalVertex *GA1 = *(*peequi)[1-k0equi].on;
-                         A1 = GA1->to;  //
-                        }       
-                  else 
-                  for(;;) 
-		    {
-		      //   assert(pe && BTh.Number(pe)>=0 && BTh.Number(pe)<=BTh.nbe);
-		      Edge &ee=*pe; 
-		      Edge &eeequi=*peequi; 
-		      k1 = 1-k0; // next vertex of the edge 
-		      k1equi= 1 - k0equi;
-		      
-		      assert(pe  && ee.on);
-		      ee.on->SetMark();
-		      Vertex & v0=ee[0], & v1=ee[1];
-		      R2 AB= (R2) v1 - (R2) v0;
-		      Real8 L0=L,LAB;
-		      LAB =  LengthInterpole(v0.m,v1.m,AB);
-		      L+= LAB;    
-		      if (phase) {// computation of the new points
-			while ((i!=NbCreatePointOnCurve) && sNew <= L) { 
-			  //    cout  << " L0= " << L0 << " L " << L << " sN=" 
-			  //         << sNew << " LAB=" << LAB << " NBPC =" <<NbCreatePointOnCurve<< " i " << i  << endl;
-			  assert (sNew >= L0);
-			  assert(LAB);
-			  
-			  
-			  assert(vertices && nbv<nbvx);
-			  assert(edges && nbe < nbex);
-			  assert(VerticesOnGeomEdge && NbVerticesOnGeomEdge < NbVerticesOnGeomEdgex);
-			  // new vertex on edge
-			  A1=vertices+nbv++;
-			  GA1=VerticesOnGeomEdge+NbVerticesOnGeomEdge;
-			  Edge *e = edges + nbe++;
-			  Real8 se= (sNew-L0)/LAB;
-			  assert(se>=0 && se < 1.000000001);
-#ifdef DEBUG
-			  se =  abscisseInterpole(v0.m,v1.m,AB,se); // because code \ref(xxx)
-#else
-			  se =  abscisseInterpole(v0.m,v1.m,AB,se,1);
-#endif
-			  assert(se>=0 && se <= 1);
-			  //((k1==1) != (k1==k1equi))
-			  se = k1 ? se : 1. - se;
-			  se = k1==k1equi ? se : 1. - se;
-			  VertexOnBThEdge[NbVerticesOnGeomEdge++] = VertexOnEdge(A1,&eeequi,se); // save 
-			  ongequi = Gh.ProjectOnCurve(eeequi,se,*A1,*GA1); 
-			  A1->ReferenceNumber = eeequi.ref;
-			  A1->DirOfSearch =NoDirOfSearch;
-			  //cout << icurveequi << " " << i << " " <<  *A1 << endl;
-			  e->on = ongequi;
-			  e->v[0]=  A0;
-			  e->v[1]=  A1;
-			  if(verbosity>99)
-				cout << i << "+ New P "<< nbv-1 << " "  <<sNew<< " L0=" << L0 
-				<< " AB=" << LAB << " s=" << (sNew-L0)/LAB << " se= "  
-				<< se <<" B edge " << BTh.Number(ee) << " signe = " << k1 <<" " << A1->r <<endl;
-			    
-#ifdef DEBUG
-			  // code \label(xxx)
-			    R2  A1A0 = A1->r - A0->r;
-			    Real8 dp = LengthInterpole(A0->m,A1->m,A1A0);
-			    if (dp > 1.4) {
-			      cerr << " PB new Points "<< nbv-1 ;
-			      cerr << " AB=" << LAB << " s=" << (sNew-L0)/LAB << " se= "  ;
-			      cerr << se <<" B edge " << BTh.Number(ee) << " signe = " << k1 <<endl;	      
-			      cerr << " PB calcul new on cuver points trop loin l=" << dp 
-				   << " v=" << nbv-1 << " " << nbv-2 << " Lcurve = " << Lcurve << AB <<v0.m<< v1.m <<endl;
-			    }
-
-#endif
-			  e->ref = eeequi.ref;
-			  e->adj[0]=PreviousNewEdge;
-			  
-			  if (PreviousNewEdge)
-			    PreviousNewEdge->adj[1] =  e;
-			  PreviousNewEdge = e;
-#ifdef DRAWING1
-			  e->Draw();
-			  //         A0->Draw();
-			  A1->m.Draw(*A1);
-			  A1->Draw(Number(A1));
-#endif
-			  A0=A1;
-			  sNew += Lstep;
-			  //   cout << " sNew = " << sNew << " L = " << L 
-			  //        << "  ------" <<NbCreatePointOnCurve << " " << i <<  endl;
-			  if (++i== NbCreatePointOnCurve) break;
-			}
-			
-		      }               
-		      assert(ee.on->CurveNumber==ei.on->CurveNumber);
-		      if(verbosity>98) cout <<  BTh.Number(ee) << " " << " on=" << *ee[k1].on << " "<< ee[k1].on->IsRequiredVertex() <<  endl;
-		      if ( ee[k1].on->IsRequiredVertex()) {
-		         assert(eeequi[k1equi].on->IsRequiredVertex());
-			 GeometricalVertex * GA1 = *eeequi[k1equi].on;
-			A1=GA1->to;// the vertex in new mesh
-			assert (A1-vertices>=0 && A1-vertices <nbv);
-			break;}
-		      if (!ee.adj[k1])
-			{cerr << "Error adj edge " << BTh.Number(ee) << ", nbe = "  << nbe 
-			      << " Gh.vertices " << Gh.vertices 
-			      << " k1 = " << k1 << " on=" << *ee[k1].on << endl;
-			cerr << ee[k1].on->gv-Gh.vertices << endl;
-			}
-		      pe = ee.adj[k1]; // next edge
-		      k0 = pe->Intersection(ee); 
-		      peequi= eeequi.adj[k1equi];  // next edge
-		      k0equi=peequi->Intersection(eeequi);            
-		    }// for(;;) end of the curve
-		  
-
-		  if (phase) // construction of the last edge
-                    {
-		      Edge *e = edges + nbe++;
-		      if (verbosity>10) 
-			cout << " Fin curve A1" << *A1 << " " << icurve << " <=> " << icurveequi <<"-----" <<
-			  NbCreatePointOnCurve << " == " <<i<<endl;
-                      e->on  = ongequi;
-                      e->v[0]=  A0;
-                      e->v[1]=	A1;
-                      e->ref = peequi->ref;
-                      e->adj[0]=PreviousNewEdge;
-                      e->adj[1]=0;
-                      if (PreviousNewEdge)
-			PreviousNewEdge->adj[1] =  e;
-                      PreviousNewEdge = e;
-		      //		      cout << "Last new edge " << nbe << " " << " on " << Gh.Number(pe->on) 
-		      //   << " of curve =" <<pe->on->CurveNumber <<endl;
-	    
-
-#ifdef DRAWING1 
-                      e->Draw();
-                      A1->Draw();
-                      A0->Draw();
-		      //                      inquire();
-#endif
-                      assert(i==NbCreatePointOnCurve);
-  
-                    }
-		   } //  end loop on equi curve 
-                     
-		  if (!phase)  { // 
-		    Int4 NbSegOnCurve = Max((Int4)(L+0.5),(Int4) 1);// nb of seg
-		    Lstep = L/NbSegOnCurve; 
-		    Lcurve = L;
-		    NbCreatePointOnCurve = NbSegOnCurve-1;
-		    
-		    for(Curve * curve= Gh.curves+icurve;curve;curve= curve->next)
-		     {
-		       NbOfNewEdge += NbSegOnCurve;
-		       NbOfNewPoints += NbCreatePointOnCurve;
-		     }
-		    if(verbosity>5)
-		      cout << icurve << " NbSegOnCurve = " <<  NbSegOnCurve << " Lstep=" 
-			   << Lstep <<" " << NbOfNewPoints<< " NBPC= " << NbCreatePointOnCurve <<endl;
-		    // do'nt 
-		    //  if(NbCreatePointOnCurve<1) break;
-		  }
-		}//for(phase;;)
-/*  modif FH add Curve class  		  
-	    }}//for (iedge=0;iedge<BTh.nbe;iedge++) 
-*/
-// new code Curve class  	
-     } //  end of curve loop 
-// end new code	    
-       // do the allocation
-    if(step==0) 
-      {
-	//if(!NbOfNewPoints) break;// nothing ????? bug 
-	if(nbv+NbOfNewPoints > nbvx) 
-	  {
-	    cerr << " Too much vertices on geometry " << nbv+NbOfNewPoints  << " >= " << nbvx << endl;
-	    MeshError(3,this);
-	  }
-	//cout << " NbOfNewEdge" << NbOfNewEdge << " NbOfNewPoints " << NbOfNewPoints << endl;
-	edges = new Edge[NbOfNewEdge];
-	nbex = NbOfNewEdge;
-	if(NbOfNewPoints) { // 
-	   VerticesOnGeomEdge = new VertexOnGeom[NbOfNewPoints];
-	   NbVertexOnBThEdge =NbOfNewPoints;
-	   VertexOnBThEdge = new  VertexOnEdge[NbOfNewPoints];
-	   NbVerticesOnGeomEdgex = NbOfNewPoints; }
-	NbOfNewPoints =0;
-	NbOfNewEdge = 0;
-      }
-    } // for(step;;)
-  assert(nbe);
-
- delete [] bcurve;
- 
-  
-#ifdef DRAWING1
-  reffecran();
-  InitDraw();
-  Draw();
-  inquire();
-#endif
-  
-  Insert();
-  ForceBoundary();
-  FindSubDomain();
-  
-#ifdef DRAWING1
-  reffecran();
-  Draw();
-  inquire();
-#endif
-  // NewPointsOld(*this) ;
-//  BTh.ReMakeTriangleContainingTheVertex(); //  FH change => put in NewPoints
-  //  for (Int4 iv=0;iv<BTh.nbv;iv++)
-  //    BTh[iv].i = toI2(BTh[iv].r);
-  NewPoints(BTh,KeepBackVertices) ;
-  CurrentTh = 0;
-//#undef  DRAWING1 
-}
-
-void Triangles::GeomToTriangles0(Int4 inbvx) 
-{
-  Gh.NbRef++;// add a ref to GH
-
-
-  Int4 i,NbOfCurves=0,NbNewPoints,NbEdgeCurve;
-  Real8 lcurve, lstep,s;
-#ifdef DRAWING
- if (withrgraphique)
-   {
-  Gh.InitDraw() ;
-  CurrentTh = this; }
-#endif
-  
-  R2 AB;
-  GeometricalVertex *a,*b;
-  Vertex *va,*vb;
-  GeometricalEdge * e;
-  PreInit(inbvx);
-  int  background = &BTh != this;
-  //  int  SameGeom = background && (&BTh.Gh == &Gh);
-  nbv = 0;
-  NbVerticesOnGeomVertex=0;
-  NbVerticesOnGeomEdge=0;
-  for (i=0;i<Gh.nbv;i++)
-    if (Gh[i].Required() && Gh[i].IsThe() ) NbVerticesOnGeomVertex++;
-  VerticesOnGeomVertex = new VertexOnGeom[NbVerticesOnGeomVertex];  
-//
-  if( NbVerticesOnGeomVertex >= nbvx) 
-    {
-      cerr << " Too much vertices on geometry " << NbVerticesOnGeomVertex << " >= " << nbvx << endl;
-      MeshError(1,this);
-    }
-  for (i=0;i<Gh.nbv;i++)
-    if (Gh[i].Required()&& Gh[i].IsThe()  ) {//Gh  vertices Required
-      if (nbv < nbvx)
-	vertices[nbv] = Gh[i];
-      Gh[i].to = vertices + nbv;// save Geom -> Th
-      VerticesOnGeomVertex[nbv]= VertexOnGeom(*Gh[i].to,Gh[i]);
-    //  cout << "--------- "  <<Number(Gh[i].to) << " " << Gh[i].to << " " << i << endl;
-      nbv++;
-    }
-    if(verbosity>10) cout << " GeomToTriangles0: init nbv : " << nbv << endl;
-//  assert( Gh.nbv < nbvx);
-  
-  // Method in 2 step:  0 and 1 
-  // 1) compute de nb of edge 
-  // 2) construct the edge    
-  // generation of the curves
-  assert(! edges);
-#ifdef DRAWING1
-  reffecran();
-#endif
-// 2 step 
-// --step=0 to compute the number of edges + alloc at end
-// --step=1 to construct the edges
-  for (int step=0;step<2;step++) 
-    {//  for (int step=0;step<2;step++) 
-      Int4 nbex = 0;
-      nbe = 0;
-      Int4 NbVerticesOnGeomEdge0=NbVerticesOnGeomEdge;
-    //  cout <<  "  -------------- step =" << step << endl;
-      Gh.UnMarkEdges();	
-      NbOfCurves = 0;
-      for (i=0;i<Gh.nbe;i++) {
-	GeometricalEdge & ei = Gh.edges[i];   
-	if (!ei.Dup()) // a good curve (not dup )
-	for(int j=0;j<2;j++) 
-	  if (!ei.Mark() && ei[j].Required()) { 
-	    // warning ei.Mark() can be change in loop for(j=0;j<2;j++) 
-	    //  cout << " New curve = " << NbOfCurves << endl;
-	    Int4 nbvend  =0;
-	  
-           Edge * PreviousNewEdge=0;
-
-          lstep = -1;//to do not create points
-	  if(ei.Required())
-	    {
-	      if (j==0)
-              {if(step==0)
-		  nbe++;
-		else
-		  { 
-		    e = & ei;
-		    a=ei(0)->The();
-		    b=ei(1)->The();
-		    assert(edges);
-		    edges[nbe].v[0]=a->to;
-		    edges[nbe].v[1]=b->to;;
-		    edges[nbe].ref = e->ref;
-		    edges[nbe].on = e;
-		    edges[nbe].adj[0] = 0;
-		    edges[nbe].adj[1] = 0;
-#ifdef DRAWING1
-		    edges[nbe].Draw();
-#endif
-                      nbe++;}}
-	    }
-          else 
-	    { // on curve ------
-	      for ( int kstep=0;kstep<= step;kstep++)
-		{ // begin  for ( int kstep=0;kstep<= step;kstep++)
-		  // if 2nd step where 2 step
-		  // -- 1 compute le length of the curve
-		  // -- create the points and edge
-		  PreviousNewEdge=0;
-		  NbNewPoints=0;
-		  NbEdgeCurve=0;
-		  assert(nbvend < nbvx); 
-		  lcurve =0;
-		  s = lstep;
-		  int k=j;
-		  e = & ei;
-		  a=ei(k)->The();
-		  va = a->to;
-		  e->SetMark();
-		  //  cout << " New curve " ;
-		  
-		  // if SameGeo  We have go in the background geometry 
-		  // to find the discretisation of the curve
-		  
-		  for(;;) 
-		    { 
-		      k = 1-k;
-		      b= (*e)(k)->The();
-		      AB = b->r - a->r;
-		      Metric MA = background ? BTh.MetricAt(a->r) :a->m ;
-		      Metric MB =  background ? BTh.MetricAt(b->r) :b->m ;
-		      Real8 ledge = (MA(AB) + MB(AB))/2;
-		      // 
-		      const int MaxSubEdge = 10;
-		      int NbSubEdge = 1;
-		      Real8 lSubEdge[MaxSubEdge];
-		      R2 A,B;
-		      if (ledge < 1.5) 
-			lSubEdge[0] = ledge;
-		      else {
-			NbSubEdge = Min( MaxSubEdge, (int) (ledge +0.5));
-			A= a->r;
-			Metric MAs =MA,MBs;
-			// cout << " lSubEdge old=" << ledge 
-			//      << " new " << A << MA << endl;
-			ledge = 0; 
-			Real8 x =0, xstep= 1. /  NbSubEdge;
-			for (int kk=0; kk < NbSubEdge; kk++,A=B,MAs=MBs ) {
-			  x += xstep;
-			  B =  e->F(k ? x : 1-x);
-			  MBs= background ? BTh.MetricAt(B) :Metric(1-x, MA, x ,MB);
-			  AB = A-B;
-			  lSubEdge[kk]= (ledge += (MAs(AB)+MBs(AB))/2);
-			  // cout << "     " << lSubEdge[kk] << " x " << x  
-			  //      << " " << A << B << MA << MB<< endl ;
-			}
-			//  cout << endl;
-		      }
-		      
-		      Real8 lcurveb = lcurve+ ledge ;
-		      while (lcurve<=s && s <= lcurveb && nbv < nbvend)
-			{
-			  // New points
-			  
-			  // Real8 aa=(lcurveb-s)/ledge;
-			  // Real8 bb=(s-lcurve)/ledge;
-			  
-			  Real8 ss = s-lcurve;
-			  // 1) find the SubEdge containing ss by dichotomie
-			  int kk0=-1,kk1=NbSubEdge-1,kkk;
-			  Real8 ll0=0,ll1=ledge,llk;
-			  while (kk1-kk0>1)
-			    {
-			      if (ss < (llk=lSubEdge[kkk=(kk0+kk1)/2]))
-				kk1=kkk,ll1=llk;
-			      else
-				kk0=kkk,ll0=llk;}
-			  assert(kk1 != kk0);
-			  
-			  Real8 sbb = (ss-ll0  )/(ll1-ll0);
-			  Real8 bb = (kk1+sbb)/NbSubEdge, aa=1-bb;
-			  
-			  // new vertex on edge
-			  vb = &vertices[nbv++];
-			  vb->m = Metric(aa,a->m,bb,b->m);
-			  vb->ReferenceNumber = e->ref;
-			  vb->DirOfSearch =NoDirOfSearch;
-			  Real8 abcisse = k ? bb : aa;
-			  vb->r =  e->F( abcisse );
-			  VerticesOnGeomEdge[NbVerticesOnGeomEdge++]= VertexOnGeom(*vb,*e,abcisse);        
-			  
-			  // to take in account the sens of the edge
-			  
-			  s += lstep;
-			  edges[nbe].v[0]=va;
-			  edges[nbe].v[1]=vb;
-			  edges[nbe].ref = e->ref;
-			  edges[nbe].on = e;
-			  edges[nbe].adj[0] = PreviousNewEdge;
-			  if(PreviousNewEdge)
-			    PreviousNewEdge->adj[1] = &edges[nbe];
-#ifdef DRAWING1
-			  vb->Draw();
-			  edges[nbe].Draw();
-#endif
-			  PreviousNewEdge = edges + nbe;
-			  nbe++;
-                            //  remove DEBUG print to find a bug in examples++-tutorial/periodic4.edp
-                            // under windows
-                            //  after this the bug  disappear (version 3.30 on freefem++  23/04/2014  FH
-                            //  problem optimisation, bug in compiler, bug in freefem++
-                            
- 
-                         if(verbosity>999)
-                            {
-			  cout << " new points " << nbv-1 << " " << vb->r ;
-			  cout << " new edge " << nbe-1 << " " ;
-			  cout << va << vb <<  " kk0 = " << kk0 
-			       << " " << kk1 << " ss=" << ss ;
-			  cout << " " << sbb << endl;
-			  cout << "      " << aa << va->r << bb << vb->r 
-			       <<" length=" << Norme2(va->r-vb->r) << endl;
-			  cout << "      s " << s << " lstep= " << lstep 
-			       << " ledge= " << ledge 
-			       << " lcurve= " << lcurve << endl;
-                            }
-                            //  end of modification ... DF. Hecht 23/04/2014  FH
-
-			  va = vb;
-			}
-		      lcurve = lcurveb;
-		      e->SetMark();
-		      // cout << e-Gh.edges << ", " << k << " " 
-		      //      <<(*e)[k].r <<" " <<(*e)[1-k].r <<" " 
-		      //      << lcurve<< ";; " ;                          
-		      a=b;
-		      if (b->Required() ) break;
-		      int kprev=k;
-		      k = e->SensAdj[kprev];// next vertices
-		      e = e->Adj[kprev];
-		      assert(e);
-		    }// for(;;)
-		  vb = b->to;
-		  //            cout << endl;
-		  NbEdgeCurve = Max((Int4) (lcurve +0.5), (Int4) 1);
-		  NbNewPoints = NbEdgeCurve-1;
-		  if(!kstep)
-		    { NbVerticesOnGeomEdge0 += NbNewPoints;
-		    NbOfCurves++;}
-		  
-		  nbvend=nbv+NbNewPoints; 
-		  
-		  lstep = lcurve / NbEdgeCurve;
-		  //   cout <<"lstep " << lstep << " lcurve " 
-		  //    << lcurve << " NbEdgeCurve " << NbEdgeCurve << " " <<NbVerticesOnGeomEdge0<<" " <<NbVerticesOnGeomEdge<<" step =" <<step<<  endl;
-		} 
-	      // end of curve --
-	      if (edges) { // last edges of the curves 
-		edges[nbe].v[0]=va;
-		edges[nbe].v[1]=vb;
-		edges[nbe].ref = e->ref;
-		edges[nbe].on = e;
-		edges[nbe].adj[0] = PreviousNewEdge;
-		edges[nbe].adj[1] = 0;
-		if(PreviousNewEdge)
-		  PreviousNewEdge->adj[1] = & edges[nbe];
-		
-		
-#ifdef DRAWING1
-		edges[nbe].Draw();
-#endif
-		nbe++;}
-	      else
-		nbe += NbEdgeCurve;
-	    } // end on  curve ---
-	} // if (edges[i][j].Corner())  
-    } // for (i=0;i<nbe;i++)
-    if(!step) {
-     // cout << "edges " << edges << " VerticesOnGeomEdge " <<VerticesOnGeomEdge << endl;
-      assert(!edges);
-      assert(!VerticesOnGeomEdge);
-      edges = new Edge[nbex=nbe];
-      if(NbVerticesOnGeomEdge0)
-	VerticesOnGeomEdge = new VertexOnGeom[NbVerticesOnGeomEdge0];
-      assert(edges);
-      assert(VerticesOnGeomEdge || NbVerticesOnGeomEdge0 ==0);
-        // do the vertex on a geometrical vertex
-       NbVerticesOnGeomEdge0 = NbVerticesOnGeomEdge;       
-     }
-     else 
-       assert(NbVerticesOnGeomEdge == NbVerticesOnGeomEdge0);
-    //     cout << " Nb of Curves = " << NbOfCurves << "nbe = " << nbe 
-    //	  << "== " << nbex << "  nbv = " << nbv <<  endl;
-    assert(nbex=nbe);
-   } // for (step=0;step<2;step++)
-
-#ifdef DRAWING1
-  reffecran();
-  InitDraw();
-  Draw();
-  inquire();
-#endif
- 
-  Insert();
-  ForceBoundary();
-  FindSubDomain();
-
-#ifdef DRAWING1
-  reffecran();
-  Draw();
-  inquire();
-#endif
-   // NewPointsOld(*this) ;
-    NewPoints(*this,0) ;
-  CurrentTh = 0;
-}
-
-Edge** Triangles::MakeGeometricalEdgeToEdge()
- {
-  assert(Gh.nbe);
-  Edge **e= new Edge* [Gh.nbe];
-  
-  Int4 i;
-  for ( i=0;i<Gh.nbe ; i++)
-    e[i]=NULL;
-  for ( i=0;i<nbe ; i++) 
-    { 
-      Edge * ei = edges+i;
-      GeometricalEdge *on = ei->on; 
-      e[Gh.Number(on)] = ei;    
-    }
-  for ( i=0;i<nbe ; i++) 
-    for (int ii=0;ii<2;ii++) { 
-       Edge * ei = edges+i;
-       GeometricalEdge *on = ei->on;
-      int j= ii;
-      while (!(*on)[j].Required()) { 
-	//	cout << i << " " << ii << " j= " << j << " curve = " 
-	//           <<  on->CurveNumber << "  " << Gh.Number(on) << " on " << j 
-	//   << " s0 " << Gh.Number( (*on)[0]) << " s1  " << Gh.Number( (*on)[1]) 
-	//   << " ->  " ;
-       Adj(on,j); // next geom edge
-       j=1-j;
-       //       cout << Gh.Number(on) << "  " << j  << " e[ON] =  " <<  e[Gh.Number(on)] 
-       //    << " s0 " << Gh.Number( (*on)[0]) << " s1  " << Gh.Number( (*on)[1]) << endl; 
-       if (e[Gh.Number(on)])  break; // optimisation     
-       e[Gh.Number(on)] = ei; 
-       }
-   }
-
-  int kk=0;
-     for ( i=0;i<Gh.nbe ; i++)
-       if (!e[i]) 
-	 if(kk++<10) {
-	   cerr << " Bug -- the geometrical edge " << i << " is on no edge curve = " << Gh.edges[i].CurveNumber 
-		<< " s0 " << Gh.Number( Gh.edges[i][0]) << " s1  " << Gh.Number( Gh.edges[i][1]) << endl; 
-	 //	 assert( e[i]);
-       }
-  if(kk) MeshError(997,this);
-
-  return e;
- }
-
-<<<<<<< HEAD
-void Triangles::clear()
-=======
-Triangles::~Triangles() 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  assert(NbRef<=0);
-  if (CurrentTh == this) CurrentTh=0;
-  if(verbosity>10)
-    cout << " ~Triangles "<< this  <<" "<< identity << endl;
-  if(vertices)  delete [] vertices;
-  if(edges)     delete [] edges;
-  if(triangles) delete [] triangles;
-  if(quadtree)  delete  quadtree;
-  if(ordre)     delete [] ordre;
-  if( subdomains) delete []  subdomains;
-  if (VerticesOnGeomEdge) delete [] VerticesOnGeomEdge;
-  if (VerticesOnGeomVertex) delete [] VerticesOnGeomVertex;
-  if (name) delete [] name;
-  if (identity) delete [] identity;
-  if (VertexOnBThVertex) delete [] VertexOnBThVertex;
-  if (VertexOnBThEdge) delete [] VertexOnBThEdge;
-  
-  if (&Gh) 
-    {
-      if (Gh.NbRef>0) Gh.NbRef--;
-      else if (Gh.NbRef==0) delete &Gh;
-    }
-  if (&BTh && (&BTh != this))
-    {
-      if (BTh.NbRef>0) BTh.NbRef--;
-      else if (BTh.NbRef==0) delete &BTh;
-    }
-  PreInit(0); // set all to zero 
-  
-}
-
-void Triangles::SetIntCoor(const char * strfrom)
-{
-    pmin =  vertices[0].r;
-    pmax =  vertices[0].r;
-
-    // recherche des extrema des vertices pmin,pmax
-    Int4 i;
-    for (i=0;i<nbv;i++) {
-      pmin.x = Min(pmin.x,vertices[i].r.x);
-      pmin.y = Min(pmin.y,vertices[i].r.y);
-      pmax.x = Max(pmax.x,vertices[i].r.x);
-      pmax.y = Max(pmax.y,vertices[i].r.y);
-    }
-    R2 DD = (pmax-pmin)*0.05;
-    pmin = pmin-DD;
-    pmax = pmax+DD; 
-    coefIcoor= (MaxICoor)/(Max(pmax.x-pmin.x,pmax.y-pmin.y));
-    assert(coefIcoor >0);
-
-    // generation of integer coord  
-    for (i=0;i<nbv;i++) {
-      vertices[i].i = toI2(vertices[i].r);    
-    }
-#ifdef DRAWING
-    xGrafCoef = coefIcoor;
-    yGrafCoef = coefIcoor;
-    xGrafOffSet = pmin.x;
-    yGrafOffSet = pmin.y;
-#ifdef DRAWING1
-    rattente(1);
-#endif
-#endif
-
-    // computation of the det 
-    int Nberr=0;
-    for (i=0;i<nbt;i++)
-      {
-	Vertex & v0 = triangles[i][0];
-	Vertex & v1 = triangles[i][1];
-	Vertex & v2 = triangles[i][2];
-      if ( &v0 && &v1 &&  &v2 ) // a good triangles;
-      {
-	triangles[i].det= det(v0,v1,v2);
-	if (triangles[i].det <=0 && Nberr++ <10)
-	  {
-	    if(Nberr==1)
-            { if (strfrom)
-		cerr << "+++ Fatal Error " << strfrom << "(SetInCoor)  Error :  area of Triangle < 0 " << endl; 
-	      else 
-                  cerr << "+++  Fatal Error Triangle (in SetInCoor) area of Triangle < 0" << endl;}
-	    cerr << " Triangle " << i << "  det  (I2) = " << triangles[i].det ;
-	    cerr << " (R2) " << Det(v1.r-v0.r,v2.r-v0.r);
-	    cerr << "; The 3  vertices " << endl;
-	    cerr << Number(v0) << " "  << Number(v1) << " " 
-		 << Number(v2) << " : " ;
-	    cerr << v0.r << v1.r << v2.r << " ; ";
-	    cerr << v0.i << v1.i << v2.i << endl;
-	  }
-      }
-    else
-      triangles[i].det= -1; // Null triangle; 
-      }
-    if (Nberr) MeshError(899,this);
-	
-}
-
-void Triangles::FillHoleInMesh() 
-{
-  Triangles * OldCurrentTh =CurrentTh;
-  CurrentTh=this;
-  //  Int4 NbTold = nbt;
-  // generation of the integer coor
-  {
- 
-    //  double coef = coefIcoor;
-    // recherche des extrema des vertices pmin,pmax
-    Int4 i;
-    if(verbosity>2)
-      cout << "  -- FillHoleInMesh: Nb of vertices =" << nbv 
-	   << " Pmin = "<< pmin << " Pmax = "<< pmax << endl;
-    
-    assert(ordre);
-    for (i=0;i<nbv;i++) 
-      ordre[i]= 0 ;
-    
-
-    NbSubDomains =0;
-    
-  // generation of the adjacence of the triangles
-    SetOfEdges4 * edge4= new SetOfEdges4(nbt*3,nbv);
-    Int4 * st = new Int4[nbt*3];
-    for (i=0;i<nbt*3;i++)
-      st[i]=-1;
-    Int4 kk =0;
-    for (i=0;i<nbe;i++)
-      kk += (i == edge4->addtrie(Number(edges[i][0]),Number(edges[i][1])));
-    if (kk != nbe)
-      { 
-	cerr << " Some Double edge in the mesh, the number is " << kk-nbe << endl;
-	MeshError(1002,this);
-      }
-    for (i=0;i<nbt;i++)
-      for (int j=0;j<3;j++)
-	{
-	  // Int4 i0,i1;
-	  Int4 k =edge4->addtrie(Number(triangles[i][VerticesOfTriangularEdge[j][0]]),
-				 Number(triangles[i][VerticesOfTriangularEdge[j][1]]));
-	  Int4 invisible = triangles[i].Hidden(j);
-	  if(st[k]==-1)
-	    st[k]=3*i+j;
-	  else if(st[k]>=0) {
-	    assert( ! triangles[i].TriangleAdj(j) && !triangles[st[k] / 3].TriangleAdj((int) (st[k]%3)));
-	    
-	    triangles[i].SetAdj2(j,triangles + st[k] / 3,(int) (st[k]%3));
-	    if (invisible)  triangles[i].SetHidden(j);
-	    if (k<nbe) {
-	      triangles[i].SetLocked(j);
-	    }
-	    st[k]=-2-st[k]; }
-	  else {
-	    cerr << " The edge (" 
-	     << Number(triangles[i][VerticesOfTriangularEdge[j][0]])
-		 << " , " 
-		 << Number(triangles[i][VerticesOfTriangularEdge[j][1]])
-		 << " ) is in more than 2 triangles " <<k <<endl;
-	    cerr << " Edge " << j << " Of Triangle " << i << endl;
-	    cerr << " Edge " << (-st[k]+2)%3 << " Of Triangle " << (-st[k]+2)/3  << endl;
-	    cerr << " Edge " << triangles[(-st[k]+2)/3].NuEdgeTriangleAdj((int)((-st[k]+2)%3))
-		 << " Of Triangle " <<  Number(triangles[(-st[k]+2)/3].TriangleAdj((int)((-st[k]+2)%3))) << endl;
-	    MeshError(9999,this);}	
-
-
-	}
-    if(verbosity>5) {
-      cout << "    On Mesh " << name << endl;
-      cout << "    - The number of Vertices  = " << nbv << endl;
-      cout << "    - The number of Triangles = " << nbt << endl;
-      cout << "    - The number of given edge = " << nbe << endl;
-      cout << "    - The number of all edges = " << edge4->nb() << endl;
-      cout << "    - The Euler number = 1-Nb Of Hole = " << nbt-edge4->nb()+nbv << endl; }
-    
-    
-    // check the consistant of edge[].adj and the geometrical required  vertex
-     Int4 k=0;
-     for (i=0;i<edge4->nb();i++)
-       if (st[i] >=0) // edge alone 
-       {
-           if (i < nbe)
-	   {
-	     Int4 i0=edge4->i(i);ordre[i0] = vertices+i0;
-	     Int4 i1=edge4->j(i);ordre[i1] = vertices+i1;
-	   }
-     	 else {
-	   k++;
-	   if (verbosity>20 && k <20) 
-	     {
-	     Int4 i0=edge4->i(i);
-	     Int4 i1=edge4->j(i);
-	     cerr << " Lose boundary edges " << i << " : " << i0 << " " << i1 << endl;
-	     }
-	 }
-       }
-     	 
-      if(k != 0) {
-	if (verbosity>20)
-	  {
-	    cout << " The given edge are " << endl;
-	      for (int i=0;i< nbe;i++)
-		cout <<  " Edge " << i << " : " <<  Number(edges[i][0]) << " " <<  Number(edges[i][1]) 
-		     << " " << edges[i].ref << endl; 
-	  }
-	cerr << k << " boundary edges  are not defined as edges " << endl;
-	MeshError(9998,this);
-      }
-      // generation of the mesh with boundary points   
-      Int4 nbvb = 0;
-      for (i=0;i<nbv;i++)
-	{ 
-	  vertices[i].t=0;
-	  vertices[i].vint=0;
-	if (ordre[i]) 
-	  ordre[nbvb++] = ordre[i];
-	}
-
-      Triangle *savetriangles= triangles;
-      Int4 savenbt=nbt;
-      Int4 savenbtx=nbtx;
-      SubDomain * savesubdomains = subdomains;
-      subdomains = 0;
-
-      Int4  Nbtriafillhole = 2*nbvb;
-      Triangle * triafillhole =new Triangle[Nbtriafillhole];
-      if (verbosity>9)
-	cout << " Nbtriafillhole triafillhole*" << triafillhole << endl; 
-      triangles =  triafillhole;
-
-      nbt=2;
-      nbtx= Nbtriafillhole;
-      
-	for (i=2 ; det( ordre[0]->i, ordre[1]->i, ordre[i]->i ) == 0;) 
-	  if  ( ++i >= nbvb) {
-	    cerr << "FillHoleInMesh: All the vertices are aline " << nbvb << endl;
-	    MeshError(998,this); }
-	Exchange( ordre[2], ordre[i]);
-
-	Vertex *  v0=ordre[0], *v1=ordre[1];
-
-
-	triangles[0](0) = 0; // sommet pour infini 
-	triangles[0](1) = v0;
-	triangles[0](2) = v1;
-	
-	triangles[1](0) = 0;// sommet pour infini 
-	triangles[1](2) = v0;
-	triangles[1](1) = v1;
-	const int e0 = OppositeEdge[0];
-	const int e1 = NextEdge[e0];
-	const int e2 = PreviousEdge[e0];
-	triangles[0].SetAdj2(e0, &triangles[1] ,e0);
-	triangles[0].SetAdj2(e1, &triangles[1] ,e2);
-	triangles[0].SetAdj2(e2, &triangles[1] ,e1);
-	
-	triangles[0].det = -1;  // faux triangles
-	triangles[1].det = -1;  // faux triangles
-	
-	triangles[0].SetTriangleContainingTheVertex();
-	triangles[1].SetTriangleContainingTheVertex();
-	
-	triangles[0].link=&triangles[1];
-	triangles[1].link=&triangles[0];
-	
-#ifdef DEBUG 
-	triangles[0].check();
-	triangles[1].check();
-#endif  
-	//  nbtf = 2;
-	if (  !quadtree ) 
-	   delete  quadtree; // ->ReInitialise();
-	
-	  quadtree = new QuadTree(this,0);
-	quadtree->Add(*v0);
-	quadtree->Add(*v1);
-	
-	// on ajoute les sommets un a un 
-	Int4 NbSwap=0;
-	for (Int4 icount=2; icount<nbvb; icount++) {
-	  
-	  Vertex *vi  = ordre[icount];
-	  //	  cout << " Add vertex " <<  Number(vi) << endl;
-	  Icoor2 dete[3];
-	  Triangle *tcvi = FindTriangleContening(vi->i,dete);
-	  quadtree->Add(*vi); 
-	  Add(*vi,tcvi,dete);
-	  NbSwap += vi->Optim(1,1);
-	  
-#ifdef DRAWING2
-	  cout << Number(vi) << " " <<  NbSwap <<  endl;
-	reffecran();
-	Draw();
-	vi->Draw();
-	inquire();
-#endif
-	}// end loop on  icount	
-#ifdef DRAWING1
-	inquire();
-#endif
-	
-	//Int4 nbtfillhole = nbt;
-	 // inforce the boundary 
-	 TriangleAdjacent ta(0,0);
-	 Int4 nbloss = 0,knbe=0;
-	 for ( i = 0; i < nbe; i++) 
-	  if (st[i] >=0)  // edge alone => on border ...  FH oct 2009
-	   {
-	     Vertex & a=edges[i][0], & b =    edges[i][1];
-	     if (a.t && b.t) // le bug est la si maillage avec des bod non raffine 1.
-	       {
-		 knbe++;
-		 if (ForceEdge(a,b,ta)<0)
-		   nbloss++;
-	       }
-	   }
-	 if(nbloss)
-	   {
-	     cerr << " we loss some  " << nbloss << " "  << " edges other " << knbe << endl;
-	     MeshError(1100,this);
-	   }
-	 FindSubDomain(1);
-         // remove all the hole 
-	 // remove all the good sub domain
-	 Int4 krm =0;
-	 for (i=0;i<nbt;i++)
-	   if (triangles[i].link) // remove triangles
-	     {
-	       krm++;
-	       for (int j=0;j<3;j++)
-		 {
-		   TriangleAdjacent ta =  triangles[i].Adj(j);
-		   Triangle & tta = * (Triangle *) ta;
-		   if(! tta.link) // edge between remove and not remove 
-		     { // change the link of ta;
-		       int ja = ta;
-		       Vertex *v0= ta.EdgeVertex(0);
-		       Vertex *v1= ta.EdgeVertex(1);
-		       Int4 k =edge4->addtrie(v0?Number(v0):nbv,v1? Number(v1):nbv);
-		       assert(st[k] >=0); 
-		       tta.SetAdj2(ja,savetriangles + st[k] / 3,(int) (st[k]%3));
-		       ta.SetLock();
-		       st[k]=-2-st[k]; 
-		     }
-		 }
-	     }
-	 Int4 NbTfillHoll =0;
-	 for (i=0;i<nbt;i++)
-	   if (triangles[i].link) {
-	     triangles[i]=Triangle((Vertex *) NULL,(Vertex *) NULL,(Vertex *) NULL);
-	     triangles[i].color=-1;
-	   }
-	   else
-	     {
-	      triangles[i].color= savenbt+ NbTfillHoll++;
-#ifdef DEBUG 
-	     triangles[i].check();
-#endif
-      }
-	 // cout <<      savenbt+NbTfillHoll << " " <<  savenbtx  << endl;
-     assert(savenbt+NbTfillHoll <= savenbtx );
-     // copy of the outside triangles in saveTriangles 
-     for (i=0;i<nbt;i++)
-       if(triangles[i].color>=0) 
-	 {
-          savetriangles[savenbt]=triangles[i];
-	  savetriangles[savenbt].link=0;
-	  savenbt++;
-	 }
-     // gestion of the adj
-      k =0;
-      Triangle * tmax = triangles + nbt;
-      for (i=0;i<savenbt;i++)  
-	{ 
-	  Triangle & ti = savetriangles[i];
-	  for (int j=0;j<3;j++)
-	    {
-	      Triangle * ta = ti.TriangleAdj(j);
-	      int aa = ti.NuEdgeTriangleAdj(j);
-	      int lck = ti.Locked(j);
-	      if (!ta) k++; // bug 
-	      else if ( ta >= triangles && ta < tmax) 
-		{
-		  ta= savetriangles + ta->color;
-		  ti.SetAdj2(j,ta,aa);
-		  if(lck) ti.SetLocked(j);
-		}
-	    }
-	}
-     //	 OutSidesTriangles = triangles;
-      //	Int4 NbOutSidesTriangles = nbt;
-	 
-	 // restore triangles;
-	 nbt=savenbt;
-	 nbtx=savenbtx;
-	 delete [] triangles;
-	 delete [] subdomains;
-	 triangles = savetriangles;
-	 subdomains = savesubdomains;
-	 //	 cout <<  triangles << " <> " << OutSidesTriangles << endl; 
-	     /*	 k=0;
-	 for (i=0;i<nbt;i++)
-	   for (int j=0;j<3;j++)
-	     if (!triangles[i].TriangleAdj(j))
-	     k++;
-	     */
-	 if (k) {
-	   cerr << "Error Nb of triangles edge alone = " << k << endl;
-	   MeshError(9997,this);
-	 }
-	 FindSubDomain();
-	 // cout << " NbTOld = " << NbTold << " ==  " << nbt - NbOutT << " " << nbt << endl;
-  
-    // 
-
-    delete edge4;
-    delete [] st;
-    for (i=0;i<nbv;i++)
-      quadtree->Add(vertices[i]);
-    
-    SetVertexFieldOn();
-
-    for (i=0;i<nbe;i++)
-      if(edges[i].on) 
-	for(int j=0;j<2;j++)
-	  if (!edges[i].adj[j])
-	    if(!edges[i][j].on->IsRequiredVertex()) {
-	      cerr << " Erreur adj et sommet requis edges [" << i <<  "][ " << j << "]= "
-		   <<  Number(edges[i][j]) << " : "  << " on = " << Gh.Number(edges[i].on) ;
-	      if (edges[i][j].on->OnGeomVertex())
-		cerr << " vertex " << Gh.Number(edges[i][j].on->gv);
-	      else if (edges[i][j].on->OnGeomEdge())
-		cerr << "Edges " << Gh.Number(edges[i][j].on->ge);
-	      else
-		cerr << " = " << edges[i][j].on ;
-	      cerr << endl;
-	  }
-    
-#ifdef DRAWING1
-    InitDraw();
-#endif
-    
-  }
-  CurrentTh=OldCurrentTh;
-}
-
-Triangles::Triangles(Triangles & Th,Geometry * pGh,Triangles * pBth,Int4 nbvxx) // COPY OPERATOR
-: Gh(*(pGh?pGh:&Th.Gh)), BTh(*(pBth?pBth:this))
-{
-  Gh.NbRef++;
-  nbvxx = Max(nbvxx,Th.nbv); 
-  Int4 i;
-  // do all the allocation to be sure all the pointer existe
-  
-  char * cname = 0;
-  if (Th.name) 
-    {
-      cname = new char[strlen(Th.name)+1];
-      strcpy(cname,Th.name);
-    }
-  PreInit(nbvxx,cname);// to make the allocation 
-  // copy of triangles
-  nt=Th.nt;
-  nbv = Th.nbv;
-  nbt = Th.nbt;
-  nbiv = Th.nbiv;
-  nbe = Th.nbe;
-  NbSubDomains = Th.NbSubDomains;
-  NbOutT = Th.NbOutT;
-  NbOfQuad =  Th.NbOfQuad ;
-  NbOfSwapTriangle =0;
-  NbVerticesOnGeomVertex = Th.NbVerticesOnGeomVertex;
-  if(NbVerticesOnGeomVertex)
-    VerticesOnGeomVertex = new VertexOnGeom[NbVerticesOnGeomVertex];
-  NbVerticesOnGeomEdge = Th.NbVerticesOnGeomEdge;
-  if (NbVerticesOnGeomEdge)
-     VerticesOnGeomEdge = new VertexOnGeom[NbVerticesOnGeomEdge] ;
-  if (& BTh == & Th.BTh) // same back ground 
-    {
-      BTh.NbRef++;
-      NbVertexOnBThVertex = Th.NbVertexOnBThVertex;
-      if(NbVertexOnBThVertex)
-	VertexOnBThVertex = new VertexOnVertex[NbVertexOnBThVertex];
-      NbVertexOnBThEdge = Th.NbVertexOnBThEdge;
-      if(NbVertexOnBThEdge)
-	VertexOnBThEdge = new VertexOnEdge[NbVertexOnBThEdge];
-    }
-   else 
-     { // no add on back ground mesh 
-       BTh.NbRef++;
-       NbVertexOnBThVertex=0;
-       VertexOnBThVertex=0;
-       NbVertexOnBThEdge=0;
-       VertexOnBThEdge=0;
-       //       assert (& BTh == this); // --- a voir 
-		     
-    }
-
-
-  if(nbe)
-    edges = new Edge[nbe];
-  if(NbSubDomains)
-    subdomains = new SubDomain[NbSubDomains];
-  pmin = Th.pmin;
-  pmax = Th.pmax;
-  coefIcoor = Th.coefIcoor;
-  for(i=0;i<nbt;i++)
-     triangles[i].Set(Th.triangles[i],Th,*this);
-  for(i=0;i<nbe;i++)
-     edges[i].Set(Th,i,*this);
-  for(i=0;i<nbv;i++)
-     vertices[i].Set(Th.vertices[i],Th,*this);
-  for(i=0;i<NbSubDomains;i++)  
-    subdomains[i].Set(Th,i,*this);
-  for (i=0;i<NbVerticesOnGeomVertex;i++)
-    VerticesOnGeomVertex[i].Set(Th.VerticesOnGeomVertex[i],Th,*this);
-  for (i=0;i<NbVerticesOnGeomEdge;i++)
-    VerticesOnGeomEdge[i].Set(Th.VerticesOnGeomEdge[i],Th,*this);
-  quadtree=0;
-
-
-  //  assert(!OutSidesTriangles);
-}
-
-/** -- old with a bug we loss some time last swap
-
-Int4  Triangle::Optim(Int2 i,int koption)
-{
-  // turn in the positif sens around vertex s  
-    Int4 NbSwap =0;
-   Vertex * s  = ns[i];
-   Triangle * tbegin=0 , *t = this , *ttc;
-   int k=0,j = EdgesVertexTriangle[i][0],jc;
-  tbegin=t;
-  do {
-    k++; 
-#ifdef DEBUG
-    assert( s == & (*t)[VerticesOfTriangularEdge[j][1]] );
-#endif
-#ifdef DRAWING1 
-    t->Draw();
-    DrawMark( s->r);
-#endif
-     ttc =  t->at[j];
-     jc = NextEdge[t->aa[j]&3];
-     cout << *t << " " <<  VerticesOfTriangularEdge[j][1] << "\n\t try swap " << * ttc << " " << jc ;
-    while ( ttc->swap(jc,koption)) {
-      NbSwap++,assert(k++<20000);
-      ttc =  t->at[j];
-      jc = NextEdge[t->aa[j]&3];
-      cout << "\n\t s  " <<  *ttc << " " << jc << endl;
-    }
-    cout << endl;
-    t = ttc;
-    j = NextEdge[jc];
-    assert(k<20000);
-  } while ( (tbegin != t)); 
-  
-  return NbSwap;
-}
-*/
-Int4  Triangle::Optim(Int2 i,int koption)
-{
-  // turne around in positif sens
-  Int4 NbSwap =0;
-#ifdef DEBUG
-   Vertex * s  = ns[i];
-#endif
-   Triangle  *t = this;
-   int k=0,j =OppositeEdge[i];
-   int jp = PreviousEdge[j];
-   // initialise   tp, jp the previous triangle & edge
-   Triangle *tp= at[jp];
-   jp = aa[jp]&3;
-#ifdef DEBUG
-   assert(tp->at[jp] == this);
-#endif
-   do {
-#ifdef DEBUG
-    assert(k++<20000);
-    assert( s == & (*t)[OppositeVertex[j]] );
-#endif
-    //    cout << *t << " " <<  j  << "\n\t try swap " ;
-    while (t->swap(j,koption))
-      {
-	NbSwap++;
-	assert(k++<20000);
-	t=  tp->at[jp];      // set unchange t qnd j for previous triangles
-	j=  NextEdge[tp->aa[jp]&3];
-	//   cout << "\n\t s  " <<  *t << " " << j << endl;
-#ifdef DEBUG
-	assert( s == & (*t)[OppositeVertex[j]] );
-#endif
-      }
-    // end on this  Triangle 
-    tp = t;
-    jp = NextEdge[j];
-
-    t=  tp->at[jp];      // set unchange t qnd j for previous triangles
-    j=  NextEdge[tp->aa[jp]&3];
-
-   } while( t != this);
-   return NbSwap;
-}
-
- void Triangles::SmoothingVertex(int nbiter,Real8 omega )
-  { 
-  //  if quatree exist remove it end reconstruct
-    if (quadtree) delete quadtree;
-    quadtree=0;
-    ReMakeTriangleContainingTheVertex();
-    Triangle vide; // a triangle to mark the boundary vertex
-    Triangle   ** tstart= new Triangle* [nbv];
-    Int4 i,j,k;
-    //   attention si Background == Triangle alors on ne peut pas utiliser la rechech rapide 
-    if ( this == & BTh)
-     for ( i=0;i<nbv;i++)
-      tstart[i]=vertices[i].t;     
-    else 
-     for ( i=0;i<nbv;i++)
-      tstart[i]=0;
-    for ( j=0;j<NbVerticesOnGeomVertex;j++ ) 
-      tstart[ Number(VerticesOnGeomVertex[j].mv)]=&vide;
-    for ( k=0;k<NbVerticesOnGeomEdge;k++ ) 
-      tstart[ Number(VerticesOnGeomEdge[k].mv)]=&vide;
-    if(verbosity>2) 
-      cout << "  -- SmoothingVertex: nb Iteration = " << nbiter << " Omega = " << omega << endl;
-    for (k=0;k<nbiter;k++)
-     {
-      Int4 i,NbSwap =0;
-      Real8 delta =0;
-      for ( i=0;i<nbv;i++)
-        if (tstart[i] != &vide) // not a boundary vertex 
-	  delta=Max(delta,vertices[i].Smoothing(*this,BTh,tstart[i],omega));
-      if (!NbOfQuad)
-      for ( i=0;i<nbv;i++)
-        if (tstart[i] != &vide) // not a boundary vertex 
-	  NbSwap += vertices[i].Optim(1);
-       if (verbosity>3)
-	 cout << "    Move max = " <<  sqrt(delta) << " iteration = " 
-	      << k << " Nb of Swap = " << NbSwap << endl;
-       }
-
-    delete [] tstart;
-    if (quadtree) quadtree= new QuadTree(this);
-  }
-void Triangles::MakeQuadTree()
-{  
-  if(verbosity>8)
-    cout << "      MakeQuadTree" << endl;
-  if (  !quadtree )  quadtree = new QuadTree(this);
-
-  
-#ifdef DRAWING1
-  quadtree->Draw();
-  rattente(1);
-  reffecran();
-  quadtree->Draw();
-  rattente(1);
-#endif
-  
-}
-void  Triangles::ShowRegulaty() const// Add FH avril 2007 
-{
-   const  Real8  sqrt32=sqrt(3.)*0.5; 
-   const Real8  aireKh=sqrt32*0.5;
-   D2  Beq(1,0),Heq(0.5,sqrt32);
-   D2xD2 Br(D2xD2(Beq,Heq).t());
-   D2xD2 B1r(Br.inv());
-   /*   D2xD2 BB = Br.t()*Br;
-    cout << " BB = " << BB << " " << Br*B1r <<  endl; 
-    MetricAnIso MMM(BB.x.x,BB.x.y,BB.y.y);
-    MatVVP2x2 VMM(MMM);
-    cout << " " << VMM.lambda1 << " " << VMM.lambda2 <<  endl; 
-   */
-    double gammamn=1e100,hmin=1e100;
-    double gammamx=0,hmax=0;
-    double beta=1e100;
-    double beta0=0;
-    double  alpha2=0;
-    double area=0,Marea=0;
-   // Real8 cf= Real8(coefIcoor);
-   // Real8 cf2= 6.*cf*cf;
-    int nt=0;
-    for (int it=0;it<nbt;it++)
-      if ( triangles[it].link) 
-	{
-	  nt++;
-	  Triangle &K=triangles[it];
-	  Real8  area3= Area2((R2) K[0],(R2) K[1],(R2) K[2])/6.;
-	  area+= area3;
-	  D2xD2 B_Kt(K[0],K[1],K[2]);
-	  D2xD2 B_K(B_Kt.t());
-	  D2xD2 B1K = Br*B_K.inv();
-	  D2xD2 BK =  B_K*B1r;
-	  D2xD2 B1B1 = B1K.t()*B1K;
-	  MetricAnIso MK(B1B1.x.x,B1B1.x.y,B1B1.y.y);
-	  MatVVP2x2 VMK(MK);
-	  alpha2 = Max(alpha2,Max(VMK.lambda1/VMK.lambda2,VMK.lambda2/VMK.lambda1));
-	  // cout << B_K << " * " << B1r << " == " << BK << " " << B_K*B_K.inv() << endl;
-	  Real8 betaK=0;
-	  
-	  for (int j=0;j<3;j++)
-	    {
-	      Real8 he= Norme2(R2(K[j],K[(j+1)%3]));
-	      hmin=Min(hmin,he);
-	      hmax=Max(hmax,he);
-	      Vertex & v=K[j];
-	      D2xD2 M((MetricAnIso)v);
-	      betaK += sqrt(M.det());
-	      
-	      D2xD2 BMB = BK.t()*M*BK;
-	      MetricAnIso M1(BMB.x.x,BMB.x.y,BMB.y.y);
-	      MatVVP2x2 VM1(M1);
-	      //cout << B_K <<" " <<  M << " " <<  he << " " << BMB << " " << VM1.lambda1 << " " << VM1.lambda2<<   endl; 
-	      gammamn=Min3(gammamn,VM1.lambda1,VM1.lambda2);
-	      gammamx=Max3(gammamx,VM1.lambda1,VM1.lambda2);		
-	    }
-	  betaK *= area3;//  1/2 (somme sqrt(det))* area(K)
-	  Marea+= betaK;
-	  // cout << betaK << " " << area3 << " " << beta << " " << beta0 << " " << area3*3*3*3 <<endl;
-	  beta=min(beta,betaK);
-	  beta0=max(beta0,betaK);
-	}   
-    area*=3; 
-    gammamn=sqrt(gammamn);
-    gammamx=sqrt(gammamx);    
-    cout << "  -- adaptmesh Regulary:  Nb triangles " << nt <<  " , h  min " << hmin  << " , h max " << hmax << endl;  
-    cout << "     area =  " << area << " , M area = " << Marea << " , M area/( |Khat| nt) " << Marea/(aireKh*nt) << endl; 
-    cout << "     infiny-regulaty:  min " << gammamn << "  max " << gammamx << endl;  
-    cout << "     anisomax  "<< sqrt(alpha2) << ", beta max = " << 1./sqrt(beta/aireKh) 
-	 << " min  "<<  1./sqrt(beta0/aireKh)  << endl;
-}
-void  Triangles::ShowHistogram() const
- {
-
-    const Int4 kmax=10;
-    const Real8 llmin = 0.5,llmax=2;
-     const Real8 lmin=log(llmin),lmax=log(llmax),delta= kmax/(lmax-lmin);
-    Int4 histo[kmax+1];
-    Int4 i,it,k, nbedges =0;
-    for (i=0;i<=kmax;i++) histo[i]=0;
-    for (it=0;it<nbt;it++)
-	if ( triangles[it].link) 
-	{
-	     
-	    for (int j=0;j<3;j++)
-	    {
-		Triangle *ta = triangles[it].TriangleAdj(j);
-		if ( !ta || !ta->link || Number(ta) >= it) 
-		{ 
-		    Vertex & vP = triangles[it][VerticesOfTriangularEdge[j][0]];
-		    Vertex & vQ = triangles[it][VerticesOfTriangularEdge[j][1]];
-		    if ( !& vP || !&vQ) continue;
-		    R2 PQ = vQ.r - vP.r;
-		    Real8 l = log(LengthInterpole(vP,vQ,PQ));
-#ifdef DRAWING2             
-		    if (l>1.4)  {
-			penthickness(3);
-			vP.MoveTo(),vQ.LineTo();
-			penthickness(1);
-			cout << "   l = " << l << Number(vP) << " edge = " << Number(vQ) << endl;
-		    }
-#endif             
-		    nbedges++;
-		    k = (int) ((l - lmin)*delta);
-		    k = Min(Max(k,0L),kmax);
-		    histo[k]++;
-		}
-	    }
-	}  
-	    cout << "  -- Histogram of the unit mesh,  nb of edges" << nbedges << endl <<endl;
- 
-    cout << "        length of edge in   | % of edge  | Nb of edges " << endl;
-    cout << "        ------------------- | ---------- | ----------- " << endl;
-    for   (i=0;i<=kmax;i++)
-      { 
-       cout << "    " ;
-        cout.width(10);
-        if (i==0) cout  << " 0 " ;
-        else cout  << exp(lmin+i/delta) ;
-        cout.width(); cout << "," ;
-        cout.width(10);
-        if (i==kmax) cout << " +infty " ;
-        else cout  << exp(lmin+(i+1)/delta) ;
-        cout.width();cout << "   |   " ;
-        
-       cout.precision(4);
-       cout.width(6);
-       cout <<  ((long)  ((10000.0 * histo[i])/ nbedges))/100.0 ;
-       cout.width();
-       cout.precision();
-       cout <<  "   |   " << histo[i] <<endl;
-      }
-    cout << "        ------------------- | ---------- | ----------- " << endl <<endl;
-    
- }
-
-int  Triangles::Crack()
-  { 
-    assert(NbCrackedEdges ==0 || NbCrackedVertices >0); 
-    for (int i=0;i<NbCrackedEdges;i++)
-       CrackedEdges[i].Crack();
-    return NbCrackedEdges;
-  }
-  
-int Triangles::UnCrack() 
-{ 
-  assert(NbCrackedEdges ==0 || NbCrackedVertices >0); 
-  for (int i=0;i<NbCrackedEdges;i++)
-    CrackedEdges[i].UnCrack();
-  return NbCrackedEdges;
-}
-
-int Triangles::CrackMesh()
-{
-    Triangles *CurrentThOld = CurrentTh;
-  //  computed the number of cracked edge
-  int i,k;
-  for (k=i=0;i<nbe;i++)
-    if(edges[i].on->Cracked()) k++;
-  if( k==0) return 0;
-    CurrentTh = this;
-  cout << " Nb of Cracked Edges = " << k << endl;
-  NbCrackedEdges =k;
-  CrackedEdges = new  CrackedEdge[k];
-  //  new edge
-  Edge * e = new Edge[ nbe + k];
-
-  // copy
-  for (i=0;i<nbe;i++) 
-    e[i] = edges[i];
-  delete edges;
-  edges = e;
-
-  const int  nbe0  = nbe;
-  for (k=i=0;i<nbe0;i++) // on double les arete cracked 
-    if(edges[i].on->Cracked())
-      {
-	e[nbe] = e[i];
-	//  return the edge 
-	e[nbe].v[0] =  e[i].v[1];
-	e[nbe].v[1] =  e[i].v[0];
-	e[nbe].on = e[i].on->link ; // fqux 
-	CrackedEdges[k++]=CrackedEdge(edges,i,nbe);
-	nbe++;
-      }
-  ReMakeTriangleContainingTheVertex() ; 
-  //  
-  int nbcrakev  =0;
-  Vertex *vlast = vertices + nbv;
-  Vertex *vend = vertices + nbvx; // end of array
-  for (int iv=0;iv<nbv;iv++) // vertex 
-    {
-      Vertex & v= vertices[iv];
-      Vertex * vv = & v;  
-      int kk=0; // nb cracked
-      int kc=0; 
-      int kkk =0; // nb triangle  with same number 
-      Triangle * tbegin = v.t;
-      int i  = v.vint;       
-      assert(tbegin && (i >= 0 ) && (i <3));
-      // turn around the vertex v
-      TriangleAdjacent ta(tbegin,EdgesVertexTriangle[i][0]);// previous edge
-      int k=0;
-      do {
-	int kv = VerticesOfTriangularEdge[ta][1];
-	k++; 
-	Triangle * tt (ta);
-	if ( ta.Cracked() ) 
-	  {   
-	    TriangleAdjacent tta=(ta.Adj());
-	    assert(tta.Cracked());
-	    if ( kk == 0) tbegin=ta,kkk=0;  //  begin by a cracked edge  => restart                
-	    if (  kkk ) { kc =1;vv = vlast++;  kkk = 0; } // new vertex if use 
-	    kk++;// number of cracked edge view                 
-	  }
-	if ( tt->link ) { // if good triangles store the value 
-	  int it = Number(tt);
-	  assert(it < nt);
-	  (*tt)(kv)= vv; //   Change the vertex of triangle 
-	  if(vv<vend) {*vv= v;vv->ReferenceNumber=iv;} // copy the vertex value + store the old vertex number in ref 
-	  //	  tt->SetTriangleContainingTheVertex();
-	  kkk++;
-	} else if (kk) { // crack + boundary 
-	  if (  kkk ) { kc =1;vv = vlast++;  kkk = 0; } // new vertex if use 
-	}
-	
-	ta = Next(ta).Adj(); 
-      } while ( (tbegin != ta)); 
-      assert(k);
-      if (kc)  nbcrakev++;
-    }
-  
-  if ( nbcrakev ) 
-      for (int iec =0;iec < NbCrackedEdges; iec ++)
-	  CrackedEdges[iec].Set();
-  
-  //  set the ref 
-  cout << " set the ref " <<  endl ;
-  NbCrackedVertices =   nbcrakev;
-  // int nbvo = nbv;
-  nbv = vlast - vertices;
-  int nbnewv =  nbv - nbv; // nb of new vrtices 
-  if (nbcrakev && verbosity > 1 )
-    cout << " Nb of craked vertices = " << nbcrakev << " Nb of created vertices " <<   nbnewv<< endl;
-  // all the new vertices are on geometry 
-  //  BOFBO--  A VOIR
-  if (nbnewv)
-    { // 
-      Int4 n = nbnewv+NbVerticesOnGeomVertex;
-      Int4 i,j,k;
-      VertexOnGeom * vog = new VertexOnGeom[n];
-      for ( i =0; i<NbVerticesOnGeomVertex;i++) 
-	vog[i]=VerticesOnGeomVertex[i];
-      delete [] VerticesOnGeomVertex;
-      VerticesOnGeomVertex = vog;
-      // loop on cracked edge 
-      Vertex * LastOld = vertices + nbv - nbnewv;
-      for (int iec =0;iec < NbCrackedEdges; iec ++)
-	for (k=0;k<2;k++)
-	  {
-	    Edge & e = *( k ? CrackedEdges[iec].a.edge : CrackedEdges[iec].b.edge);
-	    for (j=0;j<2;j++) 
-	      {
-		Vertex * v = e(j);
-		if ( v >=  LastOld)
-		  { // a new vertex 
-		    Int4 old = v->ReferenceNumber ; // the old same vertex 
-		    Int4 i  = ( v - LastOld);
-		    //  if the old is on vertex => warning
-		    // else the old is on edge => ok 
-		    vog[i] = vog[old];
-				//  		    vog[i].mv = v;
-				//g[i].ge = ;
-				//og[i].abcisse = ;
-		  }
-		
-	      }
-	  }
-
-	NbVerticesOnGeomVertex = n;
-  }
-  SetVertexFieldOn();
-
- 
-  if (vlast >= vend)
-    {  
-      cerr << " Not enougth vertices to crack the mesh we need " << nbv << " vertices " << endl;
-      MeshError(555,this);
-    }
-  cout << "  NbCrackedVertices " <<  NbCrackedVertices << endl;
-  CurrentTh = CurrentThOld;
-  return  NbCrackedVertices;
-}
-      
-Triangles::Triangles(const Triangles & Tho,const int *flag ,const int *bb)
-  : Gh(*(new Geometry())), BTh(*this)
-{ // truncature
-  // 
-  
-  char cname[] = "trunc";
-
-  int i,k,itadj;
-  int kt=0;
-  int * kk    = new int [Tho.nbv];
-  Int4 * reft = new Int4[Tho.nbt];
-  Int4 nbInT =    Tho.ConsRefTriangle(reft);
-  Int4 * refv = new Int4[Tho.nbv];
-
-  for (i=0;i<Tho.nbv;i++)
-    kk[i]=-1;
-  for (i=0;i<Tho.nbv;i++)
-    refv[i]=0;
-  int nbNewBedge =0;
-  //  int nbOldBedge =0;  
-  for (i=0;i<Tho.nbt;i++)
-    if(  reft[i] >=0 && flag[i]) 
-      {
-        const Triangle & t = Tho.triangles[i];
-        kt++;
-        kk[Tho.Number(t[0])]=1;
-        kk[Tho.Number(t[1])]=1;
-        kk[Tho.Number(t[2])]=1;
-        itadj=Tho.Number(t.TriangleAdj(0));
-        if (  reft[itadj] >=0 && !flag[itadj])
-          { nbNewBedge++;
-          refv[Tho.Number(t[VerticesOfTriangularEdge[0][0]])]=bb[i];
-          refv[Tho.Number(t[VerticesOfTriangularEdge[0][1]])]=bb[i];
-          }
-        itadj=Tho.Number(t.TriangleAdj(1));
-        if (  reft[itadj] >=0 && !flag[itadj])
-          { nbNewBedge++;
-          refv[Tho.Number(t[VerticesOfTriangularEdge[1][0]])]=bb[i];
-          refv[Tho.Number(t[VerticesOfTriangularEdge[1][1]])]=bb[i];}
-        itadj=Tho.Number(t.TriangleAdj(2));
-        if (  reft[itadj] >=0 && !flag[itadj])
-          { nbNewBedge++;
-          refv[Tho.Number(t[VerticesOfTriangularEdge[2][0]])]=bb[i];
-          refv[Tho.Number(t[VerticesOfTriangularEdge[2][1]])]=bb[i];}
-      }
-  k=0;
-  for (i=0;i<Tho.nbv;i++)
-    if (kk[i]>=0) 
-      kk[i]=k++;
-  cout << " number of vertices " << k << " remove = " << Tho.nbv - k << endl;
-  cout << " number of triangles " << kt << " remove = " << nbInT-kt << endl;
-  cout << " number of New boundary edge " << nbNewBedge << endl;
-  Int4 inbvx =k;
-  PreInit(inbvx,cname);
-  for (i=0;i<Tho.nbv;i++)
-    if (kk[i]>=0) 
-      {
-        vertices[nbv] = Tho.vertices[i];
-        if (!vertices[nbv].ref())
-          vertices[nbv].ReferenceNumber = refv[i];
-        nbv++;
-      }
-  assert(inbvx == nbv);
-  for (i=0;i<Tho.nbt;i++)
-    if(  reft[i] >=0 && flag[i]) 
-      {
-        const Triangle & t = Tho.triangles[i];
-        int i0 = Tho.Number(t[0]);
-        int i1 = Tho.Number(t[1]);
-        int i2 = Tho.Number(t[2]);
-        assert(i0>=0 && i1 >= 0 && i2  >= 0);
-        assert(i0<Tho.nbv && i1 <Tho.nbv && i2  <Tho.nbv);
-        // cout <<i<< " F" <<  flag[i] << " T " << nbt << "   = " <<  kk[i0] << " " << kk[i1] << " " << kk[i2] ;
-        // cout << " OT  " <<  i0 << " "  << i1 << " " << i2  << " " << reft[i] << endl;
-        triangles[nbt] = Triangle(this,kk[i0],kk[i1],kk[i2]);
-        triangles[nbt].color = Tho.subdomains[reft[i]].ref; 
-        nbt++;           
-      }
-  assert(kt==nbt);
-  if (nbt ==0 && nbv ==0) {
-    cout << "Error all triangles was remove " << endl;
-    MeshError(999,this);
-  }
-  delete [] kk;
-  delete [] reft;
-  delete [] refv;
-  double cutoffradian = 10.0/180.0*Pi;
-  ConsGeometry(cutoffradian);
-  Gh.AfterRead(); 
-  SetIntCoor();
-  FillHoleInMesh();
-   
-  assert(NbSubDomains);
-  assert(subdomains[0].head && subdomains[0].head->link);
-             
-}
-  
-Triangle * Triangles::FindTriangleContening(const I2 & B,Icoor2 dete[3], Triangle *tstart) const
-{ // in: B 
-  // out: t
-  // out : dete[3]
-  // t the triangle and s0,s1,s2 the 3 vertices of t
-  // in dete[3] = { det(B,s1,s2) , det(s0,B,s2), det(s0,s1,B)}
-  // with det(a,b,c ) = -1 if one of 3 vertices a,b,c is NULL 
-  Triangle * t=0;	
-  int j,jp,jn,jj;
-  if (tstart) 
-    t=tstart;
-  else 
-   {
-   assert(quadtree);
-   Vertex *a = quadtree->NearestVertex(B.x,B.y) ;
-  
-  if (! a || !a->t ) {
-    if (a) 
-      {cerr << " Attention PB TriangleConteningTheVertex  vertex number=" << Number(a) << endl;
-       cerr  << "We forget a call to ReMakeTriangleContainingTheVertex" << endl;}
-    cerr << " Pb with " << B << toR2(B) << endl;
-    MeshError(7777);
-  }
-  assert(a>= vertices && a < vertices+nbv);
-#ifdef DRAWING1 
-  a->Draw();
-#endif 
-  //  int k=0;
-   t = a->t;
-  assert(t>= triangles && t < triangles+nbt);
-   
-   }
-  Icoor2  detop ;
-  int kkkk =0; // number of test triangle 
-
-  while ( t->det < 0) 
-    { // the initial triangles is outside  
-      int k0=(*t)(0) ?  ((  (*t)(1) ? ( (*t)(2) ? -1 : 2) : 1  )) : 0;
-      assert(k0>=0); // k0 the NULL  vertex 
-      int k1=NextVertex[k0],k2=PreviousVertex[k0];
-      dete[k0]=det(B,(*t)[k1],(*t)[k2]);
-      dete[k1]=dete[k2]=-1;     
-      if (dete[k0] > 0) // outside B 
-        return t; 
-      t = t->TriangleAdj(OppositeEdge[k0]);
-      assert(kkkk++ < 2);
-    }
-
-  jj=0;
-  detop = det(*(*t)(VerticesOfTriangularEdge[jj][0]),*(*t)(VerticesOfTriangularEdge[jj][1]),B);
- 
-  while(t->det  > 0 ) 
-    { 
-      assert( kkkk++ < 2000 ); 
-      j= OppositeVertex[jj];
-      
-#ifdef DRAWING1
-      t->Draw();
-#endif 
-      dete[j] = detop;  //det(*b,*s1,*s2);
-      jn = NextVertex[j];
-      jp = PreviousVertex[j];
-      dete[jp]= det(*(*t)(j),*(*t)(jn),B);
-      dete[jn] = t->det-dete[j] -dete[jp];
-      
-#ifdef DEBUG
-      const Vertex * s0 = (*t)(0);
-      const Vertex * s1 = (*t)(1);
-      const Vertex * s2 = (*t)(2);
-      assert(dete[0] == det(B ,*s1,*s2));
-      assert(dete[1] == det(*s0,B ,*s2));
-      assert(dete[2] == det(*s0,*s1,B ));
-      assert(t->det== (dete[0] + dete[1] +dete[2]));
-#endif
-      // count the number k of  dete <0
-      int k=0,ii[3];
-      if (dete[0] < 0 ) ii[k++]=0; 
-      if (dete[1] < 0 ) ii[k++]=1;
-      if (dete[2] < 0 ) ii[k++]=2;
-      // 0 => ok
-      // 1 => go in way 1
-      // 2 => two way go in way 1 or 2 randomly
-      
-      if (k==0) 
-	break;
-      if (k == 2 && BinaryRand())
-	Exchange(ii[0],ii[1]);
-      assert ( k  < 3);
-      TriangleAdjacent t1 = t->Adj(jj=ii[0]);
-      if ((t1.det() < 0 ) && (k == 2))
-	t1 = t->Adj(jj=ii[1]);
-      t=t1;
-      j=t1;// for optimisation we now the -det[OppositeVertex[j]];
-      detop = -dete[OppositeVertex[jj]];
-      jj = j;
-    }
-  
-  if (t->det<0) // outside triangle 
-    dete[0]=dete[1]=dete[2]=-1,dete[OppositeVertex[jj]]=detop;
-  //  NbOfTriangleSearchFind += kkkk;  
-  return t;
-}
-
-}
-
diff --git a/src/bamglib/Mesh2.h.orig b/src/bamglib/Mesh2.h.orig
deleted file mode 100644
index 26000be..0000000
--- a/src/bamglib/Mesh2.h.orig
+++ /dev/null
@@ -1,1536 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <stdlib.h>
-#include <math.h>
-#include <limits.h>
-#include <time.h>
-#if  (defined(unix) || defined(__unix)) && !defined(__AIX)
-#define SYSTIMES
-#include <sys/times.h>
-#include <unistd.h>
-#endif
-#ifdef  DRAWING
-#include "rgraph.hpp"
-#endif
-
-extern long verbosity;
-extern int SHOW;
-#include "meshtype.h"
-
-#include "error.hpp"
-
-
-#include "R2.h"
-
-namespace bamg {
-
-
-
-const  double Pi =  3.14159265358979323846264338328;
-const  float fPi =  3.14159265358979323846264338328;
-
-
-class MeshIstream;
-class OFortranUnFormattedFile;
-class IFortranUnFormattedFile;
-
-extern int hinterpole;
-
-
-typedef P2<Icoor1,Icoor2> I2;
-
-inline int BinaryRand(){
-#ifdef RAND_MAX
- const long HalfRandMax = RAND_MAX/2;
- return rand() <HalfRandMax;
-#else
- return rand() & 16384; // 2^14 (for sun because RAND_MAX is not def in stdlib.h)
-#endif
-
-} 
-typedef P2<Real8,Real8> R2;
-typedef P2xP2<Int2,Int4> I2xI2;
-typedef P2<Real4,Real8> R2xR2;
-
-}
-
-#include "Metric.h"
-
-namespace bamg {
-inline float OppositeAngle(float a)
- {return a<0 ? fPi + a :a - fPi ;}
-inline double OppositeAngle(double a)
- {return a<0 ? Pi + a :a - Pi ;}
- 
-#ifdef DRAWING
-extern Real4  xGrafCoef,yGrafCoef,xGrafOffSet,yGrafOffSet;
-extern R2 GrafPMin,GrafPMax;
-extern Real8 Grafh;
-#endif
-
-Icoor2 inline det(const I2 &a,const I2 & b,const I2 &c)
-{
-    Icoor2 bax = b.x - a.x ,bay = b.y - a.y; 
-    Icoor2 cax = c.x - a.x ,cay = c.y - a.y; 
-  return  bax*cay - bay*cax;}
-
-
-
-// def de numerotation dans un triangles 
-static const Int2 VerticesOfTriangularEdge[3][2] = {{1,2},{2,0},{0,1}};
-static const Int2 EdgesVertexTriangle[3][2] = {{1,2},{2,0},{0,1}};
-static const Int2 OppositeVertex[3] = {0,1,2};
-static const Int2 OppositeEdge[3] =  {0,1,2};
-static const Int2 NextEdge[3] = {1,2,0};
-static const Int2 PreviousEdge[3] = {2,0,1};
-static const Int2 NextVertex[3] = {1,2,0};
-static const Int2 PreviousVertex[3] = {2,0,1};
-
-Int4 AGoodNumberPrimeWith(Int4 n);
-
-// remark all the angle are in radian beetwen [-Pi,Pi]
-
-
-class Geometry;
-//static Geometry *NULLGeometry=0;
-class Triangles;
-class Triangle;
-class QuadTree;
-class GeometricalEdge;
-class VertexOnGeom;
-class VertexOnEdge;
-/////////////////////////////////////////////////////////////////////////////////////
-const int IsVertexOnGeom = 8;
-const int IsVertexOnVertex = 16;
-const int IsVertexOnEdge = 32;
-/////////////////////////////////////////////////////////////////////////////////////
-#ifndef  NOTFREEFEM
-class ErrorMesh : public Error
-{  
-public:
-<<<<<<< HEAD
-    const Triangles *Th;
-    ErrorMesh(const char * Text,int l,const Triangles * TTh=0, const char *t2="") :
-=======
-    Triangles *Th;
-    ErrorMesh(const char * Text,int l,Triangles * TTh=0, const char *t2="") :
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	Error(MESH_ERROR,"Meshing error: ",Text,"\n number : ",l,", ",t2),Th(TTh)  {}
-};
-#endif
-
-class Direction { //   
-  private:
-  Icoor1 dir;
-  public:
-  Direction(): dir(MaxICoor){}; //  no direction set
-  Direction(Icoor1 i,Icoor1 j) { Icoor2  n2 = 2*(Abs(i)+Abs(j));  
-                                 Icoor2 r = MaxICoor* (Icoor2) i;
-                                 Icoor1 r1 = (Icoor1) (2*(r/ n2)); // odd number 
-                                 dir = (j>0) ? r1 : r1+1; //  odd -> j>0 even -> j<0
-                               }
-  int sens(    Icoor1 i,Icoor1 j) { int r =1; 
-                                   if (dir!= MaxICoor) {
-                                     Icoor2 x(dir/2),y1(MaxICoor/2-Abs(x)),y(dir%2?-y1:y1);
-                                     r = (x*i + y*j) >=0;}
-                                   return r;}
-#ifdef DRAWING
- void  Draw() {
-                         if (dir!= MaxICoor) {
-                                     Icoor2 x(dir/2),y1(MaxICoor/2-Abs(x)),y(dir%2?-y1:y1);
-                                     R2 D(x,y);
-                                     double eps = Grafh/Norme2(D)/20;
-                                     D = D*eps;
-                                     rmoveto(D.x,D.y);
-                                    }
-  }
-#endif                                   
-                                   
-      
-                              
-  
-};
-/////////////////////////////////////////////////////////////////////////////////////
-class Vertex {public:
-  I2 i;  // allow to use i.x, and i.y in long int (beware of scale and centering)
-  R2 r;  // allow to use r.x, and r.y in double
-  Metric m;
-  Int4 ReferenceNumber;
-  Direction DirOfSearch;
-  union {
-    Triangle * t; // one triangle which contained  the vertex
-    Int4 color;
-    Vertex * to;// use in geometry Vertex to now the Mesh Vertex associed 
-    VertexOnGeom * on;     // if vint 8; // set with Triangles::SetVertexFieldOn()
-    Vertex * onbv; // if vint == 16 on Background vertex Triangles::SetVertexFieldOnBTh()
-    VertexOnEdge * onbe;   // if vint == 32 on Background edge
-  };
-  Int1 vint;  // the vertex number in triangle; varies between 0 and 2 in t
-  operator  I2   () const {return i;} // operator de cast 
-  operator  const R2 & () const {return r;}// operator de cast 
-//  operator  R2 & () {return r;}// operator de cast 
-  Real8 operator()(R2 x) const { return m(x);}
-  operator Metric () const {return m;}// operator de cast 
-  Int4  Optim(int  = 1,int =0); 
-  //  Vertex(){}
-  //  ~Vertex(){}
-  Real8  Smoothing(Triangles & ,const Triangles & ,Triangle  * & ,Real8 =1);
-  int ref() const { return ReferenceNumber;}
-
-  friend ostream& operator <<(ostream& f, const  Vertex & v)
-  {f << "(" << v.i  << "," << v.r << MatVVP2x2(v.m) << ")" ;   return f;}
-  inline void Set(const Vertex & rec,const Triangles &,Triangles &);
-  
-#ifdef DRAWING
-  void  Draw(Int4 =-1) const ;
-  void MoveTo() const  {    rmoveto(r.x,r.y);  }
-  void LineTo() const {    rlineto(r.x,r.y);  }
-#endif  
-};
-
-double QuadQuality(const Vertex &,const Vertex &,const Vertex &,const Vertex &);
-
-// extern Vertex *Meshend , *Meshbegin;
-
-/////////////////////////////////////////////////////////////////////////////////////
-class TriangleAdjacent {
-  friend ostream& operator <<(ostream& f, const  TriangleAdjacent & ta)
-  {f << "{" << ta.t << "," << ((int) ta.a) << "}" ;
-   return f;}
-
-public:
-  Triangle * t; // le triangle 
-  int  a; // le numero de l arete
-  
-  TriangleAdjacent(Triangle  * tt,int  aa): t(tt),a(aa &3) {};
-  TriangleAdjacent() {};
-  
-  operator Triangle * () const {return t;}
-  operator Triangle & () const {return *t;}
-    operator int() const {return a;}
-  TriangleAdjacent & operator++() 
-  {
-    a= NextEdge[a];
-    return *this;}
-  TriangleAdjacent operator--()
-  { 
-    a= PreviousEdge[a];
-    return *this;}
-  inline  TriangleAdjacent  Adj() const ;
-  int swap();
-  inline void SetAdj2(const TriangleAdjacent& , int =0);
-  inline Vertex *  EdgeVertex(const int &) const ;
-  inline Vertex *  OppositeVertex() const ;
-  inline Icoor2 & det() const;
-  inline int Locked() const  ;
-  inline int GetAllFlag_UnSwap() const ;
-  inline void SetLock();
-  inline int MarkUnSwap()  const;
-  inline void SetMarkUnSwap();
-  inline void SetCracked();
-  inline int Cracked() const ;
-};// end of Vertex class  
-
-
-/////////////////////////////////////////////////////////////////////////////////////
-class Edge { public:
-   Vertex * v[2];
-   Int4 ref;
-    GeometricalEdge * on;
-   Vertex & operator[](int i){return *v[i];};
-   Vertex * operator()(int i){return v[i];};
-
-  void ReNumbering(Vertex *vb,Vertex *ve, Int4 *renu) 
-   {
-    if (v[0] >=vb && v[0] <ve) v[0] = vb + renu[v[0]-vb];
-    if (v[1] >=vb && v[1] <ve) v[1] = vb + renu[v[1]-vb];
-   }
-
-  const Vertex & operator[](int i) const { return *v[i];};
-  R2 operator()(double t) const; // return the point 
-  //                                on the curve edge a t in [0:1]
-  Edge * adj[2]; // the 2 adj edges if on the same curve 
-  int Intersection(const  Edge & e) const { 
-    if (!(adj[0]==&e || adj[1]==&e)) 
-      cerr << "Bug : Intersection " << (void*) &e <<  "  " 
-	   << adj[0] << " " <<  adj[1] << endl;
-    assert(adj[0]==&e || adj[1]==&e);
-    return adj[0]==&e ? 0 : 1;}
-  Real8 MetricLength() const ;  
-  inline void Set(const Triangles &,Int4,Triangles &);
-  
-#ifdef DRAWING
-  void  Draw(Int4 = -1) const ;
-#endif
-}; // end of Edge class 
-
-/////////////////////////////////////////////////////////////////////////////////////
-class GeometricalVertex :public Vertex {
-public:
-    int cas;
-    friend class Geometry;
-    GeometricalVertex * link; //  link all the same GeometricalVertex circular (Crack)
-  int Corner() const {return cas&4;}
-  int Required()const {return cas&6;}// a corner is required
-  void  SetCorner(){ cas |= 4;}
-  void  SetRequired(){ cas |= 2;}
-  void  Set(){cas=0;}
-  void  Set(const Vertex & v)
-    { // add for bug in clang++ compile FH very strang and hard  ...
-        i=v.i;
-        r=v.r;
-        m=v.m;
-        t=v.t;
-        vint=v.vint;
-    }
-  GeometricalVertex() :cas(0), link(this) {};
-  GeometricalVertex * The() { assert(link); return link;}// return a unique vertices
-  int IsThe() const { return link == this;}  
-  
-inline void Set(const GeometricalVertex & rec,const Geometry & Gh ,const Geometry & GhNew);
-  inline friend ostream& operator <<(ostream& f, const  GeometricalVertex & s) 
-     { f << s.r << "," << s.cas << ".";return f; }
-};
-
-/////////////////////////////////////////////////////////////////////////////////////
-class GeometricalEdge {
-  public:
-   GeometricalVertex * v[2];
-   Int4 ref;
-   Int4  CurveNumber;
-  R2 tg[2]; // the 2 tangente 
-  //   if tg[0] =0 => no continuite 
-  GeometricalEdge * Adj [2]; 
-  int SensAdj[2];
-//  private:
-  int flag ;
-  public: 
-  GeometricalEdge * link; // if   Cracked() or Equi()
-
-// end of data 
-  
-  GeometricalVertex & operator[](int i){return *v[i];};
-  const GeometricalVertex & operator[](int i) const { return *v[i];};
-  GeometricalVertex * operator()(int i){return v[i];};  
- // inline void Set(const Geometry &,Int4,Geometry &);
-
-  R2 F(Real8 theta) const ; // parametrization of the curve edge
-  Real8 R1tg(Real8 theta,R2 &t) const ; // 1/radius of curvature + tangente
-  int Cracked() const {return flag & 1;}
-  int Dup() const { return flag & 32;}
-  int Equi()const {return flag & 2;}
-  int ReverseEqui()const {return flag & 128;}
-  int TgA()const {return flag &4;}
-  int TgB()const {return flag &8;}
-  int Tg(int i) const{return i==0 ? TgA() : TgB();}
-  int Mark()const {return flag &16;}
-  int Required() { return flag & 64;}
-  void SetCracked() { flag |= 1;}
-  void SetDup()     { flag |= 32;} // not a real edge 
-  void SetEqui()    { flag |= 2;}
-  void SetTgA()     { flag|=4;}
-  void SetTgB()     { flag|=8;}
-  void SetMark()    { flag|=16;}
-  void SetUnMark()  { flag &= 1007 /* 1023-16*/;}
-  void SetRequired() { flag |= 64;}
-  void SetReverseEqui() {flag |= 128;}
-  
-  inline void Set(const GeometricalEdge & rec,const Geometry & Th ,Geometry & ThNew);
-
-#ifdef DRAWING 
-  void Draw(Int4  =-1);
-#endif
-  
-};
-  
-class Curve {public:
- GeometricalEdge * be,*ee; // begin et end edge
- int kb,ke;  //  begin vetex and end vertex
- Curve *next; // next curve equi to this
- bool master; // true => of equi curve point on this curve  
- inline void Set(const Curve & rec,const Geometry & Th ,Geometry & ThNew);
- Curve() : be(0),ee(0),kb(0),ke(0),next(0),master(true) {} 
- void Reverse() { Exchange(be,ee); Exchange(kb,ke);} //  revese the sens of the curse 
-};
-  
-   
-
-/////////////////////////////////////////////////////////////////////////////////////
-class Triangle {
-  friend class TriangleAdjacent;
-  friend ostream& operator <<(ostream& f, const  Triangle & ta);
-
-
-  private: // les arete sont opposes a un sommet
-  Vertex * ns [3]; // 3 vertices if t is triangle, t[i] allowed by access function, (*t)[i] if pointer
-  Triangle * at [3]; // nu triangle adjacent  
-  Int1  aa[3];  // les nu des arete dans le triangles (mod 4)
-  public: 
-  Icoor2 det; // determinant du triangle (2 fois l aire des vertices entieres)
-  union { 
-    Triangle * link ;
-    Int4 color;
-  };
-  void SetDet() {
-    if(ns[0] && ns[1] && ns[2])    det = bamg::det(*ns[0],*ns[1],*ns[2]);
-    else det = -1; }
-  Triangle() {}
-  Triangle(Triangles *Th,Int4 i,Int4 j,Int4 k);
-  Triangle(Vertex *v0,Vertex *v1,Vertex *v2);
-  inline void Set(const Triangle &,const Triangles &,Triangles &);
-  inline int In(Vertex *v) const { return ns[0]==v || ns[1]==v || ns[2]==v ;}
-  TriangleAdjacent FindBoundaryEdge(int ) const;
-
-  void ReNumbering(Triangle *tb,Triangle *te, Int4 *renu) 
-   {
-    if (link  >=tb && link  <te) link  = tb + renu[link -tb];
-    if (at[0] >=tb && at[0] <te) at[0] = tb + renu[at[0]-tb];
-    if (at[1] >=tb && at[1] <te) at[1] = tb + renu[at[1]-tb];
-    if (at[2] >=tb && at[2] <te) at[2] = tb + renu[at[2]-tb];    
-   }
-  void ReNumbering(Vertex *vb,Vertex *ve, Int4 *renu) 
-   {
-    if (ns[0] >=vb && ns[0] <ve) ns[0] = vb + renu[ns[0]-vb];
-    if (ns[1] >=vb && ns[1] <ve) ns[1] = vb + renu[ns[1]-vb];
-    if (ns[2] >=vb && ns[2] <ve) ns[2] = vb + renu[ns[2]-vb];    
-   }
-
-
-  const Vertex & operator[](int i) const {return *ns[i];};
-  Vertex & operator[](int i)  {return *ns[i];};
-  
-  const Vertex  *  operator()(int i) const {return ns[i];};
-  Vertex  * & operator()(int i)  {return ns[i];};
-  
-  TriangleAdjacent Adj(int  i) const  // triangle adjacent + arete 
-  { return TriangleAdjacent(at[i],aa[i]&3);};
-
-  Triangle * TriangleAdj(int  i) const 
-  {return at[i&3];} // triangle adjacent + arete 
-  Int1  NuEdgeTriangleAdj(int  i) const 
-  {return aa[i&3]&3;} // Number of the  adjacent edge in adj tria  
-
-  inline Real4 qualite() ;
-  
-
-  void SetAdjAdj(Int1 a) 
-  { a &= 3;
-     Triangle *tt=at[a];
-   aa [a] &= 55; // remove MarkUnSwap
-    Int1 aatt = aa[a] & 3;
-   if(tt){ 
-     tt->at[aatt]=this;
-     tt->aa[aatt]=a + (aa[a] & 60 ) ;}// Copy all the mark 
-  }
-  
-  void SetAdj2(Int1 a,Triangle *t,Int1 aat)
-    {  at[a]=t;aa[a]=aat;
-    if(t) {t->at[aat]=this;t->aa[aat]=a;}
-    }
-    
-  void SetTriangleContainingTheVertex()
-   { 
-     if (ns[0]) (ns[0]->t=this,ns[0]->vint=0);
-     if (ns[1]) (ns[1]->t=this,ns[1]->vint=1);
-     if (ns[2]) (ns[2]->t=this,ns[2]->vint=2);
-   }
-   
-  int swap(Int2 a1,int=0);
-  Int4  Optim(Int2 a,int =0);
-
-  int  Locked(int a)const { return aa[a]&4;} 
-  int  Hidden(int a)const { return aa[a]&16;} 
-  int  Cracked(int a) const { return aa[a] & 32;}
-  // for optimisation 
-  int  GetAllflag(int a){return aa[a] & 1020;}
-  void SetAllFlag(int a,int f){aa[a] = (aa[a] &3) + (1020 & f);}
-
-  void SetHidden(int a){
-    Triangle * t = at[a];
-    if(t) t->aa[aa[a] & 3] |=16;
-    aa[a] |= 16;}
-  void SetCracked(int a){
-    Triangle * t = at[a];
-    if(t) t->aa[aa[a] & 3] |=32;
-    aa[a] |= 32;}
-  
-  double   QualityQuad(int a,int option=1) const;
-  Triangle * Quadrangle(Vertex * & v0,Vertex * & v1,Vertex * & v2,Vertex * & v3) const ;
-
-  void SetLocked(int a){
-     Triangle * t = at[a];
-    t->aa[aa[a] & 3] |=4;
-    aa[a] |= 4;}
-
-  void SetMarkUnSwap(int a){
-     Triangle * t = at[a];
-    t->aa[aa[a] & 3] |=8;
-    aa[a] |=8 ;}
-
-
-  void SetUnMarkUnSwap(int a){ 
-     Triangle * t = at[a];
-    t->aa[aa[a] & 3] &=55; // 23 + 32 
-    aa[a] &=55 ;}
-  
-
- 
-#ifdef DEBUG       
-  void inline checka(Int1 a); 
-  void inline check();
-#endif
-
-#ifdef DRAWING
-  void  Draw(Int4 i=-1) const;
-  int swapDRAW(Int2 a1);
-
-#endif
-
-};  // end of Triangle class 
-
-
-
-
-class ListofIntersectionTriangles {
-/////////////////////////////////////////////////////////////////////////////////////
-class IntersectionTriangles {
-public: 
-  Triangle *t;
-  Real8  bary[3];  // use if t != 0
-  R2 x;
-  Metric m;
-  Real8 s;// abscisse curviline
-  Real8 sp; // len of the previous seg in m
-  Real8 sn;// len of the  next seg in m
-};
-/////////////////////////////////////////////////////////////////////////////////////
-class SegInterpolation {
- public:
-  GeometricalEdge * e;
-  Real8 sBegin,sEnd; // abscisse of the seg on edge parameter
-  Real8 lBegin,lEnd; // length abscisse  set in ListofIntersectionTriangles::Length
-  int last;// last index  in ListofIntersectionTriangles for this Sub seg of edge
-  R2 F(Real8 s){ 
-    Real8 c01=lEnd-lBegin, c0=(lEnd-s)/c01, c1=(s-lBegin)/c01;
-    assert(lBegin<= s && s <=lEnd);
-    return e->F(sBegin*c0+sEnd*c1);}
-};
- 
- int MaxSize; // 
- int Size; //
- Real8 len; //
- int state;
- IntersectionTriangles * lIntTria;
- int NbSeg;
- int MaxNbSeg;
- SegInterpolation * lSegsI;
- public:
- IntersectionTriangles & operator[](int i) {return lIntTria[i];}
- operator int&() {return Size;}
- ListofIntersectionTriangles(int n=256,int m=16)
-   :   MaxSize(n), Size(0), len(-1),state(-1),lIntTria(new IntersectionTriangles[n]) ,
-    NbSeg(0), MaxNbSeg(m), lSegsI(new SegInterpolation[m])  
-  { if (verbosity>9) 
-    cout << "      construct ListofIntersectionTriangles"
-			  << MaxSize << " " <<  MaxNbSeg<< endl;};
-  ~ListofIntersectionTriangles(){
-    if (lIntTria) delete [] lIntTria,lIntTria=0;
-    if (lSegsI) delete [] lSegsI,lSegsI=0;} 
-  void init(){state=0;len=0;Size=0;}
-  
-  int NewItem(Triangle * tt,Real8 d0,Real8 d1,Real8 d2);
-  int NewItem(R2,const Metric & );
-  void NewSubSeg(GeometricalEdge *e,Real8 s0,Real8 s1) 
-    { 
-      if (NbSeg>=MaxNbSeg) {
-           int mneo= MaxNbSeg;
-           MaxNbSeg *= 2;
-          if (verbosity>3) 
-	    cout <<" reshape lSegsI from " << mneo << " to " 
-		 << MaxNbSeg <<endl;
-           SegInterpolation * lEn =  new SegInterpolation[MaxNbSeg];
-           assert(lSegsI && NbSeg < MaxNbSeg);
-           for (int i=0;i< NbSeg;i++) 
-              lEn[i] = lSegsI[MaxNbSeg]; // copy old to new            
-           delete []  lSegsI; // remove old
-           lSegsI = lEn;        
-           }
-       if (NbSeg) 
-         lSegsI[NbSeg-1].last=Size;
-       lSegsI[NbSeg].e=e;
-       lSegsI[NbSeg].sBegin=s0;
-       lSegsI[NbSeg].sEnd=s1;     
-       NbSeg++;           
-    }
-    
-//  void CopyMetric(int i,int j){ lIntTria[j].m=lIntTria[i].m;}
-//  void CopyMetric(const Metric & mm,int j){ lIntTria[j].m=mm;}
-
-  void ReShape() { 
-     int newsize = MaxSize*2;
-    IntersectionTriangles * nw = new IntersectionTriangles[newsize];
-    assert(nw);
-    for (int i=0;i<MaxSize;i++) // recopy
-      nw[i] = lIntTria[i];       
-    if(verbosity>3)
-      cout << " ListofIntersectionTriangles  ReShape MaxSize " 
-	   << MaxSize << " -> " 
-	 <<  newsize << endl;
-    MaxSize = newsize; 
-    delete [] lIntTria;// remove old
-    lIntTria = nw; // copy pointer
-  }
-  
-  void SplitEdge(const Triangles & ,const R2 &,const R2  &,int nbegin=0); 
-  Real8 Length(); 
-  Int4 NewPoints(Vertex *,Int4 & nbv,Int4 nbvx);
-};
-
-
-/////////////////////////////////////////////////////////////////////////////////////
-class GeometricalSubDomain {
-public:
-  GeometricalEdge *edge;
-  int sens; // -1 or 1
-  Int4 ref;
-  inline void Set(const GeometricalSubDomain &,const Geometry & ,const Geometry &);
-  
-};
-/////////////////////////////////////////////////////////////////////////////////////
-class SubDomain {
-public:
-  Triangle * head;
-  Int4  ref;  
-  int sens; // -1 or 1
-  Edge * edge; // to  geometrical 	
-  inline void Set(const Triangles &,Int4,Triangles &);
-  	 
-};
-/////////////////////////////////////////////////////////////////////////////////////
-class VertexOnGeom {  public:
-
-  Vertex * mv;
-  Real8 abscisse;  
-  union{ 
-    GeometricalVertex * gv; // if abscisse <0; 
-    GeometricalEdge * ge;  // if abscisse in [0..1]
-  };
-  inline void Set(const VertexOnGeom&,const Triangles &,Triangles &);  
-  int OnGeomVertex()const {return this? abscisse <0 :0;}
-  int OnGeomEdge() const {return this? abscisse >=0 :0;}
-  VertexOnGeom(): mv(0),abscisse(0){gv=0;} 
-  VertexOnGeom(Vertex & m,GeometricalVertex &g) : mv(&m),abscisse(-1){gv=&g;}
-   //  cout << "        mv = " <<mv << " gv = "  << gv << endl;} 
-  VertexOnGeom(Vertex & m,GeometricalEdge &g,Real8 s) : mv(&m),abscisse(s){ge=&g;}
-    //cout << &g << " "  << ge << endl;} 
-  operator Vertex * () const  {return mv;}
-  operator GeometricalVertex * () const  {return gv;}
-  operator GeometricalEdge * () const  {return ge;}
-//  operator Real8 & () {return abscisse;}
-  operator const Real8 & () const {return abscisse;}
-  int IsRequiredVertex(){ return this? (( abscisse<0 ? (gv?gv->Required():0):0 )) : 0;}
-  void SetOn(){mv->on=this;mv->vint=IsVertexOnGeom;}
-  friend ostream& operator <<(ostream& f, const  VertexOnGeom & vog){
-    f << vog.abscisse << " " << vog.mv << " " << vog.gv << " ; ";
-    if (vog.abscisse < 0) f << *vog.gv << " ;; " ;
-    //    else f << *vog.ge << " ;; " ;
-    return f;}
-  inline void Set(const Triangles &,Int4,Triangles &);
-    
-};
-/////////////////////////////////////////////////////////////////////////////////////
-class VertexOnVertex {public:
-  Vertex * v, *bv;
-  VertexOnVertex(Vertex * w,Vertex *bw) :v(w),bv(bw){}
-  VertexOnVertex() {};
-  inline void Set(const Triangles &,Int4,Triangles &);
-  void SetOnBTh(){v->onbv=bv;v->vint=IsVertexOnVertex;}
-};
-/////////////////////////////////////////////////////////////////////////////////////
-class VertexOnEdge {public:
-  Vertex * v;
-  Edge * be;
-  Real8 abcisse;
-  VertexOnEdge( Vertex * w, Edge *bw,Real8 s) :v(w),be(bw),abcisse(s) {}
-  VertexOnEdge(){}
-  inline void Set(const Triangles &,Int4,Triangles &);  
-  void SetOnBTh(){v->onbe=this;v->vint=IsVertexOnEdge;}  
-  Vertex & operator[](int i) const { return (*be)[i];}
-  operator Real8 () const { return abcisse;}
-  operator  Vertex *  () const { return v;}  
-  operator  Edge *  () const { return be;}  
-};
-
- inline TriangleAdjacent FindTriangleAdjacent(Edge &E);
- inline Vertex * TheVertex(Vertex * a); // for remove crak in mesh 
-/////////////////////////////////////////////////////////////////////////////////////
- 
-class CrackedEdge { // a small class to store on crack an uncrack information 
-  friend class Triangles;
-  friend ostream& operator <<(ostream& f, const   Triangles & Th) ;  
- class CrackedTriangle {
-  friend class Triangles;
-  friend class CrackedEdge;
-  friend ostream& operator <<(ostream& f, const   Triangles & Th) ;  
-  Triangle * t; // edge of triangle t
-  int i; //  edge number of in triangle
-  Edge *edge; // the  2 edge 
-  Vertex *New[2]; // new vertex number 
-  CrackedTriangle() : t(0),i(0),edge(0) { New[0]=New[1]=0;} 
-  CrackedTriangle(Edge * a) : t(0),i(0),edge(a) { New[0]=New[1]=0;} 
-  void Crack(){ 
-    Triangle & T(*t); 
-    int i0=VerticesOfTriangularEdge[i][0];
-    int i1=VerticesOfTriangularEdge[i][0];
-    assert(New[0] && New[1]);
-    T(i0) = New[0];
-    T(i1) = New[1];}    
-  void UnCrack(){ 
-    Triangle & T(*t); 
-    int i0=VerticesOfTriangularEdge[i][0];
-    int i1=VerticesOfTriangularEdge[i][0];
-    assert(New[0] && New[1]);
-    T(i0) = TheVertex(T(i0));
-    T(i1) = TheVertex(T(i1));} 
-  void Set() {
-     TriangleAdjacent ta ( FindTriangleAdjacent(*edge));
-     t = ta;
-     i = ta;
-     
-     New[0] = ta.EdgeVertex(0);
-     New[1] = ta.EdgeVertex(1);
-     // warning the ref 
-     
-     }    
-     
-  }; // end of class CrackedTriangle
- public:  
-  CrackedTriangle a,b; 
-  CrackedEdge() :a(),b() {}
-  CrackedEdge(Edge * start, Int4  i,Int4 j) : a(start+i),b(start+j) {};
-  CrackedEdge(Edge * e0, Edge * e1 ) : a(e0),b(e1) {};
-
-  void Crack() { a.Crack(); b.Crack();}
-  void UnCrack() { a.UnCrack(); b.UnCrack();}
-  void Set() { a.Set(), b.Set();}
-};
-
-/////////////////////////////////////////////////////////////////////////////////////
-
-class Triangles { 
-public:
-
-  enum TypeFileMesh {
-    AutoMesh=0,BDMesh=1,NOPOMesh=2,amMesh=3,am_fmtMesh=4,amdbaMesh=5,
-<<<<<<< HEAD
-//-----------------------------ajout format hdf5-----------------------------//
-    //    ftqMesh=6,mshMesh=7};
-    ftqMesh=6,mshMesh=7,hdf5Mesh=8};
-//-----------------------------ajout format hdf5-----------------------------//
-=======
-    ftqMesh=6,mshMesh=7};
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-  int static counter; // to kown the number of mesh in memory 
-  int OnDisk;       // true if on disk 
-  Geometry & Gh;   // Geometry
-  Triangles & BTh; // Background Mesh Bth==*this =>no  background 
-  
-  Int4 NbRef; // counter of ref on the this class if 0 we can delete
-  Int4 nbvx,nbtx;  // nombre max  de sommets , de  triangles
-  
-  Int4 nt,nbv,nbt,nbiv,nbe; // nb of legal triangles, nb of vertex, of triangles, 
-  // of initial vertices, of edges with reference,
-  Int4 NbOfQuad; // nb of quadrangle 
-
-  Int4 NbSubDomains; // 
-  Int4 NbOutT; // Nb of oudeside triangle
-  Int4 NbOfTriangleSearchFind;
-  Int4 NbOfSwapTriangle;
-  char * name, *identity;
-  Vertex * vertices;   // data of vertices des sommets
-  
-  Int4 NbVerticesOnGeomVertex;
-  VertexOnGeom * VerticesOnGeomVertex;
-  
-  Int4 NbVerticesOnGeomEdge;
-  VertexOnGeom * VerticesOnGeomEdge;
-
-  Int4 NbVertexOnBThVertex;
-  VertexOnVertex *VertexOnBThVertex;
-
-  Int4 NbVertexOnBThEdge;
-  VertexOnEdge *VertexOnBThEdge;
-
-  
-  Int4 NbCrackedVertices;
-  
-
-  Int4 NbCrackedEdges;
-  CrackedEdge *CrackedEdges;
-  
-  
-  R2 pmin,pmax; // extrema
-  Real8 coefIcoor;  // coef to integer Icoor1;
-
-  Triangle * triangles;
-  Edge * edges; 
-
-  QuadTree *quadtree;
-  Vertex ** ordre;
-  SubDomain * subdomains;
-  ListofIntersectionTriangles  lIntTria;
-  int warning ;
-// end of variable
-  
-  Triangles(Int4 i);//:BTh(*this),Gh(*new Geometry()){PreInit(i);}
-<<<<<<< HEAD
-  void clear();
-    ~Triangles() {if(NbRef==0) {clear();NbRef=-1;}}
-  Triangles(const char * ,Real8=-1) ;
-  
- 
-  Triangles(Int4 nbvx,Triangles & BT,int keepBackVertices=1)
-         :Gh(BT.Gh),BTh(BT) {
-	     try {GeomToTriangles1(nbvx,keepBackVertices);}
-	      catch(...) { this->clear(); throw; } }
-=======
-  
-  ~Triangles(); 
-  Triangles(const char * ,Real8=-1) ;
-  
-  Triangles(Int4 nbvx,Triangles & BT,int keepBackVertices=1)
-         :Gh(BT.Gh),BTh(BT) {
-	     try {GeomToTriangles1(nbvx,keepBackVertices);}
-	      catch(...) { this->~Triangles(); throw; } }
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  
-  Triangles(Int4 nbvx,Geometry & G)
-         :Gh(G),BTh(*this){
-	     try { GeomToTriangles0(nbvx);}
-<<<<<<< HEAD
-	     catch(...) { this->clear(); throw; } }
-=======
-	     catch(...) { this->~Triangles(); throw; } }
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  Triangles(Triangles &,Geometry * pGh=0,Triangles* pBTh=0,Int4 nbvxx=0 ); // COPY OPERATEUR
-  //  Triangles(Triangles &){ cerr << " BUG call copy opretor of Triangles" << endl;MeshError(111);}
-  Triangles(const Triangles &,const int *flag,const int *bb); // truncature
-  
-
-  void SetIntCoor(const char * from =0);
-
- // void  RandomInit();
- // void  CubeInit(int ,int);
-  
-  Real8 MinimalHmin() {return 2.0/coefIcoor;}
-  Real8 MaximalHmax() {return Max(pmax.x-pmin.x,pmax.y-pmin.y);}
-  const Vertex & operator[]  (Int4 i) const { return vertices[i];};
-  Vertex & operator[](Int4 i) { return vertices[i];};
-  const Triangle & operator()  (Int4 i) const { return triangles[i];};
-  Triangle & operator()(Int4 i) { return triangles[i];};
-  I2 toI2(const R2 & P) const {
-          return  I2( (Icoor1) (coefIcoor*(P.x-pmin.x))
-	                 ,(Icoor1) (coefIcoor*(P.y-pmin.y)) );}
-  R2 toR2(const I2 & P) const {
-          return  R2( (double) P.x/coefIcoor+pmin.x, (double) P.y/coefIcoor+pmin.y);}
-  void Add( Vertex & s,Triangle * t,Icoor2 *  =0) ;
-  void Insert();
-  //  void InsertOld();
-  void ForceBoundary();
-  void Heap();
-  void FindSubDomain(int );
-  Int4  ConsRefTriangle(Int4 *) const;
-  void ShowHistogram() const;
-  void  ShowRegulaty() const; // Add FH avril 2007 
-//  void ConsLinkTriangle();
-
-  void ReMakeTriangleContainingTheVertex();
-  void UnMarkUnSwapTriangle();
-  void SmoothMetric(Real8 raisonmax) ;
-  void BoundAnisotropy(Real8 anisomax,double hminaniso= 1e-100) ;
-  void MaxSubDivision(Real8 maxsubdiv);
-  void WriteMetric(ostream &,int iso) ;
-  Edge** MakeGeometricalEdgeToEdge();
-  void  SetVertexFieldOn();  
-  void  SetVertexFieldOnBTh();
-  Int4 SplitInternalEdgeWithBorderVertices();
-  void MakeQuadrangles(double costheta);
-  int SplitElement(int choice);
-  void MakeQuadTree();
-  void NewPoints( Triangles &,int KeepBackVertex =1 );
-  Int4 InsertNewPoints(Int4 nbvold,Int4 & NbTSwap) ; 
-  void NewPointsOld( Triangles & );
-  void NewPoints(int KeepBackVertex=1){ NewPoints(*this,KeepBackVertex);}
-  void ReNumberingTheTriangleBySubDomain(bool justcompress=false);
-  void ReNumberingVertex(Int4 * renu);
-  void SmoothingVertex(int =3,Real8=0.3);
-  Metric MetricAt (const R2 &) const;
-  GeometricalEdge * ProjectOnCurve( Edge & AB, Vertex &  A, Vertex & B,Real8 theta,
-                      Vertex & R,VertexOnEdge & BR,VertexOnGeom & GR);
-   
-  
-  void WriteElements(ostream& f,Int4 * reft ,Int4 nbInT) const;
-
-  
-  Int4 Number(const Triangle & t) const  { return &t - triangles;}
-  Int4 Number(const Triangle * t) const  { return t - triangles;}
-  Int4 Number(const Vertex & t) const  { return &t - vertices;}
-  Int4 Number(const Vertex * t) const  { return t - vertices;}
-  Int4 Number(const Edge & t) const  { return &t - edges;}
-  Int4 Number(const Edge * t) const  { return t - edges;}
-  Int4 Number2(const Triangle * t) const  {
-    //   if(t>= triangles && t < triangles + nbt )
-      return t - triangles;
-      //  else  return t - OutSidesTriangles;
-  }
-  
-  Vertex * NearestVertex(Icoor1 i,Icoor1 j) ;
-  Triangle * FindTriangleContening(const I2 & ,Icoor2 [3],Triangle *tstart=0) const;
-  void Write(const char * filename,const TypeFileMesh type = AutoMesh);
-  void Write_am_fmt(ostream &) const ;
-  void Write_am(ostream &) const ;
-  void Write_ftq(ostream &) const ;
-  void Write_nopo(ostream &) const ;
-  void Write_msh(ostream &) const ;
-<<<<<<< HEAD
-//-----------------------------ajout format hdf5-----------------------------//
-  void Write_hdf5(const char * filename) const ;
-//-----------------------------ajout format hdf5-----------------------------//
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  void Write_amdba(ostream &) const ;
-
-  void Read(MeshIstream &,int version,Real8 cutoffradian);
-  void Read_am_fmt(MeshIstream &);
-  void Read_amdba(MeshIstream &);
-  void Read_am(MeshIstream &);
-  void Read_nopo(MeshIstream &);
-  void Read_ftq(MeshIstream &);
-  void Read_msh(MeshIstream &);
-
-  void ReadMetric(const char * fmetrix,const Real8 hmin,const Real8 hmax,const Real8 coef);
-  void IntersectConsMetric(const double * s,const Int4 nbsol,const int * typsols,
-			   const  Real8 hmin,const Real8 hmax, const Real8 coef,
-			   const Real8  anisomax,const Real8 CutOff=1.e-4,const int NbJacobi=1,
-			   const int DoNormalisation=1,
-			   const double power=1.0,
-			   const int choise=0);
-  void IntersectGeomMetric(const Real8 err,const int iso);
-  
-  
-  int  isCracked() const {return NbCrackedVertices != 0;}
-  int  Crack();
-  int UnCrack();
-  
-#ifdef DEBUG
-  void inline Check(); 
-#endif
-#ifdef DRAWING
-  void  Draw() const ;
-  void  InitDraw() const ;
-  void   inquire()  ;
-#endif
- friend ostream& operator <<(ostream& f,  const  Triangles & Th); 
-  void  Write(const char * filename);
-  void ConsGeometry(Real8 =-1.0,int *equiedges=0); // construct a geometry if no geo 
-  void FillHoleInMesh() ;
-  int CrackMesh();
- private:
-  void GeomToTriangles1(Int4 nbvx,int KeepBackVertices=1);// the  real constructor mesh adaption
-  void GeomToTriangles0(Int4 nbvx);// the  real constructor mesh generator
-  void PreInit(Int4,char * =0 );
-  //
-  void Write_nop5(OFortranUnFormattedFile * f,
-			     Int4 &lnop5,Int4 &nef,Int4 &lgpdn,Int4 ndsr) const ;
-
-  
-}; // End Class Triangles
-/////////////////////////////////////////////////////////////////////////////////////
-class Geometry { 
-public:
-  int OnDisk; 
-  Int4 NbRef; // counter of ref on the this class if 0 we can delete
-
-  char *name;
-  Int4 nbvx,nbtx; // nombre max  de sommets , de  Geometry
-  Int4 nbv,nbt,nbiv,nbe; // nombre de sommets, de Geometry, de sommets initiaux,
-  Int4 NbSubDomains; // 
-  Int4 NbEquiEdges;
-  Int4 NbCrackedEdges; 
-//  Int4 nbtf;//  de triangle frontiere
-  Int4 NbOfCurves;
-  int empty(){return (nbv ==0) && (nbt==0) && (nbe==0) && (NbSubDomains==0); }
-  GeometricalVertex * vertices;   // data of vertices des sommets 
-  Triangle * triangles; 
-  GeometricalEdge * edges;
-  QuadTree *quadtree;
-  GeometricalSubDomain *subdomains;
-  Curve *curves;
-  ~Geometry(); 
-  Geometry(const Geometry & Gh); //Copy  Operator 
-  Geometry(int nbg,const Geometry ** ag); // intersection operator 
-  
-  R2 pmin,pmax; // extrema
-  Real8 coefIcoor;  // coef to integer Icoor1;
-  Real8 MaximalAngleOfCorner;
-  
-//  end of data 
-
-  
-  I2 toI2(const R2 & P) const {
-          return  I2( (Icoor1) (coefIcoor*(P.x-pmin.x))
-	                 ,(Icoor1) (coefIcoor*(P.y-pmin.y)) );}
-  
-  Real8 MinimalHmin() {return 2.0/coefIcoor;}
-  Real8 MaximalHmax() {return Max(pmax.x-pmin.x,pmax.y-pmin.y);}
-  void ReadGeometry(const char * ) ;
-  void ReadGeometry(MeshIstream & ,const char *)  ;
-
-  void EmptyGeometry();
-  Geometry() {EmptyGeometry();}// empty Geometry
-  void AfterRead();
-  Geometry(const char * filename) {EmptyGeometry();OnDisk=1;ReadGeometry(filename);AfterRead();}
-
-  void ReadMetric(const char *,Real8 hmin,Real8 hmax,Real8 coef);
-  const GeometricalVertex & operator[]  (Int4 i) const { return vertices[i];};
-  GeometricalVertex & operator[](Int4 i) { return vertices[i];};
-  const  GeometricalEdge & operator()  (Int4 i) const { return edges[i];};
-  GeometricalEdge & operator()(Int4 i) { return edges[i];}; 
-  Int4 Number(const GeometricalVertex & t) const  { return &t - vertices;}
-  Int4 Number(const GeometricalVertex * t) const  { return t - vertices;}
-  Int4 Number(const GeometricalEdge & t) const  { return &t - edges;}
-  Int4 Number(const GeometricalEdge * t) const  { return t - edges;}
-  Int4 Number(const Curve * c) const  { return c - curves;}
-  
-  void UnMarkEdges() {
-    for (Int4 i=0;i<nbe;i++) edges[i].SetUnMark();}
-
- GeometricalEdge *  ProjectOnCurve(const Edge & ,Real8,Vertex &,VertexOnGeom &) const ;
-  GeometricalEdge *  Contening(const R2 P,  GeometricalEdge * start) const;
- friend ostream& operator <<(ostream& f, const   Geometry & Gh); 
- void Write(const char * filename);
- 
-#ifdef DEBUG
-  void inline Check();   
-#endif
-#ifdef DRAWING
-  void  Draw() const ;
-  void  InitDraw() const ;
-#endif
-  
-}; // End Class Geometry
-
-/////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////
-///////////////////           END CLASS          ////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////
-
-inline Triangles::Triangles(Int4 i) :Gh(*new Geometry()),BTh(*this){PreInit(i);}
-
-extern Triangles * CurrentTh;
-
-TriangleAdjacent CloseBoundaryEdge(I2 ,Triangle *, double &,double &) ;
-TriangleAdjacent CloseBoundaryEdgeV2(I2 A,Triangle *t, double &a,double &b);
-
-Int4 FindTriangle(Triangles &Th, Real8 x, Real8 y, double* a,int & inside);
-
-
-
-inline Triangle *    Triangle::Quadrangle(Vertex * & v0,Vertex * & v1,Vertex * & v2,Vertex * & v3) const
-{
-// return the other triangle of the quad if a quad or 0 if not a quat
-  Triangle * t =0;
-  if (link) {
-    int a=-1;
-    if (aa[0] & 16 ) a=0;
-    if (aa[1] & 16 ) a=1;
-    if (aa[2] & 16 ) a=2;
-    if (a>=0) {
-      t = at[a];
-      //  if (t-this<0) return 0;
-      v2 = ns[VerticesOfTriangularEdge[a][0]];
-      v0 = ns[VerticesOfTriangularEdge[a][1]];
-      v1 = ns[OppositeEdge[a]];
-      v3 = t->ns[OppositeEdge[aa[a]&3]];
-    }
-  }
-  return t;
-}
-
-inline   double   Triangle::QualityQuad(int a,int option) const
-{ // first do the logique part 
-  double q;
-  if (!link || aa[a] &4)
-    q=  -1;
-  else {
-    Triangle * t = at[a];
-    if (t-this<0) q=  -1;// because we do 2 times 
-    else if (!t->link ) q=  -1;
-    else if (aa[0] & 16 || aa[1] & 16  || aa[2] & 16 || t->aa[0] & 16 || t->aa[1] & 16 || t->aa[2] & 16 )
-      q= -1;
-    else if(option) 
-      { 
-	const Vertex & v2 = *ns[VerticesOfTriangularEdge[a][0]];
-	const Vertex & v0 = *ns[VerticesOfTriangularEdge[a][1]];
-	const Vertex & v1 = *ns[OppositeEdge[a]];
-	const Vertex & v3 = * t->ns[OppositeEdge[aa[a]&3]];
-	q =  QuadQuality(v0,v1,v2,v3); // do the float part
-      }
-    else q= 1;
-  }
-  return  q;
-}
-
-
-inline void Vertex::Set(const Vertex & rec,const Triangles & ,Triangles & )
- { 
-   *this  = rec;
- }
-inline void GeometricalVertex::Set(const GeometricalVertex & rec,const Geometry & ,const Geometry & )
- { 
-   *this  = rec;
- }
-inline void Edge::Set(const Triangles & Th ,Int4 i,Triangles & ThNew)
- { 
-   *this = Th.edges[i];
-   v[0] = ThNew.vertices + Th.Number(v[0]);    
-   v[1] = ThNew.vertices + Th.Number(v[1]);
-   if (on) 
-     on =  ThNew.Gh.edges+Th.Gh.Number(on);
-   if (adj[0]) adj[0] =   ThNew.edges +   Th.Number(adj[0]);
-   if (adj[1]) adj[1] =   ThNew.edges +   Th.Number(adj[1]);
-
- }
-inline void GeometricalEdge::Set(const GeometricalEdge & rec,const Geometry & Gh ,Geometry & GhNew)
- { 
-   *this = rec;
-   v[0] = GhNew.vertices + Gh.Number(v[0]);    
-   v[1] = GhNew.vertices + Gh.Number(v[1]); 
-   if (Adj[0]) Adj[0] =  GhNew.edges + Gh.Number(Adj[0]);     
-   if (Adj[1]) Adj[1] =  GhNew.edges + Gh.Number(Adj[1]);     
- }
- 
-inline void Curve::Set(const Curve & rec,const Geometry & Gh ,Geometry & GhNew)
-{
-  *this = rec;
-   be = GhNew.edges + Gh.Number(be);    
-   ee = GhNew.edges + Gh.Number(ee); 
-   if(next) next= GhNew.curves + Gh.Number(next); 
-}
-
-inline void Triangle::Set(const Triangle & rec,const Triangles & Th ,Triangles & ThNew)
- { 
-   *this = rec;
-   if ( ns[0] ) ns[0] = ThNew.vertices +  Th.Number(ns[0]);
-   if ( ns[1] ) ns[1] = ThNew.vertices +  Th.Number(ns[1]);
-   if ( ns[2] ) ns[2] = ThNew.vertices +  Th.Number(ns[2]);
-   if(at[0]) at[0] =  ThNew.triangles + Th.Number(at[0]);
-   if(at[1]) at[1] =  ThNew.triangles + Th.Number(at[1]);
-   if(at[2]) at[2] =  ThNew.triangles + Th.Number(at[2]);
-   if (link  >= Th.triangles && link  < Th.triangles + Th.nbt)
-     link = ThNew.triangles + Th.Number(link);
- }
-inline void VertexOnVertex::Set(const Triangles & Th ,Int4 i,Triangles & ThNew)
-{ 
-  *this = Th.VertexOnBThVertex[i];  
-  v = ThNew.vertices + Th.Number(v);
-
-}
-inline void SubDomain::Set(const Triangles & Th ,Int4 i,Triangles & ThNew)
-{
-  *this = Th.subdomains[i];
-  assert( head - Th.triangles >=0 && head - Th.triangles < Th.nbt);
-  head = ThNew.triangles + Th.Number(head) ; 
-  assert(edge - Th.edges >=0 && edge - Th.edges < Th.nbe); 
-  edge = ThNew.edges+ Th.Number(edge);
-}
- inline void GeometricalSubDomain::Set(const GeometricalSubDomain & rec,const Geometry & Gh ,const Geometry & GhNew)
-{
-   *this = rec;
-   edge = Gh.Number(edge) + GhNew.edges;
-}
-inline void VertexOnEdge::Set(const Triangles & Th ,Int4 i,Triangles & ThNew)
-{
-  *this = Th.VertexOnBThEdge[i];  
-  v = ThNew.vertices + Th.Number(v);
-}
-
-inline void VertexOnGeom::Set(const VertexOnGeom & rec,const Triangles & Th ,Triangles & ThNew)
-{
-  *this = rec;  
-  mv = ThNew.vertices + Th.Number(mv);
-  if (gv)
-  {
-    if (abscisse < 0 )
-      gv = ThNew.Gh.vertices + Th.Gh.Number(gv);
-    else
-      ge = ThNew.Gh.edges + Th.Gh.Number(ge);
-  }
-}
-inline Real8 Edge::MetricLength() const
-  { 
-    return LengthInterpole(v[0]->m,v[1]->m,v[1]->r - v[0]->r) ;
-  }
-
-inline  void  Triangles::ReMakeTriangleContainingTheVertex()
- {
-   Int4 i;
-  for ( i=0;i<nbv;i++) 
-    {
-	vertices[i].vint = 0;
-	vertices[i].t=0;
-    }
-  for ( i=0;i<nbt;i++) 
-    triangles[i].SetTriangleContainingTheVertex();
- }
-
-inline  void  Triangles::UnMarkUnSwapTriangle()
- {
-   Int4 i;
-  for ( i=0;i<nbt;i++) 
-    for(int  j=0;j<3;j++)
-      triangles[i].SetUnMarkUnSwap(j);
- }
-
-inline  void   Triangles::SetVertexFieldOn()
-  {
-    for (Int4 i=0;i<nbv;i++) 
-       vertices[i].on=0;
-    for (Int4 j=0;j<NbVerticesOnGeomVertex;j++ ) 
-       VerticesOnGeomVertex[j].SetOn();
-    for (Int4 k=0;k<NbVerticesOnGeomEdge;k++ ) 
-       VerticesOnGeomEdge[k].SetOn();
-    }	       
-inline  void   Triangles::SetVertexFieldOnBTh()
-  {
-    for (Int4 i=0;i<nbv;i++) 
-       vertices[i].on=0;
-    for (Int4 j=0;j<NbVertexOnBThVertex;j++ ) 
-       VertexOnBThVertex[j].SetOnBTh();
-    for (Int4 k=0;k<NbVertexOnBThEdge;k++ ) 
-       VertexOnBThEdge[k].SetOnBTh();
-       
-    }	       
-
-inline  void  TriangleAdjacent::SetAdj2(const TriangleAdjacent & ta, int l  )
-{ // set du triangle adjacent 
-  if(t) {
-    t->at[a]=ta.t;
-    t->aa[a]=ta.a|l;}
-  if(ta.t) {
-    ta.t->at[ta.a] = t ;
-    ta.t->aa[ta.a] = a| l ;
-  }
-}
-
-
-inline int  TriangleAdjacent::Locked() const
-{ return t->aa[a] &4;}
-inline int  TriangleAdjacent::Cracked() const
-{ return t->aa[a] &32;}
-inline int  TriangleAdjacent::GetAllFlag_UnSwap() const
-{ return t->aa[a] & 1012;} // take all flag except MarkUnSwap
-
-inline int  TriangleAdjacent::MarkUnSwap() const
-{ return t->aa[a] &8;}
-
-inline void  TriangleAdjacent::SetLock(){ t->SetLocked(a);}
-
-inline void  TriangleAdjacent::SetCracked() { t->SetCracked(a);}
-
-inline  TriangleAdjacent TriangleAdjacent::Adj() const
-{ return  t->Adj(a);}
-
-inline Vertex  * TriangleAdjacent::EdgeVertex(const int & i) const
- {return t->ns[VerticesOfTriangularEdge[a][i]]; }
-inline Vertex  * TriangleAdjacent::OppositeVertex() const
-{return t->ns[bamg::OppositeVertex[a]]; }
-inline Icoor2 &  TriangleAdjacent::det() const
-{ return t->det;}
-inline  TriangleAdjacent Adj(const TriangleAdjacent & a)
-{ return  a.Adj();}
-
-inline TriangleAdjacent Next(const TriangleAdjacent & ta) 
-{ return TriangleAdjacent(ta.t,NextEdge[ta.a]);}
-
-inline TriangleAdjacent Previous(const TriangleAdjacent & ta) 
-{ return TriangleAdjacent(ta.t,PreviousEdge[ta.a]);}
- 
-inline void Adj(GeometricalEdge * & on,int &i) 
-  {int j=i;i=on->SensAdj[i];on=on->Adj[j];}
-  
-inline Real4 qualite(const Vertex &va,const Vertex &vb,const Vertex &vc)
-{
-  Real4 ret; 
-  I2 ia=va,ib=vb,ic=vc;
-  I2 ab=ib-ia,bc=ic-ib,ac=ic-ia;
-  Icoor2 deta=Det(ab,ac);
-  if (deta <=0) ret = -1;
-   else {
-     Real8 a = sqrt((Real8) (ac,ac)),
-       b = sqrt((Real8) (bc,bc)),
-       c = sqrt((Real8) (ab,ab)),
-       p = a+b+c;
-     Real8 h= Max(Max(a,b),c),ro=deta/p;
-   ret = ro/h;}
-  return ret;
-}
-
-
-inline  Triangle::Triangle(Triangles *Th,Int4 i,Int4 j,Int4 k) {
-  Vertex *v=Th->vertices;
-  Int4 nbv = Th->nbv;
-  assert(i >=0 && j >=0 && k >=0);
-  assert(i < nbv && j < nbv && k < nbv);
-  ns[0]=v+i;
-  ns[1]=v+j;
-  ns[2]=v+k;
-  at[0]=at[1]=at[2]=0;
-  aa[0]=aa[1]=aa[2]=0;
-  det=0;
-}
-
-inline  Triangle::Triangle(Vertex *v0,Vertex *v1,Vertex *v2){
-  ns[0]=v0;
-  ns[1]=v1;
-  ns[2]=v2;
-  at[0]=at[1]=at[2]=0;
-  aa[0]=aa[1]=aa[2]=0;
-  if (v0) det=0;
-  else {
-    det=-1;
-    link=NULL;};  
-}
-
-inline    Real4 Triangle::qualite()
-{
-  return det < 0 ? -1 :  bamg::qualite(*ns[0],*ns[1],*ns[2]);
-}
-
-Int4 inline  Vertex::Optim(int i,int koption)
-{ 
-  Int4 ret=0;
-  if ( t && (vint >= 0 ) && (vint <3) )
-    {
-      ret = t->Optim(vint,koption);
-      if(!i) 
-	{
-	  t =0; // for no future optime 
-	  vint= 0; }
-    }
-  return ret;
-}
-
-Icoor2 inline det(const Vertex & a,const Vertex & b,const Vertex & c)
-{
-    Icoor2 bax = b.i.x - a.i.x ,bay = b.i.y - a.i.y; 
-    Icoor2 cax = c.i.x - a.i.x ,cay = c.i.y - a.i.y; 
-  return  bax*cay - bay*cax;}
-
-
-void  swap(Triangle *t1,Int1 a1,
-	   Triangle *t2,Int1 a2,
-	   Vertex *s1,Vertex *s2,Icoor2 det1,Icoor2 det2);
-
-
-
-int inline TriangleAdjacent::swap()
-{ return  t->swap(a);}
-
-
-
-int SwapForForcingEdge(Vertex   *  & pva ,Vertex  * &   pvb ,
-		       TriangleAdjacent & tt1,Icoor2 & dets1,
-		       Icoor2 & detsa,Icoor2 & detsb, int & nbswap);
-
-int ForceEdge(Vertex &a, Vertex & b,TriangleAdjacent & taret) ;
-
-// inline bofbof   FH 
-inline  TriangleAdjacent FindTriangleAdjacent(Edge &E)
-  {
-    Vertex * a = E.v[0];
-    Vertex * b = E.v[1];
-    
-    Triangle * t = a->t;
-    int i = a->vint;
-    TriangleAdjacent ta(t,EdgesVertexTriangle[i][0]); // Previous edge
-    assert(t && i>=0 && i < 3);
-    assert( a == (*t)(i));
-    int k=0;
-    do { // turn around vertex in direct sens (trigo)
-      k++;assert(k< 20000);
-      //  in no crack => ta.EdgeVertex(1) == a otherwise ??? 
-      if (ta.EdgeVertex(1) ==  a && ta.EdgeVertex(0) ==  b) return ta; // find 
-      ta = ta.Adj();
-      if (ta.EdgeVertex(0) ==  a && ta.EdgeVertex(1) ==  b) return ta; // find 
-      --ta;
-      } while (t != (Triangle *)ta);
-    assert(0);
-    return TriangleAdjacent(0,0);// error 
-  }
-  
-inline Vertex * TheVertex(Vertex * a) // give a unique vertex with smallest number
-{ // in case on crack in mesh 
-    Vertex * r(a), *rr;
-    Triangle * t = a->t;
-    int i = a->vint;
-    TriangleAdjacent ta(t,EdgesVertexTriangle[i][0]); // Previous edge
-    assert(t && i>=0 && i < 3);
-    assert( a == (*t)(i));
-    int k=0;
-    do { // turn around vertex in direct sens (trigo)
-      k++;assert(k< 20000);
-      //  in no crack => ta.EdgeVertex(1) == a
-      if ((rr=ta.EdgeVertex(0)) < r) r = rr;
-      ta = ta.Adj();
-      if ((rr=ta.EdgeVertex(1)) < r) r =rr;
-      --ta;
-     } while (t != (Triangle*) ta);  
-    return r;
-}
-
-inline double CPUtime(){
-#ifdef SYSTIMES
-  struct tms buf;
-  if (times(&buf)!=-1)
-    return ((double)buf.tms_utime+(double)buf.tms_stime)/(long) sysconf(_SC_CLK_TCK);
-  else
-#endif
-    return ((double) clock())/CLOCKS_PER_SEC;
-}
-
-#ifdef DEBUG
-void inline Triangle::checka(Int1 a) {
-  // verif de la coherence des adjacences de l arete a
-  a = a%4;
-  assert(a < 3 && a >= 0 );
-  Triangle *t1=this,*t2=at[a];
-  Int2 a1=a,a2=aa[a]%4;
-  
-  assert(a2 < 3 && a2 >= 0 );
-  if (t2 && ( ((*t1).ns[VerticesOfTriangularEdge[a1][0]] != (*t2).ns[VerticesOfTriangularEdge[a2][1]])
-	      || ((*t1).ns[VerticesOfTriangularEdge[a1][1]] != (*t2).ns[VerticesOfTriangularEdge[a2][0]])))
-    {
-      if (CurrentTh) cerr << " In Triangles beetween Triangle " << CurrentTh->Number(t1) << " and " 
-		     <<  CurrentTh->Number(t2) <<  endl;
-      cerr << "---- t1="<< t1 << " " << a1 <<",  t2="<< t2 << " " << a2 << endl;
-      cerr <<"t1="<< t1 << " " << a1 << " " << t1->ns[VerticesOfTriangularEdge[a1][0]] 
-	   << " " << t1->ns[VerticesOfTriangularEdge[a1][1]] <<endl;
-      if (CurrentTh)
-	cerr <<"t1="<< t1 << " " << a1 << " " << CurrentTh->Number(t1->ns[VerticesOfTriangularEdge[a1][0]])
-	   << " " << CurrentTh->Number(t1->ns[VerticesOfTriangularEdge[a1][1]]) <<endl;
-      if (t2) cerr <<"t2="<< t2 << " " << a2 << " " 
-		   <<  t2->ns[VerticesOfTriangularEdge[a2][0]] 
-		   << " " << t2->ns[VerticesOfTriangularEdge[a2][1]] <<endl;
-      if (t2 &&CurrentTh)
-	cerr <<"t2="<< t2 << " " << a2 << " " 
-	     <<  CurrentTh->Number(t2->ns[VerticesOfTriangularEdge[a2][0]])
-	     << " " << CurrentTh->Number(t2->ns[VerticesOfTriangularEdge[a2][1]]) <<endl;
-      assert(0); 
-    } 
-  if (t2)   assert(t1->aa[a1]/4 == t2->aa[a2]/4); // lock compatibite
-}
-
-
-void inline  Triangle::check() {
-  Icoor2 det2=0;
-  //  cout << " check " << this << endl;
-  int  infv=ns[0] ?  ((  ns[1] ? ( ns[2] ? -1 : 2) : 1  )) : 0;
-  if (det<0) {
-      if (infv<0 )
-	{  if (CurrentTh) cerr << " In Triangles " << CurrentTh->Number(this) << endl;
-	cerr << " det = " <<  det << " and " << infv << endl;
-	MeshError(5);
-	}}
-  else  if (infv>=0 )
- 	{  if (CurrentTh) cerr << " In Triangles " << CurrentTh->Number(this) << endl;
-	cerr << " det = " << det << " and " << infv << endl;
-	MeshError(5);
-	}  
-  
-  if (det >=0) 
-    if( det != (det2=bamg::det(*ns[0],*ns[1],*ns[2])))
-	{ // penthickness(4);Draw();
-	  if (CurrentTh) cerr << " In Triangles" << CurrentTh->Number(this) 
-			 << endl;
-      cerr << *ns[0] << *ns[1] << " " << *ns[2]  << " " << endl;
-	   cerr << " Bug in triangle " << this 
-		<< ":" << det << " !=  " << det2 << endl;
-	   MeshError(5);
-	}
-  checka(0);
-  checka(1);
-  checka(2);
-//  if (ns[0]) assert( ns[0] - Meshbegin  >= 0 );
-//  if (ns[0]) assert( Meshend  - ns[0] >= 0 );
-//  if (ns[1]) assert( ns[1] - Meshbegin  >= 0 );
-//  if (ns[1]) assert( Meshend  - ns[1] >= 0 );
-//  if (ns[2]) assert( ns[2] - Meshbegin  >= 0 );
-//  if (ns[2]) assert( Meshend  - ns[2] >= 0 );
-  assert(ns[0] != ns[2]);
-  assert(ns[1] != ns[2]);
-  assert(ns[0] != ns[1]);
-}
-
-
-#endif
-
-
-
-
-#ifdef DRAWING 
-extern Real4 xGrafCoef,yGrafCoef,xGrafOffSet,yGrafOffSet; // R2 -> I2 transform
-extern R2 Gpmin,Gpmax;
-//extern Real8 Gh;
-// cf routine ILineTo IMoveto
-
-extern void  IMoveTo(long i,long j);
-extern void  ILineTo(long i,long j);
-extern char Getxyc(long &i,long &j);
-extern void Draw(float ,float );
-extern void Draw(long ,long );
-extern void DrawMark(R2 r);
-//inline void DrawMark(D2 r) {DrawMark(R2(r.x,r.y));}
-inline void Move(I2 x) {IMoveTo(x.x,x.y);}
-inline void Move(R2 x) {rmoveto(x.x,x.y);}
-//inline void Move(D2 x) {rmoveto(x.x,x.y);}
-inline void Line(I2 x){ILineTo(x.x,x.y);}
-inline void Line(R2 x) {rlineto(x.x,x.y);}
-//inline void Line(D2 x) {rlineto(x.x,x.y);}
-#endif
-
-}
-
-
-
-
-
-
diff --git a/src/bamglib/MeshWrite.cpp.orig b/src/bamglib/MeshWrite.cpp.orig
deleted file mode 100644
index ac466fc..0000000
--- a/src/bamglib/MeshWrite.cpp.orig
+++ /dev/null
@@ -1,1906 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
-<<<<<<< HEAD
-=======
- 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-<<<<<<< HEAD
-*/
-#include "config.h"
-=======
- */
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-#include <cstdio>
-#include <cstring>
-#include <cmath>
-#include <ctime>
-#include "Meshio.h"
-#include "Mesh2.h"
-#include "QuadTree.h"
-#include "SetOfE4.h"
-<<<<<<< HEAD
-#ifdef HAVE_HDF5
-//-----------------------------ajout format hdf5-----------------------------//
-#include "write_xdmf.hpp"
-#include "write_hdf5.hpp"
-#ifndef H5_NO_NAMESPACE
-#ifndef H5_NO_STD
-using std::cout;
-using std::endl;
-#endif  // H5_NO_STD
-#endif
-
-#include "H5Cpp.h"
-
-#ifndef H5_NO_NAMESPACE
-using namespace H5;
-#endif
-#endif
-//-----------------------------ajout format hdf5-----------------------------//
-
-namespace bamg {
-  
-  void Triangles::Write(const char * filename,const TypeFileMesh typein )
-  {
-    TypeFileMesh type = typein;
-    const char * gsuffix=".gmsh";
-    int ls=0;
-    int lll = strlen(filename);
-    if (type==AutoMesh)
-      {
-	type = BDMesh;
-	if      (!strcmp(filename + lll - (ls=7),".am_fmt")) type = am_fmtMesh;
-	else if (!strcmp(filename + lll - (ls=6),".amdba"))  type = amdbaMesh;
-	else if (!strcmp(filename + lll - (ls=3),".am"))     type = amMesh;
-	else if (!strcmp(filename + lll - (ls=5),".nopo"))   type = NOPOMesh;
-	else if (!strcmp(filename + lll - (ls=4),".msh"))    type = mshMesh;
-//-----------------------------ajout format hdf5-----------------------------//
-	else if (!strcmp(filename + lll - (ls=3),".h5"))     type = hdf5Mesh;
-//-----------------------------ajout format hdf5-----------------------------//
-	else if (!strcmp(filename + lll - (ls=4),".ftq"))    type = ftqMesh;
-	else if (!strcmp(filename + lll - (ls=7),".AM_FMT")) type = am_fmtMesh;
-	else if (!strcmp(filename + lll - (ls=6),".AMDBA"))  type = amdbaMesh;
-	else if (!strcmp(filename + lll - (ls=3),".AM"))     type = amMesh;
-	else if (!strcmp(filename + lll - (ls=5),".NOPO"))   type = NOPOMesh;
-	else if (!strcmp(filename + lll - (ls=4),".MSH"))    type = mshMesh;
-	else if (!strcmp(filename + lll - (ls=4),".FTQ"))    type = ftqMesh;
-	else ls=0;
-      } 
-    if (verbosity>1)
-      {
-	cout << "  -- Writing the file " << filename << " of type " ;
-	switch (type) 
-	  {
-	  case BDMesh     :  cout << " BD Mesh "  ; break;
-	  case NOPOMesh   :  cout << " NOPO "     ; break;
-	  case amMesh     :  cout << " am "       ; break;
-	  case am_fmtMesh :  cout << " am_fmt "   ; break;
-	  case amdbaMesh  :  cout << " amdba "    ; break;
-	  case ftqMesh    :  cout << " ftq "      ; break;
-	  case mshMesh    :  cout << " msh "      ; break;
-//-----------------------------ajout format hdf5-----------------------------//
-	  case hdf5Mesh   :  cout << " h5  "      ; break;
-//-----------------------------ajout format hdf5-----------------------------//
-	  default: 
-	    cerr << endl 
-		 <<  " Unkown type mesh file " << (int) type << " for Writing " << filename <<endl;
-	    MeshError(1);
-	  }     
-	Int4 NbOfTria =  nbt-2*NbOfQuad-NbOutT ;
-	if (NbOfTria)      cout << " NbOfTria = " << NbOfTria;
-	if (NbOfQuad)      cout << " NbOfQuad = " << NbOfQuad;
-	if (nbe)   	cout << " NbOfRefEdge = " << nbe ;
-	cout    << endl;
-	
-      }
-    ofstream f(filename /*,ios::trunc*/);
-    f.precision(12);
-    
-    if (f)
-      switch (type) 
-	{
-	case BDMesh     : 
-	  {
-	    if ( ! Gh.OnDisk)
-	      {
-		delete [] Gh.name;
-		Gh.name = new char[lll+1+strlen(gsuffix)];
-		strcpy(Gh.name,filename);
-		if (Gh.name[lll-ls-1]=='.') strcpy(Gh.name+lll-ls, gsuffix+1);
-		else strcpy(Gh.name+lll-ls,gsuffix);
-		cout << " write geo in " << Gh.name << endl;
-		ofstream f(Gh.name) ;
-		f << Gh ;
-		Gh.OnDisk=true;
-	      }
-	    f << *this     ;
-	    break;
-	  }
-	case NOPOMesh   :  Write_nopo(f)  ; break;
-	case amMesh     :  Write_am(f)    ; break;
-	case am_fmtMesh :  Write_am_fmt(f); break;
-	case amdbaMesh  :  Write_amdba(f) ; break;
-	case ftqMesh    :  Write_ftq(f)   ; break;
-	case mshMesh    :  Write_msh(f)   ; break;
-//-----------------------------ajout format hdf5-----------------------------//
-	case hdf5Mesh   :  Write_hdf5(filename)  ; break;
-//-----------------------------ajout format hdf5-----------------------------//
-	default: 
-	  cerr << " Unkown type mesh file " << (int) type << " for Writing " << filename <<endl;
-	  MeshError(1);
-	}
-    else
-      {
-	cerr << " Error openning file " << filename << endl;
-	MeshError(1);
-      }
-    if(verbosity>5)
-      cout << "end write" << endl;
-    
-  }
-  void Triangles::Write_nop5(OFortranUnFormattedFile * f,
-			     Int4 &lnop5,Int4 &nef,Int4 &lgpdn,Int4 ndsr) const 
-  {
-    ndsr =0;
-    Int4 * reft = new Int4[nbt];
-    //Int4 nbInT = ;
-    ConsRefTriangle(reft);
-    Int4 no5l[20];
-    
-    Int4 i5 = 0;
-    Int4 i,j,k=0,l5;
-    //  Int4 ining=0;
-    Int4 imax,imin;
-    
-    lgpdn = 0;
-    nef=0;
-    // construction of a liste linked  of edge
-    Edge ** head  = new Edge *[nbv];
-    Edge  ** link = new Edge * [nbe];
-    for (i=0;i<nbv;i++)
-      head[i]=0; // empty liste
-    
-    for (i=0;i<nbe;i++)
-      { 
-	j = Min(Number(edges[i][0]),Number(edges[i][1]));
-	link[i]=head[j];
-	head[j]=edges +i;
-      }
-    for ( i=0;i<nbt;i++)
-      {
-	no5l[0]    = 0;
-	Int4 kining=0;
-	Int4 ining=0;
-	Int4 nmae =0;
-	Int4 np=0;
-	l5 = 2;
-	Triangle & t = triangles[i];
-	Triangle * ta; // 
-	Vertex *v0,*v1,*v2,*v3;
-	if (reft[i]<0) continue;
-	ta = t.Quadrangle(v0,v1,v2,v3);
-	if (!ta)
-	  { // a triangles
-	    no5l[l5++] = Max(subdomains[reft[i]].ref,(Int4) 1);
-	    np = 3;
-	    no5l[l5++] = np;
-	    no5l[0]    = np;
-	    no5l[l5++] = Number(triangles[i][0]) +1;
-	    no5l[l5++] = Number(triangles[i][1]) +1;
-	    no5l[l5++] = Number(triangles[i][2]) +1;
-	    imax = Max3(no5l[l5-1],no5l[l5-2],no5l[l5-3]);
-	    imin = Min3(no5l[l5-1],no5l[l5-2],no5l[l5-3]);
-	    lgpdn = Max(lgpdn,imax-imin);
-	    kining=l5++;
-	    // ref of 3 edges 
-	    for (j=0;j<3;j++)
-	      {
-		no5l[l5] = 0;
-		int i0 = (int) j;
-		int i1 = (i0+1) %3;
-		Int4 j1= no5l[4+i0];
-		Int4 j2= no5l[4+i1];
-		Int4 ji = Min(j1,j2)-1;
-		Int4 ja = j1+j2-2;
-		Edge * e=head[ji];
-		while (e)
-		  if(Number((*e)[0])+Number((*e)[1]) == ja) 
-		    {
-		      no5l[l5] = e->ref;
-		      break;
-		    }
-		  else
-		    e = link[Number(e)];
-		l5++;
-	      }
-	    if ( no5l[l5-1] || no5l[l5-2] || no5l[l5-3]  )
-	      ining=2;
-	    else 
-	      l5 -= 3;
-	    
-	    no5l[l5++] = triangles[i][0].ref();
-	    no5l[l5++] = triangles[i][1].ref();
-	    no5l[l5++] = triangles[i][2].ref();
-	    if (ining ||  no5l[l5-1] || no5l[l5-2] || no5l[l5-3]  )
-	      ining= ining ? ining : 3;
-	    else
-	      l5 -= 3,ining=0; 
-	  }
-	else if ( &t<ta)
-	  { 
-	    k++;
-	    no5l[l5++] = Max(subdomains[reft[i]].ref,(Int4) 1);
-	    np =4;
-	    no5l[l5++] = np;
-	    no5l[0]    = np;
-	    
-	    no5l[l5++] = Number(v0) +1;
-	    no5l[l5++] = Number(v1) +1;
-	    no5l[l5++] = Number(v2) +1;
-	    no5l[l5++] = Number(v3) +1;
-	    
-	    imax = Max(Max(no5l[l5-1],no5l[l5-2]),Max(no5l[l5-3],no5l[l5-4]));
-	    imin = Min(Min(no5l[l5-1],no5l[l5-2]),Min(no5l[l5-3],no5l[l5-4]));
-	    lgpdn = Max(lgpdn,imax-imin);
-	    
-	    
-	    kining=l5++;
-	    // ref of the 4 edges 
-	    // ref of 3 edges 
-	    for (j=0;j<4;j++)
-	      {
-		no5l[l5] = 0;
-		int i0 = (int) j;
-		int i1 = (i0+1) %4;
-		Int4 j1= no5l[4+i0];
-		Int4 j2= no5l[4+i1];
-		Int4 ji = Min(j1,j2)-1;
-		Int4 ja = j1+j2-2;
-		Edge *e=head[ji];
-		while (e)
-		  if(Number((*e)[0])+Number((*e)[1]) == ja) 
-		    {
-		      no5l[l5] = e->ref;
-		      break;
-		    }
-		  else
-		    e = link[Number(e)];
-		l5++;
-	      }
-	    if ( no5l[l5-1] || no5l[l5-2] || no5l[l5-3] || no5l[l5-4] )
-	      ining=2;
-	    else 
-	      l5 -= 4;
-	    
-	    no5l[l5++] = v0->ref();
-	    no5l[l5++] = v1->ref();
-	    no5l[l5++] = v2->ref();
-	    no5l[l5++] = v3->ref();
-	    if (ining || no5l[l5-1] || no5l[l5-2] || no5l[l5-3] || no5l[l5-4] )
-	      ining= ining ? ining : 3;
-	    else
-	      l5 -= 4;
-	    
-	  }
-	else l5=0;
-	
-	if (l5)
-	  {
-	    if (ining)
-	      {
-		nef ++;
-		nmae = l5-kining;
-		no5l[kining] = ining;
-	      }
-	    else l5--;
-	    no5l[1]=nmae;
-	    // for all ref  
-	    for (j=kining+1;j<l5;j++)
-	      {
-		no5l[j] = Abs(no5l[j]);
-		ndsr = Max(ndsr,no5l[j]);
-	      }
-	    
-	    if (f && i < 10 && verbosity > 10)
-	      { 
-		cout << " e[ " << i << " @" << i5 << "]=";
-		for (j=0;j<l5;j++)
-		  cout << " " << no5l[j]; 
-		cout << endl;
-	      }
-	    
-	    if (f)
-	      for (j=0;j<l5;j++)
-		*f << no5l[j]; 
-	    i5 += l5;
-	  }
-      }
-    if(verbosity>10)
-      cout << "   fin write nopo 5 i5=" << i5 << " " << i5*4 << endl;
-    lnop5=i5; 
-    lgpdn++; // add 1
-    delete [] reft;
-    delete [] head;
-    delete [] link;
-    
-  }
-
-  void Triangles::Write_nopo(ostream &ff) const
-    
-  {
-    Int4  nef=0;
-    Int4 lpgdn=0;
-    Int4 ndsr=0;
-    Int4 i;
-    Int4 ndsd=1;
-    Int4 lnop5=0;
- 
-    OFortranUnFormattedFile f(ff);
- 
-    for (i=0;i<NbSubDomains ;i++)
-      ndsd=Max(ndsd,subdomains[i].ref);
- 
-    // to compute the lnop5,nef,lpgdn,ndsr parameter 
-    Write_nop5(0,lnop5,nef,lpgdn,ndsr);
-    
-    f.Record();
-    
-    f <<  Int4(13)<<Int4(6)<<Int4(32)<<Int4(0)<<Int4(27)<<Int4(0) ;
-    f << Int4(nbv+nbv) ;
-    f << lnop5;
-    f << Int4(1 )<<Int4(1)<<Int4(1 )<<Int4(1)<<Int4(2)<<Int4(1);
-    
-    f.Record(33*sizeof(Int4)); 
-    
-    f << Int4(32) ;
-    
-    //char *c=identity;
-    time_t timer =time(0);
-    char buf[10];
-    strftime(buf ,10,"%y/%m/%d",localtime(&timer));
-    f.write4(identity,20);
-    f.write4(buf,2);
-    f.write4("created with BAMG",6);
-    f.write4("NOPO",1);
-    
-    
-    f << Int4(0) << Int4(1) << Int4(0) ;
-    f.Record();
-    Int4 nbquad= NbOfQuad;
-    Int4 nbtria= nbt-NbOutT - 2*NbOfQuad;
-    
-    cout << " lnop5      = " << lnop5 << endl;
-    cout << " nbquad     = " << nbquad << endl;
-    cout << " nbtrai     = " << nbtria << endl;
-    cout << " lpgdn      = " << lpgdn << endl;
-    cout << " nef        = " << nef  << endl;
-    cout << " np         = " << nbv  << endl;
-    cout << " ndsr       = " << ndsr << endl;
-    f << Int4(27)  
-      << Int4(2)  << ndsr     << ndsd    << Int4(1) << nbtria+nbquad
-      << Int4(0)  << Int4(0)  << nbtria  << nbquad  << Int4(0)
-      << Int4(0)  << Int4(0)  << Int4(0) << nef     << Int4(nbv)
-      << Int4(0)  << Int4(0)  << Int4(0) << Int4(0) << Int4(0)
-      << Int4(0)  << nbv      << Int4(2) << lpgdn   << Int4(0)
-      << lnop5    << Int4(1) ;
-    f.Record();
-    f << (Int4) 2*nbv;
-    for (i=0;i<nbv;i++)
-      f << (float) vertices[i].r.x <<  (float) vertices[i].r.y;
-    f.Record();
-    f << lnop5;
-    Write_nop5(&f,lnop5,nef,lpgdn,ndsr);
-    // cout << "fin write nopo" << endl;
-  }
-
-  void Triangles::Write_am_fmt(ostream &f) const 
-  {
-    Int4 i,j;
-    assert(this && nbt);
-    Int4 * reft = new Int4[nbt];
-    Int4 nbInT =    ConsRefTriangle(reft);
-    f.precision(12);
-    f << nbv << " " << nbInT << endl;
-    for (i=0;i<nbt;i++)
-      if(reft[i]>=0)
-	{
-	  f << Number(triangles[i][0]) +1 << " " ;
-	  f << Number(triangles[i][1]) +1 << " " ;
-	  f << Number(triangles[i][2]) +1 << " " ;
-	  f << endl;
-	}
-    for (i=0;i<nbv;i++)
-      f << vertices[i].r.x << " " << vertices[i].r.y << endl;
-    for (j=i=0;i<nbt;i++) 
-      if (reft[i]>=0)
-	f << subdomains[reft[i]].ref  << (j++%10 == 9 ?  '\n' : ' ');
-    f << endl;
-    for (i=0;i<nbv;i++)
-      f << vertices[i].ref()  << (i%10 == 9 ?  '\n' : ' ');
-    f << endl;
-    delete [] reft;
-
-
-  }
-
-  void Triangles::Write_am(ostream &ff) const 
-  {
-    OFortranUnFormattedFile f(ff);  
-    Int4 i,j;
-    assert(this && nbt);
-    Int4 * reft = new Int4[nbt];
-    Int4 nbInT =    ConsRefTriangle(reft);
-    f.Record();
-    f << nbv << nbInT ;
-    f.Record();
-    for (i=0;i<nbt;i++)
-      if(reft[i]>=0)
-	{
-	  f << Number(triangles[i][0]) +1 ;
-	  f << Number(triangles[i][1]) +1 ;
-	  f << Number(triangles[i][2]) +1 ;
-	}
-    for (i=0;i<nbv;i++)
-      {
-	float x= vertices[i].r.x;
-	float y= vertices[i].r.y;
-	f << x << y ;
-      }
-    for (j=i=0;i<nbt;i++) 
-      if (reft[i]>=0)
-	f << subdomains[reft[i]].ref;
-    for (i=0;i<nbv;i++)
-      f << vertices[i].ref() ;
-    delete [] reft;
-  }
-
-  void Triangles::Write_ftq(ostream &f) const 
-  {
-
-    Int4 i;
-    assert(this && nbt);
-    Int4 * reft = new Int4[nbt];
-    Int4 nbInT =    ConsRefTriangle(reft);
-    f.precision(12);
-    Int4 nele = nbInT-NbOfQuad;
-    Int4 ntri =  nbInT-2*NbOfQuad;
-    Int4 nqua =  NbOfQuad;
-
-    f << nbv << " " << nele << " " << ntri <<  " " << nqua << endl;
-    Int4 k=0;
-    for( i=0;i<nbt;i++)
-      { 
-	Triangle & t = triangles[i];
-	Triangle * ta; // 
-	Vertex *v0,*v1,*v2,*v3;
-	if (reft[i]<0) continue;
-	ta = t.Quadrangle(v0,v1,v2,v3);
-	if (!ta)
-	  { // a triangles
-	    f << "3 " 
-	      << Number(triangles[i][0]) +1 << " " 
-	      << Number(triangles[i][1]) +1 << " " 
-	      << Number(triangles[i][2]) +1 << " " 
-	      << subdomains[reft[i]].ref << endl;
-	    k++;
-	  }
-	if ( &t<ta)
-	  { 
-	    k++;
-	    f << "4 " << Number(v0)+1 << " " << Number(v1)+1  << " "  
-	      << Number(v2)+1 << " "  << Number(v3)+1 << " "  
-	      << subdomains[reft[i]].ref << endl;
-	  }
-      }
-    assert(k == nele);
-  
-    for (i=0;i<nbv;i++)
-      f << vertices[i].r.x << " " << vertices[i].r.y 
-	<< " " <<  vertices[i].ref() << endl;
-    delete [] reft;
-  
-  
-  }
-  void Triangles::Write_msh(ostream &f) const 
-  {
-    Int4 i;
-    assert(this && nbt);
-    Int4 * reft = new Int4[nbt];
-    Int4 nbInT =    ConsRefTriangle(reft);
-    f.precision(12);
-    f << nbv << " " << nbInT << " " << nbe <<  endl;
-
-    for (i=0;i<nbv;i++)
-      f << vertices[i].r.x << " " << vertices[i].r.y << " " 
-	<< vertices[i].ref() <<   endl;
-
-    for (i=0;i<nbt;i++)
-      if(reft[i]>=0)
-	f << Number(triangles[i][0]) +1 << " " 
-	  << Number(triangles[i][1]) +1 << " " 
-	  << Number(triangles[i][2]) +1 << " " 
-	  << subdomains[reft[i]].ref << endl;
-  
-
-    for (i=0;i<nbe;i++)
-      f << Number(edges[i][0]) +1 << " "  << Number(edges[i][1]) +1 
-	<< " " << edges[i].ref << endl;
-      
-    delete [] reft;
-
-  }
-
-
-  //-----------------------------ajout format hdf5-----------------------------//
-  void Triangles::Write_hdf5(const char * f) const 
-  {
-#ifdef HAVE_HDF5
-    Int4 i;
-    assert(this && nbt);
-    Int4 * reft = new Int4[nbt];
-    Int4 nbInT = ConsRefTriangle(reft);
-    float coord[nbv][2];
-    int Connectivity[nbInT][3];
-
-    for (i=0;i<nbv;i++)
-      {
-	coord[i][0]=vertices[i].r.x;
-	coord[i][1]=vertices[i].r.y;
-      }
-
-    for (i=0;i<nbt;i++)
-      { 
-	if(reft[i]>=0)
-	  {
-	    Connectivity[i][0]=Number(triangles[i][0]);
-	    Connectivity[i][1]=Number(triangles[i][1]);
-	    Connectivity[i][2]=Number(triangles[i][2]);
-	  }
-      }
-
-    // write hdf5 file
-    WriteHdf5 * Hdf5MeshFile2D = new WriteHdf5(f,nbInT,nbv);
-    Hdf5MeshFile2D->WriteHdf5MeshFile2D(coord, Connectivity);
-    delete Hdf5MeshFile2D; 
-
-    // write xdmf file
-    WriteXdmf * XdmfMeshFile2D = new WriteXdmf(f,nbInT,nbv);
-    XdmfMeshFile2D->WriteXdmfMeshFile2D();
-    delete XdmfMeshFile2D; 
-
-    delete [] reft;
-#else
-      cerr << " Sorry no hdf5 on with computer= no Write_hdf5 of" << f << endl;
-      MeshError(9999,this);
-#endif
-  }
-  //-----------------------------ajout format hdf5-----------------------------//
-
-
-
-
-
-  void Triangles::Write_amdba(ostream &f) const 
-  {
-    assert(this && nbt);
-
-    Int4 i,j;
-    Int4 * reft = new Int4[nbt];
-    Int4 nbInT =    ConsRefTriangle(reft);
-    f << nbv << " " << nbInT << endl;
-    cout.precision(12);
-    for (i=0;i<nbv;i++)
-      f << i+1 << " " 
-	<< vertices[i].r.x 
-	<< " " << vertices[i].r.y 
-	<< " " << vertices[i].ref() << endl;
-    j=1;
-    for (i=0;i<nbt;i++)
-      if(reft[i]>=0)
-=======
-
-
-namespace bamg {
-
-void Triangles::Write(const char * filename,const TypeFileMesh typein )
-{
-  TypeFileMesh type = typein;
-  const char * gsuffix=".gmsh";
-  int ls=0;
-  int lll = strlen(filename);
-  if (type==AutoMesh)
-    {
-      type = BDMesh;
-      if      (!strcmp(filename + lll - (ls=7),".am_fmt")) type = am_fmtMesh;
-      else if (!strcmp(filename + lll - (ls=6),".amdba"))  type = amdbaMesh;
-      else if (!strcmp(filename + lll - (ls=3),".am"))     type = amMesh;
-      else if (!strcmp(filename + lll - (ls=5),".nopo"))   type = NOPOMesh;
-      else if (!strcmp(filename + lll - (ls=4),".msh"))    type = mshMesh;
-      else if (!strcmp(filename + lll - (ls=4),".ftq"))    type = ftqMesh;
-      else if (!strcmp(filename + lll - (ls=7),".AM_FMT")) type = am_fmtMesh;
-      else if (!strcmp(filename + lll - (ls=6),".AMDBA"))  type = amdbaMesh;
-      else if (!strcmp(filename + lll - (ls=3),".AM"))     type = amMesh;
-      else if (!strcmp(filename + lll - (ls=5),".NOPO"))   type = NOPOMesh;
-      else if (!strcmp(filename + lll - (ls=4),".MSH"))    type = mshMesh;
-      else if (!strcmp(filename + lll - (ls=4),".FTQ"))    type = ftqMesh;
-      else ls=0;
-    } 
-  if (verbosity>1)
-    {
-      cout << "  -- Writing the file " << filename << " of type " ;
-     switch (type) 
-       {
-       case BDMesh     :  cout << " BD Mesh "  ; break;
-       case NOPOMesh   :  cout << " NOPO "     ; break;
-       case amMesh     :  cout << " am "       ; break;
-       case am_fmtMesh :  cout << " am_fmt "   ; break;
-       case amdbaMesh  :  cout << " amdba "    ; break;
-       case ftqMesh    :  cout << " ftq "      ; break;
-       case mshMesh    :  cout << " msh "      ; break;
-	default: 
-	  cerr << endl 
-	       <<  " Unkown type mesh file " << (int) type << " for Writing " << filename <<endl;
-	  MeshError(1);
-       }     
-     Int4 NbOfTria =  nbt-2*NbOfQuad-NbOutT ;
-     if (NbOfTria)      cout << " NbOfTria = " << NbOfTria;
-     if (NbOfQuad)      cout << " NbOfQuad = " << NbOfQuad;
-     if (nbe)   	cout << " NbOfRefEdge = " << nbe ;
-     cout    << endl;
-
-    }
-  ofstream f(filename /*,ios::trunc*/);
- f.precision(12);
-
-   if (f)
-     switch (type) 
-       {
-       case BDMesh     : 
-          {
-             if ( ! Gh.OnDisk)
-              {
-                 delete [] Gh.name;
-                 Gh.name = new char[lll+1+strlen(gsuffix)];
-                 strcpy(Gh.name,filename);
-                 if (Gh.name[lll-ls-1]=='.') strcpy(Gh.name+lll-ls, gsuffix+1);
-                 else strcpy(Gh.name+lll-ls,gsuffix);
-                cout << " write geo in " << Gh.name << endl;
-                  ofstream f(Gh.name) ;
-                  f << Gh ;
-                  Gh.OnDisk=true;
-              }
-	     f << *this     ;
-	     break;
-           }
-       case NOPOMesh   :  Write_nopo(f)  ; break;
-       case amMesh     :  Write_am(f)    ; break;
-       case am_fmtMesh :  Write_am_fmt(f); break;
-       case amdbaMesh  :  Write_amdba(f) ; break;
-       case ftqMesh    :  Write_ftq(f)   ; break;
-       case mshMesh    :  Write_msh(f)   ; break;
-	default: 
-	  cerr << " Unkown type mesh file " << (int) type << " for Writing " << filename <<endl;
-	  MeshError(1);
-       }
-   else
-     {
-       cerr << " Error openning file " << filename << endl;
-       MeshError(1);
-     }
-   if(verbosity>5)
-   cout << "end write" << endl;
-      
-}
-void Triangles::Write_nop5(OFortranUnFormattedFile * f,
-			   Int4 &lnop5,Int4 &nef,Int4 &lgpdn,Int4 ndsr) const 
-{
-  ndsr =0;
-  Int4 * reft = new Int4[nbt];
-  //Int4 nbInT = ;
-  ConsRefTriangle(reft);
-  Int4 no5l[20];
-
-  Int4 i5 = 0;
-  Int4 i,j,k=0,l5;
-  //  Int4 ining=0;
-  Int4 imax,imin;
-
-  lgpdn = 0;
-  nef=0;
-  // construction of a liste linked  of edge
-  Edge ** head  = new Edge *[nbv];
-  Edge  ** link = new Edge * [nbe];
-  for (i=0;i<nbv;i++)
-    head[i]=0; // empty liste
-  
-  for (i=0;i<nbe;i++)
-    { 
-      j = Min(Number(edges[i][0]),Number(edges[i][1]));
-      link[i]=head[j];
-      head[j]=edges +i;
-    }
-  for ( i=0;i<nbt;i++)
-    {
-      no5l[0]    = 0;
-      Int4 kining=0;
-      Int4 ining=0;
-      Int4 nmae =0;
-      Int4 np=0;
-      l5 = 2;
-      Triangle & t = triangles[i];
-      Triangle * ta; // 
-      Vertex *v0,*v1,*v2,*v3;
-      if (reft[i]<0) continue;
-      ta = t.Quadrangle(v0,v1,v2,v3);
-      if (!ta)
-	{ // a triangles
-	  no5l[l5++] = Max(subdomains[reft[i]].ref,(Int4) 1);
-	  np = 3;
-	  no5l[l5++] = np;
-	  no5l[0]    = np;
-	  no5l[l5++] = Number(triangles[i][0]) +1;
-	  no5l[l5++] = Number(triangles[i][1]) +1;
-	  no5l[l5++] = Number(triangles[i][2]) +1;
-	  imax = Max3(no5l[l5-1],no5l[l5-2],no5l[l5-3]);
-	  imin = Min3(no5l[l5-1],no5l[l5-2],no5l[l5-3]);
-	  lgpdn = Max(lgpdn,imax-imin);
-          kining=l5++;
-	  // ref of 3 edges 
-	  for (j=0;j<3;j++)
-	    {
-	      no5l[l5] = 0;
-	      int i0 = (int) j;
-	      int i1 = (i0+1) %3;
-	      Int4 j1= no5l[4+i0];
-	      Int4 j2= no5l[4+i1];
-	      Int4 ji = Min(j1,j2)-1;
-	      Int4 ja = j1+j2-2;
-	      Edge * e=head[ji];
-	      while (e)
-		if(Number((*e)[0])+Number((*e)[1]) == ja) 
-		   {
-		     no5l[l5] = e->ref;
-		     break;
-		   }
-		else
-		  e = link[Number(e)];
-	      l5++;
-	    }
-	  if ( no5l[l5-1] || no5l[l5-2] || no5l[l5-3]  )
-	    ining=2;
-	  else 
-	    l5 -= 3;
-	  
-	  no5l[l5++] = triangles[i][0].ref();
-	  no5l[l5++] = triangles[i][1].ref();
-	  no5l[l5++] = triangles[i][2].ref();
-	  if (ining ||  no5l[l5-1] || no5l[l5-2] || no5l[l5-3]  )
-            ining= ining ? ining : 3;
-	  else
-	    l5 -= 3,ining=0;
-
-	  
-	}
-      else if ( &t<ta)
-	{ 
-	  k++;
-	  no5l[l5++] = Max(subdomains[reft[i]].ref,(Int4) 1);
-	  np =4;
-	  no5l[l5++] = np;
-	  no5l[0]    = np;
-	  
-	  no5l[l5++] = Number(v0) +1;
-	  no5l[l5++] = Number(v1) +1;
-	  no5l[l5++] = Number(v2) +1;
-	  no5l[l5++] = Number(v3) +1;
-	  
-	  imax = Max(Max(no5l[l5-1],no5l[l5-2]),Max(no5l[l5-3],no5l[l5-4]));
-	  imin = Min(Min(no5l[l5-1],no5l[l5-2]),Min(no5l[l5-3],no5l[l5-4]));
-	  lgpdn = Max(lgpdn,imax-imin);
-
-
-          kining=l5++;
-	  // ref of the 4 edges 
-	  // ref of 3 edges 
-	  for (j=0;j<4;j++)
-	    {
-	      no5l[l5] = 0;
-	      int i0 = (int) j;
-	      int i1 = (i0+1) %4;
-	      Int4 j1= no5l[4+i0];
-	      Int4 j2= no5l[4+i1];
-	      Int4 ji = Min(j1,j2)-1;
-	      Int4 ja = j1+j2-2;
-	      Edge *e=head[ji];
-	      while (e)
-		if(Number((*e)[0])+Number((*e)[1]) == ja) 
-		   {
-		     no5l[l5] = e->ref;
-		     break;
-		   }
-		else
-		  e = link[Number(e)];
-	      l5++;
-	    }
-	  if ( no5l[l5-1] || no5l[l5-2] || no5l[l5-3] || no5l[l5-4] )
-	    ining=2;
-	  else 
-	    l5 -= 4;
-
-	  no5l[l5++] = v0->ref();
-	  no5l[l5++] = v1->ref();
-	  no5l[l5++] = v2->ref();
-	  no5l[l5++] = v3->ref();
-	  if (ining || no5l[l5-1] || no5l[l5-2] || no5l[l5-3] || no5l[l5-4] )
-            ining= ining ? ining : 3;
-          else
-	    l5 -= 4;
-
-	}
-      else l5=0;
-
-     if (l5)
-       {
-	 if (ining)
-	   {
-	     nef ++;
-	     nmae = l5-kining;
-	     no5l[kining] = ining;
-	   }
-	 else l5--;
-	 no5l[1]=nmae;
-	 // for all ref  
-	 for (j=kining+1;j<l5;j++)
-	   {
-	     no5l[j] = Abs(no5l[j]);
-	     ndsr = Max(ndsr,no5l[j]);
-	   }
-	 
-	 if (f && i < 10 && verbosity > 10)
-	   { 
-	     cout << " e[ " << i << " @" << i5 << "]=";
-	     for (j=0;j<l5;j++)
-	       cout << " " << no5l[j]; 
-	     cout << endl;
-	   }
-	 
-	 if (f)
-	   for (j=0;j<l5;j++)
-	     *f << no5l[j]; 
-	 i5 += l5;
-       }
-    }
-  if(verbosity>10)
-  cout << "   fin write nopo 5 i5=" << i5 << " " << i5*4 << endl;
-  lnop5=i5; 
-  lgpdn++; // add 1
-  delete [] reft;
-  delete [] head;
-  delete [] link;
-  
-}
-
-void Triangles::Write_nopo(ostream &ff) const
-
-{
- Int4  nef=0;
- Int4 lpgdn=0;
- Int4 ndsr=0;
- Int4 i;
- Int4 ndsd=1;
- Int4 lnop5=0;
- 
- OFortranUnFormattedFile f(ff);
- 
- for (i=0;i<NbSubDomains ;i++)
-   ndsd=Max(ndsd,subdomains[i].ref);
- 
- // to compute the lnop5,nef,lpgdn,ndsr parameter 
- Write_nop5(0,lnop5,nef,lpgdn,ndsr);
- 
- f.Record();
- 
- f <<  Int4(13)<<Int4(6)<<Int4(32)<<Int4(0)<<Int4(27)<<Int4(0) ;
- f << Int4(nbv+nbv) ;
- f << lnop5;
- f << Int4(1 )<<Int4(1)<<Int4(1 )<<Int4(1)<<Int4(2)<<Int4(1);
-
- f.Record(33*sizeof(Int4)); 
-
- f << Int4(32) ;
- 
- //char *c=identity;
- time_t timer =time(0);
- char buf[10];
- strftime(buf ,10,"%y/%m/%d",localtime(&timer));
- f.write4(identity,20);
- f.write4(buf,2);
- f.write4("created with BAMG",6);
- f.write4("NOPO",1);
-
- 
- f << Int4(0) << Int4(1) << Int4(0) ;
- f.Record();
- Int4 nbquad= NbOfQuad;
- Int4 nbtria= nbt-NbOutT - 2*NbOfQuad;
-
- cout << " lnop5      = " << lnop5 << endl;
- cout << " nbquad     = " << nbquad << endl;
- cout << " nbtrai     = " << nbtria << endl;
- cout << " lpgdn      = " << lpgdn << endl;
- cout << " nef        = " << nef  << endl;
- cout << " np         = " << nbv  << endl;
- cout << " ndsr       = " << ndsr << endl;
- f << Int4(27)  
-   << Int4(2)  << ndsr     << ndsd    << Int4(1) << nbtria+nbquad
-   << Int4(0)  << Int4(0)  << nbtria  << nbquad  << Int4(0)
-   << Int4(0)  << Int4(0)  << Int4(0) << nef     << Int4(nbv)
-   << Int4(0)  << Int4(0)  << Int4(0) << Int4(0) << Int4(0)
-   << Int4(0)  << nbv      << Int4(2) << lpgdn   << Int4(0)
-   << lnop5    << Int4(1) ;
-  f.Record();
-  f << (Int4) 2*nbv;
-  for (i=0;i<nbv;i++)
-    f << (float) vertices[i].r.x <<  (float) vertices[i].r.y;
-  f.Record();
-  f << lnop5;
-  Write_nop5(&f,lnop5,nef,lpgdn,ndsr);
-  // cout << "fin write nopo" << endl;
-}
-
-void Triangles::Write_am_fmt(ostream &f) const 
-{
-  Int4 i,j;
-  assert(this && nbt);
-  Int4 * reft = new Int4[nbt];
-  Int4 nbInT =    ConsRefTriangle(reft);
-  f.precision(12);
-  f << nbv << " " << nbInT << endl;
-  for (i=0;i<nbt;i++)
-    if(reft[i]>=0)
-      {
-	f << Number(triangles[i][0]) +1 << " " ;
-	f << Number(triangles[i][1]) +1 << " " ;
-	f << Number(triangles[i][2]) +1 << " " ;
-	f << endl;
-      }
-  for (i=0;i<nbv;i++)
-      f << vertices[i].r.x << " " << vertices[i].r.y << endl;
-   for (j=i=0;i<nbt;i++) 
-     if (reft[i]>=0)
-       f << subdomains[reft[i]].ref  << (j++%10 == 9 ?  '\n' : ' ');
-   f << endl;
-   for (i=0;i<nbv;i++)
-     f << vertices[i].ref()  << (i%10 == 9 ?  '\n' : ' ');
-   f << endl;
-   delete [] reft;
-
-
-}
-
-void Triangles::Write_am(ostream &ff) const 
-{
-  OFortranUnFormattedFile f(ff);  
-  Int4 i,j;
-  assert(this && nbt);
-  Int4 * reft = new Int4[nbt];
-  Int4 nbInT =    ConsRefTriangle(reft);
-  f.Record();
-  f << nbv << nbInT ;
-  f.Record();
-  for (i=0;i<nbt;i++)
-    if(reft[i]>=0)
-      {
-	f << Number(triangles[i][0]) +1 ;
-	f << Number(triangles[i][1]) +1 ;
-	f << Number(triangles[i][2]) +1 ;
-      }
-  for (i=0;i<nbv;i++)
-    {
-      float x= vertices[i].r.x;
-      float y= vertices[i].r.y;
-      f << x << y ;
-    }
-  for (j=i=0;i<nbt;i++) 
-    if (reft[i]>=0)
-      f << subdomains[reft[i]].ref;
-  for (i=0;i<nbv;i++)
-    f << vertices[i].ref() ;
-  delete [] reft;
-}
-
-void Triangles::Write_ftq(ostream &f) const 
-{
-
-  Int4 i;
-  assert(this && nbt);
-  Int4 * reft = new Int4[nbt];
-  Int4 nbInT =    ConsRefTriangle(reft);
-  f.precision(12);
-  Int4 nele = nbInT-NbOfQuad;
-  Int4 ntri =  nbInT-2*NbOfQuad;
-  Int4 nqua =  NbOfQuad;
-
-  f << nbv << " " << nele << " " << ntri <<  " " << nqua << endl;
-  Int4 k=0;
-  for( i=0;i<nbt;i++)
-    { 
-      Triangle & t = triangles[i];
-      Triangle * ta; // 
-      Vertex *v0,*v1,*v2,*v3;
-      if (reft[i]<0) continue;
-      ta = t.Quadrangle(v0,v1,v2,v3);
-      if (!ta)
-	{ // a triangles
-	  f << "3 " 
-	    << Number(triangles[i][0]) +1 << " " 
-	    << Number(triangles[i][1]) +1 << " " 
-	    << Number(triangles[i][2]) +1 << " " 
-	    << subdomains[reft[i]].ref << endl;
-	  k++;
-	}
-      if ( &t<ta)
-	{ 
-	  k++;
-	  f << "4 " << Number(v0)+1 << " " << Number(v1)+1  << " "  
-	    << Number(v2)+1 << " "  << Number(v3)+1 << " "  
-	    << subdomains[reft[i]].ref << endl;
-	}
-    }
-  assert(k == nele);
-  
-  for (i=0;i<nbv;i++)
-    f << vertices[i].r.x << " " << vertices[i].r.y 
-      << " " <<  vertices[i].ref() << endl;
-  delete [] reft;
-  
-  
-}
-void Triangles::Write_msh(ostream &f) const 
-{
-  Int4 i;
-  assert(this && nbt);
-  Int4 * reft = new Int4[nbt];
-  Int4 nbInT =    ConsRefTriangle(reft);
-  f.precision(12);
-  f << nbv << " " << nbInT << " " << nbe <<  endl;
-
-  for (i=0;i<nbv;i++)
-    f << vertices[i].r.x << " " << vertices[i].r.y << " " 
-      << vertices[i].ref() <<   endl;
-
-  for (i=0;i<nbt;i++)
-    if(reft[i]>=0)
-      f << Number(triangles[i][0]) +1 << " " 
-	<< Number(triangles[i][1]) +1 << " " 
-	<< Number(triangles[i][2]) +1 << " " 
-	<< subdomains[reft[i]].ref << endl;
-  
-
-  for (i=0;i<nbe;i++)
-    f << Number(edges[i][0]) +1 << " "  << Number(edges[i][1]) +1 
-      << " " << edges[i].ref << endl;
-      
-   delete [] reft;
-
-}
-
-void Triangles::Write_amdba(ostream &f) const 
-{
-  assert(this && nbt);
-
-  Int4 i,j;
-  Int4 * reft = new Int4[nbt];
-  Int4 nbInT =    ConsRefTriangle(reft);
-  f << nbv << " " << nbInT << endl;
-  cout.precision(12);
-  for (i=0;i<nbv;i++)
-    f << i+1 << " " 
-      << vertices[i].r.x 
-      << " " << vertices[i].r.y 
-      << " " << vertices[i].ref() << endl;
-  j=1;
-  for (i=0;i<nbt;i++)
-    if(reft[i]>=0)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	f << j++ << " " 
-	  << Number(triangles[i][0]) +1 << " " 
-	  << Number(triangles[i][1]) +1 << " " 
-	  << Number(triangles[i][2]) +1 << " " 
-	  << subdomains[reft[i]].ref  << endl ;
-<<<<<<< HEAD
-    f << endl;
-    delete [] reft;
-
-
-  }
-
-  void Triangles::Write(const char * filename)
-  {
-    ofstream f(filename);
-    if (f)
-      {
-	if (name) delete name;
-	name = new char[strlen(filename)+1];
-	strcpy(name,filename);
-	OnDisk =1;
-	f << *this;
-      }
-  }
-  void Triangles::WriteElements(ostream& f,Int4 * reft ,Int4 nbInT) const
-  { 
-    const Triangles & Th= *this;
-    // do triangle and quad 
-    if(verbosity>9) 
-      cout  << " In Triangles::WriteElements " << endl
-	    << "   Nb of In triangles " << nbInT-Th.NbOfQuad*2 << endl
-	    << "   Nb of Quadrilaterals " <<  Th.NbOfQuad << endl
-	    << "   Nb of in+out+quad  triangles " << Th.nbt << " " << nbInT << endl;
-	 
-    Int4 k=nbInT-Th.NbOfQuad*2;
-    Int4 num =0;
-    if (k>0) {
-      f << "\nTriangles\n"<< k << endl;
-      for(Int4 i=0;i<Th.nbt;i++)
-	{ 
-	  Triangle & t = Th.triangles[i];
-	  if (reft[i]>=0 && !( t.Hidden(0) || t.Hidden(1) || t.Hidden(2) ))
-	    { k--;
-	      f << Th.Number(t[0])+1 << " " << Th.Number(t[1])+1 
-		<< " "  << Th.Number(t[2])+1  << " " << Th.subdomains[reft[i]].ref << endl;
-	      reft[i] = ++num;
-	    }
-	}
-    } 
-    if (Th.NbOfQuad>0) {
-      f << "\nQuadrilaterals\n"<<Th.NbOfQuad << endl;
-      k = Th.NbOfQuad;
-      for(Int4 i=0;i<Th.nbt;i++)
-	{ 
-	  Triangle & t = Th.triangles[i];
-	  Triangle * ta; // 
-	  Vertex *v0,*v1,*v2,*v3;
-	  if (reft[i]<0) continue;
-	  if ((ta=t.Quadrangle(v0,v1,v2,v3)) !=0 && &t<ta)
-	    { 
-	      k--;
-	      f << Th.Number(v0)+1 << " " << Th.Number(v1)+1  << " "  
-		<< Th.Number(v2)+1 << " "  << Th.Number(v3)+1 << " "  
-		<< Th.subdomains[reft[i]].ref << endl;
-	      reft[i] = ++num;
-	      reft[Number(ta)] = num;
-	    }
-	}
-      assert(k==0);
-    }
-    // warning reft is now the element number 
-  }
-
-  ostream& operator <<(ostream& f, const   Triangles & Th) 
-  {
-    //  Th.FindSubDomain();
-    // warning just on say the class is on the disk
-    //  ((Triangles *) &Th)->OnDisk = 1;
-
-    Int4 * reft = new Int4[Th.nbt];
-    Int4 nbInT =    Th.ConsRefTriangle(reft);
-    {
-      f << "MeshVersionFormatted 0" <<endl;
-      f << "\nDimension\n"  << 2 << endl;
-      f << "\nIdentifier\n" ;
-      WriteStr(f,Th.identity);
-      f << "\n\nGeometry\n" ;
-      if( Th.Gh.OnDisk)
-	WriteStr(f,Th.Gh.name),     f <<endl;
-      else
-	{ // empty file name -> geom in same file
-	  f << "\"\"" << endl << endl;
-	  f << "# BEGIN of the include geometry file because geometry is not on the disk"
-	    << Th.Gh << endl;
-	  f << "End" << endl 
-	    << "# END of the include geometrie file because geometry is not on the disk"
-	    << endl ;
-	}
-    }
-    { 
-      f.precision(12);
-      f << "\nVertices\n" << Th.nbv <<endl;
-      for (Int4 i=0;i<Th.nbv;i++)
-	{
-	  Vertex & v =  Th.vertices[i];
-	  f << v.r.x << " " << v.r.y << " " << v.ref() << endl;
-	}
-    }
-    Int4 ie; 
-    {
-      f << "\nEdges\n"<< Th.nbe << endl;
-      for(ie=0;ie<Th.nbe;ie++)
-	{ 
-	  Edge & e = Th.edges[ie];
-	  f << Th.Number(e[0])+1 << " " << Th.Number(e[1])+1;
-	  f << " " << e.ref <<endl;
-	}
-      if(Th.NbCrackedEdges)
-	{
-	  f << "\nCrackedEdges\n"<< Th.NbCrackedEdges << endl;
-	  for( ie=0;ie<Th.NbCrackedEdges;ie++)
-	    { 
-	      Edge & e1 = *Th.CrackedEdges[ie].a.edge;
-	      Edge & e2 = *Th.CrackedEdges[ie].b.edge;
-	      f << Th.Number(e1)+1 << " " << Th.Number(e2)+1 <<endl;;
-	    }
-	}
-    }
-
-    Th.WriteElements(f,reft,nbInT);
-    {
-      f << "\nSubDomainFromMesh\n" << Th.NbSubDomains<< endl ;
-      for (Int4 i=0;i<Th.NbSubDomains;i++)
-	f << 3 << " " << reft[Th.Number(Th.subdomains[i].head)] << " " << 1 << " " 
-	  <<  Th.subdomains[i].ref << endl;
-     
-    }
-    if (Th.Gh.NbSubDomains)
-      {
-        f << "\nSubDomainFromGeom\n" << Th.Gh.NbSubDomains << endl ;
-	for (Int4 i=0;i<Th.NbSubDomains;i++)
-	  {  
-	    f << 2 << " " << Th.Number(Th.subdomains[i].edge)+1 << " " 
-	      <<  Th.subdomains[i].sens  << " " <<  Th.Gh.subdomains[i].ref << endl;
-	  } 
-      }
-    {
-      f << "\nVertexOnGeometricVertex\n"<<  Th.NbVerticesOnGeomVertex << endl;
-      for (Int4 i0=0;i0<Th.NbVerticesOnGeomVertex;i0++)
-	{
-	  VertexOnGeom & v =Th.VerticesOnGeomVertex[i0];
-	  assert(v.OnGeomVertex()) ;
-	  f << " " << Th.Number(( Vertex *)v)+1  
-	    << " " << Th.Gh.Number(( GeometricalVertex * )v)+1 
-	    << endl;
-	}
-    }
-    { 
-      f << "\nVertexOnGeometricEdge\n"<<  Th.NbVerticesOnGeomEdge << endl;
-      for (Int4 i0=0;i0<Th.NbVerticesOnGeomEdge;i0++)
-	{
-	  const VertexOnGeom & v =Th.VerticesOnGeomEdge[i0];
-	  assert(v.OnGeomEdge()) ;   
-	  f << " " << Th.Number((Vertex * )v)+1  ;
-	  f << " " << Th.Gh.Number((const  GeometricalEdge * )v)+1  ;
-	  f << " " << (Real8 ) v << endl;
-	}
-    }
-    {
-      Int4 i0,k=0;
-
-      for (i0=0;i0<Th.nbe;i0++)
-	if ( Th.edges[i0].on ) k++;
-     
-      f << "\nEdgeOnGeometricEdge\n"<< k << endl;
-=======
-	f << endl;
-   delete [] reft;
-
-
-}
-
-void Triangles::Write(const char * filename)
-{
-  ofstream f(filename);
-  if (f)
-    {
-       if (name) delete name;
-       name = new char[strlen(filename)+1];
-       strcpy(name,filename);
-       OnDisk =1;
-       f << *this;
-    }
-}
-void Triangles::WriteElements(ostream& f,Int4 * reft ,Int4 nbInT) const
-   { 
-     const Triangles & Th= *this;
-     // do triangle and quad 
-     if(verbosity>9) 
-       cout  << " In Triangles::WriteElements " << endl
-	     << "   Nb of In triangles " << nbInT-Th.NbOfQuad*2 << endl
-	     << "   Nb of Quadrilaterals " <<  Th.NbOfQuad << endl
-	     << "   Nb of in+out+quad  triangles " << Th.nbt << " " << nbInT << endl;
-	 
-     Int4 k=nbInT-Th.NbOfQuad*2;
-     Int4 num =0;
-     if (k>0) {
-       f << "\nTriangles\n"<< k << endl;
-       for(Int4 i=0;i<Th.nbt;i++)
-	 { 
-	   Triangle & t = Th.triangles[i];
-	   if (reft[i]>=0 && !( t.Hidden(0) || t.Hidden(1) || t.Hidden(2) ))
-	    { k--;
-	      f << Th.Number(t[0])+1 << " " << Th.Number(t[1])+1 
-		   << " "  << Th.Number(t[2])+1  << " " << Th.subdomains[reft[i]].ref << endl;
-		   reft[i] = ++num;
-		 }
-	 }
-     } 
-     if (Th.NbOfQuad>0) {
-       f << "\nQuadrilaterals\n"<<Th.NbOfQuad << endl;
-       k = Th.NbOfQuad;
-       for(Int4 i=0;i<Th.nbt;i++)
-	 { 
-	   Triangle & t = Th.triangles[i];
-	   Triangle * ta; // 
-	   Vertex *v0,*v1,*v2,*v3;
-	   if (reft[i]<0) continue;
-	   if ((ta=t.Quadrangle(v0,v1,v2,v3)) !=0 && &t<ta)
-	      { 
-		k--;
-		f << Th.Number(v0)+1 << " " << Th.Number(v1)+1  << " "  
-		  << Th.Number(v2)+1 << " "  << Th.Number(v3)+1 << " "  
-		  << Th.subdomains[reft[i]].ref << endl;
-		  reft[i] = ++num;
-		  reft[Number(ta)] = num;
-	      }
-	 }
-       assert(k==0);
-     }
-     // warning reft is now the element number 
-   }
-
-ostream& operator <<(ostream& f, const   Triangles & Th) 
- {
-  //  Th.FindSubDomain();
-   // warning just on say the class is on the disk
-  //  ((Triangles *) &Th)->OnDisk = 1;
-
-   Int4 * reft = new Int4[Th.nbt];
-   Int4 nbInT =    Th.ConsRefTriangle(reft);
-   {
-     f << "MeshVersionFormatted 0" <<endl;
-     f << "\nDimension\n"  << 2 << endl;
-     f << "\nIdentifier\n" ;
-     WriteStr(f,Th.identity);
-     f << "\n\nGeometry\n" ;
-     if( Th.Gh.OnDisk)
-       WriteStr(f,Th.Gh.name),     f <<endl;
-     else
-       { // empty file name -> geom in same file
-	 f << "\"\"" << endl << endl;
-	 f << "# BEGIN of the include geometry file because geometry is not on the disk"
-	   << Th.Gh << endl;
-	 f << "End" << endl 
-	   << "# END of the include geometrie file because geometry is not on the disk"
-	   << endl ;
-       }
-   }
-   { 
-     f.precision(12);
-     f << "\nVertices\n" << Th.nbv <<endl;
-     for (Int4 i=0;i<Th.nbv;i++)
-       {
-	 Vertex & v =  Th.vertices[i];
-	 f << v.r.x << " " << v.r.y << " " << v.ref() << endl;
-       }
-   }
-  Int4 ie; 
-   {
-     f << "\nEdges\n"<< Th.nbe << endl;
-     for(ie=0;ie<Th.nbe;ie++)
-       { 
-	 Edge & e = Th.edges[ie];
-	 f << Th.Number(e[0])+1 << " " << Th.Number(e[1])+1;
-	f << " " << e.ref <<endl;
-       }
-     if(Th.NbCrackedEdges)
-       {
-	 f << "\nCrackedEdges\n"<< Th.NbCrackedEdges << endl;
-	 for( ie=0;ie<Th.NbCrackedEdges;ie++)
-	   { 
-	     Edge & e1 = *Th.CrackedEdges[ie].a.edge;
-	     Edge & e2 = *Th.CrackedEdges[ie].b.edge;
-	     f << Th.Number(e1)+1 << " " << Th.Number(e2)+1 <<endl;;
-	   }
-       }
-   }
-
-   Th.WriteElements(f,reft,nbInT);
-   {
-     f << "\nSubDomainFromMesh\n" << Th.NbSubDomains<< endl ;
-     for (Int4 i=0;i<Th.NbSubDomains;i++)
-       f << 3 << " " << reft[Th.Number(Th.subdomains[i].head)] << " " << 1 << " " 
-	 <<  Th.subdomains[i].ref << endl;
-     
-   }
-   if (Th.Gh.NbSubDomains)
-     {
-        f << "\nSubDomainFromGeom\n" << Th.Gh.NbSubDomains << endl ;
-       for (Int4 i=0;i<Th.NbSubDomains;i++)
-	 {  
-	 f << 2 << " " << Th.Number(Th.subdomains[i].edge)+1 << " " 
-	   <<  Th.subdomains[i].sens  << " " <<  Th.Gh.subdomains[i].ref << endl;
-	 } 
-   }
-   {
-     f << "\nVertexOnGeometricVertex\n"<<  Th.NbVerticesOnGeomVertex << endl;
-     for (Int4 i0=0;i0<Th.NbVerticesOnGeomVertex;i0++)
-       {
-	 VertexOnGeom & v =Th.VerticesOnGeomVertex[i0];
-	 assert(v.OnGeomVertex()) ;
-	 f << " " << Th.Number(( Vertex *)v)+1  
-	   << " " << Th.Gh.Number(( GeometricalVertex * )v)+1 
-	   << endl;
-       }
-   }
-   { 
-     f << "\nVertexOnGeometricEdge\n"<<  Th.NbVerticesOnGeomEdge << endl;
-     for (Int4 i0=0;i0<Th.NbVerticesOnGeomEdge;i0++)
-       {
-	 const VertexOnGeom & v =Th.VerticesOnGeomEdge[i0];
-	 assert(v.OnGeomEdge()) ;   
-	 f << " " << Th.Number((Vertex * )v)+1  ;
-	 f << " " << Th.Gh.Number((const  GeometricalEdge * )v)+1  ;
-	 f << " " << (Real8 ) v << endl;
-       }
-   }
-   {
-     Int4 i0,k=0;
-
-     for (i0=0;i0<Th.nbe;i0++)
-       if ( Th.edges[i0].on ) k++;
-     
-     f << "\nEdgeOnGeometricEdge\n"<< k << endl;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      for (i0=0;i0<Th.nbe;i0++)
-	if ( Th.edges[i0].on ) 
-	  f << (i0+1) << " "  << (1+Th.Gh.Number(Th.edges[i0].on)) <<  endl;
-      if (Th.NbCrackedEdges)
-	{
-	  f << "\nCrackedEdges\n"<< Th.NbCrackedEdges << endl;	  
-	  for(i0=0;i0< Th.NbCrackedEdges; i0++) 
-	    {
-	      f << Th.Number(Th.CrackedEdges[i0].a.edge) << " " ;
-	      f  << Th.Number(Th.CrackedEdges[i0].b.edge) << endl;
-	    }
-	}
-<<<<<<< HEAD
-    }  
-    if (&Th.BTh != &Th && Th.BTh.OnDisk && Th.BTh.name) 
-      {
-	int *mark=new int[Th.nbv];
-	Int4 i;
-	for (i=0;i<Th.nbv;i++)
-	  mark[i]=-1;
-	f << "\nMeshSupportOfVertices\n" <<endl;
-	WriteStr(f,Th.BTh.name);
-	f <<endl;
-	f << "\nIdentityOfMeshSupport" << endl;
-	WriteStr(f,Th.BTh.identity);
-	f<<endl;
-
-	f << "\nVertexOnSupportVertex" << endl;
-	f<< Th.NbVertexOnBThVertex << endl;
-	for(i=0;i<Th.NbVertexOnBThVertex;i++) {
-	  const VertexOnVertex & vov = Th.VertexOnBThVertex[i];
-	  Int4 iv = Th.Number(vov.v);
-	  mark[iv] =0;
-	  f << iv+1<< " " << Th.BTh.Number(vov.bv)+1 << endl;}
-
-	f << "\nVertexOnSupportEdge" << endl;
-	f << Th.NbVertexOnBThEdge << endl;
-	for(i=0;i<Th.NbVertexOnBThEdge;i++) {
-	  const VertexOnEdge & voe = Th.VertexOnBThEdge[i];
-	  Int4 iv = Th.Number(voe.v);
-	  //	 assert(mark[iv] == -1]);
-	  mark[iv] = 1;
-	  f << iv+1 << " " << Th.BTh.Number(voe.be)+1 << " " << voe.abcisse <<  endl;}
-       
-	f << "\nVertexOnSupportTriangle" << endl;   
-	Int4 k = Th.nbv -  Th.NbVertexOnBThEdge - Th.NbVertexOnBThVertex;
-	f << k << endl;
-	//       Int4 kkk=0;
-	CurrentTh=&Th.BTh;
-	for (i=0;i<Th.nbv;i++) 
-	  if (mark[i] == -1) {
-	    k--;
-	    Icoor2 dete[3];
-	    I2 I = Th.BTh.toI2(Th.vertices[i].r);
-	    Triangle * tb = Th.BTh.FindTriangleContening(I,dete);
-	    if (tb->link) // a true triangle
-	      {
-		Real8 aa= (Real8) dete[1]/ tb->det, bb= (Real8) dete[2] / tb->det;
-		f << i+1 << " " << Th.BTh.Number(tb)+1 << " " << aa << " " << bb << endl ;
-	      }
-	    else 
-	      {
-		double aa,bb,det[3];
-		TriangleAdjacent ta=CloseBoundaryEdgeV2(I,tb,aa,bb);
-		int k = ta;
-		det[VerticesOfTriangularEdge[k][1]] =aa;
-		det[VerticesOfTriangularEdge[k][0]] = bb;
-		det[OppositeVertex[k]] = 1- aa -bb;
-		Triangle * tb = ta;
-		f << i+1 << Th.BTh.Number(tb)+1 << " " << det[1] << " " << det[2] <<endl;
-	      }
-	  }
-	assert(!k);
-	delete [] mark;
-	 
-
-      }
-    f << "\nEnd" << endl;
-    //  Th.ConsLinkTriangle();
-    delete [] reft;
-    return f;
-   
-  }
-
-
-
-  void Geometry::Write(const char * filename)
-  {
-    ofstream f(filename);
-    if (f)
-      {
-	if(verbosity>1)
-	  cout << "  -- write geometry in file " << filename << endl;
-	if (name) delete name;
-	name = new char[strlen(filename)+1];
-	strcpy(name,filename);
-	OnDisk =1;
-	f << *this;
-      }
-  }
-
-  ostream& operator <<(ostream& f, const   Geometry & Gh) 
-  {
-    Int4  NbCorner=0;
-    {
-      f << "MeshVersionFormatted 0" <<endl;
-      f << "\nDimension\n"  << 2 << endl;
-      //     f << "\nIdentifier\n" ;
-      //     WriteStr(f,Gh.identity);
-      //     f <<endl;
-    }
-    int nbreqv=0;
-    { 
-     
-      f.precision(12);
-      f << "\nVertices\n" << Gh.nbv <<endl;
-      for (Int4 i=0;i<Gh.nbv;i++)
-	{
-	  GeometricalVertex & v =  Gh.vertices[i];
-	  if (v.Required()) nbreqv++;
-	  f << v.r.x << " " << v.r.y << " " << v.ref() << endl;
-	  if (v.Corner()) NbCorner++;
-	}
-    }
-   
-    int nbcracked=0;
-
-    {
-      int nbreq=0;
-      f << "\nEdges\n"<< Gh.nbe << endl;
-      for(Int4 ie=0;ie<Gh.nbe;ie++)
-	{ 
-	 
-	  GeometricalEdge & e = Gh.edges[ie];
-	  if (e.Required()) nbreq++;
-	  if (e.Cracked()) { 
-	    Int4 ie1 = Gh.Number(e.link);
-	    if (ie <= ie1)  ++nbcracked;}
-	  f << Gh.Number(e[0])+1 << " " << Gh.Number(e[1])+1;
-	  f << " " << e.ref <<endl;
-	}
-     
-      if (nbcracked)
-	{
-	  f << "\nCrackedEdges\n"<< nbcracked<< endl;
-	  for(Int4 ie=0;ie<Gh.nbe;ie++)
-	    {
-	      GeometricalEdge & e = Gh.edges[ie];
-	      if (e.Cracked()) { 
-		Int4  ie1 = Gh.Number(e.link);
-		if (ie <= ie1)  f << ie+1 << " " << ie1+1<< endl;
-	      }
-	    }
-	}
-      if(nbreq)
-	{
-	  f << "\nRequiredEdges\n"<< nbreq<< endl;
-	  for(Int4 ie=0;ie<Gh.nbe;ie++)
-	    {
-	      GeometricalEdge & e = Gh.edges[ie];
-	      if (e.Required()) 
-		f << ie+1 << endl;
-	    }
-	}
-     
-     
-     
-    }
-
-    f << "\nAngleOfCornerBound\n" 
-      << Gh.MaximalAngleOfCorner*180/Pi << endl;
-=======
-   }  
-   if (&Th.BTh != &Th && Th.BTh.OnDisk && Th.BTh.name) 
-     {
-       int *mark=new int[Th.nbv];
-       Int4 i;
-       for (i=0;i<Th.nbv;i++)
-	 mark[i]=-1;
-       f << "\nMeshSupportOfVertices\n" <<endl;
-       WriteStr(f,Th.BTh.name);
-       f <<endl;
-       f << "\nIdentityOfMeshSupport" << endl;
-       WriteStr(f,Th.BTh.identity);
-       f<<endl;
-
-       f << "\nVertexOnSupportVertex" << endl;
-       f<< Th.NbVertexOnBThVertex << endl;
-       for(i=0;i<Th.NbVertexOnBThVertex;i++) {
-	 const VertexOnVertex & vov = Th.VertexOnBThVertex[i];
-	 Int4 iv = Th.Number(vov.v);
-	 mark[iv] =0;
-	 f << iv+1<< " " << Th.BTh.Number(vov.bv)+1 << endl;}
-
-       f << "\nVertexOnSupportEdge" << endl;
-       f << Th.NbVertexOnBThEdge << endl;
-       for(i=0;i<Th.NbVertexOnBThEdge;i++) {
-	 const VertexOnEdge & voe = Th.VertexOnBThEdge[i];
-	 Int4 iv = Th.Number(voe.v);
-	 //	 assert(mark[iv] == -1]);
-	 mark[iv] = 1;
-	 f << iv+1 << " " << Th.BTh.Number(voe.be)+1 << " " << voe.abcisse <<  endl;}
-       
-       f << "\nVertexOnSupportTriangle" << endl;   
-       Int4 k = Th.nbv -  Th.NbVertexOnBThEdge - Th.NbVertexOnBThVertex;
-       f << k << endl;
-       //       Int4 kkk=0;
-       CurrentTh=&Th.BTh;
-       for (i=0;i<Th.nbv;i++) 
-	 if (mark[i] == -1) {
-	   k--;
-	   Icoor2 dete[3];
-	   I2 I = Th.BTh.toI2(Th.vertices[i].r);
-	   Triangle * tb = Th.BTh.FindTriangleContening(I,dete);
-	   if (tb->link) // a true triangle
-	     {
-	       Real8 aa= (Real8) dete[1]/ tb->det, bb= (Real8) dete[2] / tb->det;
-	       f << i+1 << " " << Th.BTh.Number(tb)+1 << " " << aa << " " << bb << endl ;
-	     }
-	   else 
-	     {
-	       double aa,bb,det[3];
-	       TriangleAdjacent ta=CloseBoundaryEdgeV2(I,tb,aa,bb);
-	       int k = ta;
-	       det[VerticesOfTriangularEdge[k][1]] =aa;
-	       det[VerticesOfTriangularEdge[k][0]] = bb;
-	       det[OppositeVertex[k]] = 1- aa -bb;
-	       Triangle * tb = ta;
-	       f << i+1 << Th.BTh.Number(tb)+1 << " " << det[1] << " " << det[2] <<endl;
-	     }
-	 }
-       assert(!k);
-       delete [] mark;
-	 
-
-     }
-   f << "\nEnd" << endl;
-   //  Th.ConsLinkTriangle();
-   delete [] reft;
-   return f;
-   
-}
-
-
-
-void Geometry::Write(const char * filename)
-{
-  ofstream f(filename);
-  if (f)
-    {
-      if(verbosity>1)
-	cout << "  -- write geometry in file " << filename << endl;
-       if (name) delete name;
-       name = new char[strlen(filename)+1];
-       strcpy(name,filename);
-       OnDisk =1;
-       f << *this;
-    }
-}
-
-ostream& operator <<(ostream& f, const   Geometry & Gh) 
-{
-   Int4  NbCorner=0;
-   {
-     f << "MeshVersionFormatted 0" <<endl;
-     f << "\nDimension\n"  << 2 << endl;
-//     f << "\nIdentifier\n" ;
-//     WriteStr(f,Gh.identity);
-//     f <<endl;
-   }
-   int nbreqv=0;
-   { 
-     
-     f.precision(12);
-     f << "\nVertices\n" << Gh.nbv <<endl;
-     for (Int4 i=0;i<Gh.nbv;i++)
-       {
-	 GeometricalVertex & v =  Gh.vertices[i];
-	 if (v.Required()) nbreqv++;
-	 f << v.r.x << " " << v.r.y << " " << v.ref() << endl;
-	 if (v.Corner()) NbCorner++;
-       }
-   }
-   
-   int nbcracked=0;
-
-   {
-     int nbreq=0;
-     f << "\nEdges\n"<< Gh.nbe << endl;
-     for(Int4 ie=0;ie<Gh.nbe;ie++)
-       { 
-	 
-	 GeometricalEdge & e = Gh.edges[ie];
-	 if (e.Required()) nbreq++;
-	 if (e.Cracked()) { 
-	   Int4 ie1 = Gh.Number(e.link);
-	   if (ie <= ie1)  ++nbcracked;}
-	 f << Gh.Number(e[0])+1 << " " << Gh.Number(e[1])+1;
-	 f << " " << e.ref <<endl;
-       }
-     
-     if (nbcracked)
-       {
-	 f << "\nCrackedEdges\n"<< nbcracked<< endl;
-	 for(Int4 ie=0;ie<Gh.nbe;ie++)
-	   {
-	     GeometricalEdge & e = Gh.edges[ie];
-	     if (e.Cracked()) { 
-	       Int4  ie1 = Gh.Number(e.link);
-	       if (ie <= ie1)  f << ie+1 << " " << ie1+1<< endl;
-	     }
-	   }
-       }
-     if(nbreq)
-       {
-	 f << "\nRequiredEdges\n"<< nbreq<< endl;
-         for(Int4 ie=0;ie<Gh.nbe;ie++)
-           {
-             GeometricalEdge & e = Gh.edges[ie];
-             if (e.Required()) 
-	       f << ie+1 << endl;
-	   }
-       }
-     
-     
-     
-   }
-
-    f << "\nAngleOfCornerBound\n" 
-     << Gh.MaximalAngleOfCorner*180/Pi << endl;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    if (NbCorner) 
-      {
-	f << "\nCorners\n" << NbCorner << endl;
-	for (Int4 i=0,j=0;i<Gh.nbv;i++)
-	  {
-	    GeometricalVertex & v =  Gh.vertices[i];
-	    if (v.Corner()) 
-	      j++,f << Gh.Number(v)+1 << (j % 5 ? ' ' : '\n');
-	  }
-        
-      
-      }
-
-    if(nbreqv)
-      {
-	f << "\nRequiredVertices\n"<< nbreqv<< endl;
-	for (Int4 j=0,i=0;i<Gh.nbv;i++)
-	  {
-	    GeometricalVertex & v =  Gh.vertices[i];
-	    
-	    if (v.Required()) 
-	      j++,f << i+1 << (j % 5 ? ' ' : '\n');
-	  }
-	f << endl;
-      }
-    
-    { 
-<<<<<<< HEAD
-      Int4 i;
-      f << "\nSubDomainFromGeom\n" ;
-      f << Gh.NbSubDomains<< endl;
-      for (i=0;i<Gh.NbSubDomains;i++) 
-	f << "2 " << Gh.Number(Gh.subdomains[i].edge)+1 << " " << Gh.subdomains[i].sens 
-	  << " " << Gh.subdomains[i].ref << endl;        
-    }
-    {
-      Int4 n=0,i;
-
-      for(i=0;i< Gh.nbe;i++)
-	{
-	  if(Gh.edges[i].TgA() && Gh.edges[i][0].Corner() ) 
-	    n++;
-	  if(Gh.edges[i].TgB() && Gh.edges[i][1].Corner() ) 
-	    n++;
-	}
-      if (n) {
-	f << "TangentAtEdges " << n << endl;
-	for(i=0;i< Gh.nbe;i++)
-	  {
-	    if (Gh.edges[i].TgA() && Gh.edges[i][0].Corner() ) 
-	      f << i+1 << " 1 " << Gh.edges[i].tg[0].x 
-		<< " " << Gh.edges[i].tg[0].y << endl;
-	    if (Gh.edges[i].TgB() && Gh.edges[i][1].Corner() ) 
-	      f << i+1 << " 2 " << Gh.edges[i].tg[1].x 
-		<< " " << Gh.edges[i].tg[1].y << endl;
-	  }
-	 
-      }}
-    //  f << " Not Yet Implemented" << endl;
-     
-    return f;
-  }
-=======
-       Int4 i;
-       f << "\nSubDomainFromGeom\n" ;
-       f << Gh.NbSubDomains<< endl;
-       for (i=0;i<Gh.NbSubDomains;i++) 
-         f << "2 " << Gh.Number(Gh.subdomains[i].edge)+1 << " " << Gh.subdomains[i].sens 
-           << " " << Gh.subdomains[i].ref << endl;        
-     }
-     {
-       Int4 n=0,i;
-
-       for(i=0;i< Gh.nbe;i++)
-	 {
-	   if(Gh.edges[i].TgA() && Gh.edges[i][0].Corner() ) 
-	     n++;
-	   if(Gh.edges[i].TgB() && Gh.edges[i][1].Corner() ) 
-	     n++;
-	 }
-       if (n) {
-	 f << "TangentAtEdges " << n << endl;
-	 for(i=0;i< Gh.nbe;i++)
-	   {
-	     if (Gh.edges[i].TgA() && Gh.edges[i][0].Corner() ) 
-	       f << i+1 << " 1 " << Gh.edges[i].tg[0].x 
-		 << " " << Gh.edges[i].tg[0].y << endl;
-	     if (Gh.edges[i].TgB() && Gh.edges[i][1].Corner() ) 
-	       f << i+1 << " 2 " << Gh.edges[i].tg[1].x 
-		 << " " << Gh.edges[i].tg[1].y << endl;
-	   }
-	 
-       }}
-     //  f << " Not Yet Implemented" << endl;
-     
-     return f;
-}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-
-} // end of namespace bamg 
diff --git a/src/bamglib/meshtype.h.orig b/src/bamglib/meshtype.h.orig
deleted file mode 100644
index 7839e56..0000000
--- a/src/bamglib/meshtype.h.orig
+++ /dev/null
@@ -1,75 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef MESHTYPE_H
-#define MESHTYPE_H
-#include <limits.h>
-namespace bamg {
-template<class T> inline T Square (const T &a) { return a*a;} 
-template<class T> inline T Min (const T &a,const T &b){return a < b ? a : b;}
-template<class T> inline T Max (const T &a,const T & b){return a > b ? a : b;}
-template<class T> inline T Abs (const T &a){return a <0 ? -a : a;}
-template<class T> inline double Norme (const T &a){return sqrt(a*a);}
-template<class T> inline void Exchange (T& a,T& b) {T c=a;a=b;b=c;}
-// for pb on microsoft compiler 
-template<class T> inline T Max3 (const T &a,const T & b,const T & c){return Max(Max(a,b),c);}
-template<class T> inline T Min3 (const T &a,const T & b,const T & c){return Min(Min(a,b),c);}
-
-typedef float  Real4;
-typedef double Real8;
-typedef short  Int1;
-typedef short  Int2;
-typedef long   Int4;
-
-#if LONG_BIT > 63
-// for alpha and silicon 
- typedef int  Icoor1;  
- typedef long   Icoor2;
- const Icoor1 MaxICoor = 1073741823; // 2^30-1
- const  Icoor2 MaxICoor22 = Icoor2(2)*Icoor2(MaxICoor) * Icoor2(MaxICoor) ;
-
-#elif  defined(BAMG_LONG_LONG)
- typedef long  Icoor1;
- typedef long long   Icoor2;
- const Icoor1 MaxICoor =   1073741823;// 2^30-1
-// not a const due to a bug in hp compiler
-#define  MaxICoor22 2305843004918726658LL
-//const  Icoor2 MaxICoor22 = Icoor2(2)*Icoor2(MaxICoor) * Icoor2(MaxICoor) ;
-#else
- typedef int  Icoor1;
- typedef double   Icoor2;
- const Icoor1 MaxICoor = 8388608; // 2^23
- const  Icoor2 MaxICoor22 = Icoor2(2)*Icoor2(MaxICoor) * Icoor2(MaxICoor) ;
-#endif
- class Triangles;
-<<<<<<< HEAD
-extern void MeshError(int Err,const Triangles *Th=0) ;
-=======
-extern void MeshError(int Err,Triangles *Th=0) ;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-}
-#endif
diff --git a/src/bin-win32/Makefile.in b/src/bin-win32/Makefile.in
deleted file mode 100644
index c2a66e4..0000000
--- a/src/bin-win32/Makefile.in
+++ /dev/null
@@ -1,654 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/bin-win32
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = launchff++.cpp
-LDADD2 = $(ARPACKLIBS) $(UMFPACKLIBS)  $(BLASLIBS) $(G2CLIB)
-# remark the libff.dll  was  splited in 6 because  ld trap
-#  to much routine => memory fault in ld
-#  but now I see thant the couple allocation/delete
-#  must be make in same .dll file under windows
-#  is impossible to manage with the template generation
-#  so one .dll (this work with gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125))
-#   change the entry points mymain to mainff 
-# to be compatibile with bamg. 
-# 
-FF_OBJ0 = CodeAlloc.o AFunction2.o  CheckPtr.o lex.o  global.o environment.o load.o 
-FF_OBJ_AC = array_complex.o
-FF_OBJ_AR = array_real.o
-FF_OBJ_AL = array_long.o
-FF_OBJ1 = AFunction.o   InitFunct.o strversionnumber.o  mt19937ar.o string_def.o 
-FF_OBJ2 = BamgFreeFem.o  Drawing.o Element_P2h.o Element_RT.o FESpace.o FQuadTree.o InitFunct.o Mesh2.o MeshDraw.o MeshGeom.o MeshQuad.o MeshRead.o MeshWrite.o Meshio.o Metric.o QuadTree.o QuadratureFormular.o R2.o SetOfE4.o eigenvalue.o fem.o gibbs.o  lgalgo.o lgfem.o lgmat.o lgmesh.o  mshptg.o problem.o DefColor.o lgmesh3.o  P012_2d.o P012_3d.o  FESpacen.o ../libMesh/chrono.o  ../libMesh/libmesh3.o  ../libMesh/memory.o ../libMesh/eigenv.o  ../libMesh/libmesh5.o  Mesh1dn.o Mesh2dn.o Mes [...]
-FF_OBJIDE = FreeFem___cs-cs.o FreeFem___cs-commands.o FreeFem___cs-draw.o FreeFem___cs-strversionnumber.o FreeFem___cs-socket.o FreeFem___cs-threads.o FreeFem___cs-hl_yacc.o FreeFem___cs-hl_lex.o FreeFem___cs-highlight.o FreeFem___cs-spawn.o FreeFem___cs-editor.o FreeFem___cs-server.o    windres.o
-FFD_OBJ0 = $(patsubst %.o,../fflib/%.o,$(FF_OBJ0))
-FFD_OBJ_AC = $(patsubst %.o,../fflib/%.o,$(FF_OBJ_AC))
-FFD_OBJ_AL = $(patsubst %.o,../fflib/%.o,$(FF_OBJ_AL))
-FFD_OBJ_AR = $(patsubst %.o,../fflib/%.o,$(FF_OBJ_AR))
-FFD_OBJ1 = $(patsubst %.o,../fflib/%.o,$(FF_OBJ1))
-FFD_OBJ2 = $(patsubst %.o,../fflib/%.o,$(FF_OBJ2))
-FFD_OBJIDE = $(patsubst %.o,../ide/%.o,$(FF_OBJIDE))
-FFD_OBJLMSH = $(patsubst %.o,../ide/%.o,$(FF_OBJLMSH))
-LIBS_FF = ../nw/ffapi.o  libff.dll 
-LIBS_FFmpi = ../mpi/ffapi.o libff.dll 
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/bin-win32/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/bin-win32/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-exec-local
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-local cscopelist-am ctags-am distclean distclean-generic \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-exec-local \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags-am \
-	uninstall uninstall-am
-
-
-all-local: $(WIN32DLLTARGET) 
-	-for i in $(LDADD2) ; do case $$i in  *.dll) echo cp -p $$i .; cp -p $$i . ;;	  esac ; done
-	echo done
-win32-dll-target: FreeFem++.exe FreeFem++-nw.exe  bamg.exe cvmsh2.exe  launchff++.exe ff-c++ $(MPIPROG)
-	echo "on a fini"
-
-libff.dll: $(FFD_OBJ0) $(FFD_OBJ_AR) $(FFD_OBJ_AC) $(FFD_OBJ_AL) $(FFD_OBJ1) $(FFD_OBJ2) ../lglib/lg.tab.o	
-	$(CXX) $(GCCNOCYGWIN)  -shared  -Wl,--enable-auto-import $^  -o $@ $(LDADD2)
-
-FreeFem++-nw.exe: ../nw/sansrgraph.o ../nw/parallelempi-empty.o ../lglib/mymain.o $(LIBS_FF)
-	$(CXX)   $(GCCNOCYGWIN) libff.dll $^ -o $@  -lcomdlg32
-FreeFem++.exe: ../nw/sansrgraph.o    ../nw/parallelempi-empty.o ../lglib/mymain.o $(LIBS_FF)
-	$(CXX)   $(GCCNOCYGWIN) libff.dll $^ -o $@  -lcomdlg32
-
-FreeFem++-mpi.exe:	../nw/sansrgraph.o ../mpi/parallelempi.o   ../lglib/mymain.o $(LIBS_FFmpi)
-	$(MPICXX)   $(GCCNOCYGWIN) libff.dll $^ -o $@  -lcomdlg32 $(MPI_LIB)
-bamg.exe:  libff.dll $(LIBS_FF)
-	$(CXX)   $(GCCNOCYGWIN) ../bamg/bamg.o  -Wl,--enable-auto-import $^ -o $@ 
-cvmsh2.exe:  $(LIBS_FF)
-	$(CXX)   $(GCCNOCYGWIN)  -Wl,--enable-auto-import ../bamg/cvmsh2.o  $^ -o $@ 
-drawbdmesh.exe:../std/Pcrgraph.o  ../bamg/drawbdmesh.o $(LIBS_FF)
-	$(CXX)   $(GCCNOCYGWIN) -mwindows  -Wl,--enable-auto-import  $^ -o $@ 
-launchff++.exe:launchff++.cpp
-	$(CXX) $(GCCNOCYGWIN) launchff++.cpp -o launchff++.exe
-
-ff-c++:../../examples++-load/load.link.in
-	../../config.status  --file=ff-c++:$<
-	chmod a+x ff-c++
-install-exec-local:: install-exec-local--$(WIN32DLLTARGET)
-
-install-exec-local--win32-dll-target::
-	$(INSTALL_SCRIPT) launchff++.exe FreeFem++.exe FreeFem++-nw.exe  bamg.exe cvmsh2.exe  ff-c++ $(MPIPROG) $(DESTDIR)${bindir} 
-	$(INSTALL_SCRIPT) *.dll   $(DESTDIR)${bindir} 
-install-exec-local--::
-
-# FFCS: create a separate DLL for ffapi so that it can be changed when running FreeFem++ or FFCS
-# NO dll not all function of ffapi are callback def in ffapi::init()
-# and alloctae in gggg.cpp and Global.cpp 
-#FreeFem++-api.dll:../nw/ffapi.o
-#	$(CXX) $(GCCNOCYGWIN) -shared -Wl,--enable-auto-import $< -o $@
-# FF mpi : create a separate DLL for ffapi so that it can be changed when running FreeFem++ or FreeFem++-mpi
-#FreeFem++-mpi-api.dll:../mpi/ffapi.o
-#	$(CXX) $(GCCNOCYGWIN) -shared -Wl,--enable-auto-import $< -o $@ $(MPI_LIB)
-
-# FFCS: automake does not clean the exes automatically because they are not built automatically.
-clean-local::
-	-rm *.exe
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/femlib/._CGNL.hpp b/src/femlib/._CGNL.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/femlib/._CGNL.hpp and /dev/null differ
diff --git a/src/femlib/._Drawing.cpp b/src/femlib/._Drawing.cpp
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/femlib/._Drawing.cpp and /dev/null differ
diff --git a/src/femlib/._Mesh3dn.cpp~HEAD b/src/femlib/._Mesh3dn.cpp~HEAD
deleted file mode 100644
index e9604e8..0000000
Binary files a/src/femlib/._Mesh3dn.cpp~HEAD and /dev/null differ
diff --git a/src/femlib/._Mesh3dn.cpp~upstream_3.34.2 b/src/femlib/._Mesh3dn.cpp~upstream_3.34.2
deleted file mode 100644
index e9604e8..0000000
Binary files a/src/femlib/._Mesh3dn.cpp~upstream_3.34.2 and /dev/null differ
diff --git a/src/femlib/._QuadratureFormular.cpp b/src/femlib/._QuadratureFormular.cpp
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/femlib/._QuadratureFormular.cpp and /dev/null differ
diff --git a/src/femlib/._QuadratureFormular.hpp b/src/femlib/._QuadratureFormular.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/femlib/._QuadratureFormular.hpp and /dev/null differ
diff --git a/src/femlib/._R1.hpp b/src/femlib/._R1.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/femlib/._R1.hpp and /dev/null differ
diff --git a/src/femlib/._R2.hpp b/src/femlib/._R2.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/femlib/._R2.hpp and /dev/null differ
diff --git a/src/femlib/._R3.hpp b/src/femlib/._R3.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/femlib/._R3.hpp and /dev/null differ
diff --git a/src/femlib/._RNM_op.hpp b/src/femlib/._RNM_op.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/femlib/._RNM_op.hpp and /dev/null differ
diff --git a/src/femlib/._gmres.hpp b/src/femlib/._gmres.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/femlib/._gmres.hpp and /dev/null differ
diff --git a/src/femlib/BamgFreeFem.cpp.orig b/src/femlib/BamgFreeFem.cpp.orig
deleted file mode 100644
index 45e4888..0000000
--- a/src/femlib/BamgFreeFem.cpp.orig
+++ /dev/null
@@ -1,978 +0,0 @@
-// ORIG-DATE:     Dec 97
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-// #define TRACETRIANGLE 3
-//#pragma dont_inline on
-//#pragma global_optimizer off
-//#pragma inline_depth(0)
-
-<<<<<<< HEAD
-//#undef NDEBUG
-=======
-#undef NDEBUG
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-extern long verbosity ;
-//#define strcasecmp strcmp
-#include <cstdio>
-#include <string>
-#include <cmath>
-#include <ctime>
-#include <iomanip>
-#include <fstream>
-<<<<<<< HEAD
-#include "RNM.hpp"
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-using namespace std;
-
-#include "Meshio.h"
-#include "Mesh2.h"
-#include "QuadTree.h"
-#include "SetOfE4.h"
-
-#include "rgraph.hpp"
-#include "fem.hpp"
-#include "AFunction.hpp"
-#include "BamgFreeFem.hpp"
-<<<<<<< HEAD
-=======
-#include "RNM.hpp"
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-#include "FESpace.hpp"
-#include "Mesh2dn.hpp"
-#include "Mesh3dn.hpp"
-#include "MeshPoint.hpp"
-#include "PlotStream.hpp"
-#include <set>
-Fem2D::Mesh *bamg2msh( bamg::Triangles* tTh,bool renumbering)
-{ 
-  using namespace bamg;
-  bamg::Triangles & th (*tTh);
-  tTh->ReNumberingTheTriangleBySubDomain(!renumbering);//  just compress 
-  //tTh->NbRef++;
-  Int4  i,j,k=0;
-  int nv  =  tTh->nbv;
-  int nt  =   tTh->nbt - tTh->NbOutT;
-  int neb =   tTh->nbe;
-  
-  int nbcrakev = 0;
-  tTh->ReMakeTriangleContainingTheVertex();
-  Fem2D::Triangle * t =  new Fem2D::Triangle[nt]  ;
-  Fem2D::BoundaryEdge * b_e = new Fem2D::BoundaryEdge[neb];
-  
-  Fem2D::Vertex vbase;        
-  Fem2D::Vertex *vb(&vbase);
-  if (verbosity>5)
-    cout << "  -- Before cracking mesh:  Nb Triangles = " << nt << " Nb of Vertices " << nv << endl;
-  for ( i=0;i<nt;i++) // unset all triangles 
-    for (j=0;j<3;j++)
-      t[i](j)=0;
-  //  nv=0;    
-  for (int iv=0;iv<th.nbv;iv++) // vertex 
-    {
-      // cout << iv << " : " ;
-      const Vertex & v(th[iv]); 
-      int kk=0; // nb cracked
-      int kc=0; 
-      int kkk =0; // nb triangle  with same number 
-      Triangle * tbegin = v.t;
-      Fem2D::Vertex * vv = vb+iv;
-      int i  = v.vint;       
-      throwassert(tbegin && (i >= 0 ) && (i <3));
-      // turn around the vertex v
-      TriangleAdjacent ta(tbegin,EdgesVertexTriangle[i][0]);// previous edge
-      int k=0;
-      do {
-        int kv = VerticesOfTriangularEdge[ta][1];
-        k++; 
-        Triangle * tt (ta);
-        throwassert( &v == & (*  tt)[kv] );            
-        if ( ta.Cracked() ) 
-          {   // cout << " || "    ;                    
-            if ( kk == 0) tbegin=ta,kkk=0;  //  begin by a cracked edge  => restart                
-            if (  kkk ) { kc =1;vv = vb +  nv++;  kkk = 0; } // new vertex if use 
-            kk++;
-            // number of cracked edge view                 
-          }
-        if ( tt->link ) { // if good triangles store the value 
-          int it = th.Number(tt);
-          throwassert(it < nt);
-          //int iiv=vv-vb;
-          t[it](kv) = vv;
-          /*
-          cout << it << " " << kv << " "<< iiv  << endl;
-          if (&th(it)[kv] != &th[iiv])
-             cout << it << " " << kv << " "<< iiv << " != " << th.Number(th(it)[kv]) << endl ;
-          */
-          kkk++;
-        } else if (kk) { // crack + boundary 
-          if (  kkk ) { kc =1;vv = vb +  nv++;  kkk = 0; } // new vertex if use 
-        }
-        
-        ta = Next(ta).Adj(); 
-      } while ( (tbegin != ta)); 
-      throwassert(k);
-      if (kc)  nbcrakev++;
-    }
-  Fem2D::Vertex * v = new Fem2D::Vertex[nv];
-  //  set the vertices --
-  for (i=0;i<nt;i++)
-    { 
-      for (j=0;j<3;j++)
-        {
-          throwassert( t[i](j) );             
-          int k = t[i](j) - vb;
-          t[i](j) = v+ k;
-          throwassert(k>=0 && k < nv);
-          Vertex & thv(th(i)[j]);
-          v[k].x    =  thv.r.x;
-          v[k].y    =  thv.r.y;
-          v[k].lab  =  thv.ref();        
-        }  
-    }
-  // warning in cracked edges 
-  // construction of the edges --
-  
-  if (nbcrakev && verbosity>2)
-    cout << "  -- Nb of craked vertices = " << nbcrakev << " Nb of created vertices " << nv - th.nbv << endl;
-  
-  
-  for (i=0;i<tTh->nbe;i++)
-    {
-      int i0=tTh->Number(tTh->edges[i][0]),i1=tTh->Number(tTh->edges[i][1]);
-      throwassert(i0>=0 && i0 <nv);
-      throwassert(i1>=0 && i1 <nv);      
-      b_e[i]=Fem2D::BoundaryEdge(v,i0,i1,tTh->edges[i].ref);
-    }      
-  Int4 *reft = new Int4[tTh->nbt];
-  //Int4 nbref =
-  tTh->ConsRefTriangle(reft);
-  for( i=0,k=0;i<tTh->nbt;i++)
-    if(tTh->triangles[i].link)
-      { 
-        
-        Fem2D::R2 A(t[k][0]),B(t[k][1]),C(t[k][2]);
-        t[k].area = (( B-A)^(C-A))*0.5 ;
-        t[k].lab = tTh->subdomains[reft[i]].ref;  // a faire
-        throwassert(k == i);
-        k++;
-      }
-  delete [] reft;
-  throwassert ( nt == k);
-  tTh->ReMakeTriangleContainingTheVertex();
-  
-  if (verbosity)
-    cout << "  --  mesh:  Nb of Triangles = "  << setw(6) <<  nt << ", Nb of Vertices " << nv << endl;
-  
-  {  
-    Fem2D::Mesh *m = new Fem2D::Mesh(nv,nt,neb,v,t,b_e);
-    if (renumbering) m->renum();
-    m->MakeQuadTree();
-    return m;
-  }
-}
-
-Fem2D::Mesh *bamg2msh(const bamg::Geometry &Gh)
-{ 
-  // ------------------
-  int nv=  Gh.nbv;
-  int neb=Gh.nbe;
-  Fem2D::Triangle * t = 0 ;
-  Fem2D::BoundaryEdge * b_e = new Fem2D::BoundaryEdge[neb];
-  Fem2D::Vertex *v = new Fem2D::Vertex[nv]  ;
-  for (int i=0;i<nv;i++)
-    {
-      const bamg::GeometricalVertex & vg( Gh[i]);
-      v[i].x=vg.r.x;
-      v[i].y=vg.r.y;
-      v[i].lab=vg.ref();
-      
-    }     
-  for (int ie=0;ie<neb;ie++)
-    {
-      const bamg::GeometricalEdge & e= Gh(ie);
-      int i0=Gh.Number(e[0]),i1=Gh.Number(e[0]);
-      b_e[ie]= Fem2D::BoundaryEdge(v,i0,i1,e.ref);
-    }   
-  
-  {  
-    Fem2D::Mesh *m = new Fem2D::Mesh(nv,0,neb,v,t,b_e);
-    m->MakeQuadTree();
-    return m;
-  }
-  // ------------------
-}
-
-
-
-
-
-bamg::Triangles * msh2bamg(const Fem2D::Mesh & Th,double cutoffradian,long * reqedgeslab,int nreqedgeslab)
-  
-{
-  using namespace bamg;
-  Triangles *Tn=new Triangles(Th.nv);
-  Tn->nbv = Th.nv;
-  Tn->nbt = Th.nt;
-  Tn->nbe = Th.neb;
-  Tn->name= new char[strlen("msh2bamg")+1];
-  strcpy(Tn->name,"msh2bamg");
-  //  Tn->triangles = new Triangle [Tn->nbtx];
-  throwassert(Tn->triangles);
-  //  Tn->vertices = new Vertex [Tn->nbvx];
-  //  Tn->ordre = new (Vertex* [Tn->nbvx]);
-  Tn->edges = new Edge [Th.neb];
- 
-  Int4 i;
-  Metric Mid(1.);
-  for (i = 0; i < Th.nv; i++)
-    {
-      Tn->vertices[i].r.x = Th(i).x;
-      Tn->vertices[i].r.y = Th(i).y;
-	Tn->vertices[i].m=Mid;
-      Tn->vertices[i].ReferenceNumber = Th(i).lab;
-    }
-  
-  //  Int4 i1 [nbt],i2 [nbt],i3 [nbt];
-  for (i = 0; i < Th.nt; i++)
-    {
-      int i1 = Th(Th[i][0]);
-      int i2 = Th(Th[i][1]);
-      int i3 = Th(Th[i][2]);
-      Tn->triangles[i]= Triangle( Tn,i1 ,i2 ,i3 );
-      Tn->triangles[i].color = Th[i].lab;
-    }
-    //  Real8 cutoffradian = -1;    
-    // add code   un change boundary part ...  frev 2009 JYU FH
-    set<int> labreq;
-    if(nreqedgeslab && verbosity) cout << " label of required edges " ;
-    for (int i=0; i <nreqedgeslab;++i)
-      {
-	  if(verbosity)
-	      cout << " " << reqedgeslab[i];
-	  labreq.insert(reqedgeslab[i]);
-      }
-    bamg::GeometricalEdge paszero;  // add JYU    fevr 2009   for  required edge ....
-    if(nreqedgeslab && verbosity) cout << endl;
-    int k=0;  
-    for (i = 0; i < Th.neb; i++)
-    {
-      Tn->edges[i].v[0] = Tn->vertices + Th(Th.bedges[i][0]);
-      Tn->edges[i].v[1] = Tn->vertices + Th(Th.bedges[i][1]);
-      Tn->edges[i].ref = Th.bedges[i].lab;
-      Tn->edges[i].on = 0; 
-      if( labreq.find( Tn->edges[i].ref) != labreq.end())
-	{
-	    k++; 
-	    Tn->edges[i].on = &paszero; 
-	}
-
-    }
-  if(verbosity)cout << "  number of required edges : "<< k << endl;
-   
-    
-  Tn->ConsGeometry(cutoffradian);   
-  Tn->Gh.AfterRead();    
-  Tn->SetIntCoor();
-  Tn->FillHoleInMesh();
-  return Tn;
-}
-
-
-bamg::Triangles * msh2bamg(const Fem2D::Mesh & Th,double cutoffradian, 
-                           int  nbdfv, int * ndfv,int  nbdfe, int * ndfe,
-			   long * reqedgeslab,int nreqedgeslab)
-{
-  using namespace bamg;
-  Triangles *Tn=new Triangles(Th.nv);
-  KN<int> equiedges(Th.neb);
-  for(int i=0;i<Th.neb;i++)
-    equiedges[i]=2*i;
-  if(nbdfe !=0 )
-  {
-  KN<int>  kk(Th.neb),kn(Th.neb);
-   kk=0;
-    for(int i=0;i<Th.neb;i++)
-      {
-         int df=ndfe[i];
-         kk[df]++;
-         if(kk[df]==1) kn[df]=i;
-         else { 
-           int k=kn[df],sens=0;
-           int di0=ndfv[Th(Th.bedges[i][0])];
-           int di1=ndfv[Th(Th.bedges[i][1])];
-           int dk0=ndfv[Th(Th.bedges[k][0])];
-           int dk1=ndfv[Th(Th.bedges[k][1])];
-           if ((di0==dk0) &&(di1==dk1) ) sens=0;
-           else if ((di1==dk0) &&(di0==dk1) ) sens=1;
-           else  {
-              cout << "Error in periodic mesh " << di0 << " " << di1 << " <=> " << dk0 << " " << dk1 << endl;
-              ExecError("bug periodic mesh in ??? ");
-           }
-           equiedges[i]=2*k+sens;
-
-         }
-      }
-    
-  }; // a faire pour les maillages periodique 
-  
-  Tn->nbv = Th.nv;
-  Tn->nbt = Th.nt;
-  Tn->nbe = Th.neb;
-  Tn->name= new char[strlen("msh2bamg")+1];
-  strcpy(Tn->name,"msh2bamg");
-  //  Tn->triangles = new Triangle [Tn->nbtx];
-  throwassert(Tn->triangles);
-  //  Tn->vertices = new Vertex [Tn->nbvx];
-  //  Tn->ordre = new (Vertex* [Tn->nbvx]);
-  Tn->edges = new Edge [Th.neb];
-  
-  Int4 i;
-    Metric Mid(1.);  
-  for (i = 0; i < Th.nv; i++)
-    {
-      Tn->vertices[i].r.x = Th(i).x;
-      Tn->vertices[i].r.y = Th(i).y;
-      Tn->vertices[i].ReferenceNumber = Th(i).lab;
-      Tn->vertices[i].m=Mid;
-    }
-  
-  //  Int4 i1 [nbt],i2 [nbt],i3 [nbt];
-  for (i = 0; i < Th.nt; i++)
-    {
-      int i1 = Th(Th[i][0]);
-      int i2 = Th(Th[i][1]);
-      int i3 = Th(Th[i][2]);
-      Tn->triangles[i]= Triangle( Tn,i1 ,i2 ,i3 );
-      Tn->triangles[i].color = Th[i].lab;
-    }
-    
-    // add code   un change boundary part ...  frev 2009 JYU FH
-    set<int> labreq;
-    if(nreqedgeslab && verbosity) cout << " label of required edges " ;
-    for (int i=0; i <nreqedgeslab;++i)
-      {
-	  if(verbosity)
-	      cout << " " << reqedgeslab[i];
-	  labreq.insert(reqedgeslab[i]);
-      }
-    bamg::GeometricalEdge paszero;  // add JYU    fevr 2009   for  required edge ....
-    if(nreqedgeslab && verbosity) cout << endl;
-    int k=0;  
-    
-  for (i = 0; i < Th.neb; i++)
-    {
-      Tn->edges[i].v[0] = Tn->vertices + Th(Th.bedges[i][0]);
-      Tn->edges[i].v[1] = Tn->vertices + Th(Th.bedges[i][1]);
-      Tn->edges[i].ref = Th.bedges[i].lab;
-      Tn->edges[i].on = 0; 
-      if( labreq.find( Tn->edges[i].ref) != labreq.end())
-	  {
-	      k++; 
-	      Tn->edges[i].on = &paszero; 
-	  }
-    }
-  //  Real8 cutoffradian = -1;
-  Tn->ConsGeometry(cutoffradian,equiedges);
-  Tn->Gh.AfterRead();    
-  Tn->SetIntCoor();
-  Tn->FillHoleInMesh();
-  return Tn;
-}
-
-
-
-Fem2D::Mesh *  BuildMesh(Stack stack, E_BorderN const * const & b,bool justboundary,int nbvmax,bool Requiredboundary) 
-{
-  
-
-  using namespace bamg;
-  using bamg::Abs;
-  using bamg::Max;
-  using bamg::Min;
-  using bamg::Pi;
-  Fem2D::MeshPoint & mp (*Fem2D::MeshPointStack(stack)), mps = mp;
-  
-  int nbvx=0,nbe=0,nbsd=0;
-  for (E_BorderN const * k=b;k;k=k->next)
-  {
-      int nbd = k->NbBorder(stack);
-      for(int index=0; index<nbd; ++index )
-    {long n=  Max(1L,Abs(k->Nbseg(stack,index))); ;
-    nbvx += n+1;
-    nbe += n;
-    nbsd++;
-    }
-  }
-  Geometry * Gh =  new Geometry;
-  
-  if(verbosity>2)
-    cout <<"\t\t"  << "  Begin: ConstGeometry from nb Border  "  << nbsd <<endl;
-  //throwassert(empty());
-  const char * filename = "FREEFEM.gh";
-  Gh->name=new char [strlen(filename)+1];
-  strcpy(Gh->name,filename);
-  Real8 Hmin = HUGE_VAL;// the infinie value 
-  Int4 hvertices =0;
-  Int4 i,nn,n;
-  //Int4 dim=0;
-  Gh->MaximalAngleOfCorner =30.00*Pi/180.0;
-  Gh->nbv = 0;
-  Gh->nbvx = nbvx;
-  
-  Gh->nbe = nbe;
-  Gh->edges = new GeometricalEdge[Gh->nbe];
-  bamg::Vertex *vertices =  new Vertex[Gh->nbvx];// correction 2009/07/03 
-  double lmin= HUGE_VAL;
-  //  generation des points et des lignes 
-  i=0;
-  for (E_BorderN const * k=b;k;k=k->next)
-    {
-    int nbd = k->NbBorder(stack);
-    for(int index=0; index<nbd; ++index )
-    {
-      assert(k->b->xfrom); // a faire
-      double & t = *  k->var(stack);
-      double a(k->from(stack)),b(k->to(stack));
-      long * indx = k->index(stack);
-      if(indx) *indx = index;
-      else ffassert(index==0);
-      n=Max(Abs(k->Nbseg(stack,index)),1L);
-      t=a;
-      double delta = (b-a)/n;
-      for ( nn=0;nn<=n;nn++,i++, t += delta)
-        {
-          if (nn==n) t=b; // to remove roundoff error 
-          mp.label = k->label();
-          k->code(stack); // compute x,y, label
-          // cout << " ----- " << i << " " << mp.P.x << " " << mp.P.y << endl;
-          vertices[i].r.x=mp.P.x;
-          vertices[i].r.y=mp.P.y;
-          vertices[i].ReferenceNumber=  mp.label;
-          vertices[i].color = i;
-          if (nn>0) {
-            lmin=min(lmin,Norme2_2( vertices[i].r-vertices[i-1].r));
-          }     
-        }
-    }
-}
-  lmin = sqrt(lmin);
-  double eps = (lmin)/16.; 
-  int nbvprev = i;
-  long nbv=0;
-  Gh->pmin =  vertices[0].r;
-  Gh->pmax =  vertices[0].r;
-  // recherche des extrema des vertices pmin,pmax
-  for (i=0;i<nbvprev;i++) 
-    {
-      Gh->pmin.x = Min(Gh->pmin.x,vertices[i].r.x);
-      Gh->pmin.y = Min(Gh->pmin.y,vertices[i].r.y);
-      Gh->pmax.x = Max(Gh->pmax.x,vertices[i].r.x);
-      Gh->pmax.y = Max(Gh->pmax.y,vertices[i].r.y);
-    }
-    
-  double diameter=Max(Gh->pmax.x-Gh->pmin.x,Gh->pmax.y-Gh->pmin.y);
-  Gh->coefIcoor= (MaxICoor)/diameter;
-  Icoor1 epsI = (Icoor1) (Gh->coefIcoor*eps);
-  ffassert(Gh->coefIcoor >0);
-
- if(lmin<diameter*1e-7) {
-    ExecError(" Error points  border points to close < diameter*1e-7 ");}
-  
-  if (verbosity>2) 
-    {
-      cout <<"\t\t"  << "     Geom: min="<< Gh->pmin << "max ="<< Gh->pmax 
-           << " hmin = " << Gh->MinimalHmin() <<  endl;
-    }
-  nbv = 0;        
-  {  // find common point 
-    QuadTree quadtree;
-    Metric Id(1.);
-    for ( i=0;i<nbvprev;i++) 
-      { 
-        vertices[i].i = Gh->toI2(vertices[i].r);
-        vertices[i].m = Id;
-        Vertex *v= quadtree.ToClose(vertices[i],eps,epsI,epsI) ;
-        // quadtree.NearestVertex(vertices[i].i.x,vertices[i].i.y); 
-        if( v && Norme1(v->r - vertices[i]) < eps )
-          { vertices[i].color=v->color; }
-        else  {quadtree.Add(vertices[i]);
-        vertices[i].color = nbv++;}
-      }
-    /*   
-         if (nbvprev-nbv==0)
-         {
-         reffecran();
-         bamg::R2 O((Gh->pmin+Gh->pmax)/2),D(Gh->pmax-Gh->pmin);
-         cadreortho(O.x,O.y,Max(D.x,D.y)*1.1);
-         xGrafCoef = Gh->coefIcoor;
-         yGrafCoef = Gh->coefIcoor;
-         xGrafOffSet = Gh->pmin.x;
-         yGrafOffSet = Gh->pmin.y;  
-         quadtree.Draw();
-         for (int i=0;i<nbvprev;i++)
-         {
-         rmoveto(vertices[i].r.x,vertices[i].r.y);
-         
-         char buf[100];
-         sprintf(buf,"%d",i);
-         plotstring(buf);
-         }
-         rattente(1);
-         }
-    */   
-  } // to delete quadtree
-  if (verbosity>1) 
-  cout << " Nb of common points " << nbvprev-nbv <<endl;
-  
-  Gh->nbvx = nbv;
-  Gh->nbv = nbv;
-  
-  Gh->vertices = new GeometricalVertex[nbv];
-  throwassert(Gh->nbvx >= Gh->nbv);
-  Gh->nbiv = Gh->nbv;
-  // Int4 k=0;
-  const Direction NoDirOfSearch;
-  //  compression of points    
-  int kkk;     
-  for ( i=0,kkk=0;kkk<nbvprev;kkk++) 
-    {
-      if (vertices[kkk].color == i) // if new points 
-        {
-          Gh->vertices[i].r.x = vertices[kkk].r.x ;
-          Gh->vertices[i].r.y = vertices[kkk].r.y;
-          //Gh->vertices[i].link = Gh->vertices + i;
-          throwassert(Gh->vertices[i].IsThe());
-          Gh->vertices[i].ReferenceNumber = vertices[kkk].ReferenceNumber  ;
-          Gh->vertices[i].DirOfSearch = NoDirOfSearch;
-          Gh->vertices[i].color =0;
-          Gh->vertices[i].Set();
-          //  vertices[i].SetCorner();
-	    if(Requiredboundary)
-           Gh->vertices[i].SetRequired();
-          i++;
-        }
-    }
-  throwassert(i==nbv);
-  R2 zero2(0,0);
-  if(verbosity>5) 
-    cout <<"\t\t"  << "     Record Edges: Nb of Edge " << Gh->nbe <<endl;
-  throwassert(Gh->edges);
-  throwassert (Gh->nbv >0); 
-  Real4 *len =0;
-  if (!hvertices) 
-    {
-      len = new Real4[Gh->nbv];
-      for(i=0;i<Gh->nbv;i++)
-        len[i]=0;
-    }
-  int nnn=0;
-  i=0;
-  for (E_BorderN const * k=b;k;k=k->next)
-      
-  {    int nbd = k->NbBorder(stack);
-      for(int index=0; index<nbd; ++index )
-      {
-      double & t = *  k->var(stack);
-      double a(k->from(stack)),b(k->to(stack));
-      n=Max(Abs(k->Nbseg(stack,index)),1L);
-      long * indx = (k->index(stack));
-      if(indx) *indx = index;
-      else ffassert(index==0);
-
-      double delta = (b-a)/n;
-      t=a+delta/2; 
-      for ( nn=0;nn<n;nn++,i++, t += delta)
-        {
-          
-          mp.label = k->label();
-          k->code(stack); 
-          Int4 i1 =  vertices[nnn].color, i2 =  vertices[++nnn].color;
-          throwassert(i1 >= 0 && i1 < nbv);
-          throwassert(i2 >= 0 && i2 < nbv);
-          Gh->edges[i].ref = mp.label;
-          Gh->edges[i].v[0]=  Gh->vertices + i1;
-          Gh->edges[i].v[1]=  Gh->vertices + i2;
-          R2 x12 = Gh->vertices[i2].r-Gh->vertices[i1].r;
-          Real8 l12=Norme2(x12);
-          Gh->edges[i].tg[0]=zero2;
-          Gh->edges[i].tg[1]=zero2;
-          Gh->edges[i].SensAdj[0] = Gh->edges[i].SensAdj[1] = -1;
-          Gh->edges[i].Adj[0] = Gh->edges[i].Adj[1] = 0;
-          Gh->edges[i].flag = 0;
-          Gh->edges[i].link=0;
-	  if(Requiredboundary)
-	  Gh->edges[i].SetRequired();
-	    
-          if (!hvertices) 
-            {
-              Gh->vertices[i1].color++;
-              Gh->vertices[i2].color++;
-              len[i1] += l12;
-              len[i2] += l12;
-            }
-          
-          Hmin = Min(Hmin,l12);
-        }
-      nnn++; 
-      }}
-  
-  delete [] vertices; vertices=0;
-  
-  throwassert(nnn==nbvprev);
-  throwassert(i==Gh->nbe);
-  // definition  the default of the given mesh size 
-  if (!hvertices) 
-    {
-      for (i=0;i<Gh->nbv;i++) 
-        if (Gh->vertices[i].color > 0) 
-          Gh->vertices[i].m=  Metric(len[i] /(Real4) Gh->vertices[i].color);
-        else 
-          Gh->vertices[i].m=  Metric(Hmin);
-      delete [] len;
-      
-      if(verbosity>3) 
-        cout <<"\t\t"  << "     Geom Hmin " << Hmin << endl;
-    }
-  
-  Gh->NbSubDomains=nbsd;
-  if (Gh->NbSubDomains>0)
-    {
-        Gh->subdomains = new GeometricalSubDomain[  Gh->NbSubDomains];
-        Int4 i1=0;
-        i=0;
-        for (E_BorderN const * k=b;k;k=k->next)
-        {
-            int nbd = k->NbBorder(stack);
-            for(int index=0; index<nbd; ++index,i++)
-            {
-                long Nbseg =k->Nbseg(stack,index);
-                long n=  Max(1L,Abs(Nbseg));
-                Gh->subdomains[i].sens = Nbseg >0 ? 1 : -1;
-                Gh->subdomains[i].edge=Gh->edges + i1;
-                Gh->subdomains[i].ref = i;
-                i1 += n;
-            }}
-    }
-  Gh->NbEquiEdges=0;
-  Gh->NbCrackedEdges=0;
-  Fem2D::Mesh * m=0;
-  if (justboundary)
-    m=bamg2msh(*Gh);
-  else 
-  {
-      Gh->AfterRead();  
-      int nbtx= nbvmax ? nbvmax :  (Gh->nbv*Gh->nbv)/9 +1000;
-      if(verbosity> 99) cout << " ** Gh = " << endl << *Gh << endl << " *** " <<endl; ;
-      Triangles *Th = 0;
-      try { 
-	  Th =new Triangles( nbtx ,*Gh);
-	  if(0)
-	    {
-	      
-	      
-	      Th->SetVertexFieldOn();
-	      for( int i=0;i<Th->nbv;++i)
-		{
-		  VertexOnGeom *on=0;
-		  if( (on =Th->vertices[i].on) ) // we are on geometrie
-		    {
-		      if(on->abscisse <0) {
-			  bamg::GeometricalVertex * gv= on->gv;
-			  int iold = Gh->Number(gv);
-		      }
-		      else {// erreur car un point est sur un arete en non un sommet
-			  bamg::GeometricalEdge * ge= on->ge;
-			  int eold = Gh->Number(ge); //
-			  int iold = Gh->Number( (*ge)[0] );
-			  int jold = Gh->Number( (*ge)[1] );
-			  int s = on->abscisse;
-			  
-			  // cout << " error bizarre " << ge << endl;
-		      }  
-		      
-		      
-		    }      
-		  
-		}
-	    }
-      }
-      catch(...)
-      {
-	  Gh->NbRef=0; 
-	  delete Gh;
-	  cout << " catch Err bamg "  << endl;
-	  throw ;
-     }
-      m=bamg2msh(Th,true);      
-      delete Th;
-  }
-  
-  delete Gh;
-  /* deja fait  dans bamg2msh
-     Fem2D::R2 Pn,Px;
-     m->BoundingBox(Pn,Px);
-     m->quadtree=new Fem2D::FQuadTree(m,Pn,Px,m->nv);
-  ---------- */
-  mp=mps;   
- // m->decrement();
- //   Add2StackOfPtr2FreeRC(stack,m);// fait au niveau d'apres  07/2008 FH 
-    
-   
-  return m;   
-}
-
-void E_BorderN::BoundingBox(Stack stack,double  &xmin,double & xmax, double & ymin,double & ymax) const
-{  
-  Fem2D::MeshPoint & mp (*Fem2D::MeshPointStack(stack)), mps = mp;
-  for (E_BorderN const * k=this;k;k=k->next)
-    {
-        int nbd = k->NbBorder(stack);
-        for(int index=0; index<nbd; ++index )
-        {
-      assert(k->b->xfrom); // a faire 
-      double & t = *  k->var(stack);
-      double a(k->from(stack)),b(k->to(stack));
-      long * indx = (k->index(stack));
-      if(indx) *indx = index;
-      else ffassert(index==0);
-
-      long n=Max(Abs(k->Nbseg(stack,index)),1L);
-      t=a;
-      double delta = (b-a)/n;
-      for (int  nn=0;nn<=n;nn++, t += delta)
-        {
-          if (nn==n) t=b; // to remove roundoff error 
-          mp.label = k->label();
-          k->code(stack); // compute x,y, label
-          xmin=Min(xmin,mp.P.x);
-          xmax=Max(xmax,mp.P.x);
-          ymin=Min(ymin,mp.P.y);
-          ymax=Max(ymax,mp.P.y);
-        }
-        }}
-  mp=mps; 
-}  
-void E_BorderN::Plot(Stack stack) const
-{  
-  using Fem2D::R2;
-  
-  Fem2D::MeshPoint & mp (*Fem2D::MeshPointStack(stack)), mps = mp;
-  float x0,x1,y0,y1;
-  getcadre(x0,x1,y0,y1);
-  float h= (x1-x0)*0.01;
-  int nbd=0;
-  for (E_BorderN const * k=this;k;k=k->next)
-    {
-      int nbdr = k->NbBorder(stack);
-      for(int index=0; index<nbdr; ++index )
-     {
-      nbd++;
-      assert(k->b->xfrom); // a faire 
-      double & t = *  k->var(stack);
-      double a(k->from(stack)),b(k->to(stack));
-      long n=Max(Abs(k->Nbseg(stack,index)),1L);
-      long * indx = (k->index(stack));
-      if(indx) *indx = index;
-      else ffassert(index==0);
-
-      t=a;
-      double delta = (b-a)/n;
-      R2 P,Po;
-      for (int  nn=0;nn<=n;nn++, t += delta)
-        {
-          if (nn==n) t=b; // to remove roundoff error 
-          mp.label = k->label();
-          mp.P.z=0;
-          k->code(stack); // compute x,y, label
-          P=mp.P.p2();
-          couleur(2+mp.label);
-          if(nn!=0) { LineTo(P);
-          R2 uv(Po,P);
-          double l = Max(sqrt((uv,uv)),1e-20);
-          
-          R2 dd = uv*(-h/l);
-          R2 dn = dd.perp()*0.5;
-          
-          LineTo(P+dd+dn);
-          MoveTo(P+dd-dn);
-          LineTo(P);}
-          else {
-            DrawMark(mp.P.p2(),0.01);
-            MoveTo(mp.P.p2());
-            
-          }
-          
-          
-          //  cout << k->label()<< " " << nn << ", x,y = " << mp.P.x  << " , " << mp.P.y << endl;
-          Po=P;
-        }
-      DrawMark(mp.P.p2(),0.01);
-      MoveTo(mp.P.p2());
-    }
-}
-  if(verbosity>9) cout << "  -- Plot size : " << nbd << " Border \n";
-  mp=mps; 
-}
-void E_BorderN::SavePlot(Stack stack,PlotStream & plot ) const
-{  
-    using Fem2D::R2;
-    
-    Fem2D::MeshPoint & mp (*Fem2D::MeshPointStack(stack)), mps = mp;
-    //float x0,x1,y0,y1;
-    //getcadre(x0,x1,y0,y1);
-    //float h= (x1-x0)*0.01;
-    
-    long nbd1=0;// nb of sub border
-    for (E_BorderN const * k=this;k;k=k->next)
-    {
-     int nbdr = k->NbBorder(stack);
-     for(int index=0; index<nbdr; ++index )
-	nbd1++;
-    }
-   plot << nbd1;
-   int nbd=0;
-    for (E_BorderN const * k=this;k;k=k->next)
-      {
-          int nbdr = k->NbBorder(stack);
-          for(int index=0; index<nbdr; ++index )
-          {
-	  nbd++;
-	  assert(k->b->xfrom); // a faire 
-	  double & t = *  k->var(stack);
-	  double a(k->from(stack)),b(k->to(stack));
-	  long n=Max(Abs(k->Nbseg(stack,index)),1L);
-          long * indx = (k->index(stack));
-          if(indx) *indx = index;
-          else ffassert(index==0);
-
-	  t=a;
-	  double delta = (b-a)/n;
-	  R2 P,Po;
-	  plot<< (long) n;
-	  for (int  nn=0;nn<=n;nn++, t += delta)
-	    {
-		if (nn==n) t=b; // to remove roundoff error 
-		mp.label = k->label();
-		mp.P.z=0;
-		k->code(stack); // compute x,y, label
-		P=mp.P.p2();
-		plot << (long) mp.label <<P.x << P.y;
-	    }
-	 
-          }}
-    assert(nbd==nbd1);
-    if(verbosity>9) cout << "  -- Plot size : " << nbd << " Border \n";
-    mp=mps; 
-}
-
-Fem2D::Mesh *  BuildMeshBorder(Stack stack, E_BorderN const * const & b) 
-{
-  return BuildMesh(stack,b,true,0,true);
-}
-Fem2D::Mesh *  BuildMesh(Stack stack, E_BorderN const * const & b,bool Requiredboundary) 
-{
-  return BuildMesh(stack,b,false,0,Requiredboundary);
-}
-
-Fem2D::Mesh *  ReadTriangulate( string  * const & s) {
-  using namespace Fem2D;
-  KN<R2> xy;
-  char c;
-  int nv;
-  for(int step=0;step<2;step++)
-    {
-      nv=0;
-      ifstream f(s->c_str());
-      if(!f) {cerr <<" Error openning file " << *s << endl;
-      ExecError("Openning file ");}
-      while (f.good())
-        {
-          R2 P;
-          f >> P ;
-          if (!f.good()) break;
-          if (step) xy[nv]=P;
-          nv++;
-          while (f.get(c) &&  (c!='\n' && c!='\r' ) ) (void) 0; // eat until control (new line
-        } 
-      if (!step && nv ) xy.init(nv); // alloc the array        
-    }
-  if(verbosity)
-    cout << " we read  " << nv << " coordinates  xy "<< endl;
-  
-  Mesh * m=new Mesh(nv,xy); 
-  m->MakeQuadTree();
-//  m->decrement(); //  07/2008 FH  auto del ptr
- //  delete s;  modif mars 2006 auto del ptr
-  return m;
-  
-}
-Fem2D::Mesh *  Triangulate( const  KN_<double> & xx,const  KN_<double> & yy) 
-{
-    using namespace Fem2D;
-    ffassert(xx.N()==yy.N());
-    int nv=xx.N();
-    KN<R2> xy(nv);
-    for(int i=0;i<nv;++i)
-       xy[i]= R2(xx[i],yy[i]);
-    Mesh * m=new Mesh(nv,xy); 
-    m->MakeQuadTree();
-   // m->decrement();  07/2008 FH  auto del ptr
-    //  delete s;  modif mars 2006 auto del ptr
-    return m;
-    
-}
-Fem2D::Mesh *  ReadMeshbamg( string * const & s) {
-  using bamg::Triangles;
-  Triangles * bTh= new Triangles(s->c_str());
-  // bTh->inquire();
-  Fem2D::Mesh * m=bamg2msh(bTh,false);// no renum
-  delete bTh;
-  // delete s; modif mars 2006 auto del ptr
- //  m->decrement();  07/2008 FH  auto del ptr
-  return m;
-}
-
-Fem2D::Mesh *  buildmeshbamg( string * const & s, int nbvxin) {
-
-  using bamg::Triangles;
-  using bamg::Geometry;
-  Geometry Gh(s->c_str());
-  //double	 hmin = Gh.MinimalHmin();
-  //double	 hmax = Gh.MaximalHmax();
-  int nbvx = nbvxin ? nbvxin : ((Gh.nbv*Gh.nbv)/9 +1000); 
-  Triangles * bTh=  new Triangles(nbvx,Gh);
-  // bTh->inquire();
-  Fem2D::Mesh * m=bamg2msh(bTh,false);// no renum
-  delete bTh;
- //  delete s; modif mars 2006 auto del ptr
- // m->decrement();
-  return m;
-}
diff --git a/src/femlib/CheckPtr.cpp.orig b/src/femlib/CheckPtr.cpp.orig
deleted file mode 100644
index d8e6934..0000000
--- a/src/femlib/CheckPtr.cpp.orig
+++ /dev/null
@@ -1,534 +0,0 @@
-//#define NCHECKPTR // BUg with MPI ??? FH
-
-#if __APPLE__
-#include <malloc/malloc.h>
-#else
-#include <malloc.h>
-#endif
-
-static long verbosity;
-
-static long StorageUsed()
-{
-#if MALLOC_ZONE_SPECIFIC_FLAGS
-    struct mstats mem1;
-    mem1 = mstats();
-    return mem1.bytes_used;
-#elif M_MMAP_THRESHOLD
-    struct mallinfo mem1;
-    mem1=mallinfo();
-    return mem1.uordblks;
-#else
-    return 0;
-#endif
-    
-}
-#ifndef NCHECKPTR
-#define DEBUGUNALLOC 1 
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include <cstdlib>
-#include <cerrno>
-#include <cstdio>
-#include <new>
-
-void debugalloc()
-{ }
-
-void debugunalloc()
-{ static long count=0;
-  //  debugalloc();
- count++;}
-
-
-void exitalloc(int i)
-{ static long count=0;
- count++;
- exit(1); 
-}
-
-// Modif:         Juin 2001  for debuging  missing  delete point
-//  --  THE MACRO 
-// TO SHOW ALL ALLOCATION
-// #define SHOWALLOC
-//  TO DEBUG ALL UN DELETE POINETUR
-
-
-int UnShowAlloc =1;
-
-int ShowAlloc(const char *s,size_t & lg); 
-        
-//inline void *operator new(size_t, void *place) { return place; }
-
-static int kerr=0;
-void * mymalloc(size_t l)
-{
-  char *p = (char*)malloc(l+16);
-  if (!p) return p;   
-  for( int i = 0; i < 8 ; i++)
-    p[i] = 'a'+i,p[i+l+8] = 'z'-i; // put a marque before 
-  return (void*) (p+8);
-}
-void myfree(char *p,size_t l=0,int nordre=0) 
-{
-  if(p) {
-    p -= 8;
-    int k =0;
-    for( int i = 0; i < 8 ; i++)
-      {
-	if (p[i] != 'a' +i)     k++;
-	if(l && (p[i+l+8] != 'z' -i)) k++;       
-      }
-    for (size_t i=0;i<l;i++)
-      p[i+8]=127;
-    if(!k) free(p);
-   else {
-     debugalloc();
-     if (kerr++<20) 
-       printf("@@@@@@@@@@@@@@@@@ Erreur myfree p= %p   l=%ul n=%d\n",p,(unsigned int) l,nordre);
-
-   }
-  }
-}
-
-void *operator new(std::size_t) throw (std::bad_alloc);
-void *operator  new[] (std::size_t) throw (std::bad_alloc);
-void operator delete(void *  ) throw ();
-
-
-
-const int N100 = 100;
-class  AllocData;
-
-class AllocExtern {
-  public:
-class OneAlloc {public:
-  void * p;
-  size_t l;
-  long n;
-  bool is_array ;
-  bool operator<(const OneAlloc & a) const { return n<a.n;}
-};
-  
-  void  HeapSort(OneAlloc **c,long n)
-  {
-    long l,j,r,i;
-    OneAlloc* crit;
-    c--; // on decale de 1 pour que le tableau commence a 1
-    if( n <= 1) return;
-    l = n/2 + 1;
-    r = n;
-    while (1) { // label 2
-      if(l <= 1 ) { // label 20
-	crit = c[r];
-	c[r--] = c[1];
-	if ( r == 1 ) { c[1]=crit; return;}
-      } else  crit = c[--l]; 
-      j=l;
-      while (1) {// label 4
-      i=j;
-      j=2*j;
-      if  (j>r) {c[i]=crit;break;} // L8 -> G2
-      if ((j<r) && (*c[j] < *c[j+1])) j++; // L5
-      if ( *crit < *c[j]) c[i]=c[j]; // L6+1 G4
-      else {c[i]=crit;break;} //L8 -> G2
-      }
-    }
-  }
-  
-  class AllocData {public:
-    OneAlloc *a;
-    AllocData * next;
-    AllocData();
-    ~AllocData();
-    private:
-    AllocData(const AllocExtern::AllocData&);
-    void operator=(const AllocExtern::AllocData&);
-  };
-
-private:
-    
-  static const long Maxundelptr = 2048;
-    static size_t StorageUsage;
-  static size_t AllocSize ;
-  static size_t MaxUsedSize;
-  static AllocData * AllocHead ;  
-  static long NbAlloc;
-  static long NbAllocShow;
-  static long NbPtr;
-  static void * NextFree;
-  static long NbuDelPtr;
-  static long uDelPtr[Maxundelptr];
-  static bool after_end; 
-  static char filename[128];
-  AllocData * NewAllocData();
-  OneAlloc *Alloc();
-public:
-  
-  void * MyNewOperator(size_t ll,bool is_array );
-  void MyDeleteOperator(void * pp,bool is_array);
-  AllocExtern();
-  ~AllocExtern();
-  void init();  
-  int ShowAlloc( const char *s,size_t & lg); 
-  bool IsUnDelPtr(long nn) { // dichotomic find 
-    long i=0;
-    long j=NbuDelPtr-1;
-    while (i<=j) {
-      long k = (i+j)/2, kn=uDelPtr[k];
-      if ( nn<kn) j=k-1;
-      else if ( nn > kn) i = k+1;
-      else
-        return  true;}
-    return false;
-  }
-};
-
-static AllocExtern AllocExternData;
-size_t AllocExtern::StorageUsage=0;
-size_t AllocExtern::AllocSize =0;
-size_t AllocExtern::MaxUsedSize =0;
-AllocExtern::AllocData * AllocExtern::AllocHead =0;  
-long AllocExtern::NbAlloc =0;
-long AllocExtern::NbAllocShow=0;
-long AllocExtern::NbPtr =0;
-void * AllocExtern::NextFree =0;
-long AllocExtern::NbuDelPtr =0;
-long AllocExtern::uDelPtr[Maxundelptr];
-bool AllocExtern::after_end =false;
-char AllocExtern::filename[128] ="ListOfUnAllocPtr.bin";
-
-AllocExtern::AllocData * AllocExtern::NewAllocData()
-{
-  
-  AllocExtern::AllocData * ad = (AllocData *) mymalloc(sizeof(AllocData));
-  ad->a = (OneAlloc*) mymalloc(sizeof(OneAlloc)*N100);
-  for (int i=0;i<N100;i++)
-    ad->a[i].l=0,ad->a[i].p=NextFree,NextFree = & ad->a[i];
-  ad->next = AllocHead;
-  AllocHead = ad;
-#ifdef SHOWALLOC    
-  printf("\t\tCheckPtr: OneAlloc[100] %lx\n",this);
-#endif    
-  return ad;
-}
-
-
-
-AllocExtern::OneAlloc * AllocExtern::Alloc()
-{
-  OneAlloc * f =  (OneAlloc *) NextFree;
-  if (!f) 
-    AllocHead = NewAllocData();
-  f =(OneAlloc *) NextFree;
-  if (!f) exitalloc(1);
-  NextFree =   f->p;
-  return f;
-}
-
-
-void * AllocExtern::MyNewOperator(size_t ll,bool is_array)
-{ 
-  if(after_end) return malloc(ll);
-  init();
-  AllocExtern::OneAlloc * a = Alloc();
-  a->p = mymalloc(ll);
-  a->l = ll+1; // pour les allocation null
-  a->n = ++NbAlloc;
-  a->is_array = is_array;
-  NbPtr++;
-  AllocSize += ll;
-#ifdef DEBUGUNALLOC
-  if ( (IsUnDelPtr(a->n) && (a->n >= DEBUGUNALLOC) )) 
-    debugunalloc();
-#endif
-#ifdef SHOWALLOC    
-  printf( "\t%d\tCheckPtr: New Alloc %ld %lx when %ld\n ",a->n, ll, a->p, a->n);
-#endif
-  MaxUsedSize = AllocSize < MaxUsedSize ? MaxUsedSize :  AllocSize;
-  if( !ll &&  !a->p)
-    {
-<<<<<<< HEAD
-        if(verbosity>2) {
-      printf("\t\tCheckPtrMem Full Exit(10) New Alloc %ld %p when %ld\n ", ll, a->p, a->n);
-      printf ("\t\tCheckPtr:Max Memory used %10.3f kbytes " ,  MaxUsedSize/1024. );
-      printf (" Memory undelete %ld \n" , AllocSize);
-        }
-=======
-      printf("\t\tCheckPtrMem Full Exit(10) New Alloc %ld %p when %ld\n ", ll, a->p, a->n);
-      printf ("\t\tCheckPtr:Max Memory used %10.3f kbytes " ,  MaxUsedSize/1024. );
-      printf (" Memory undelete %ld \n" , AllocSize);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      exitalloc(1);
-    }
-  return (void*) ((char*)a->p);
-}
-
-void AllocExtern::MyDeleteOperator(void * pp,bool is_array)
-{
-  if(after_end) { /*free(pp)*/; return;}
-  init();
-  if (AllocHead)
-    {
-      AllocExtern::AllocData *p = AllocHead;
-      while (p)
-	{
-	  for (int i=0;i<N100;i++)
-	    if((p->a[i].l > 0) && (p->a[i].p == pp))
-	      {
-#ifdef SHOWALLOC    	  
-		printf("\t%d\tCheckPtr: delete  Alloc %ld %lx when %ld \n",p->a[i].n,p->a[i].l-1,  p->a[i].p, p->a[i].n);
-#endif
-		size_t ll = p->a[i].l-1;
-		for (size_t kkk=0;kkk<ll;kkk++) 
-		  ((char *) pp)[kkk]=18;
-		
-		myfree((char*)pp,ll,p->a[i].n);
-		
-		AllocSize -= ll;
-		NbPtr--;
-		p->a[i].l=0;
-		p->a[i].p = NextFree;
-		p->a[i].n =0;
-		if (p->a[i].is_array != is_array)
-		  printf("\t\tCheckPtr:  erreur delete [] ");
-		//if( p->a[i].n < NbAllocShow )		  debugalloc();      
-		NextFree = & p->a[i].p;
-		return;}
-	  p = p->next;
-	}
-      if(pp) 
-	{
-	  printf( "\t\tCheckPtr: delete of bad pointer %p  -----------\n",pp);
-	  debugalloc(); 
-	}
-      
-    } else 
-      myfree((char*)pp); 
-}
-void AllocExtern::init()
-{
-   static int count=0;
-   if(0== (count++)) 
-    {
-      sprintf(filename,"ListOfAllocPtr-%d.bin",(int) sizeof(void*));
-      StorageUsage=0;
-      AllocSize =0;
-      MaxUsedSize =0;
-      AllocHead =0;  
-      NbAlloc =0;
-      NbPtr =0;
-      NextFree =0;
-      NbuDelPtr =0;
-      NbuDelPtr = 0;
-        
-      after_end = false;
-      
-      FILE *file=fopen(filename,"rb");
-      
-      if (file) 
-	{
-	  fread(&NbuDelPtr,sizeof(long),1,file);
-	  fread(uDelPtr,sizeof(long),NbuDelPtr,file);
-	  if(NbuDelPtr> 100000000 && NbuDelPtr <0) 
-	    {
-	      printf("Fatal error in the file %s is wrong (please remove)",filename);
-	      exit(1);
-	    }
-	  fclose(file);
-	}  
-      else
-	{ // printf("fopen ListOfUnAllocPtr errno = %d\n",errno);
-	}   
-    }
-}
-AllocExtern::AllocExtern()
-{
-  init();
-  
-}
-
-AllocExtern::~AllocExtern()
-{
-    if(UnShowAlloc==0) return;
-     OneAlloc *  list[Maxundelptr];
-     
-     AllocData * p=AllocHead;
-     int k=0,kk=0;
-     int lln=0;
-     
-     while (p) {int i=N100;
-     while(i--)
-       if (p->a[i].l >0  )
-	 {
-	   if ( p->a[i].n >=  p->a[i].n) lln = p->a[i].n;
-	   if ( p->a[i].n <= NbAllocShow )
-	     k++;
-	   else
-	     if (kk<Maxundelptr)
-	       list[kk++]=p->a+i;
-	 }
-      p = p->next;
-     }
-     k+=kk;
-    kk=kk < Maxundelptr ? kk : Maxundelptr;
-    HeapSort(list,kk);
-<<<<<<< HEAD
-    if(verbosity > 2)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    for (int i= kk-10<0 ? 0 : kk-10 ;i<kk;i++)
-      {
-        printf ("\t\tCheckPtr:Undelete pointer  %p size %ld  when %ld\n", list[i]->p,list[i]->l,list[i]->n);        
-      }
-    if (kk)
-      {
-	FILE *file=fopen(filename,"wb");
-	if (file) 
-	  {
-	    NbuDelPtr=kk;
-	    for (int i=0;i<kk;i++)
-	      uDelPtr[i]=list[i]->n;
-	    fwrite(&NbuDelPtr,sizeof(long),1,file);
-	    fwrite(uDelPtr,sizeof(long),NbuDelPtr,file);
-	    fclose(file);
-	  }
-      }
-      else {}
-    
-<<<<<<< HEAD
-      if(verbosity>2) {
-    if(k)  printf ("\t\tCheckPtr:Nb of undelete pointer is %d last %d\n",k,lln);
-    printf ("\t\tCheckPtr:Max Memory used %10.3f kbytes " ,  MaxUsedSize/1024. );
-    printf (" Memory undelete %ld \n" , AllocSize);
-      }
-=======
-    if(k)  printf ("\t\tCheckPtr:Nb of undelete pointer is %d last %d\n",k,lln);
-    printf ("\t\tCheckPtr:Max Memory used %10.3f kbytes " ,  MaxUsedSize/1024. );
-    printf (" Memory undelete %ld \n" , AllocSize);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    
-    //   clean store pointer      
-    p=AllocHead;    
-    while (p)
-      {
-	myfree((char*)p->a);
-	AllocData * pold = p;
-	p = p->next;
-	myfree((char*)pold);
-      }     
-    AllocHead=0;
-    after_end=true; 
-}
-// ------------------
-
-
-void *operator new(size_t ll ) throw (std::bad_alloc)
-{ void * p =  AllocExternData.MyNewOperator(ll,false);
- if (ll && !p) { printf("EXIT BECAUSE MEMORY FULL \n");
- exitalloc(1); };
- return p;}
-void *operator new[](size_t ll ) throw (std::bad_alloc)
-{ void * p =  AllocExternData.MyNewOperator(ll,true);
- if (ll && !p) { printf("EXIT BECAUSE MEMORY FULL \n");
- exitalloc(1); };
- return p;}
-
-  
-void operator delete(void * pp) throw ()
-{  AllocExternData.MyDeleteOperator(pp,false);}
-void operator delete[](void * pp) throw ()
-{  AllocExternData.MyDeleteOperator(pp,true);}
-
-int AllocExtern::ShowAlloc(const char *s,size_t & lg) {
-    size_t m =StorageUsage;
-    StorageUsage =StorageUsed();
-    if (!NbAllocShow) {NbAllocShow=NbAlloc;}
-<<<<<<< HEAD
-    if(verbosity > 2)
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  printf ("----------CheckPtr:-----%s------ NbUndelPtr  %ld  Alloc: %ld  NbPtr %ld  Mem Usage: %zu diff: %ld\n",s,NbPtr,AllocSize,NbAlloc,StorageUsage,(long)(StorageUsage-m));
-  lg = AllocSize;
-  return NbPtr;
-}
-int ShowAlloc(const char *s,size_t & lg) 
-{  return  AllocExternData.ShowAlloc(s,lg);}
-#else
-#define XXXX
-#ifdef XXXX
-#include <cstdlib>
-#include <cerrno>
-#include <cstdio>
-#include <new>
-
-long  CheckPtr___nbptr=0;
-size_t CheckPtr___memoryusage =0;
-
-void* operator new( size_t size ) throw(std::bad_alloc) {
-    CheckPtr___nbptr++;
-    void *p = malloc( size );
-    
-    return p;
-}
-
-void* operator new[]( size_t size ) throw(std::bad_alloc) {  
-    void *p = malloc(size);
-     CheckPtr___nbptr++;
-    return p;
-}
-
-void operator delete( void *p ) throw() {  
-    free(p);
-    CheckPtr___nbptr--;
-
-}
-
-void operator delete[]( void *p ) throw() {
-    free(p);
-    CheckPtr___nbptr--;
-
-}
-
-int ShowAlloc(const char *s,size_t & lg)
-{
-    size_t m =StorageUsed();
-    long diff = m-CheckPtr___memoryusage;
-    if(verbosity > 0 && CheckPtr___memoryusage!=0 && m != CheckPtr___memoryusage)
-        printf("CheckPtr:  Warning memory leak with malloc = %ld \n ",diff);
-    CheckPtr___memoryusage=m;
-    lg = 0; return CheckPtr___nbptr;}
-int UnShowAlloc =0;
-#else
-#include <stdlib.h>
-
-int ShowAlloc(const char *s,size_t & lg)
-{lg=0; return 0;}
-int UnShowAlloc =0;
-#endif
-#endif
diff --git a/src/femlib/GenericMesh.hpp b/src/femlib/GenericMesh.hpp
index 3073fd3..8a3de7f 100644
--- a/src/femlib/GenericMesh.hpp
+++ b/src/femlib/GenericMesh.hpp
@@ -517,7 +517,7 @@ public:
   int Contening(const Vertex * vv) const{ return ElementConteningVertex[ vv  - vertices];} 
   void BuildAdj();
   void BuildBoundaryElementAdj();  // Add J. Morice function that give the TheAdjacencesSurfaceLink :: Version avec un manifold
-  void BuildBoundaryElementAdj(const int &nbsurf, int* firstDefSurface, int* labelDefSurface, int* senslabelDefSurface); // version avec plusieurs vari�t�s
+  void BuildBoundaryElementAdj(const int &nbsurf, int* firstDefSurface, int* labelDefSurface, int* senslabelDefSurface); // version avec plusieurs vari�t�s
   // void BuildBoundaryElementAdj_V2(const int &nbsurf, int* firstDefSurface, int* labelDefSurface, int* senslabelDefSurface); // bug inside a retoucher
   void Buildbnormalv();
   void BuildBound();
@@ -941,7 +941,7 @@ void GenericMesh<T,B,V>::BuildBoundaryElementAdj(const int &nbsurf, int* firstDe
 	      h.add(a,nk);
 	      TheBoundaryElementAdjacencesLink[nk]=sens*(nk+1);   
 	      // nk est un nombre locale depend de la surfaces choisie
-	      // element du bord est donn�e par ::  surf_be[nk/3];
+	      // element du bord est donn�e par ::  surf_be[nk/3];
 	      // arrete corespondante locale de l'element :: nk%3; 
 	    }
 	  else 
@@ -1035,7 +1035,7 @@ void GenericMesh<T,B,V>::BuildBoundaryElementAdj(const int &nbsurf, int* firstDe
 //     cerr << "some element in the border element are not references in the Surface description" << endl;
 //     exit(1);
 //     }
-//     assert(all_nbe_label == nbe);  // autrement cela veut dire que certain element du bord n'ont pas �t� mis dans le descriptif
+//     assert(all_nbe_label == nbe);  // autrement cela veut dire que certain element du bord n'ont pas �t� mis dans le descriptif
 //   */
 //   int *organisation_be_label;
 //   organisation_be_label = new int[all_nbe_label];
diff --git a/src/femlib/GenericMesh.hpp.orig b/src/femlib/GenericMesh.hpp.orig
deleted file mode 100644
index 424a2c6..0000000
--- a/src/femlib/GenericMesh.hpp.orig
+++ /dev/null
@@ -1,1599 +0,0 @@
-// ORIG-DATE:     Dec 2007
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  Model of generic mesh 1d,2d,3d    
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curi, Paris,  FRANCE 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : frederic.hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-#ifndef GENERICMESH_HPP_
-#define GENERICMESH_HPP_
-
-// la regle de programmation 3  
-extern long verbosity;
-extern long searchMethod; //pichon
-#include <map>  // Add J. Morice
-
-#include "cassert" 
-#include "assertion.hpp" 
-#include <cstdlib>
-#include <utility>
-#include <limits>
-//#include <algorithm>
-//#include <Functional>
-
-#include "RefCounter.hpp"
-
-
-using namespace ::std;
-
-
-#include "Serialize.hpp"
-
-#include "GQuadTree.hpp"
-// definition R
-namespace Fem2D  {
-#include "R3.hpp"
-#include "Label.hpp"
-#include "HashTable.hpp"
-
-  const double UnSetMesure=-1e+200;
-
-inline int maxdfon(const int *dfon){ return max(max(dfon[0],dfon[1]),max(dfon[2],dfon[3]));}
-  // struct R {}; 
-template<int d> struct typeRd {typedef R0 Rd;};
-template<> struct typeRd<1> {typedef R1 Rd;};
-template<> struct typeRd<2> {typedef R2 Rd;};
-template<> struct typeRd<3> {typedef R3 Rd;};
-
-const int NbTypeItemElement = 4;
-
-const int TypeVertex =0;
-const int TypeEdge   =1;
-const int TypeFace   =2;
-const int TypeVolume =3;
-    //  add FH  ... april 2009  for peroidic Boundary Condition.
-    //  gestion of the permutation 1,2,3
-    // here just user order     
-    //  NumPerm  : number of the permutation  
-    //   p  permutation      n= NumPerm(p)
-    //   p1 permutation inv  n1 = NumPerm(p1)
-    //   p1[p[i]]=i 
-    //   =>  n1   number of the perm /  p[p1[i]]  increase <=> i
-    //  SetNumPerm: set the permutation form number 
-    
-    template<int d> inline int NumPerm(int *) {ffassert(0);}  
-    template<int d> inline int NumPerm1(int *) {ffassert(0);}  // num perm inverse 
-    template<> inline int NumPerm<1>(int *) { return 0;}
-    template<> inline int NumPerm1<1>(int *) { return 0;}
-    template<> inline int NumPerm<2>(int *p) { return p[0] > p[1] ;}
-    template<> inline int NumPerm1<2>(int *p) { return p[0] > p[1] ;}
-    
-    template<> inline int NumPerm1<3>(int *p) { 
-	// signe + depart*2
-	int k=0,i0=0,i1=1,i2=2,j[3];
-	if(p[i0]> p[i1]) swap(i0,i1),k +=1;
-	if(p[i1]> p[i2]) swap(i1,i2),k +=1;
-	if(p[i0]> p[i1]) swap(i0,i1),k +=1;
-	assert(p[i0] < p[i1] && p[i1] < p[i2]);
-	// j is inv of i1,i2,i3
-	j[i0]=0;j[i1]=1;j[i2]=2;
-	return (k%2)+i0*2; // signe + depart*2
-    }
-    
-    template<> inline int NumPerm<3>(int *p) { 
-	// signe + depart*2
-	int k=0,i0=0,i1=1,i2=2,j[3];
-	if(p[i0]> p[i1]) swap(i0,i1),k +=1;
-	if(p[i1]> p[i2]) swap(i1,i2),k +=1;
-	if(p[i0]> p[i1]) swap(i0,i1),k +=1;
-	assert(p[i0] < p[i1] && p[i1] < p[i2]);
-	// j is inv of i1,i2,i3
-	j[i0]=0;j[i1]=1;j[i2]=2; 
-	return (k%2)+ ((j[0]+3)%3)*2; // signe + depart*2
-    }    
-    // build de permutation     
-    template<int d> inline void SetNumPerm(int n,int *p) { ffassert(0); }// a error}    
-    template<int d> inline void SetNumPerm1(int n,int *p) { ffassert(0); }// a error}    
-    
-    template<> inline void SetNumPerm<1>(int ,int *p) { p[0]=0;} // a error}    
-    template<> inline void SetNumPerm<2>(int n,int *p) { p[0]=n;p[1]=1-n;} // a error}    
-    
-    // build perm inverse
-    template<> inline void SetNumPerm1<1>(int ,int *p) { p[0]=0;} // a error}    
-    template<> inline void SetNumPerm1<2>(int n,int *p) { p[0]=n;p[1]=1-n;} // a error} 
-    
-    template<> inline  void SetNumPerm1<3>(int n,int *p) { 
-	int i=n/2, j= n%2 ? 2:1;
-	p[i]=0;p[(i+j)%3]=1;p[(i+j+j)%3]=2;
-	assert( n == NumPerm1<3>(p));
-    }    
-    
-    template<> inline   void SetNumPerm<3>(int n,int *p) { 
-	int i=n/2, j= n%2 ? 2:1;
-	p[0]=i;p[1]=(i+j)%3;p[2]=(i+j+j)%3;
-	assert( n == NumPerm<3>(p));
-    } 
-    // ---  end add periodic 
-    
-class DataFENodeDF {
-    int  * nbref; // pointer  on common ref counter 
-public:
-  int ndfon[4];
-  const int NbOfElements;
-  const  int NbOfNodes;
-  const  int NbOfDF;  
-  const int * const NodesOfElement;
-  const int * const FirstDfOfNodeData;
-  const int * const FirstNodeOfElement; //  0 
-  const int MaxNbNodePerElement;
-  const int MaxNbDFPerElement;
-  const int MaxNbDFPerNode;
-  int ndfonVertex()const {return ndfon[0];}
-  int ndfonEdge()const {return ndfon[1];}
-  int ndfonFace()const {return ndfon[2];}
-  int ndfonTet()const {return ndfon[3];}
-
-  DataFENodeDF(const DataFENodeDF & m)
-    :
-    nbref( m.nbref ) ,
-    NbOfElements(m.NbOfElements),
-    NbOfNodes(m.NbOfNodes),
-    NbOfDF(m.NbOfDF),
-    NodesOfElement(m.NodesOfElement),
-    FirstDfOfNodeData(m.FirstDfOfNodeData),
-    FirstNodeOfElement(m.FirstNodeOfElement),
-    MaxNbNodePerElement(m.MaxNbNodePerElement),
-    MaxNbDFPerElement(m.MaxNbDFPerElement) ,
-    MaxNbDFPerNode(maxdfon(m.ndfon))
-    {
-      for(int i=0;i<NbTypeItemElement;++i)
-	    ndfon[i]=m.ndfon[i];
-	(*nbref)++; // add one to the ref counter 
-    }
-  DataFENodeDF( 
-	       int andfon[NbTypeItemElement],
-	       int aNbOfElements,
-	       int aNbOfNodes,
-	       int aNbOfDF,
-	       const int * aNodesOfElement,
-	       const int * aFirstDfOfNodeData,
-	       int aMaxNbNodePerElement,
-	       int aMaxNbDFPerElement)
-    :
-    nbref( new int(0)),// new ref counter 
-    NbOfElements(aNbOfElements),
-    NbOfNodes(aNbOfNodes),
-    NbOfDF(aNbOfDF),
-    NodesOfElement(aNodesOfElement),
-    FirstDfOfNodeData(aFirstDfOfNodeData),
-    FirstNodeOfElement(0),
-    MaxNbNodePerElement(aMaxNbNodePerElement),
-    MaxNbDFPerElement(aMaxNbDFPerElement) ,
-    MaxNbDFPerNode(maxdfon(andfon))    
-  {
-    for(int i=0;i<NbTypeItemElement;++i)
-      ndfon[i]=andfon[i];
-  }
- ~DataFENodeDF()  
-  {
-    if ((*nbref)==0) // remove if nbref ==0
-       {
-	 delete nbref;
-         delete [] NodesOfElement;
-         delete [] FirstDfOfNodeData;
-         delete [] FirstNodeOfElement;
-       }
-	else  (*nbref)--;
-  }
-private:
-	void operator=(const DataFENodeDF &) ;    
-	
-};
-
-template<typename Rn>
-class GenericVertex : public Rn,public Label
-{
-    
-  template<typename T,typename B,typename V>
-        friend class GenericMesh;
-  friend inline ostream& operator <<(ostream& f, const GenericVertex & v )
-  { f << (const Rn &) v << ' ' << (const Label &) v   ; return f; }
-  friend inline istream& operator >> (istream& f,  GenericVertex & v )
-        { f >> (Rn &) v >> (Label &) v ; return f; }
-    
-  Rn *normal; // pointeur sur la normal exterieur pour filtre des points de departs
-   
-public:
-  typedef Rn Rd;
-  static const int d=Rd::d;  
-  GenericVertex() : Rd(),Label(),normal(0) {};
-  GenericVertex(const Rd & P,int r=0): Rd(P),Label(r),normal(0){}
-    
-  void SetNormal(Rd *&n,const Rd & N)
-  { if (normal) { 
-      Rd NN=*normal+N; 
-      *normal= NN/NN.norme(); }
-    else *(normal=n++)=N;}
-    
-  Rd Ne() const {return normal ? *normal: Rd();}
-  bool ninside(const Rd & P) const
-  {
-    return normal? (Rd(*this,P),*normal)<=0: true;
-  }
-    
-private: // pas de copie pour ne pas prendre l'adresse
-  GenericVertex(const GenericVertex &);
-  void operator=(const GenericVertex &); 
-  
-};
-  inline  R1 ExtNormal( GenericVertex<R1> *const v[2],int const f[1])  {   return f[0]==0 ? R1(-1):R1(1);  }
-  inline  R2 ExtNormal( GenericVertex<R2> *const v[3],int const f[2])  {   return R2(*v[f[1]],*v[f[0]]).perp();  }
-    // correct signe N in 3d mai 2009 (FH)
-  inline  R3 ExtNormal( GenericVertex<R3> *const v[4],int const f[3])  {   return R3(*v[f[0]],*v[f[2]])^R3(*v[f[0]],*v[f[1]]) ;  }
-    
-
-template<typename Data>  
-class GenericElement: public Label {
-public:
-  typedef typename Data::V Vertex;
-  typedef typename Data::V::Rd Rd;
-  typedef typename Data::RdHat RdHat;// for parametrization 
-  typedef typename Data::RdHatBord RdHatBord;// for parametrization 
-
-  typedef typename Rd::R R;
-
-  static const int nv=Data::NbOfVertices;  // nb  of vertices 
-  static const int ne=Data::NbOfEdges;  // nb  of edges
-  static const int nf=Data::NbOfFaces;  // nb of faces
-  static const int nt=Data::NT;  // nb of tets
-  static const int nitem=nv+ne+nf+nt;
-  static const int nva=Data::NbOfVertexOnHyperFace;  
-  static const int nea=Data::NbOfAdjElem;  
-  static const int d=Rd::d;  
-  static const int (* const nvedge)[2] ;//
-  static const int (* const nvface)[3] ;//
-  static const int (* const onWhatBorder)[nitem] ;//
-    
-  static const int (* const nvadj)[nva] ;//  
-  static const int nitemdim[4]; //  nv,ne,nf,nt 
-  // variable prive 
-private:
-  Vertex *vertices[nv]; // an array of 3 pointer to vertex
-  R mes; 
-public:
-  GenericElement() {}
-  const Vertex & operator[](int i) const  {
-    ASSERTION(i>=0 && i <nv);
-    return *vertices[i];} // to see triangle as a array of vertex
-
-  Vertex & operator[](int i)  {
-    ASSERTION(i>=0 && i <nv);
-    return *vertices[i];} // to see triangle as a array of vertex
-
-  const Vertex& at(int i) const   { return *vertices[i];} // to see triangle as a array of vert
-
-  Vertex& at(int i)    { return *vertices[i];} // to see triangle as a array of vert
-
-  GenericElement & set(Vertex * v0,int * iv,int r,double mss=UnSetMesure) 
-  { 
-    for(int i=0;i<nv;++i)	
-      vertices[i]=v0+iv[i];
-    mes=(mss!=UnSetMesure) ? mss : Data::mesure(vertices);
-    lab=r;
-    ASSERTION(mss==UnSetMesure && mes>0);
-    return *this;
-  }
-
-  
-  istream & Read1(istream & f,Vertex * v0,int n)
-  {
-    int iv[nv],ir,err=0;
-    for (int i=0;i<nv;++i) 
-      {
-	f >> iv[i];
-	iv[i]--;
-	if (  ! (iv[i]>=0 && iv[i]<n)) err++;
-      }
-    f >> ir;
-    if(err || ! f.good() )
-      {
-	cerr << " Erreur GenericElement::Read1 " << nv <<  " " << n << "  : " ;
-	for (int j=0;j<nv;++j) 
-	  cerr << iv[j] <<  " ";
-	cerr << " , " << ir <<  endl;
-	abort();
-      }
-
-    set(v0,iv,ir); 
-    return f;
-  }
-     	
-  Rd Edge(int i) const {ASSERTION(i>=0 && i <ne);
-    return Rd(at(nvedge[i][0]),at(nvedge[i][1]));}// opposite edge vertex i
-
-  Rd N(int i) const  { return ExtNormal(vertices,nvadj[i]);}
-  Rd PBord(int i,RdHatBord P) const   { return Data::PBord(nvadj[i],P);}  
-
-  Rd operator()(const RdHat & Phat) const {
-    Rd r= (1.-Phat.sum())*(*(Rd*) vertices[0]);    
-    for (int i=1;i<nv;++i)
-      r+=  Phat[i-1]*(*(Rd*) vertices[i]);
-    return r;
-  }
-
- int faceOrient(int i) const 
-    {// def the permutatution of orient the face
-	int fo =1;
-	const Vertex * f[3]={&at(nvface[i][0]), &at(nvface[i][1]), &at(nvface[i][2])}; 
-	if(f[0]>f[1]) fo = -fo,Exchange(f[0],f[1]); 
-	if(f[1]>f[2]) { fo = -fo,Exchange(f[1],f[2]); 
-	if(f[0]>f[1]) fo = -fo,Exchange(f[0],f[1]); }
-	return fo;
-    }
-    
-  int facePermutation(int i) const 
-  {// def the permutatution of orient the face
-    int fo =0;
-    const Vertex * f[3]={&at(nvface[i][0]), &at(nvface[i][1]), &at(nvface[i][2])}; 
-    if(f[0]>f[1]) fo+=1,Exchange(f[0],f[1]); 
-    if(f[1]>f[2]) { fo+=2,Exchange(f[1],f[2]); 
-    if(f[0]>f[1]) fo+=4,Exchange(f[0],f[1]); }
-    return fo;
-  }
-
-  bool   EdgeOrientation(int i) const 
-    { return &at(nvedge[i][0]) < &at(nvedge[i][1]);}
-    
-  R lenEdge(int i) const {ASSERTION(i>=0 && i <3);
-    Rd E=Edge(i);return sqrt((E,E));}
-
-  R  mesure() const {return mes;}
-
-
-    
-  static  int NbNodes(int c)  // use the bit i of c to say if node in objet of dim  i existe
-  { int c0=(c&1)!=0, c1=(c&2)!=0, c2=(c&4)!=0, c3=(c&8)!=0;  
-    return nv*c0 +ne*c1 +nf*c2 + nt*c3 ;}
-
-    static  int NbNodes(const int c[4])  // use the bit i of c to say if node in objet of dim  i existe
-  { int c0=(c[0])!=0, c1=(c[1])!=0, c2=(c[2])!=0, c3=(c[3])!=0;  
-    return nv*c0 +ne*c1 +nf*c2 + nt*c3 ;}
-
-  void Renum(Vertex   *v0, int * r)  
-  { 
-    for (int i=0;i<nv;i++) 
-      vertices[i]=v0+r[vertices[i]-v0];
-  }
-
-  void Change(Vertex   *vold, Vertex *vnew) 
-  { 
-    for (int i=0;i<nv;i++) 
-      vertices[i]=vnew+vertices[i]-vold;
-  }
-
-  //Rd n(int i) const //  unit exterior normal
-  //  {Rd E=Edge(i);return Rd(E.y,-E.x)/Norme2(E);} 
-   
-    
-private:
-  // pas de copie
-  GenericElement(const  GenericElement &);
-  GenericElement &operator = (const  GenericElement &);
-};
-
- 
-    template<int N> inline void PermI2J(const void **I,const void **J,int *S)
-    {
-	ffassert(0);
-    }
-    template<> inline void PermI2J<1>(const void **I,const void **J,int *S)
-    {
-	S[0]=0;
-    }
-    template<> inline void PermI2J<2>(const void **I,const void **J,int *S)
-    {
-	if(I[0]==J[0])
-	  { assert(I[1]==J[1]);
-	    S[0]=0;S[1]=1;}
-	else 
-	  { assert(I[1]==J[0]&&I[0]==J[1]);
-	    S[0]=1;S[1]=0;}	
-    }
-    template<> inline void PermI2J<3>(const void **I,const void **J,int *S)
-    {
-	if(I[0]==J[0]) S[0]=0;
-	else if(I[0]==J[1]) S[0]=1;
-	else {S[0]=2; assert(I[0]==J[2]) ;}
-	if(I[1]==J[0]) S[1]=0;
-	else if(I[1]==J[1]) S[1]=1;
-	else {S[1]=2; assert(I[1]==J[2]) ; }
-	S[2]=3-S[0]-S[1];
-	assert(I[2]==J[3-S[0]-S[1]]);
-    }
-    
-template<typename T,typename B,typename V>
-class GenericMesh : public RefCounter
-{ 
-public:
-  typedef GenericMesh GMesh;
-  typedef T Element;   
-  typedef typename V::Rd Rd;
-  typedef typename Rd::R R;
-  typedef V  Vertex;
-  typedef B BorderElement;
-  typedef  EF23::GTree<V> GTree;
-  typedef typename Element::RdHat RdHat;// for parametrization                                        
-
-  int nt,nv,nbe;
-  R mes,mesb;
-  //private:
-  V *vertices;
-  T *elements;
-  B *borderelements;
-  Rd  * bnormalv; //  boundary vertex normal 
-  Rd Pmin,Pmax; // // the bound  of the domain  see BuildBound 
-  static const int nea=T::nea; //  numbering of adj (4 in Tet,  3 in Tria, 2 in seg) 
-  static const int nva=T::nva; //  numbering of vertex in Adj element 
-  static int kfind,kthrough; //  number of search and number of throught element. 
-  int *TheAdjacencesLink; // to store the adj link  k*nea+i -> k'*nea+i' 
-  int *BoundaryElementHeadLink; //
-  int *ElementConteningVertex;  
-  GTree *gtree;
-public:
-    int nbElmts() const {return nt;}
-    int nbBrdElmts() const {return nbe;}
-    int nbVertices() const {return nv;}
-    const T & operator[](int i) const {return elements[CheckT(i)];}
-  const V& operator()(int i) const {return vertices[CheckV(i)];}
-  const B& be(int i) const {return borderelements[CheckBE(i)];}
-  void  BoundingBox(Rd &pmin,Rd &pmax) const {pmin=Pmin;pmax=Pmax;} 
-  T & t(int i)  {return elements[CheckT(i)];}
-  V & v(int i)  {return vertices[CheckV(i)];}
-  B & be(int i) {return borderelements[CheckBE(i)];}
-    
-    
-  GenericMesh()
-    : nt(0),nv(0),nbe(0),  mes(0.),mesb(0.) ,
-      vertices(0),elements(0),borderelements(0),bnormalv(0),
-      TheAdjacencesLink(0),BoundaryElementHeadLink(0),
-      ElementConteningVertex(0), gtree(0)
-  {} 
- 
-  GenericMesh(const  Serialize &serialized) ;
-    
-  void set(int mv,int mt,int mbe) 
-  {
-    assert(nt==0 && nv==0 && nbe ==0);
-    nt=mt;
-    nv=mv;
-    nbe=mbe;
-    vertices=new V[nv];
-    elements= new T[nt];
-    borderelements = new B[nbe]; 
-    assert( nt >=0 && elements);
-    assert( nv >0 && vertices);
-    
-  }
- 
- 
-  int operator()(const T & tt) const {return CheckT(&tt - elements);}
-  int operator()(const T * tt) const {return CheckT(tt - elements);}
-  int operator()(const V & vv) const {return CheckV(&vv - vertices);}
-  int operator()(const V  * vv) const{return CheckV(vv - vertices);}
-  int operator()(const B & k) const {return CheckBE(&k - borderelements);}
-  int operator()(const B  * k) const{return CheckBE(k - borderelements);}
-  int operator()(int it,int j) const {return operator()(elements[it][j]);}// Nu vertex j of triangle it
-  int be(int it,int j) const {return operator()(borderelements[it][j]);}// Nu vertex j of triangle it
-  
-  int CheckV(int i) const { ASSERTION(i>=0 && i < nv); return i;} 
-  int CheckT(int i) const { ASSERTION(i>=0 && i < nt); return i;}
-  int CheckBE(int i) const { ASSERTION(i>=0 && i < nbe); return i;}
-  
-   
-  int Contening(const Vertex * vv) const{ return ElementConteningVertex[ vv  - vertices];} 
-  void BuildAdj();
-  void BuildBoundaryElementAdj();  // Add J. Morice function that give the TheAdjacencesSurfaceLink :: Version avec un manifold
-  void BuildBoundaryElementAdj(const int &nbsurf, int* firstDefSurface, int* labelDefSurface, int* senslabelDefSurface); // version avec plusieurs vari�t�s
-  // void BuildBoundaryElementAdj_V2(const int &nbsurf, int* firstDefSurface, int* labelDefSurface, int* senslabelDefSurface); // bug inside a retoucher
-  void Buildbnormalv();
-  void BuildBound();
-  void BuildjElementConteningVertex();
-  void BuildGTree() {if(gtree==0)  gtree=new GTree(vertices,Pmin,Pmax,nv);}    
-  DataFENodeDF BuildDFNumbering(int dfon[NbTypeItemElement],int nbequibe=0,int *equibe=0) const ;
-    DataFENodeDF BuildDFNumbering(int ndfv,int ndfe,int ndff,int ndft,int nbequibe=0,int *equibe=0) const 
-  { int dfon[NbTypeItemElement]={ndfv,ndfe,ndff,ndft};
-    return  BuildDFNumbering(dfon,nbequibe,equibe);
-  }
-  
-  int ElementAdj(int k,int &j) const  {
-    int p=TheAdjacencesLink[nea*k+j];
-    if(p>=0) j=p%nea;
-    return p>=0 ? p/nea: -1-j;}// modif FH. to change the code of copule k,kadj on border element..
-    //  correct bug of 23/05/2013 : 1  dof on RT0 3d... 
-    
-
-
-  int ElementAdj(int k,int &j,Rd& PHat) const  
-    {
-    //   return the kk the number of adj element k  to hyperface j (opposite to vertex j)
-    //   out j: is the new hyperface number in element kk.
-    // and 
-    // in : Pt is the point  on hyperface j on element k on ref element K hat.
-    //  remark   lb[j]==0  at enter
-    // you get the new 	point Pt (in  on hyperface j on element kk
-    //  and lb[j] ==0 at return (j have change).
-    int p=TheAdjacencesLink[nea*k+j];
-    if(p>=0) 
-      {
-	
-	  R lb[Rd::d+1];//{1.-PHat.sum(),PHat}; 
-	  R lbb[Rd::d+1];//{1.-PHat.sum(),PHat}; 
-	  PHat.toBary(lb); // R1 R2 R3 
-	  if(Abs(lb[j])>1e-10)
-	   assert(Abs(lb[j])<1e-10);
-	int sigma[T::nva];	  
-	const void * nvkj[T::nva], *nvkkjj[T::nva];
-	int jj=p%nea;
-	int kk=p/nea;
-
-	Element & K(elements[CheckT(k)]);
-	Element & KK(elements[CheckT(kk)]);
-	Rd Pin=K(PHat);  
-	for (int l=0;l<T::nva;++l)
-	    nvkj[l] =&K[T::nvadj[j][l]];
-	for (int l=0;l<T::nva;++l)
-	    nvkkjj[l] = &KK[T::nvadj[jj][l]];
-	//  il faut permute ll.
-	PermI2J<nva>(nvkj,nvkkjj,sigma);
-	for (int l=0;l<T::nva;++l)
-	    lbb[T::nvadj[jj][l]]=lb[T::nvadj[j][sigma[l]]];
-	lbb[jj]=0;
-#ifdef DEBUG	  
-	Rd PH=PHat;  
-#endif
-	PHat=Rd(lbb+1);
-#ifdef DEBUG	  
-	Rd Pout=KK(PHat);
-	if( (Pin-Pout).norme2() > 1e-10 )
-	    {
-		for (int l=0;l<=T::nva;++l)
-		    cout << lbb[l] <<" < -- " << lb[l] << endl;
-		for (int l=0;l<T::nva;++l)
-		    cout <<l << " :    o=  " << nvkkjj[l]  << "   i= " << nvkj[l] << " " <<  sigma[l] 
-		         << " -- " << &KK[T::nvadj[jj][l]]  << " == " << &K[T::nvadj[j][sigma[l]]] 
-		    << " -- " << &K[T::nvadj[j][l]]  << " == " << &KK[T::nvadj[jj][sigma[l]]] 
-		    << " -- " << lbb[T::nvadj[jj][l]] << " == " << lb[T::nvadj[j][sigma[l]]]
-		    << " ++ " << T::nvadj[jj][l] << " <-- " << T::nvadj[j][sigma[l]] 
-		    << endl;
-		cout << "Adj:  j= " << j << " ," << Pin << " != " << Pout << " , " << PH << " -> " << PHat << "  jj = " << jj <<  endl;
-		assert(0);
-	    }
-#endif	  
-	j=jj;
-	return kk;
-      }
-    return -1;//  on border 
-  }
-    
-  int GetAllElementAdj(int it,int *tabk) const
-  { //  get the tab of all adj element (max ne)
-    //  and return the size of the tab 
-    int i=0;
-    for(int j=0;j<nea;++j)
-      {
-	tabk[i]=TheAdjacencesLink[3*it+j]/3;
-	if(tabk[i] >=0 && tabk[i]!=it) i++; 
-      }
-    return i;
-  }
-
-  int BoundaryElement(int bbe,int & ItemInK) const {
-    int i= BoundaryElementHeadLink[bbe]; 
-    ItemInK = i%nea; 
-    return i/nea;}
-  
-  // Add J. Morice 
-  template<int N,int M>
-  SortArray<int,N> itemadjs(const int (* const  nu )[N],int k,int i, int *sens) 
-  {
-    int nnv[N];
-    B & K(borderelements[CheckBE(k)]);
-    ASSERTION(i>=0 && i <M);
-    for (int j=0;j<N;++j){
-      nnv[j] = operator()(K[nu[i][j]]);
-    }
-    if(nnv[0] > nnv[1] )
-      *sens = 1;
-    else
-      *sens =-1;
-    return SortArray<int,N>(nnv);
-  }
-
-  SortArray<int,B::nva> items(int k,int i,int *sens) 
-  {
-    return itemadjs<B::nva,B::nv>(B::nvadj,k,i,sens);
-  }
-
-  
-  template<int N,int M>
-  SortArray<int,N> iteme(const int (* const  nu )[N],int k,int i) 
-  {
-    int nnv[N];
-    Element & K(elements[CheckT(k)]);
-    ASSERTION(i>=0 && i <M);
-    for (int j=0;j<N;++j){
-      nnv[j] = operator()(K[nu[i][j]]);
-    }
-
-    return SortArray<int,N>(nnv);
-  }
-
-  SortArray<int,B::nv> itemadj(int k,int i) 
-  {
-    return iteme<B::nv,T::nea>(T::nvadj,k,i);
-  }
-  
-  SortArray<int,B::nv> itembe(int k) 
-  {
-    int nnv[B::nv];
-    B & K(borderelements[CheckBE(k)]);
-    
-    for (int j=0;j<B::nv;++j){
-      nnv[j] = operator()(K[j]);
-    }
-
-    return SortArray<int,B::nv>(nnv);
-  }
-
-  //  const Element * Find(const Rd & P) const ;
-  const Element * Find(Rd P, RdHat & Phat,bool & outside,const Element * tstart=0) const  
-  {return EF23::Find<GMesh>(*this,this->gtree,P,Phat,outside,tstart);}
-  
-  R mesure(){ return mes;}
-  R bordermesure(){ return mesb;}
-  virtual ~GenericMesh() { 
-    //cout << "~GenericMesh\n";
-   
-    delete [] ElementConteningVertex;
-    delete [] TheAdjacencesLink;
-    delete [] BoundaryElementHeadLink;
-    delete [] borderelements;
-    if(nt>0) delete [] elements;
-    delete [] vertices;
-    delete [] bnormalv;
-    if(gtree) delete gtree;
-<<<<<<< HEAD
-      ElementConteningVertex=0;
-      TheAdjacencesLink=0;
-      BoundaryElementHeadLink=0;
-      borderelements=0;
-      elements=0;
-      vertices=0;
-      bnormalv=0;
-      gtree=0;
-      nt=(0);
-      nv=(0);
-      nbe=(0);
-      mes=(0.);
-      mesb=(0.);
-=======
-    
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  }
-
-  Serialize serialize() const;
-  
-private:
-  GenericMesh(const GenericMesh &); // pas de construction par copie
-   void operator=(const GenericMesh &);// pas affectation par copy 
-};
-
-template<typename T,typename B,typename V>
-void GenericMesh<T,B,V>::BuildjElementConteningVertex()
-{
-  const int nkv= T::nv;
-    int lerr[10];
-  if(!ElementConteningVertex) ElementConteningVertex = new int[nv];
-
-    for(int i=0;i<nv;++i)
-	ElementConteningVertex[i]=-1; 
-    
-    for (int k=0;k<nt;++k)
-	for (int i=0;i<nkv;++i)
-	    ElementConteningVertex[operator()(elements[k][i])]=k ;
-    int kerr=0;
-    for(int i=0;i<nv;++i)
-	if (ElementConteningVertex[i]<0) 
-	    if(kerr<10) lerr[kerr++]=i; 
-    if(kerr)
-      {
-	cerr << " Fatal error: some vertex are not at least in one element  \n       :   " ;
-	for(int i=0;i<kerr;++i)
-	    cerr << " " << lerr[i];
-	cerr << endl;
-      }
-    ffassert(kerr==0);//  Sure Error.
-
-} 
-template<typename T,typename B,typename V>
-void GenericMesh<T,B,V>::BuildAdj()
-{
- // const int nva   = T::nva;
- // const int nea   = T::nea;
-  if(TheAdjacencesLink!=0) return ;//  already build ... 
-  TheAdjacencesLink = new int[nea*nt];
-  BoundaryElementHeadLink = new int[nbe];
-  HashTable<SortArray<int,nva>,int> h(nea*nt,nv);
-  int nk=0,nba=0;
-  int err=0;
-if(verbosity>5) 
-  cout << "   -- BuildAdj:nva=// nea=" << nva << " " << nea << " "<< nbe << endl;
-  for (int k=0;k<nt;++k)
-    for (int i=0;i<nea;++i)
-      {
-        SortArray<int,nva> a(itemadj(k,i));
-	//cout << " ### "   << " item(k,i)= " << itemadj(k,i) << " a= " << a << " k " << k << " i " << i << endl;
-	typename HashTable<SortArray<int,nva>,int>::iterator p= h.find(a);
-	if(!p) 
-	  { 
-	    h.add(a,nk);
-	    TheAdjacencesLink[nk]=-1;
-	    nba++;
-	  }
-	else 
-	  {	  
-	    ASSERTION(p->v>=0);
-	    TheAdjacencesLink[nk]=p->v;
-	    TheAdjacencesLink[p->v]=nk;
-	    p->v=-1-nk;
-	    nba--;
-	  }
-	++nk;
-      }
-    
-  for (int k=0;k<nbe;++k)
-     {
-	SortArray<int,nva> a(itembe(k));
-
-	typename HashTable<SortArray<int,nva>,int>::iterator p= h.find(a);
-	//cout << k << " ### "   << " item(k,i)= " << itembe(k) << " a= " << a << endl;
-	if(!p) { err++;
-	  if(err==1) cerr << "Err  Border element not in mesh \n";
-	  if (err<10)  cerr << " \t " << k << " " << a << endl;
-	}
-	 else
-	   {
-	     BoundaryElementHeadLink[k] = p->v <0 ? -p->v-1 : p->v;
-	     #ifndef NDEBUG
-	     int tt=BoundaryElementHeadLink[k]/nea;
-	     int ee=BoundaryElementHeadLink[k]%nea;
-	     //cout << k << " ### "   << a << " = " << itemadj(t,e) << " t " << t << " e " << e << endl;
-	     assert(itemadj(tt,ee)==a);
-	     #endif
-	   }
-     }
-
-    
-  assert(err==0);
-  int na= h.n;
-  if(verbosity>1) 
-    {
-	cout << "  -- BuildAdj: nb Elememt " << nt << " nb vertices " << nv << endl;
-	cout << "             : nb adj  = "<< na << " on border " << nba << " nea = " << nea << " nva = " << nva ;
-      if(nea==2)
-        cout << " Const d'Euler: " << nt - na + nv << endl;
-      else
-        cout << endl;	
-    }	
-}
-/*
-template<typename T,typename B,typename V>
-void GenericMesh<T,B,V>::BuildSurface(const int &nb, KN<int> SurfaceDef)
-{
-  int nbsurf;
-  nbsurf = nb;
-  KN<int> surfa
-  
-}
-*/
-
-
-template<typename T,typename B,typename V>
-void GenericMesh<T,B,V>::BuildBoundaryElementAdj()
-{
-  // Return in TheBorderElementAjacencesLink
-  //  if exist a link :: sign(nk_link)*(nk_link+1)
-  //  else            :: sign(nk)*(nk)
-
-  // assert(TheBoundaryElementAdjacencesLink==0); plus tard
-  int *TheBoundaryElementAdjacencesLink = new int[B::nea*nbe];
-  HashTable<SortArray<int,B::nva>,int> h(B::nea*nbe,nv);
-  int nk=0;
-  int err=0;
-  int sens;
-
-  cout << "nea/nva" << B::nea << " "  << B::nva << endl;
-  for (int k=0;k<nbe;++k)
-    for (int i=0;i<B::nea;++i)
-      {
-        SortArray<int,B::nva> a(items(k,i,&sens));
-
-	typename HashTable<SortArray<int,B::nva>,int>::iterator p= h.find(a);
-	if(!p) 
-	  { 
-	    h.add(a,nk);
-	    TheBoundaryElementAdjacencesLink[nk] = sens*(nk+1)   ;  // sens;
-	  } 
-	else 
-	  {	    
-	    ASSERTION(p->v>=0);
-	    if( sens*TheBoundaryElementAdjacencesLink[p->v] > 0 ){
-	      
-	      B & K(borderelements[CheckBE(k)]);
-	      int firstVertex  =  operator()(K[B::nvadj[i][0]])+1;
-	      int secondVertex =  operator()(K[B::nvadj[i][1]])+1;
-	      cout << " The edges defined by vertex is " << firstVertex << "-" << secondVertex << ", is oriented in the same direction in element " << k+1 << 
-		" and in element "<<  1+(p->v/B::nea) << endl;
-	      err++;
-	      assert(err==0);
-	    }
-	    if( abs(TheBoundaryElementAdjacencesLink[p->v]) != 1+p->v ){
-	      
-	      B & K(borderelements[CheckBE(k)]);
-	      int firstVertex  =  operator()(K[B::nvadj[i][0]])+1;
-	      int secondVertex =  operator()(K[B::nvadj[i][1]])+1;
-	      cout << " The edges defined by vertex is " << firstVertex << "-" << secondVertex << "belong to the three border elements ::" 
-		   << 1+(p->v)/B::nea <<", "<< k+1 <<" and "<< 1+(abs(TheBoundaryElementAdjacencesLink[p->v])-1)/B::nea << endl;
-	      cout << " The Surface contains these edges is not a manifold" << endl;
-	      err++;
-	    }
-
-	    TheBoundaryElementAdjacencesLink[nk]= TheBoundaryElementAdjacencesLink[p->v];
-	    TheBoundaryElementAdjacencesLink[p->v]= sens*(nk+1);  
-	   
-	  }
-	if( err > 10 ) 
-	  exit(1); 
-	nk++;
-      }
-    
-  assert(err==0);
-  delete [ ] TheBoundaryElementAdjacencesLink; 
-  if(verbosity) cout << "number of adjacents edges " << nk << endl; 
-}
-
-
-template<typename T,typename B,typename V>
-void GenericMesh<T,B,V>::BuildBoundaryElementAdj(const int &nbsurf, int* firstDefSurface, int* labelDefSurface, int* senslabelDefSurface)
-{
-
-   // Return in TheBoundaryElementAdjacences
-  //  if exist a link :: sign(nk_link)*(nk_link+1)
-  //  else            :: sign(nk)*(nk)
-
-
-  for(int isurf=0; isurf < nbsurf; isurf++){
-   
-    //###################################### 
-    // Trop operations if ===> a changer 
-
-    int nbe_surf=0; // number in the surface
-
-    for(int k=0; k<nbe; k++){
-      B & K(borderelements[CheckBE(k)]);
-      int label = K.lab;
-      for(int iii=firstDefSurface[isurf]; iii< firstDefSurface[isurf+1];iii++) 
-	if( label == labelDefSurface[iii] ) nbe_surf++;  	  
-    }
-
-    int facek=0;
-    int *surf_be=new int[nbe_surf];
-    int *orientation_surf_be=new int[nbe_surf];
-    for(int k=0; k<nbe; k++){
-      B & K(borderelements[CheckBE(k)]);
-      int label = K.lab;
-      for(int iii=firstDefSurface[isurf]; iii< firstDefSurface[isurf+1];iii++) 
-	if( label == labelDefSurface[iii] ) {
-	  surf_be[facek]=k ; 
-	  orientation_surf_be[facek]=senslabelDefSurface[iii];
-	  facek++;
-	}
-    }
-    
-    //######################################
-   
-    // assert(TheBoundaryElementAdjacencesLink==0); plus tard
-    int *TheBoundaryElementAdjacencesLink = new int[B::nea*nbe_surf];
-    HashTable<SortArray<int,B::nva>,int> h(B::nea*nbe_surf,nv);
-    int nk=0;
-    int err=0;
-    int sens;
-
-    cout << "nea/nva" << B::nea << " "  << B::nva << endl;
-    for (int k=0;k<nbe_surf;++k)
-      for (int i=0;i<B::nea;++i)
-	{
-	  SortArray<int,B::nva> a(items( surf_be[k],i,&sens));
-	  sens=sens*orientation_surf_be[k];
-	  typename HashTable<SortArray<int,B::nva>,int>::iterator p= h.find(a);
-	  if(!p) 
-	    { 
-	      h.add(a,nk);
-	      TheBoundaryElementAdjacencesLink[nk]=sens*(nk+1);   
-	      // nk est un nombre locale depend de la surfaces choisie
-	      // element du bord est donn�e par ::  surf_be[nk/3];
-	      // arrete corespondante locale de l'element :: nk%3; 
-	    }
-	  else 
-	    {
-	      
-	      ASSERTION(p->v>=0);
-	      if( sens*TheBoundaryElementAdjacencesLink[p->v] > 0 ){
-		
-		B & K(borderelements[CheckBE(surf_be[k])]);
-		int firstVertex  =  operator()(K[B::nvadj[i][0]])+1;
-		int secondVertex =  operator()(K[B::nvadj[i][1]])+1;
-		cout << " The edges, defined by vertex is " << firstVertex << "-" << secondVertex <<  ", is oriented in the same direction in element " << surf_be[k]+1 << 
-		  " and in element "<<  1+surf_be[(p->v/B::nea)] << endl;
-	
-		err++;
-	      }
-	     
-	      if( abs(TheBoundaryElementAdjacencesLink[p->v]) != 1+p->v ){
-		
-		B & K(borderelements[CheckBE(k)]);
-		int firstVertex  =  operator()(K[B::nvadj[i][0]])+1;
-		int secondVertex =  operator()(K[B::nvadj[i][1]])+1;
-		cout << " The edges defined by vertex is " << firstVertex << "-" << secondVertex << "belong to the three border elements ::" 
-		     << 1+surf_be[(p->v)/B::nea] <<", "<< surf_be[k]+1 <<" and  "<< 1+surf_be[(abs(TheBoundaryElementAdjacencesLink[p->v])-1)/B::nea] << endl;
-		cout << " The "<< isurf+1 << " Surface contains these edges is not a manifold" << endl;
-		err++;
-		assert(err==0);
-	      }
-	      
-
-	      TheBoundaryElementAdjacencesLink[nk]   = TheBoundaryElementAdjacencesLink[p->v];;
-	      TheBoundaryElementAdjacencesLink[p->v] = sens*(nk+1);  
-	      
-	    }
-	  if( err > 10 ) 
-	    exit(1); 
-	  nk++;
-	}
-	
-    assert(err==0);
-    delete [] surf_be;
-    delete [] orientation_surf_be;
-    delete [ ] TheBoundaryElementAdjacencesLink; 
-    if(verbosity) cout << "number of adjacents edges " << nk << endl; 
-  } 
-}
-
-
-
-
-// template<typename T,typename B,typename V>
-// void GenericMesh<T,B,V>::BuildBoundaryElementAdj_V2(const int &nbsurf,int *firstDefSurface, int *labelDefSurface, int *senslabelDefSurface)
-// {
-// //   assert(firstDefSurface.N() == nbsurf+1);
-// //   assert(labelDefSurface.N() == firstDefSurface[nbsurf]);
-// //   assert(senslabelDefSurface.N() == firstDefSurface[nbsurf]);
-
-//   // determination des labels des surfaces
-//   map<int, int> maplabel; 
-//   int numero_label=0;
-//   for(int ii=0; ii< firstDefSurface[nbsurf]; ii++){
-//     map<int,int>::const_iterator imap=maplabel.find( abs(labelDefSurface[ii]) );
-//     //cout << "K.lab= " << K.lab << endl; 
-//     if(imap == maplabel.end()){
-//       maplabel[ abs(labelDefSurface[ii]) ] = numero_label;
-//       numero_label = numero_label+1;
-//     }
-//   }
-
-//   int *nbe_label=new int[numero_label];
-//   for(int ii=0; ii< numero_label; ii++) nbe_label[ii] = 0;
-//   for(int k=0; k<nbe; k++){
-//     B & K(borderelements[CheckBE(k)]);
-//     map<int,int>::const_iterator imap=maplabel.find( K.lab );
-    
-// //  if(imap == maplabel.end()){
-// //       printf("The label %d given for Definition of different surface is not in the border element mesh\n",K.lab); 
-// //       exit(1);
-// //     }
-// //     else{
-//     nbe_label[(*imap).second]++;
-//     //    }
-//   }
-
-//   int all_nbe_label=0;
-//   for(int k=0; k<numero_label; k++){
-//     all_nbe_label=all_nbe_label+nbe_label[k];
-//   }
-//   /*
-//     if(all_nbe_label != nbe){
-//     cerr << "some element in the border element are not references in the Surface description" << endl;
-//     exit(1);
-//     }
-//     assert(all_nbe_label == nbe);  // autrement cela veut dire que certain element du bord n'ont pas �t� mis dans le descriptif
-//   */
-//   int *organisation_be_label;
-//   organisation_be_label = new int[all_nbe_label];
-  
-//   int *count_nbe_label =new int[numero_label];
-//   int *debut_nbe_label =new int[numero_label+1];
-
-//   for(int ii=0; ii< numero_label; ii++)
-//     count_nbe_label[ii] =0; 
-
-//   debut_nbe_label[0]=0;
-//   for(int ii=1; ii< numero_label; ii++) 
-//     debut_nbe_label[ii] = debut_nbe_label[ii-1]+nbe_label[ii-1]; 
-//   debut_nbe_label[numero_label] = all_nbe_label;
-
-//   for(int k=0; k<nbe; k++){
-//     B & K(borderelements[CheckBE(k)]);
-//     map<int,int>::const_iterator imap=maplabel.find( K.lab );
-//     assert(imap != maplabel.end());
-//     organisation_be_label[ debut_nbe_label[(*imap).second] + count_nbe_label[(*imap).second] ] = k ;
-//     count_nbe_label[(*imap).second ]++;
-//   }
-
-//   for(int ii=0; ii< numero_label; ii++) 
-//     assert( count_nbe_label[ii] == nbe_label[ii] );
-  
-//   delete [] count_nbe_label;
-
-//   for(int isurf=0; isurf < nbsurf; isurf++){
-  
-//     int nbe_surf=0; // number in the surface
-//     for( int iii=firstDefSurface[isurf]; iii< firstDefSurface[isurf+1];iii++ ){
-//       map<int,int>::const_iterator imap=maplabel.find( abs(labelDefSurface[iii]) );
-//       nbe_surf=nbe_surf+nbe_label[ (*imap).second ];
-//     }
-  
-//     // assert(TheBoundaryElementAdjacencesLink==0); plus tard
-//     int *TheBoundaryElementAdjacencesLink = new int[B::nea*nbe_surf];
-//     HashTable<SortArray<int,B::nva>,int> h(B::nea*nbe_surf,nv);
-//     int nk=0;
-//     int err=0;
-//     int sens;
-   
-//     int count_sbe; 
-//     int *surf_be = new int[nbe_surf]; 
-    
-//     count_sbe=0; 
-//     for( int iii=firstDefSurface[isurf]; iii< firstDefSurface[isurf+1];iii++ ){
-//       map<int,int>::const_iterator imap=maplabel.find( abs(labelDefSurface[iii]) );
-      
-//       for( int jjj= debut_nbe_label[(*imap).second]; jjj < debut_nbe_label[(*imap).second+1]; jjj++ ){
-// 	int k=organisation_be_label[jjj];
-// 	surf_be[count_sbe] = k; 
-// 	count_sbe++;
-
-// 	for (int i=0;i<B::nea;++i)
-// 	  {
-// 	    SortArray<int,B::nva> a(items( k,i,&sens));
-// 	    sens=sens*senslabelDefSurface[iii];
-// 	    typename HashTable<SortArray<int,B::nva>,int>::iterator p= h.find(a);
-// 	    if(!p) 
-// 	      { 
-// 		h.add(a,nk);
-// 		TheBoundaryElementAdjacencesLink[nk] = sens*(nk+1);
-//  	      }
-// 	    else 
-// 	      {
-		
-// 		ASSERTION(p->v>=0);
-// 		if( sens*TheBoundaryElementAdjacencesLink[p->v] > 0){
-		  
-// 		  B & K(borderelements[CheckBE(k)]);
-// 		  int firstVertex  =  operator()(K[B::nvadj[i][0]])+1;
-// 		  int secondVertex =  operator()(K[B::nvadj[i][1]])+1;
-// 		  cout << " The edges, defined by vertex is " << firstVertex << "-" << secondVertex << ", is oriented in the same direction in element " << k+1 << 
-// 		    " and in element "<<  1+surf_be[(p->v/B::nea)] << endl;
-// 		  err++;
-// 		}
-		
-// 		if( abs(TheBoundaryElementAdjacencesLink[p->v]) != 1+p->v ){
-		
-// 		  B & K(borderelements[CheckBE(k)]);
-// 		  int firstVertex  =  operator()(K[B::nvadj[i][0]])+1;
-// 		  int secondVertex =  operator()(K[B::nvadj[i][1]])+1;
-// 		  cout << " The edges defined by vertex is " << firstVertex << "-" << secondVertex << "belong to the three border elements ::" 
-// 		       << 1+surf_be[(p->v)/B::nea] <<", "<< surf_be[k]+1 <<" and  "<< 1+surf_be[(abs(TheBoundaryElementAdjacencesLink[p->v])-1)/B::nea] << endl;
-// 		  cout << " The "<< isurf+1 << " Surface contains these edges is not a manifold" << endl;
-// 		  err++;
-// 		  assert(err==0);
-// 		}
-				
-// 		TheBoundaryElementAdjacencesLink[nk]=TheBoundaryElementAdjacencesLink[p->v];
-// 		TheBoundaryElementAdjacencesLink[p->v]=sens*(nk+1);  		
-// 	      }
-
-// 	    if( err > 10 ) 
-// 	      exit(1); 
-// 	    nk++;
-// 	  }
-//       }
-//     }
-    
-//     assert(err==0);
-//     delete [ ] TheBoundaryElementAdjacencesLink;
-//     delete [ ] surf_be;
-//     if(verbosity) cout << "number of adjacents edges " << nk << endl; 
-//   }
-
-//   delete [] organisation_be_label;
-//   delete [] debut_nbe_label;
-//   delete [] nbe_label;
-// }
-
-
-template<typename T,typename B,typename V>
-DataFENodeDF GenericMesh<T,B,V>::BuildDFNumbering(int ndfon[NbTypeItemElement],int nbequibe,int *equibe) const
-{
-/*
-   nbequibe nb of  borderelement with equi boundary condition
-  for i =0, 2*nbequibe, i+= 2)
-    
-     be0= equibe[i]/8 <=>  be1=equibe[i+1] /8
-     equibe[i]%8    given the permuation  p0 compare to sort array. 
-     equibe[i+1]%8 given the permuation   p1 compare to sort array.
-    the  numbering of perumation 
-     SetNumPerm<nkf>(p0,equibe[i+1]%8);
-     SetNumPerm<nkf>(p1,equibe[i+1]%8);
-    
-    so a level of point with always have:
-      be0[p0[j]] <==>  be1[p1[j]]
- 
- 
- */
-  const GenericMesh & Th(*this);
-  int nnodeK = T::NbNodes(ndfon);
-  int *p = 0, *pp=0; 
-    unsigned int tinfty=std::numeric_limits<unsigned int>::max()   ; 
-    
-  const int nkv= T::nv;
-  const int nkf= T::nf;
-  const int nke= T::ne;
-  const int nkt= T::nt;
-  const int nbev= B::nv;
-  const int nbef= B::nf;
-  const int nbee= B::ne;
-  const int nk[]={nkv,nke,nkf,nkt};
-  int MaxNbNodePerElement=0;
-  int MaxNbDFPerElement=0;
-  int nbNodes=0;
-  int NbOfDF=0;
-  int n=0;
-  int minndf=100000000;
-  int maxndf=0;
-  int nbnzero=0;
-  for (int dd=0;dd<NbTypeItemElement;++dd)
-    if(ndfon[dd])
-      {
-	
-        nbnzero++;
-	minndf=Min(minndf,ndfon[dd]);
-	maxndf=Max(maxndf,ndfon[dd]);
-	MaxNbDFPerElement   += ndfon[dd]*nk[dd];
-	MaxNbNodePerElement += nk[dd];
-      }
-  bool constndfpernode = minndf == maxndf;
-  bool nodearevertices = ( nbnzero ==1  && ndfon[0]) && nbequibe==0 ;
- 
-  assert(maxndf>0);
-  const int nkeys=4+6+4+1;
-  assert(nnodeK<= nkeys);
-  
-  if(nodearevertices)
-    {
-      nbNodes=nv;
-      NbOfDF=nbNodes*ndfon[0];
-    }
-  else
-    { 
-      p =  new int[nnodeK*nt];
-      typedef SortArray<unsigned int,2> Key;
-	
-      Key keys[nkeys*2];
-      int keysdim[nkeys*2];
-      
-      int of = Th.nv+10;// Modif FH 28/05/2013 
-      int ndim[NbTypeItemElement]={0,0,0,0};
-      NbOfDF=0;
-      {
-	HashTable<Key,int> h(nnodeK*nt,of+nt);
-	int  nbmaxeq = 1+nnodeK*nbequibe;
-	int  nbhasheq = nbequibe ? of+nt : 1;
-	HashTable<Key,Key> equi(nbmaxeq,nbhasheq); 
-	  //  constuction of item translation for 
-	  if(verbosity>2)
-	  cout << " nb equi be :  " << nbequibe << endl;
-	  for(int ieq=0,keq=0;keq<nbequibe;++keq)
-	    {
-		int p1[nbev],p2[nbev];
-		int v1[nbev],v2[nbev];
-		int be1=equibe[ieq]/8,pe1=equibe[ieq++]%8;
-		int be2=equibe[ieq]/8,pe2=equibe[ieq++]%8;
-		int itemb1,k1=BoundaryElement(be1,itemb1);
-		int itemb2,k2=BoundaryElement(be2,itemb2);
-		const B& b1(Th.be(be1));
-	        const B& b2(Th.be(be2));
-		SetNumPerm<nbev>(pe1,p1);
-		SetNumPerm<nbev>(pe2,p2);
-		int m=0;
-		for(int i=0;i<nbev;++i)
-		  {
-		      v1[i]=Th(b1[p1[i]]);
-		      v2[i]=Th(b2[p2[i]]);
-		  }
-		
-		int dimb= B::RdHat::d;
-		if(ndfon[dimb])
-		  { //  simple border element
-		  }
-                if( ndfon[0] )
-		    for(int i=0;i<nbev;++i)
-		  {
-		    keysdim[m]=0,keys[m++]=Key(v1[i],tinfty);
-		    keysdim[m]=0,keys[m++]=Key(v2[i],tinfty);
-		      if(verbosity >100) cout << be1<< " " << be2 << "  " <<  v1[i] << " <--> " << v2[i] 
-			                 << " /  " << Th(v1[i]) << " <=> " << Th(v2[i]) << endl;
-		  }
-		if( ndfon[1] )
-		  for(int i=0;i<nbee;++i)
-		  {
-		      keysdim[m]=1,keys[m++]=Key(v1[B::nvedge[i][0]],v1[B::nvedge[i][1]]);
-		      keysdim[m]=1,keys[m++]=Key(v2[B::nvedge[i][0]],v2[B::nvedge[i][1]]);
-		  }
-		if( ndfon[2] && dimb ==2)
-		  {
-		      assert(nbef==1 && nkf != 1);
-		      int ii;
-		      keysdim[m]=2,keys[m++]=Key(k1+of,ElementAdj(k1,ii=itemb1) +of);
-		      keysdim[m]=2,keys[m++]=Key(k2+of,ElementAdj(k2,ii=itemb2) +of);		     
-		  }
-		        
-		for(int j=0;j<m;)
-		  {
-		      int i0=j++,i1=j++; 
-		      if(keys[i1]<keys[i0]) swap( keys[i0],keys[i1]);
-<<<<<<< HEAD
-		      //typename HashTable<Key,Key>::iterator pe =
-                      if(keys[i0]< keys[i1] ) // not equal ... Add nov. 2014 
-		        equi.add(keys[i0],keys[i1]);
-=======
-		      //typename HashTable<Key,Key>::iterator pe = 
-		     equi.add(keys[i0],keys[i1]);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-		     // if(pe) assert(pe->k == keys[i0]);
-		  }
-		
-	    }
-	  
-	  //  to find the final equivalent  key ... 
-	  //  in change of chaibe of equi key
-	  for (int it=0,change=1;change;it++)
-	    { 
-	    change=0;
-<<<<<<< HEAD
-	    ffassert(it++<100);
-	    for (typename HashTable<Key,Key>::iterator qe,pe=equi.begin() ; pe != equi.end(); ++pe)
-	      { 
-                  if( verbosity>9999) cout << pe->k << " " << pe->v << endl;
-		  ffassert( pe->k < pe->v);
-		  qe=equi.find(pe->v);
-		  if(qe) 
-                  {
-                      if( verbosity>9999) cout << pe->k << " " << pe->v << " <=> " << qe->k <<endl;
-
-                     change++;
-		     ffassert( qe->k < qe->v);
-=======
-	    assert(it<10);
-	    for (typename HashTable<Key,Key>::iterator qe,pe=equi.begin() ; pe != equi.end(); ++pe)
-	      { 
-		  
-		  assert( pe->k < pe->v); 
-		  qe=equi.find(pe->v);
-		  if(qe) 
-		    { change++;
-		     assert( qe->k < qe->v);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-		      pe->v = qe->v;
-		  }
-	    
-		  
-	      }
-	     if(verbosity>5)
-	      cout << "     -- BuildDF: iteration in final equivalent " << it << " nb change " << change << endl;
-	    }
-	    
-	
-	  //  construction of nodes numbering 
-	  
-	  // ------------
-	  
-	for(int k=0;k<nt;++k)
-	  {
-	    const T & K(Th[k]);
-	    int m=0;
-	    if( ndfon[0] )//  node on vertex
-	      for(int i=0;i<nkv;++i)
-		keysdim[m]=0,keys[m++]=Key(Th(K[i]),tinfty);
-	    if(  ndfon[1] )//  node on Edge
-	      for(int i=0;i<nke;++i)
-		keysdim[m]=1,keys[m++]=Key(Th(K[T::nvedge[i][0]]),Th(K[T::nvedge[i][1]]));
-	    if(  ndfon[2])//  node on Face
-	      {
-	      if (nkf==1) 
-		keysdim[m]=2,keys[m++]=Key(k+of,tinfty);
-	      else
-		for(int ii,i=0;i<nkf;++i)
-		  keysdim[m]=2,keys[m++]=Key(k+of,ElementAdj(k,ii=i) +of);
-	      }
-	    if(  ndfon[3] )//  node on Tet
-	      if(nkt==1)
-		keysdim[m]=3,keys[m++]=Key(k+of,tinfty);
-	    
-	    if(k<0)
-	    {
-	      for(int i=0;i<nke;++i)
-		cout << " e= " << T::nvedge[i][0] << " " << T::nvedge[i][1] << endl;
-	      cout << ndfon[0] << " " << ndfon[1] << " " << ndfon[2] << " " << ndfon[3] << ": "
-		   <<  " m = "<< m << "  " <<nnodeK
-		   << " " << T::nv
-		   << " " << T::ne 
-		   << " " << T::nf 
-		   << " " << T::nt  
-		   << endl;
-	    }
-	    assert(m==nnodeK);
-	    for(int i=0;i<m;i++)
-	      {
-		Key ki=keys[i],kio=ki; 
-		typename HashTable<Key,Key>::iterator pe= equi.find(ki);
-		  if(pe) {   ki= pe->v;  }
-		typename HashTable<Key,int>::iterator pk= h.find(ki);
-		if(!pk)
-		 {
-		  pk = h.add(ki,nbNodes++);
-		  NbOfDF += ndfon[keysdim[i]];
-		 }
-		if(verbosity>100 && pe ) cout << kio << " -> " << pe->k  << " :: " <<  pk->v << endl;   
-		p[n++] = pk->v;
-		ndim[keysdim[i]]++;
-			  
-	      }
-	  }
-      }
-       if(verbosity)
-	 {   cout << "  -- Build Nodes/DF on mesh :   n.v. " << nv <<  ", n. elmt. " << nt << ", n b. elmt. " <<nbe << endl;
-	     cout << "     nb of Nodes " << nbNodes << "    nb of DoF   " << NbOfDF <<"  DFon="
-	          << ndfon[0]<<ndfon[1]<<ndfon[2]<<ndfon[3]<<endl ;	     
-	 }
-      if( ! constndfpernode) 
-	{ 
-	  pp=new int[nbNodes+1];
-	  int kk=0,nn=0;
-	  for(int k=0;k<nt;++k)
-	    for(int i=0;i<nnodeK;i++)
-		pp[p[nn++]]=ndfon[keysdim[i]];;
-	  for(int n=0;n<nbNodes;++n)	
-	    {  
-	      int ndfn=pp[n];
-	      pp[n]=kk;
-	      kk+=ndfn;
-	    }
-	  pp[nbNodes]=NbOfDF;//  add last 
-	  assert(kk==NbOfDF);
-	}
-    }
-  return DataFENodeDF(ndfon,nt,nbNodes,NbOfDF,p,pp,MaxNbNodePerElement,MaxNbDFPerElement);
-}
-template<typename T,typename B,typename V>
-void GenericMesh<T,B,V>::BuildBound()
-{
-    mes=0.;
-    mesb=0.;
-    
-    for (int i=0;i<nt;i++)  
-	mes += this->elements[i].mesure();
-    
-    for (int i=0;i<nbe;i++)  
-	mesb += this->be(i).mesure();  
-    
-    if(vertices && (nv>0))
-    {
-	Pmin=vertices[0];
-	Pmax=vertices[0];
-	 for(int i=1;i<nv;++i)
-	 {
-	     Pmin=Minc(Pmin,vertices[i]);
-	     Pmax=Maxc(Pmax,vertices[i]);
-
-	 }
-    }
-  if(verbosity>3)
-      cout << "  -- GMesh" << V::d << " , n V: " << nv << " , n Elm: " << nt << " , n B Elm: " << nbe 
-	 << " , bb: (" << Pmin << ") , (" << Pmax << ")\n"; 
-}
-
-template<typename T,typename B,typename V>
-void GenericMesh<T,B,V>::Buildbnormalv()
-{
-    const int nkv= T::nv;
-   // const int nkf= T::nf;
-   // const int nke= T::ne;
-   // const int nkt= T::nt;
-    
-    if (bnormalv) 
-      {return;}
-    int nb=0;
-    for (int k=0;k<nt;k++)
-	for (int i=0;i<nkv;i++)
-	{  
-	    int ii(i),kk;
-	    kk=ElementAdj(k,ii);
-	    if (kk<0 || kk==k) nb++;
-	}
-    if(verbosity>2)
-	cout << " number of real boundary  " << nb << endl;
-    bnormalv= new Rd[nb];
-    Rd *n=bnormalv;
-    for (int k=0;k<nt;k++)
-	for (int i=0;i<nea;i++)
-	{  
-	    int ii,kk=ElementAdj(k,ii=i);
-	    if (kk<0 || kk==k) {
-		Element & K(elements[k]);
-		Rd N;//=K.n(i);
-		for(int j=0;j<nva;++j)
-		{
-		    K[Element::nvadj[i][j]].SetNormal(n,N);
-		}
-		    
-	    }
-	}
-    // cout << nb << " == " << n-bnormalv << endl;
-    assert(n - bnormalv <= nb );
-}
-
-static const char * GenericMesh_magicmesh="GenericMesh v0";
-template<typename T,typename B,typename V>
-Serialize GenericMesh<T,B,V>::serialize() const
-{
-    const int nve = T::nv;
-    const int nvbe = B::nv;
-    const int d = Rd::d;
-    long long  l=0;
-    l += sizeof(long long);
-    l += 6*sizeof(int);
-    l += nt*(sizeof(int)*(nve + 1));
-    l += nv*( sizeof(int) + sizeof(double)*d);
-    l += nbe*(sizeof(int)*(nvbe+1));
-    if(verbosity>1)
-       cout << "Serialize gmesh " << l << " " << nve << " " << nvbe << endl;
-    Serialize  serialized(l,GenericMesh_magicmesh);
-    // cout << l << magicmesh << endl;
-    size_t pp=0;
-    serialized.put(pp, l); 
-    serialized.put( pp,d);
-    serialized.put( pp,nve);
-    serialized.put( pp,nvbe);
-    serialized.put( pp,nt);
-    serialized.put( pp,nv);
-    serialized.put( pp,nbe);
-    if (verbosity>2) 
-	cout << " GenericMesh Serialized : " << l << " "  << nt << " " << nv << " " << nbe << endl;
-    for (int i=0;i<nv;i++)
-      {
-	  for(int j=0;j<d;++j)
-	  serialized.put(pp,vertices[i][j]);
-	  serialized.put(pp,vertices[i].lab);
-      }
-    for (int i=0;i<nt;i++)
-      {
-	  
-	  const Element & K(elements[i]);
-	  for(int j=0;j<nve;++j)
-	      serialized.put(pp,(int) operator()(K[j]));
-	  serialized.put(pp, K.lab);
-      }
-    for (int i=0;i<nbe;i++)
-      {
-	  const BorderElement & K(borderelements[i]);
-	  for(int j=0;j<nvbe;++j)
-	      serialized.put(pp,(int) operator()(K[j]));
-	  serialized.put(pp, K.lab);
-      }
-    assert(pp==serialized.size());
-    return serialized;  
-}
-    
-/*    GenericMesh()
-    : nt(0),nv(0),nbe(0),  mes(0.),mesb(0.) ,
-    vertices(0),elements(0),borderelements(0),bnormalv(0),
-    TheAdjacencesLink(0),BoundaryElementHeadLink(0),
-    ElementConteningVertex(0), gtree(0)
-    {} 
- */  
-    template<typename T,typename B,typename V>
-    GenericMesh<T,B,V>::GenericMesh(const  Serialize &serialized) 
-    : nt(0),nv(0),nbe(0),  mes(0.),mesb(0.) ,
-    vertices(0),elements(0),borderelements(0),bnormalv(0),
-    TheAdjacencesLink(0),BoundaryElementHeadLink(0),
-    ElementConteningVertex(0), gtree(0)
-    {
-	const int nve = T::nv;
-	const int nvbe = B::nv;
-	const int d = Rd::d;
-	int dd,nnve,nnvbe,nnt,nnv,nnbe;
-	long long  l=0;
-	size_t pp=0;	
-	serialized.get(pp, l); 
-	serialized.get( pp,dd);
-	serialized.get( pp,nnve);
-	serialized.get( pp,nnvbe);
-	serialized.get( pp,nnt);
-	serialized.get( pp,nnv);
-	serialized.get( pp,nnbe);
-	ffassert(d==dd && nve == nnve && nvbe == nnvbe);
-	set(nnv,nnt,nnbe);
-	for (int i=0;i<nv;i++)
-	  {
-	      //double r[d];
-	      for(int j=0;j<d;++j)
-		  serialized.get(pp,vertices[i][j]);
-	      serialized.get(pp,vertices[i].lab);
-	  }
-	mes=0.;
-	for (int i=0;i<nt;i++)
-	  {
-	      int ii[nve],lab;
-	      for(int j=0;j<nve;++j)
-		  serialized.get(pp,ii[j]);
-	      serialized.get(pp,lab);
-	     mes += elements[i].set(vertices,ii,lab).mesure();
-	      
-	  }
-	mesb=0;
-	for (int i=0;i<nbe;i++)
-	  {
-	      int ii[nvbe],lab;
-	      for(int j=0;j<nvbe;++j)
-		  serialized.get(pp,ii[j]);
-	      serialized.get(pp, lab);
-	      mesb += borderelements[i].set(vertices,ii,lab).mesure();
-	  }
-       assert(pp==serialized.size());	
-    }
-    
-}
-#endif
diff --git a/src/femlib/Makefile.in b/src/femlib/Makefile.in
deleted file mode 100644
index d4fa357..0000000
--- a/src/femlib/Makefile.in
+++ /dev/null
@@ -1,616 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-
-# This is not compiled as a separate library because its
-# interconnections with other libraries have not been solved.
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/femlib
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = BamgFreeFem.cpp BamgFreeFem.hpp CGNL.hpp CheckPtr.cpp	\
-ConjuguedGradrientNL.cpp DOperator.hpp Drawing.cpp Element_P2h.cpp	\
-Element_RT.cpp fem3.hpp fem.cpp fem.hpp FESpace.cpp	\
-FESpace.hpp FESpace-v0.cpp FQuadTree.cpp FQuadTree.hpp gibbs.cpp	\
-glutdraw.cpp gmres.hpp MatriceCreuse.hpp MatriceCreuse_tpl.hpp		\
-MeshPoint.hpp mortar.cpp mshptg.cpp QuadratureFormular.cpp		\
-QuadratureFormular.hpp RefCounter.hpp RNM.hpp RNM_opc.hpp RNM_op.hpp	\
-RNM_tpl.hpp R1.hpp R2.hpp R3.hpp \
-FESpacen.cpp \
-FESpacen.hpp \
-P012_1d.cpp \
-P012_2d.cpp \
-P012_3d.cpp \
-PkLagrange.hpp \
-Mesh1dn.cpp \
-Mesh1dn.hpp \
-Mesh2dn.cpp \
-Mesh2dn.hpp \
-Mesh3dn.cpp \
-Mesh3dn.hpp \
-HashTable.hpp \
-Label.hpp \
-assertion.hpp \
-GenericMesh.hpp \
-GQuadTree.hpp \
-GQuadTree.cpp \
-HeapSort.hpp \
-libmesh5.c \
-libmesh5.h  \
-ufunction.hpp  \
-splitsimplex.cpp InvIntFunc.cpp splitsimplex.hpp
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/femlib/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/femlib/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
-	ctags-am distclean distclean-generic distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/femlib/MatriceCreuse.hpp.orig b/src/femlib/MatriceCreuse.hpp.orig
deleted file mode 100644
index 9969e42..0000000
--- a/src/femlib/MatriceCreuse.hpp.orig
+++ /dev/null
@@ -1,1061 +0,0 @@
-#ifndef MatriceCreuse_h_
-#define MatriceCreuse_h_
-
-template<class T>
- T Square(const T & r){return r*r;}
-
- 
-#ifdef HAVE_LIBUMFPACK_XXXXXXXXXXXXX
-extern "C" {
-#ifdef HAVE_UMFPACK_H
-#include <umfpack.h>
-#else
-#ifdef HAVE_UMFPACK_UMFPACK_H
-#include <umfpack/umfpack.h>
-#else
-#ifdef HAVE_BIG_UMFPACK_UMFPACK_H
-#include <UMFPACK/umfpack.h>
-#else
-#ifdef HAVE_UFSPARSE_UMFPACK_H
-#include <ufsparse/umfpack.h>
-#else
-#ifdef HAVE_SUITESPARSE_UMFPACK_H
-#include <suitesparse/umfpack.h>
-#else
-
-  // Defaults to a local version of the UMFPACK headers
-#include "../../download/include/umfpack.h"
-
-#endif // HAVE_SUITESPARSE_UMFPACK_H
-#endif // HAVE_UFSPARSE_UMFPACK_H
-#endif // HAVE_BIG_UMFPACK_UMFPACK_H
-#endif // HAVE_UMFPACK_UMFPACK_H
-#endif // HAVE_UMFPACK_H
-}
-#endif
-
-#include "RNM.hpp"
-#include "fem.hpp"
-#include "FESpace.hpp" 
-#include "DOperator.hpp"
-#include "QuadratureFormular.hpp" 
-
-using  Fem2D::Mesh;
-using  Fem2D::FESpace;
-using Fem2D::FElement;
-using Fem2D::baseFElement;
-using Fem2D::FMortar;
-using Fem2D::TypeOfMortar;
-using Fem2D::QuadratureFormular;
-using Fem2D::QuadratureFormular1d;
-using Fem2D::QuadratureFormular_T_5;
-using Fem2D::QF_GaussLegendre3;
-const double  EPSILON=1e-20;
-using Fem2D::onWhatIsEdge;
-
-//#define APROGRAMMER(a) {cerr << "A PROGRAMMER "  #a << endl; exit (1) ;}
-#define ERREUR(a,b) {cerr << "ERREUR " #a<< b <<endl; throw(ErrorExec("FATAL ERREUR dans " __FILE__  "\n" #a  " line: ",__LINE__)) ;}
-
-template <class R> class MatriceCreuse; 
-template <class R> class MatriceElementaire; 
-template <class R,class FESpace> class MatriceElementaireSymetrique;
-template <class R,class FESpace> class MatriceElementairePleine;
-template <class R> class MatriceMorse;
-template <class R> class MatriceProdTensoriel;
-
-//template <class R> R Square(R x){ return x*x;}
-
-template <class T> T* docpyornot(bool nocpy,T* p,int n)
-{ 
-  T * r=p;
-   if( !nocpy) { // do copy 
-      r= new T[n]; ffassert(r);
-      if(p) 
-       for(int i=0;i<n;i++) 
-        r[i]=p[i];
-      }
-    else if( r==0) // always do allocation  July 2009 for mpi matrice  
-      { r= new T[n]; ffassert(r);}
-   return r;
- }
- template <class T,class TT> T* docpy(TT* p,int n)
-{ 
-   T * r=0;
-   if(p && n) { // do copy 
-      r= new T[n]; ffassert(r);
-      for(int i=0;i<n;i++) 
-        r[i]=T(p[i]); // pour cadna ???? FH 
-      }
-   return r;
- }
-
-
-
-template <class R> 
-class MatriceElementaire {
-
-public:
-  enum TypeOfMatriceElementaire {Full=1,Symmetric=2};
-
-
-       
-  int lga;  // size of array a    
-  R* a;          // array  coef --
-  int *ni,*nj;   //  list of df   
-  // to build matrice on face or edge -----
-
-  
-  int n,m;       // n,m number of df
-  const TypeOfMatriceElementaire mtype;
-  KN<double> data; // to store value of basic function 
-
-  const bool onFace ; //  true if do int on face or edge with jump (VF or GD : Galerkin Discontinus)
-  // in with case  add ... 
-<<<<<<< HEAD
-  const int lnki,lnkj; // size of the 4 next array
-=======
-  const int lnk; // size of the 4 next array
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  int *nik,*nikk;  //  number of df in element   k,kk for VF and GD methode 
-  int *njk,*njkk;  //  number of df in element   k,kk  for VF and GD methode
-
-
-  MatriceElementaire(int datasize,int llga
-                     ,int *nnj,int * nni,TypeOfMatriceElementaire t=Full)
-    
-    :   lga(llga),a(new R[lga]),
-        ni(nni),nj(nnj),n(0),m(0),mtype(t),data(datasize),
-<<<<<<< HEAD
-        onFace(false),lnki(0),lnkj(0),nik(0),nikk(0),njk(0),njkk(0)
-=======
-        onFace(false),lnk(0),nik(0),nikk(0),njk(0),njkk(0) 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-        {}
-       
-
- //  for discontinous Galerkine method
-  MatriceElementaire(int datasize,int llga,int *nni,
-                     int lk,
-                     TypeOfMatriceElementaire t=Symmetric
-                     ) 
-    :
-    lga(llga),a(new R[lga]),
-    ni(nni),nj(nni),n(0),m(0),mtype(t),data(datasize*(lk?2:1)) ,
-       onFace(lk!=0),
-<<<<<<< HEAD
-       lnki(lk),lnkj(lk),
-=======
-       lnk(lk),
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-       nik(lk? new int[lk*2]:0),
-       nikk(nik+lk),
-       njk(nik),
-       njkk(nik+lk)
-       { ffassert(lk>=0);}
-<<<<<<< HEAD
-
-    //  for discontinous Galerkine method
-    MatriceElementaire(int datasize,int llga,int *nni,int lki,int *nnj,int lkj,
-                       TypeOfMatriceElementaire t=Full
-                       )
-    :
-    lga(llga),a(new R[lga]),
-    ni(nni),nj(nnj),n(0),m(0),mtype(t),data(datasize*(lki+lkj?2:1)) ,
-    onFace(lki+lkj),
-    lnki(lki),lnkj(lkj),
-    nik(lki? new int[lki*2]:0),
-    nikk(nik+lki),
-    njk(lkj? new int[lkj*2]:0),
-    njkk(njk+lkj)
-    {  ffassert(lki>=0);}// non teste ??? .... F. hecht ...
-
-=======
- 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  virtual ~MatriceElementaire() {
-    if(ni != nj) 
-      delete [] nj;
-         
-    delete [] ni;
-    delete [] a;
-    if ( nik) delete[] nik;
-     }
-      
-  virtual R & operator() (int i,int j) =0;
-    virtual void call(int ,int ie,int label,void * data,void *Q=0) =0;  //
-  const LinearComb<pair<MGauche,MDroit>,C_F0> * bilinearform;
-  
-  MatriceElementaire & operator()(int k,int ie,int label,void * s=0,void *B=0) {
-    call(k,ie,label,s,B);
-    return *this;}
-};
-
-template <class FES> 
-class MatDataFES { 
-public:
-  typedef FES FESpace;
-  typedef typename FESpace::FElement FElement;
-
-  typedef typename  FESpace::QFElement QFElement; 
-  typedef typename  FESpace::QFBorderElement QFBorderElement; 
-  CountPointer<const FESpace> cUh,cVh;
-  const FESpace &Uh;
-  const FESpace &Vh;
-  const QFElement & FIT;
-  const QFBorderElement & FIE;
-  MatDataFES(const FESpace & UUh,const QFElement & fit, const QFBorderElement & fie)
-    :Uh(UUh),Vh(UUh),FIT(fit),FIE(fie) {}
-  MatDataFES(const FESpace & UUh,const FESpace & VVh,const QFElement & fit, const QFBorderElement & fie)
-    :Uh(UUh),Vh(VVh),FIT(fit),FIE(fie) {}
-    
-
-};
-
-template <class R,class FES> 
-class MatriceElementaireFES :   public MatDataFES<FES> ,   public MatriceElementaire<R> 
-{  
-public:
-  typedef MatriceElementaire<R> MElm ;
-  using MElm::Full;
-  using MElm::Symmetric;
-
-  typedef typename MElm::TypeOfMatriceElementaire TypeOfMatriceElementaire;
-  typedef FES FESpace;
-
-  typedef typename  FESpace::FElement FElement; 
-  typedef typename  FESpace::QFElement QFElement; 
-  typedef typename  FESpace::QFBorderElement QFBorderElement; 
-
-  MatriceElementaireFES(const FESpace & UUh,const FESpace & VVh,int llga
-			,int *nnj,int * nni,TypeOfMatriceElementaire t=Full,
-			const QFElement & fit=*QFElement::Default,
-			const QFBorderElement & fie =*QFBorderElement::Default) 
-                     
-    :
-    MatDataFES<FES>(UUh,VVh,fit,fie),
-    MatriceElementaire<R>(UUh.esize()+VVh.esize(),llga,nnj,nni,t)
-  {}
-       
-  MatriceElementaireFES(const FESpace & UUh,int llga,int *nni,
-			TypeOfMatriceElementaire t=Symmetric,
-			const QFElement & fit=*QFElement::Default,
-			const QFBorderElement & fie =*QFBorderElement::Default)
-    :
-    MatDataFES<FES>(UUh,UUh,fit,fie),
-    MatriceElementaire<R>(UUh.esize(),llga,nni,nni,t)
-  {}
-
-  //  for discontinous Galerkine method
-  MatriceElementaireFES(const FESpace & UUh,int llga,int *nni,
-			int lk,
-			TypeOfMatriceElementaire t=Symmetric,
-			const QFElement & fit=*QFElement::Default,
-			const QFBorderElement & fie =*QFBorderElement::Default) 
-    :
-    MatDataFES<FES>(UUh,UUh,fit,fie),
-    MatriceElementaire<R>(UUh.esize(),llga,nni,lk,t)
-  {}
-<<<<<<< HEAD
-    
-    MatriceElementaireFES(const FESpace & UUh,const FESpace & VVh,int llga
-                          ,int *nnj,int lkj,int * nni,int lki,TypeOfMatriceElementaire t=Full,
-                          const QFElement & fit=*QFElement::Default,
-                          const QFBorderElement & fie =*QFBorderElement::Default)
-    
-    :
-    MatDataFES<FES>(UUh,VVh,fit,fie),
-    MatriceElementaire<R>(UUh.esize()+VVh.esize(),llga,nnj,lkj,nni,lki,t)
-    {}
-    
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  ~MatriceElementaireFES() {}
-  const LinearComb<pair<MGauche,MDroit>,C_F0> * bilinearform;
-  
-  MatriceElementaireFES & operator()(int k,int ie,int label,void * s=0,void *Q=0) {
-    this->call(k,ie,label,s,Q);
-    return *this;}
-};
-
-template <class R,class FES=FESpace> 
-class MatriceElementairePleine:public MatriceElementaireFES<R,FES> {
-
-  /* --- stockage --
-     //  n = 4 m = 5
-     //  0  1  2  3  4
-     //  5  6  7  8  9
-     // 10 11 12 13 14
-     // 15 16 17 18 19
-     ------------------*/
-public:
-  typedef FES FESpace;
-  typedef typename  FESpace::Mesh Mesh;
-  typedef typename  FESpace::QFElement QFElement;
-  typedef typename  FESpace::QFBorderElement QFBorderElement;
-  typedef typename  FESpace::FElement FElement;
-  typedef typename  FESpace::Mesh::Rd Rd;
-    
-
-  R & operator() (int i,int j) {return this->a[i*this->m+j];}
-  // MatPleineElementFunc element;
-  void  (* element)(MatriceElementairePleine &,const FElement &,const FElement &, double*,int ie,int label,void *,Rd *) ;
-  void  (* faceelement)(MatriceElementairePleine &,const FElement &,const FElement &,const FElement &,const FElement &, double*,int ie,int iee, int label,void *,Rd *) ;
-    void call(int k,int ie,int label,void *,void *B);
-  
-  MatriceElementairePleine & operator()(int k,int ie,int label,void * stack=0,Rd *Q=0)
-  {call(k,ie,label,stack,Q);return *this;}
-  MatriceElementairePleine(const FESpace & VVh,
-                           const QFElement & fit=*QFElement::Default,
-                           const QFBorderElement & fie =*QFBorderElement::Default)  
-    :MatriceElementaireFES<R,FES>(VVh,
-			Square(VVh.MaximalNbOfDF()),
-			new int[VVh.MaximalNbOfDF()],this->Full,fit,fie),
-    element(0),faceelement(0) {}
- 
-   //  matrice for VF or Galerkin Discontinus
-   MatriceElementairePleine(const FESpace & VVh,bool VF,
-                           const QFElement & fit=*QFElement::Default,
-                           const QFBorderElement & fie =*QFBorderElement::Default)  
-     :MatriceElementaireFES<R,FES>(VVh,
-			Square(VVh.MaximalNbOfDF()*2),
-			new int[VVh.MaximalNbOfDF()*2],
-			VF?VVh.MaximalNbOfDF()*2:0,
-			this->Full,fit,fie),			
-    element(0),faceelement(0) {}
-
-  MatriceElementairePleine(const FESpace & UUh,const FESpace & VVh,
-                               const QFElement & fit=*QFElement::Default,
-                               const QFBorderElement & fie =*QFBorderElement::Default) 
-    :MatriceElementaireFES<R,FES>(UUh,VVh,
-				  UUh.MaximalNbOfDF()*VVh.MaximalNbOfDF(),
-				  new int[UUh.MaximalNbOfDF()],
-				  new int[VVh.MaximalNbOfDF()],this->Full,fit,fie),
-     element(0),faceelement(0) {}
-
-<<<<<<< HEAD
-    MatriceElementairePleine(const FESpace & UUh,const FESpace & VVh,bool VF,
-                             const QFElement & fit=*QFElement::Default,
-                             const QFBorderElement & fie =*QFBorderElement::Default)
-    :MatriceElementaireFES<R,FES>(UUh,VVh,
-                                  UUh.MaximalNbOfDF()*VVh.MaximalNbOfDF()*4,
-                                  new int[UUh.MaximalNbOfDF()*2],VF?UUh.MaximalNbOfDF()*2:0,
-                                  new int[VVh.MaximalNbOfDF()*2],VF?VVh.MaximalNbOfDF()*2:0,this->Full,fit,fie),
-    element(0),faceelement(0) {}
-
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-}; 
-
-template <class R,class FES=FESpace> 
-class MatriceElementaireSymetrique:public MatriceElementaireFES<R,FES> {
-
-
-
-  // --- stockage --
-  //   0
-  //   1 2
-  //   3 4 5
-  //   6 7 8 9
-  //  10 . . . .
-  //
-
-public:
-  typedef FES FESpace;
-  typedef typename  FESpace::Mesh Mesh;
-  typedef typename  FESpace::QFElement QFElement;
-  typedef typename  FESpace::QFBorderElement QFBorderElement;
-  typedef typename  FESpace::FElement FElement; 
-  typedef typename  FESpace::Mesh::Rd Rd;
-  R & operator()(int i,int j) 
-  {return j < i ? this->a[(i*(i+1))/2 + j] : this->a[(j*(j+1))/2 + i] ;}
-  void (* element)(MatriceElementaireSymetrique &,const FElement &, double*,int ie,int label,void *,Rd *) ;
-  void (* mortar)(MatriceElementaireSymetrique &,const FMortar &,void *) ;
-  void call(int k,int ie,int label,void * stack,void *B);
-  MatriceElementaireSymetrique(const FESpace & VVh,
-                               const QFElement & fit=*QFElement::Default,
-                               const QFBorderElement & fie =*QFBorderElement::Default) 
-    :MatriceElementaireFES<R,FES>(
-           VVh,
-	   int(VVh.MaximalNbOfDF()*(VVh.MaximalNbOfDF()+1)/2),
-	   new int[VVh.MaximalNbOfDF()],this->Symmetric,
-       fit,fie),
-       element(0),mortar(0) {}
-  MatriceElementaireSymetrique & operator()(int k,int ie,int label,void * stack=0,Rd *B=0)
-  {this->call(k,ie,label,stack,B);return *this;};
-};
-
-
-template <class R>  class MatriceProfile;
-
-//  classe modele pour matrice creuse
-//  ---------------------------------
-template <class R> 
-class MatriceCreuse : public RefCounter,public VirtualMatrice<R> {
-public:
-  MatriceCreuse(int NbOfDF,int mm,int ddummy)
-         : VirtualMatrice<R>(NbOfDF,mm),n(NbOfDF),m(mm),dummy(ddummy){}
-  MatriceCreuse(int NbOfDF)
-         : VirtualMatrice<R>(NbOfDF),n(NbOfDF),m(NbOfDF),dummy(1){}
-  int n,m,dummy;
-  virtual int size() const =0;
-
-  virtual MatriceCreuse & operator +=(MatriceElementaire<R> & )=0;
-  virtual void operator=(const R & v) =0; // Mise a zero 
-  KN_<R> & MatMul(KN_<R> &ax,const KN_<R> &x) const { 
-    ax= R();
-    addMatMul(x,ax);
-    return ax;}
-  virtual ostream& dump (ostream&)  const =0;
-  virtual void Solve(KN_<R> & x,const KN_<R> & b) const =0;
-  virtual ~MatriceCreuse(){}
-  virtual R & diag(int i)=0;
-  virtual void SetBC(int i,double tgv)=0; 
-  virtual R & operator()(int i,int j)=0;
-  virtual R * pij(int i,int j) const =0; // Add FH 
-  virtual  void  resize(int n,int m)  {AFAIRE("MatriceCreuse::resize");}  // a faire dans les classe derive ... // add march 2009  FH 
-  virtual MatriceMorse<R> *toMatriceMorse(bool transpose=false,bool copy=false) const {return 0;} // not 
-  virtual bool addMatTo(R coef,std::map< pair<int,int>, R> &mij,bool trans=false,int ii00=0,int jj00=0,bool cnj=false,double threshold=0.)=0;
-  // Add FH april 2005
-  virtual R pscal(const KN_<R> & x,const KN_<R> & y) =0 ; // produit scalaire  
-  virtual double psor(KN_<R> & x,const  KN_<R> & gmin,const  KN_<R> & gmax , double omega) =0;
-  virtual void setdiag(const KN_<R> & x)=0 ;
-  virtual void getdiag( KN_<R> & x) const =0 ;
-  // end add
-  virtual int NbCoef() const {return 0;};
-  virtual void setcoef(const KN_<R> & x)=0 ;
-  virtual void getcoef( KN_<R> & x) const =0 ;
-  // Add FH oct 2005
-   bool ChecknbLine(int nn) const { return n==nn;}  
-   bool ChecknbColumn(int mm) const { return m==mm;} 
-
-  // end ADD
-
-};
-
-template <class R> 
-inline ostream& operator <<(ostream& f,const MatriceCreuse<R> & m) 
-    {return m.dump(f);}
-
-template <class R> 
-KN_<R> & operator/=(KN_<R> & x ,const MatriceProfile<R> & a) ;
-
-
-enum FactorizationType {
-    FactorizationNO=0,
-    FactorizationCholeski=1,
-    FactorizationCrout=2,
-    FactorizationLU=3};
-
-template <class R> 
-class MatriceProfile:public MatriceCreuse<R> {
-public:
-  mutable R *L;  // lower 
-  mutable R *U;  // upper
-  mutable R *D;  // diagonal 
-  int *pL; // profile L 
-  int *pU; // profile U 
-  mutable  FactorizationType typefac;
-  FactorizationType typesolver; 
-  ostream& dump (ostream&) const ;
-  MatriceProfile(const int  n,const R *a);
-  
-  template<class FESpace>
-  MatriceProfile(const FESpace &,bool VF=false);
-  MatriceProfile(int NbOfDF,R* d,
-		 R* u, int * pu,
-		 R* l, int * pl,
-		 FactorizationType tf=FactorizationNO) 
-    : MatriceCreuse<R>(NbOfDF),L(l),U(u),D(d),pL(pl),pU(pu),
-      typefac(tf),typesolver(FactorizationNO){}
-
-  const MatriceProfile t() const   
-     {return MatriceProfile(this->n,D,L,pL,U,pU,typefac);}
-  const MatriceProfile lt() const  
- 
-  
-     {return MatriceProfile(this->n,0,L,pL,0,0);}
-  const MatriceProfile l() const  
-     {return MatriceProfile(this->n,0,0,0,L,pL);}
-  const MatriceProfile d() const   
-     {return MatriceProfile(this->n,D,0,0,0,0);}
-  const MatriceProfile ld() const  
-     {return MatriceProfile(this->n,D,0,0,L,pL);}
-  const MatriceProfile ldt() const 
-     {return MatriceProfile(this->n,D,L,pL,0,0);}
-  const MatriceProfile du() const  
-     {return MatriceProfile(this->n,D,U,pU,0,0);}
-  const MatriceProfile u() const   
-     {return MatriceProfile(this->n,0,U,pU,0,0);}
-  const MatriceProfile ut() const  
-    
-    
-    {return MatriceProfile(this->n,0,0,0,U,pU);}
-
-  void Solve(KN_<R> &x,const KN_<R> &b) const {
-    /*if (typefac==0)  code faux // FH   nov 2006
-      switch(typefac) 
-	{
-	FactorizationCholeski: cholesky() ; break;
-	FactorizationCrout:   crout(); break;
-	FactorizationLU:      LU(); break; 
-	}*/ 
-    if (&x != &b) x=b;x/=*this;} 
-  
-  int size() const ;
-  void  resize(int n,int m)  { AFAIRE("MatriceProfile::resize");}  // a faire ...  add march 2009  FH 
-  ~MatriceProfile();
-  //  KN_<R>         operator* (const KN_<R> & ) const ;
-  void addMatMul(const KN_<R> &x,KN_<R> &ax) const;
-  void addMatTransMul(const KN_<R> &x,KN_<R> &ax) const 
-    { this->t().addMatMul(x,ax);}
-  MatriceCreuse<R> & operator +=(MatriceElementaire<R> &);
-  void operator=(const R & v); // Mise a zero 
-  void cholesky(double = EPSILON/8.) const ; //
-  void crout(double = EPSILON/8.) const ; //
-  void LU(double = EPSILON/8.) const ; //
-  R & diag(int i) { return D[i];}
-  void SetBC (int i,double tgv) {
-      if( tgv>=0) D[i]=tgv;
-      else  { ffassert(tgv<0); }  // to hard ..
-  }
-  R & operator()(int i,int j) { if(i!=j) ffassert(0); return D[i];} // a faire 
-  R * pij(int i,int j) const { if(i!=j) ffassert(0); return &D[i];} // a faire  Modif FH 31102005
-  MatriceMorse<R> *toMatriceMorse(bool transpose=false,bool copy=false) const ;
-  
-  template<class F> void map(const  F & f)
-  {
-    for(int i=0;i<this->n;++i)
-      D[i]=f(D[i]);
-    if (L)
-    for(int i=0;i<pL[this->n];++i)
-      L[i]=f(L[i]);
-    if (L && (L != U) )
-    for(int i=0;i<pL[this->m];++i)
-      U[i]=f(U[i]);
-  }
-  
-  template<class RR> MatriceProfile(const MatriceProfile<RR> & A)
-    : MatriceCreuse<R>(A.n,A.m,0)
-  {
-    
-    typefac=A.typefac;
-    pL=  docpy<int,int>(A.pL,this->n+1);
-    D = docpy<R,RR>(A.D,this->n);
-    if ( A.pL == A.pU ) pU=pL;
-    else pU=  docpy<int,int>(A.pU,this->m+1);
-    
-      L= docpy<R,RR>(A.L,pL[this->n]);
-      
-    if ( A.L == A.U ) U=L;
-    else  U= docpy<R,RR>(A.U,pU[this->m]);
-    
-  
-  }
-
-  
-  bool addMatTo(R coef,std::map< pair<int,int>, R> &mij,bool trans=false,int ii00=0,int jj00=0,bool cnj=false,double threshold=0.);
-
-  // Add FH april 2005
-  R pscal(const KN_<R> & x,const KN_<R> & y); // produit scalaire  
-  double psor(KN_<R> & x,const  KN_<R> & gmin,const  KN_<R> & gmax , double omega);
-  void setdiag(const KN_<R> & x) ;
-  void getdiag( KN_<R> & x) const ;
-    // end add
-  // Add FH oct 2005
-   int NbCoef() const ;
-   void setcoef(const KN_<R> & x);
-   void getcoef( KN_<R> & x) const ;
-  // end add
-  
-  /*----------------------------------------------------------------
-    D[i] = A[ii]
-    L[k] = A[ij]  j < i avec:   pL[i]<= k < pL[i+1] et j = pL[i+1]-k
-    U[k] = A[ij]  i < j avec:   pU[j]<= k < pU[j+1] et i = pU[i+1]-k 
-    remarque pL = pU generalement 
-    si L = U => la matrice est symetrique 
-    -------------------------------------------------------------------
-  */ 
-  private:
-   void operator=(const MatriceProfile & A);
-};
-
-
-                                          
-template <class R> 
-class MatriceMorse:public MatriceCreuse<R> {
-//  numebering  is no-symmetric
-//  the all line  i :  
-//     k=   lg[i] .. lg[i+1]+1
-//        j = cl[k]
-//        aij=a[k]
-// otherwise  symmetric  case
-// same but just the  LOWER part is store     (j <= i) 
-// and aii exist always in symmetric case
-//  -----------------------------------------
-
-public:
-  int nbcoef;
-  bool symetrique;  
-  R * a;
-  int * lg; 
- 
-  int * cl;  
-public:
-
-    
- class VirtualSolver :public RefCounter { 
-   friend class MatriceMorse;
-   virtual void Solver(const MatriceMorse<R> &a,KN_<R> &x,const KN_<R> &b) const  =0;
-};
-
-  MatriceMorse():MatriceCreuse<R>(0),nbcoef(0),symetrique(true),a(0),lg(0),cl(0),solver(0) {};
-  MatriceMorse(KNM_<R> & A, double tol) ;
-  MatriceMorse(const int  n,const R *a);
-//    :MatriceCreuse<R>(n),solver(0) {}
-  MatriceMorse(istream & f);
-
-  template<class FESpace>   explicit 
-  MatriceMorse(const FESpace & Uh,bool sym,bool VF=false)
-    :MatriceCreuse<R>(Uh.NbOfDF),solver(0) {Build(Uh,Uh,sym,VF);}
-
-  template<class FESpace>   explicit 
-  MatriceMorse(const FESpace & Uh,const FESpace & Vh,bool VF=false)
-    :MatriceCreuse<R>(Uh.NbOfDF,Vh.NbOfDF,0),solver(0) 
-  {Build(Uh,Vh,false,VF);}
-
-  template<class FESpace>   explicit 
-  MatriceMorse(const FESpace & Uh,const FESpace & Vh,
-               void (*build)(MatriceMorse *,const FESpace & Uh,const FESpace & Vh,void *data),void *data=0
-	       )
-    :MatriceCreuse<R>(Uh.NbOfDF,Vh.NbOfDF,0),solver(0) 
-  {build(this,Uh,Vh,data);           
-  }
- 
-MatriceMorse(int nn,int mm,int nbc,bool sym,R *aa=0,int *ll=0,int *cc=0,bool dd=false, const VirtualSolver * s=0,bool transpose=false )
-    :MatriceCreuse<R>(nn,mm,dd && !transpose),
-     nbcoef(nbc),
-     symetrique(sym), // transpose = true => dummy false (new matrix)
-     a(docpyornot(this->dummy,aa,nbc)),
-     lg(docpyornot(this->dummy,ll,nn+1)),
-     cl(docpyornot(this->dummy,cc,nbc)),
-     solver(s)
-  { if(transpose) dotransposition(); };
-  void Solve(KN_<R> &x,const KN_<R> &b) const;
-  int size() const ;
-  void addMatMul(const KN_<R> &x,KN_<R> &ax) const;
-  void addMatTransMul(const KN_<R> &x,KN_<R> &ax) const;
-  MatriceMorse & operator +=(MatriceElementaire<R> &);
-  void operator=(const R & v) 
-    { for (int i=0;i< nbcoef;i++) a[i]=v;}
-  virtual ~MatriceMorse(){ if (!this->dummy) { delete [] a; delete [] cl;delete [] lg;}}
-  ostream&  dump(ostream & f) const ;
-  R * pij(int i,int j) const ;
-  R  operator()(int i,int j) const {R * p= pij(i,j) ;throwassert(p); return *p;}
-  R & operator()(int i,int j)  {R * p= pij(i,j) ;throwassert(p); return *p;}
-  R & diag(int i)  {R * p= pij(i,i) ;throwassert(p); return *p;}
-  void SetBC (int i,double tgv) {
-	R * p= pij(i,i) ;
-	ffassert(p);
-	if( tgv>=0) *p=tgv;
-	else  {
-	    ffassert(!symetrique); 
-	    for (int k=lg[i];k<lg[i+1]; ++k) a[k]=0;// put the line to Zero.
-	    *p = 1. ; // and the diag coef to 1.
-	}  
-    }
-    
-  void SetSolver(const VirtualSolver & s){solver=&s;}
-  void SetSolverMaster(const VirtualSolver * s){solver.master(s);}
-  bool sym() const {return symetrique;}
-  // Add FH april 2005
-  R pscal(const KN_<R> & x,const KN_<R> & y); // produit scalaire  
-  double psor(KN_<R> & x,const  KN_<R> & gmin,const  KN_<R> & gmax , double omega);
-  void setdiag(const KN_<R> & x) ;
-  void getdiag( KN_<R> & x) const ;
-  // end add
-  
-  // Add FH oct 2005
-   int NbCoef() const ;
-   void setcoef(const KN_<R> & x);
-   void getcoef( KN_<R> & x) const ;
-  // end add
-void  resize(int n,int m) ; // add march 2009 ...
-template<class K>
-  MatriceMorse(int nn,int mm, std::map< pair<int,int>, K> & m, bool sym);
-  
- template<class RB,class RAB>
- void  prod(const MatriceMorse<RB> & B, MatriceMorse<RAB> & AB);
- 
- MatriceMorse<R> *toMatriceMorse(bool transpose=false,bool copy=false) const {
-     return new MatriceMorse(this->n,this->m,nbcoef,symetrique,a,lg,cl,copy, solver,transpose);}
-  bool  addMatTo(R coef,std::map< pair<int,int>, R> &mij,bool trans=false,int ii00=0,int jj00=0,bool cnj=false,double threshold=0.);
-  
-  template<typename RR,typename K> static  RR CastTo(K  b){return b;}
-                                                  
-  template<class K>
-    MatriceMorse(const MatriceMorse<K> & , R (*f)(K) );
-  template<class K>
-    MatriceMorse(const MatriceMorse<K> & );
-
-  private:
-  void dotransposition ()  ;  // do the transposition 
-  CountPointer<const VirtualSolver> solver;
-  
-  void operator=(const MatriceMorse & );
-
-  template<class FESpace>
-  void  Build(const FESpace & Uh,const FESpace & Vh,bool sym,bool VF=false);
-  
-};
-
-
-template<class R> class StopGC { public: virtual  bool Stop(int iter, R *, R * ){cout << " Stop !!!!!\n"; return false;} };
-template<class R,class M,class P,class S >// S=StopGC<Real>
-int ConjuguedGradient(const M & A,const P & C,const KN_<R> &b,KN_<R> &x,const int nbitermax, double &eps,long kprint=1000000000,S *Stop=0)
-{
-   
-//  ConjuguedGradient lineare   A*x est appele avec des conditions au limites 
-//  non-homogene puis homogene  pour calculer le gradient  
-   if (verbosity>50) 
-     kprint=2;
-   if (verbosity>99)  cout << A << endl;
-   throwassert(&x && &b && &A && &C);
-   typedef KN<R> Rn;
-   int n=b.N();   
-   throwassert(n==x.N());
-   Rn g(n), h(n), Ah(n), & Cg(Ah);  // on utilise Ah pour stocke Cg  
-   g = A*x;  
-   double xx= RNM::real((x,conj(x)));
-   double epsold=eps;
-   g -= b;// g = Ax-b
-   Cg = C*g; // gradient preconditionne 
-   h =-Cg; 
-   double g2 = RNM::real((Cg,conj(g)));
-   if (g2 < 1e-30) 
-    { if(verbosity>1 || (kprint<100000))
-       cout << "GC  g^2 =" << g2 << " < 1.e-30  Nothing to do " << endl;
-     return 2;  }
-   double reps2 =eps >0 ?  eps*eps*g2 : -eps; // epsilon relatif 
-   eps = reps2;
-   for (int iter=0;iter<=nbitermax;iter++)
-     {      
-       Ah = A*h;
-       double hAh =RNM::real((h,conj(Ah)));
-      // if (Abs(hAh)<1e-30) ExecError("CG2: Matrix non defined, sorry ");
-       R ro =  - RNM::real((g,conj(h)))/ hAh; // ro optimal (produit scalaire usuel)
-       x += ro *h;
-       g += ro *Ah; // plus besoin de Ah, on utilise avec Cg optimisation
-       Cg = C*g;
-       double g2p=g2; 
-       g2 = RNM::real((Cg,conj(g)));
-       bool stop = Stop && Stop->Stop(iter,x,g);
-    
-       if ( !(iter%kprint) && iter && (verbosity>3) )
-         cout << "CG:" <<iter <<  "  ro = " << ro << " ||g||^2 = " << g2 << " " << stop << endl;
-         
-       if (g2 < reps2 || stop) {
-         if ( !iter && !xx && g2 && epsold >0 ) {  
-             // change fo eps converge to fast due to the 
-             // penalization of boundary condition.
-             eps =  epsold*epsold*g2; 
-             if (verbosity>3 || (kprint<3))
-             cout << "CG converge to fast (pb of BC)  restart: " << iter <<  "  ro = " 
-                  << ro << " ||g||^2 = " << g2 << " <= " << reps2 << "  new eps2 =" <<  eps <<endl; 
-              reps2=eps;
-           } 
-         else 
-          { 
-           if (verbosity>1 || (kprint<100000) )
-            cout << "CG converge: " << iter <<  "  ro = " << ro << " ||g||^2 = " << g2 << endl; 
-           return 1;// ok 
-          }
-          }
-       double gamma = g2/g2p;       
-       h *= gamma;
-       h -= Cg;  //  h = -Cg * gamma* h       
-     }
-   if(verbosity)
-   cout << " GC: method doesn't converge in " << nbitermax 
-        <<  " iteration , xx= "  << xx<< endl;
-   return 0; 
-}
-
-template<class R,class M,class P,class S>// S=StopGC<Real>
-int ConjuguedGradient2(const M & A,const P & C,KN_<R> &x,const KN_<R> &b,const int nbitermax, double &eps,long kprint=1000000000,S *Stop=0)
-{
-//  ConjuguedGradient2 affine A*x = 0 est toujours appele avec les condition aux limites 
-//  -------------
-    
-   throwassert(&x  && &A && &C);
-   typedef KN<R> Rn;
-   int n=x.N();
-  // if (verbosity>99) kprint=1;
-   R ro=1;
-   Rn g(n),h(n),Ah(n), & Cg(Ah);  // on utilise Ah pour stocke Cg  
-   g = A*x;
-   g -= b;  
-   Cg = C*g; // gradient preconditionne 
-   h =-Cg; 
-   R g2 = (Cg,g);
-   if (g2 < 1e-30) 
-    { if(verbosity>1 || kprint< 1000000)
-       cout << "GC  g^2 =" << g2 << " < 1.e-30  Nothing to do " << endl;
-     return 2;  }
-   if (verbosity>5 || (kprint<2))
-     cout << " 0 GC  g^2 =" << g2 << endl;
-   R reps2 =eps >0 ?  eps*eps*g2 : -eps; // epsilon relatif 
-   eps = reps2;
-   for (int iter=0;iter<=nbitermax;iter++)
-     { 
-       R rop = ro; 
-       x += rop*h;      //   x+ rop*h  , g=Ax   (x old)
-       //       ((Ah = A*x - b) - g);
-       // Ah -= b;        //   Ax + rop*Ah = rop*Ah + g  =
-       // Ah -= g;         //   Ah*rop  
-       Ah = A*x;
-       Ah -= b;        //   Ax + rop*Ah = rop*Ah + g  =
-       Ah -= g;         //   Ah*rop  
-       R hAh =(h,Ah);
-         if (RNM::norm2(hAh)<1e-60) ExecError("CG2: Matrix is not defined (/0), sorry ");
-       ro =  - (g,h)*rop/hAh ; // ro optimal (produit scalaire usuel)
-       x += (ro-rop) *h;
-       g += (ro/rop) *Ah; // plus besoin de Ah, on utilise avec Cg optimisation
-       Cg = C*g;
-       R g2p=g2; 
-       g2 = (Cg,g);
-         bool stop = Stop && Stop->Stop(iter,x,g);
-       if ( ( (iter%kprint) == kprint-1)  /*&&  verbosity >1*/ )
-         cout << "CG:" <<iter <<  "  ro = " << ro << " ||g||^2 = " << g2 << " " << stop <<  endl;
-       if (stop || g2 < reps2 ) {
-         if (kprint <= nbitermax )
-            cout << "CG converges " << iter <<  "  ro = " << ro << " ||g||^2 = " << g2
-                 << " stop=" << stop << " /Stop= " << Stop <<  endl;
-          return 1;// ok 
-          }
-       R gamma = g2/g2p;       
-       h *= gamma;
-       h -= Cg;  //  h = -Cg * gamma* h       
-     }
-     //if (nbitermax <= nbitermax )
-      cout << "CG does'nt converge: " << nbitermax <<   " ||g||^2 = " << g2 << " reps2= " << reps2 << endl; 
-   return 0; 
-}
-
-template <class R> 
-class MatriceIdentite:public  VirtualMatrice<R> { public:
- typedef typename VirtualMatrice<R>::plusAx plusAx;
-    MatriceIdentite(int n) :VirtualMatrice<R>(n) {}; 
- void addMatMul(const  KN_<R>  & x, KN_<R> & Ax) const { 
-     ffassert(x.N()==Ax.N());
-   Ax+=x; } 
- plusAx operator*(const KN<R> &  x) const {return plusAx(this,x);} 
-  bool ChecknbLine(int n) const { return true;}  
-  bool ChecknbColumn(int m) const { return true;} 
-
-};  
-
-template<class R>
-class SolveGCDiag :   public MatriceMorse<R>::VirtualSolver , public VirtualMatrice<R>{
-  int n;
-  int nbitermax;
-  double eps;
-  mutable double  epsr;
-  KN<R> D1;
-  public:
-  typedef typename VirtualMatrice<R>::plusAx plusAx;
-  SolveGCDiag(const MatriceMorse<R> &A,int itmax,double epsilon=1e-6) : 
-    VirtualMatrice<R>(A.n),
-    n(A.n),nbitermax(itmax?itmax: Max(100,n)),eps(epsilon),epsr(0),D1(n)
-  { //throwassert(A.sym());
-    for (int i=0;i<n;i++)
-      D1[i] = 1./A(i,i);}
-   void Solver(const MatriceMorse<R> &a,KN_<R> &x,const KN_<R> &b) const  {
-     epsr = (eps < 0) ? (epsr >0 ? -epsr : -eps ) : eps ;
-    // cout << " epsr = " << epsr << endl;
-     ConjuguedGradient<R,MatriceMorse<R>,SolveGCDiag<R>,StopGC<R> >(a,*this,b,x,nbitermax,epsr  );
-   }
-plusAx operator*(const KN_<R> &  x) const {return plusAx(this,x);} 
-
-
- void addMatMul(const KN_<R> & x, KN_<R> & Ax) const 
-  {  ffassert(x.N()==Ax.N());
-     for (int i=0;i<n;i++) 
-     Ax[i]+= D1[i]*x[i];}
-     
-   bool ChecknbLine(int nn) const { return n==nn;}  
-   bool ChecknbColumn(int mm) const { return n==mm;} 
-
-};
-
-struct TypeSolveMat {
-    enum TSolveMat { NONESQUARE=0, LU=1, CROUT=2, CHOLESKY=3, GC = 4 , GMRES = 5, SparseSolver=6, SparseSolverSym=7 };
-    TSolveMat t;
-    bool sym;
-    bool profile;
-    TypeSolveMat(TSolveMat tt=LU) :t(tt),
-    sym(t == CROUT || t ==CHOLESKY  ||  t==GC || t==SparseSolverSym ),
-    profile(t == CROUT || t ==CHOLESKY  || t ==LU ) {}
-    bool operator==(const TypeSolveMat & a) const { return t == a.t;}                               
-    bool operator!=(const TypeSolveMat & a) const { return t != a.t;}
-    static TSolveMat defaultvalue;
-};
-
-// add FH , JM  avril 2009 
-template<class K,class V> class MyMap;
-class String; 
-typedef void *    pcommworld; // to get the pointeur to the comm word ... in mpi
-//  to build 
-#define VDATASPARSESOLVER  1
-int Data_Sparse_Solver_version() ; //{ return VDATASPARSESOLVER;}
-struct Data_Sparse_Solver {
-  bool initmat;
-  TypeSolveMat* typemat;
-  double epsilon;
-  const void * precon;
-  int NbSpace;
-  int strategy;
-  double tgv;
-  bool factorize;
-  double tol_pivot;
-  double tol_pivot_sym;
-  int itmax ;
-  string data_filename;  
-  KN<long> lparams;  //  copy arry more secure ...
-  KN<double> dparams;   
-  
-  MyMap<String,String> * smap;   
-  
-  KN<long> perm_r; 
-  KN<long> perm_c;     
-  KN<double> scale_r; 
-  KN<double> scale_c; 
-  string sparams;  
-  pcommworld commworld;  // pointeur sur le commworld
-    int master; //  master rank in comm add FH 02/2013 for MUMPS ... => VDATASPARSESOLVER exist 
- /*   
-  int *param_int;
-  double *param_double;
-  string *param_char;
-  int *perm_r;
-  int *perm_c;
-  string *file_param_int;
-  string *file_param_double;
-  string *file_param_char;
-  string *file_param_perm_r;
-  string *file_param_perm_c;
-  */
-    
-    Data_Sparse_Solver()
-	:
-    initmat(1),
-    typemat(0),
-    strategy(0),
-    tgv(1e30),
-    factorize(0),
-    epsilon(1e-6),
-    precon(0),
-    tol_pivot(-1),
-    tol_pivot_sym(-1),
-    NbSpace(50),
-    itmax(0),
- //   lparams(0,0),
- //   dparams(0,0),
-    smap(0) ,
-//    perm_r(0,0),
-//    perm_c(0,0),
-//    scale_r(0,0),
- //   scale_c(0,0)
-    
-    /*
-    param_int(0),
-    param_double(0),
-    param_char(0),
-    perm_r(0),
-    perm_c(0),
-    file_param_int(0),
-    file_param_double(0),
-    file_param_perm_r(0),
-    file_param_perm_c(0),
-     */
-    //sparams, 
-    commworld(0),
-    master(0)
-    {}
-    
-private:
-    Data_Sparse_Solver(const Data_Sparse_Solver& ); // pas de copie 
-};
-
-// add Sep 2007 for generic Space solver
-#define DCL_ARG_SPARSE_SOLVER(T,A)  Stack stack,const MatriceMorse<T> *A, Data_Sparse_Solver & ds
-#define ARG_SPARSE_SOLVER(A) stack,A, ds					
-
-typedef MatriceMorse<double>::VirtualSolver *
-(*SparseRMatSolve)(DCL_ARG_SPARSE_SOLVER(double,A) );
-
-
-typedef MatriceMorse<Complex>::VirtualSolver *
-(*SparseCMatSolve)(DCL_ARG_SPARSE_SOLVER(Complex,A) );
-
-
-template<class R> struct DefSparseSolver {
-  typedef typename MatriceMorse<R>::VirtualSolver * 
-  (*SparseMatSolver)(DCL_ARG_SPARSE_SOLVER(R,A) );
-
-  static SparseMatSolver solver;
-    
-  static  typename MatriceMorse<R>::VirtualSolver * 
-
-  Build( DCL_ARG_SPARSE_SOLVER(R,A) )
-    
-  {
-    typename MatriceMorse<R>::VirtualSolver *ret=0;
-    if(solver)
-      ret =(solver)(ARG_SPARSE_SOLVER(A));
-    return ret;	
-  }
-};
-
-// add Dec 2012 F.H. for optimisation .. 
-template<class R> struct DefSparseSolverSym {
-    typedef typename MatriceMorse<R>::VirtualSolver *
-    (*SparseMatSolver)(DCL_ARG_SPARSE_SOLVER(R,A) );
-    
-    static SparseMatSolver solver;
-    
-    static  typename MatriceMorse<R>::VirtualSolver *
-    
-    Build( DCL_ARG_SPARSE_SOLVER(R,A) )
-    
-    {
-        typename MatriceMorse<R>::VirtualSolver *ret=0;
-        if(solver)
-            ret =(solver)(ARG_SPARSE_SOLVER(A));
-        return ret;	
-    }
-};
-
-// End Sep 2007 for generic Space solver
-
-
-
-inline void C2RR(int n,Complex *c,double *cr,double *ci)
-{
- for (int i=0;i<n;i++)
-  {
-   cr[i]=real(c[i]);
-   ci[i]=imag(c[i]);
-  }
-}
-
-inline void RR2C(int n,double *cr,double *ci,Complex *c)
-{
- for (int i=0;i<n;i++)
-  {
-    c[i]=Complex(cr[i],ci[i]);   
-  }
-}
-
-
-
-#endif
diff --git a/src/femlib/MatriceCreuse_tpl.hpp.orig b/src/femlib/MatriceCreuse_tpl.hpp.orig
deleted file mode 100644
index cbad490..0000000
--- a/src/femlib/MatriceCreuse_tpl.hpp.orig
+++ /dev/null
@@ -1,1980 +0,0 @@
-#ifndef  MatriceCreuse_tpl_
-#ifndef  MatriceCreuse_h_
-#include "MatriceCreuse.hpp"
-#include <limits>
-#include <set>
-#include <list>
-#include <map>
-#endif
-
-#ifndef __MWERKS__
-// test blas 
-//  on MacOS9 under MWERKS
-//  cblas_ddot macos-9 is not 
-#ifdef HAVE_CBLAS_H
-extern "C" {
-#define FF_VERSION VERSION
-#undef VERSION
-#include <cblas.h>
-#undef VERSION   
-#define VERSION VERSION    
-}
-#define WITHBLAS 1
-#elif HAVE_VECLIB_CBLAS_H
-#include <vecLib/cblas.h> 
-#define WITHBLAS 1
-#endif  
-#endif  
-#ifdef WITHBLAS 
-template<class R> inline R blas_sdot(const int n,const R *sx,const int incx,const R *sy,const int  incy)
-{
-  R s=R();
-  
-  if(incx == 1 && incy == 1)
-   for (int k = 0; k< n; k++)
-    s += *sx++ * * sy++;
-  else
-   for (int k = 0; k< n; k++, sx += incx, sy += incy)
-    s += *sx * *sy;   
-   return  s;
-}
-
-template<class R> inline R blas_sdot( int n, R *sx, int incx, R *sy, int  incy)
-{
-    R s=R();
-    
-    if(incx == 1 && incy == 1)
-        for (int k = 0; k< n; k++)
-            s += *sx++ * * sy++;
-    else
-        for (int k = 0; k< n; k++, sx += incx, sy += incy)
-            s += *sx * *sy;
-    return  s;
-}
-// OpenBlas PB with constant  remove const ....
-template<> inline float blas_sdot(const int n,  float *sx, int incx, float *sy, int  incy)
-{
-    return cblas_sdot(n,sx,incx,sy,incy);
-}
-template<> inline double blas_sdot( int n,  double *sx, int incx, double *sy, int  incy)
-{
-    return cblas_ddot(n,sx,incx,sy,incy);
-}
-
-#ifdef OPENBLAS_CONFIG_H
-typedef  openblas_complex_double *BLAS_ptr_complex16;
-#else
-typedef void *BLAS_ptr_complex16;
-
-#endif
-template<> inline  complex<double> blas_sdot( int n,  complex<double> *sx, int incx, complex<double> *sy, int  incy)
-{
-    complex<double> s;
-    cblas_zdotu_sub(n,( double *)sx,incx,( double *)sy,incy,(BLAS_ptr_complex16)&s);
-    return s;
-}
-//template<> inline  complex<float> blas_sdot( int n,  complex<float> *sx, int incx, complex<float> *sy, int  incy)
-//{
-//    complex<float> s;
-//    cblas_cdotu_sub(n,( void *)sx,incx,( void *)sy,incy,(BLAS_ptr_complex8)&s);
-//    return s;
-//}
-
-#endif
-//  end modif FH
-using Fem2D::HeapSort;
-using std::numeric_limits;
-
-//  -----------
-template<class FElement>
-inline int  BuildMEK_KK(const int l,int *p,int *pk,int *pkk,const FElement * pKE,const FElement*pKKE)
-{
-  // routine which find common  dof on to adjacent element pKE and pKKE and make the link ..
-  // if pKKE== 0   then no  adj element
-  // the idea is find common dof, but this work only if all dot a different
-  // in on elemnt, so we can have a bug
-  //  in case of periodic boundary condition ..
-  // not correct ... F.Hecht ...
-
-  // -----
-  // routine  build  les array p, pk,pkk 
-  // which return number of df int 2 element pKE an pKKE
-  // max l size of array p, pk, pkk
-  // p[i] is the global number of freedom
-  // pk[i] is is the local number in pKE ( -1 if not in pKE element)
-  // pkk[i] is is the local number in pKKE ( -1 if not in pKKE element)
-     const FElement (*pK[2])={pKE,pKKE};
-
-     int ndf=0; // number of dl
-     int * qk=pk, *qkk=pkk;
-     for (int k=0;k<2;k++)
-      if(pK[k]) 
-       {
-         if(k) Exchange(qk,qkk);
-         const FElement& FEK=*pK[k];
-         int nbdf =FEK.NbDoF();
-         
-         for (int ii=0;ii<nbdf;ii++)
-          {
-           p[ndf] = 2*FEK(ii)+k; // copy the numbering
-           qk[ndf] = ii;
-           qkk[ndf++] = -1;
-          } // end for ii
-         } 
-      ffassert(ndf <=l);
-    int bug=0;
-   // compression suppression des doublons
-    // attention un df peu aparaitre 2 fois (CL period) dans un element ..
-       Fem2D::HeapSort(p,pk,pkk,ndf);
-       int k=0;  
-        for(int ii=1;ii<ndf;++ii)
-          if (p[k]/2==p[ii]/2) // doublons k,kk
-            { 
-              if (pkk[ii]>=0) pkk[k]=pkk[ii];
-              if (pk[ii]>=0) pk[k]=pk[ii];
-              assert(pk[k] >=0 && pkk[k]>=0);
-            }
-           else { // copy
-              if(p[k]==p[ii]) bug++;
-              p[++k] =p[ii];
-              pk[k]=pk[ii];
-              pkk[k]=pkk[ii];
-             }
-        ndf=k+1; 
-  for(int ii=0;ii<ndf;++ii)
-      p[ii]= p[ii]/2;// clean pp to revome bug(CL period)
-    if( bug && pKKE) {
-        static int count =0;
-        if( count++ < 2 && verbosity )
-        {
-        cerr << "  May be a Bug in BuildMEK_KK , the code is not safe , periodic boundary condition  on 1 element . " << bug <<  endl;
-        cerr << "  They is a problem   in this case (I am not sure) F.H.  ????" << endl;
-            cerr << "   exempt if the associed  matrix voefficient is 0. "<< endl;
-        }
-        //ffassert(0); // bof bof ... remove of case of jump in internal edge ...
-    }
-   return ndf;
-} //  BuildMEK_KK
-
-template<class R,class FES>
-void MatriceElementairePleine<R,FES>::call(int k,int ie,int label,void * stack,void *B) {
-  for (int i=0;i<this->lga;i++) 
-     this->a[i]=0;
-  if(this->onFace)
-    { 
-     throwassert(faceelement);
-     const Mesh &Th(this->Vh.Th);
-     
-     int iie=ie,kk=Th.ElementAdj(k,iie);
-     if(kk==k|| kk<0) kk=-1;
-     if ( &this->Vh == &this->Uh)
-      {
-       FElement Kv(this->Vh[k]);
-       if(kk<0)
-        { // return ; // on saute ????  bof bof 
-<<<<<<< HEAD
-	  this->n=this->m=BuildMEK_KK<FElement>(this->lnki,this->ni,this->nik,this->nikk,&Kv,0);
-=======
-	  this->n=this->m=BuildMEK_KK<FElement>(this->lnk,this->ni,this->nik,this->nikk,&Kv,0);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-         int n2 =this->m*this->n; 
-         for (int i=0;i<n2;i++) this->a[i]=0;
-         faceelement(*this,Kv,Kv,Kv,Kv,this->data,ie,iie,label,stack,reinterpret_cast<Rd*>(B));
-        }
-        else
-        {
-         FElement KKv(this->Vh[kk]);
-<<<<<<< HEAD
-         this->n=this->m=BuildMEK_KK<FElement>(this->lnki,this->ni,this->nik,this->nikk,&Kv,&KKv);
-=======
-         this->n=this->m=BuildMEK_KK<FElement>(this->lnk,this->ni,this->nik,this->nikk,&Kv,&KKv);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-        
-         
-         faceelement(*this,Kv,KKv,Kv,KKv,this->data,ie,iie,label,stack,reinterpret_cast<Rd*>(B));
-
-        }
-      }
-     else 
-      {
-<<<<<<< HEAD
-          throwassert(faceelement);
-          const Mesh &Th(this->Vh.Th);
-          
-          int iie=ie,kk=Th.ElementAdj(k,iie);
-          if(kk==k|| kk<0) kk=-1;
-          if ( &this->Vh == &this->Uh)
-          {
-              FElement Kv(this->Vh[k]);
-              FElement Ku(this->Uh[k]);
-              if(kk<0)
-              { // return ; // on saute ????  bof bof
-                  this->n=BuildMEK_KK<FElement>(this->lnki,this->ni,this->nik,this->nikk,&Kv,0);
-                  this->m=BuildMEK_KK<FElement>(this->lnkj,this->nj,this->njk,this->njkk,&Ku,0);
-                  int n2 =this->m*this->n;
-                  for (int i=0;i<n2;i++) this->a[i]=0;
-                  faceelement(*this,Kv,Kv,Kv,Kv,this->data,ie,iie,label,stack,reinterpret_cast<Rd*>(B));
-              }
-              else
-              {
-                  FElement KKv(this->Vh[kk]);
-                  FElement KKu(this->Uh[kk]);
-                  this->n=BuildMEK_KK<FElement>(this->lnki,this->ni,this->nik,this->nikk,&Kv,&KKv);
-                  this->m=BuildMEK_KK<FElement>(this->lnkj,this->nj,this->njk,this->njkk,&Ku,&KKu);
-                  
-                  faceelement(*this,Ku,KKu,Kv,KKv,this->data,ie,iie,label,stack,reinterpret_cast<Rd*>(B));
-                  
-              }
-          }
-          ERREUR("BUG ???? A FAIRE/ TO DO  (see F. hecht) ", 0);
-        ffassert(0); // a faire F. Hecht desole
-=======
-        ERREUR("A FAIRE/ TO DO  (see F. hecht) ", 0); 
-        ffassert(0); // a faire F. Hecht desole 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-       
-      }
-   }
-  else {
-  throwassert(element);
-  const FElement&Kv(this->Vh[k]);
-  int nbdf =Kv.NbDoF();
-  for (int i=0;i<nbdf;i++)
-     this->ni[i] = Kv(i); // copy the numbering 
-  this->m=this->n=nbdf;  
-
-  if(this->ni != this->nj) { // 
-    const FElement&Ku(this->Uh[k]);
-    int nbdf =Ku.NbDoF();
-    for (int i=0;i<nbdf;i++)
-      this->nj[i] = Ku(i); // copy the numbering 
-     this->m=nbdf;
-     int n2 =this->m*this->n; 
-     for (int i=0;i<n2;i++) this->a[i]=0;
-     element(*this,Ku,Kv,this->data,ie,label,stack,reinterpret_cast<Rd*>(B));
-  }
-  else 
-    {
-     int n2 =this->m*this->n;
-     for (int i=0;i<n2;i++) this->a[i]=0;
-     element(*this,Kv,Kv,this->data,ie,label,stack,reinterpret_cast<Rd*>(B));
-   // call the elementary mat 
-    }  
-  }  
-}
-
-template<class R,class FES>
-void MatriceElementaireSymetrique<R,FES>::call(int k,int ie,int label,void * stack,void  *B) {
-  // mise a zero de la matrice elementaire, plus sur
-  for (int i=0;i<this->lga;i++) 
-    this->a[i]=0;
-  if(this->onFace)
-    { 
-      ffassert(0); // a faire 
-    }
-  else {
-    
-    if (k< this->Uh.Th.nt)
-      {
-	throwassert(element);
-	const FElement K(this->Uh[k]);
-	int nbdf =K.NbDoF();
-	for (int i=0;i<nbdf;i++)
-	  this->ni[i] = K(i); // copy the numbering 
-	this->m=this->n = nbdf; 
-	
-	element(*this,K,this->data,ie,label,stack,static_cast<Rd*>(B));
-      }// call the elementary mat 
-    else
-      {
-	ffassert(0); // remove code for the 3d 
-	/*
-	throwassert(mortar);
-	{
-	  const FMortar K(&(this->Uh),k);
-	  int nbdf = K.NbDoF();
-	  for (int i=0;i<nbdf;i++)
-	    this->ni[i] = K(i); // copy the numbering 
-	  this->m=this->n = nbdf; 
-	  // mise a zero de la matrice elementaire, plus sur
-	  
-	  mortar(*this,K,stack);}
-	*/
-      }
-  }
-}
-  
-template<class R>
-MatriceProfile<R>::~MatriceProfile() {
-  if(!this->dummy) 
-    { //cout << " del mat profile " << endl ;
-    if (U && (U !=L))  delete [] U;
-    if (D)  delete [] D;
-    if (L)  delete [] L;
-    if (pU && (pU != pL)) delete [] pU;
-    if (pL) delete [] pL;
-    //cout << " dl de MatriceProfile " << this << endl;
-    }
-}
-template<class R>
-int MatriceProfile<R>::size() const {
-  int s = sizeof(MatriceProfile<R>);
-  if (D) s += this->n*sizeof(R);
-  if (pL) s += this->n*sizeof(int);
-  if (pU && (pU != pL)) s += this->n*sizeof(int);
-  if (L) s += pL[this->n]*sizeof(int);
-  if (U && (U != L)) s += pU[this->n]*sizeof(int);
-  return s;
-}
-/*
-template<class R>
-int MatriceProfile<R>::MatriceProfile(const MatriceProfile<RR> & A )
-  : MatriceCreuse<R>(A.n,A.m,0)
-  {
-    
-    typefac=A.typefac;
-    pL=  docpy<int,int>(A.pL,n+1);
-    D = docpy<R,RR>(A.D,n);
-    if ( A.pL == A.pU ) pU=pL;
-    else pU=  docpy<int,int>(A.pU,m+1);
-    
-      L= docpy<R,RR>(A.L,pL[n]);
-      
-    if ( A.L == A.U ) U=L;
-    else  U= docpy<R,RR>(A.U,pU[m]);
-    
-  
-  }*/
-template<class R>
-  MatriceMorse<R> *MatriceProfile<R>::toMatriceMorse(bool transpose,bool copy) const 
-  {
-  // A FAIRE;
-    ffassert(0); // TODO
-   return 0;
-  }
-  
- inline pair<int,int> ij_mat(bool trans,int ii00,int jj00,int i,int j) {
-  // warning trans sub  matrix and not the block. 
-  return trans ? make_pair<int,int>(j+ii00,i+jj00)
-                :  make_pair<int,int>(i+ii00,j+jj00) ; }
- 
-template<class R>
-bool MatriceProfile<R>::addMatTo(R coef,std::map< pair<int,int>, R> &mij,bool trans,int ii00,int jj00,bool cnj,double threshold)
-{
-    double eps0=max(numeric_limits<double>::min(), threshold);
-    if( RNM::norm2(coef)<eps0) return  L == U ;
-    int i,j,kf,k;
-    if(D)
-    {
-        for( i=0;i<this->n;i++)
-            if( RNM::norm2(D[i])>eps0)
-                mij[ij_mat(trans,ii00,jj00,i,i)] += coef*(cnj? RNM::conj(D[i]) : D[i]);
-    }
-    else
-    {
-        for(int i=0;i<this->n;i++) // no dia => identity dai
-            mij[ij_mat(trans,ii00,jj00,i,i)] += coef;
-    }
-    if (L && pL )
-        for (kf=pL[0],i=0;  i<this->n;   i++  )
-	  { 
-	    k=kf;
-	    kf=pL[i+1];
-	    for ( j=i-kf+k;   k<kf; j++,  k++  )
-                if(RNM::norm2(L[k])>eps0)
-		  mij[ij_mat(trans,ii00,jj00,i,j)]= coef*(cnj? RNM::conj(L[k]) : L[k]);
-	  }
-    if (U && pU)
-        for (kf=pU[0],j=0;  j<this->m;  j++)
-	  {
-	    k=kf;
-	    kf=pU[j+1];
-	    for ( i=j-kf+k;   k<kf; i++,  k++  )
-	      if(RNM::norm2(U[k])>eps0)
-		mij[ij_mat(trans,ii00,jj00,i,j)]= coef*(cnj? RNM::conj(U[k]) : U[k]);
-	  }
-    return L == U ; // symetrique
-}
-template<class R>
-MatriceProfile<R>::MatriceProfile(const int nn,const R *a)
-  :MatriceCreuse<R>(nn,nn,0),typefac(FactorizationNO)
-{
-  int *pf = new int [this->n+1];
-  int i,j,k;
-  k=0;
-  for (i=0;i<=this->n;k+=i++)
-    {
-      pf[i]=k;
-      //  cout << " pf " << i<< " = " << k  << endl;
-    }
-  ffassert( pf[this->n]*2 == this->n*(this->n-1));
-  pU = pf; // pointeur profile U
-  pL = pf; // pointeur profile L
-  U = new R[pf[this->n]];
-  L = new R[pf[this->n]];
-  D = new R[this->n];  
-  const R *aij=a;
-  for (i=0;i<this->n;i++)
-    for (j=0;j<this->n;j++)
-      if      (j<i)   L[pL[i+1]-i+j] = *aij++;
-      else if (j>i)   U[pU[j+1]-j+i] = *aij++;
-      else            D[i] = *aij++;
-}
-
-template<class R>
-template<class FESpace>
-MatriceProfile<R>::MatriceProfile(const FESpace & Vh,bool VF) 
-  :MatriceCreuse<R>(Vh.NbOfDF,Vh.NbOfDF,0),typefac(FactorizationNO)
-{
-   // for galerkine discontinue ....
-   // VF : true=> Finite Volume matrices (change the stencil) 
-   // VF = false => Finite element 
-   // F. Hecht nov 2003
-   // -----
-  this->dummy=0;
-  this->n = this->m = Vh.NbOfDF;
-  int i,j,k,ke,ie,mn,jl,iVhk;
-  int itab,tabk[5]; 
-  int *pf = new int [this->n+1];
-  for (i=0;i<this->n;i++)  pf[i]=0;
-  for (ke=0;ke<Vh.NbOfElements;ke++)
-    { 
-      itab=0;
-      tabk[itab++]=ke;
-      if(VF) itab += Vh.Th.GetAllElementAdj(ke,tabk+itab);
-      tabk[itab]=-1;    
-      mn = this->n;
-      for( k=tabk[ie=0]; ie <itab; k=tabk[++ie])
-	{ iVhk=(int) Vh(k);
-        for (jl=0;jl<iVhk;jl++) // modif Oct 2008 valgrind
-	  { 
-	    j=Vh(k,jl) ;
-	    mn = Min ( mn , Vh.FirstDFOfNode(j) ) ;}
-        }
-       //for( k=tabk[ie=0]; ie <itab; k=tabk[++ie])
-        { 
-	  k=ke; // bof bof a verifier finement .... FH
-	  iVhk=(int) Vh(k);  
-        //for (j=Vh(k,jl=0);jl<(int) Vh(k);j=Vh(k,++jl)) 
-	for (jl=0;jl<iVhk;jl++) // modif Oct 2008 valgrind
-	     {
-		 j=Vh(k,jl);
-	      int df1 = Vh.LastDFOfNode(j);
-	      for (int df= Vh.FirstDFOfNode(j);  df < df1; df++  )
-	       pf[df] = Max(pf[df],df-mn);
-	     }
-	     }
-    }
-  int l =0;
-  for (i=0;i<this->n;i++)  {int tmp=l;l += pf[i]; pf[i]=tmp;}
-  pf[this->n] = l;
-  if(verbosity >3) 
-    cout << "  -- SizeOfSkyline =" <<l << endl;
-
-  pU = pf; // pointeur profile U
-  pL = pf; // pointeur profile L
-  D = 0; // diagonal
-  U = 0; // upper part
-  L = 0; // lower part 
-}
-
-template<class R>
-void MatriceProfile<R>::addMatMul(const KN_<R> &x,KN_<R> &ax) const 
-{if (x.n!= this->n ) ERREUR(MatriceProfile MatMut(xa,x) ," longueur incompatible x (in) ") ;
- if (ax.n!= this->n ) ERREUR(MatriceProfile MatMut(xa,x) ," longueur incompatible ax (out)") ;
- int i,j,k,kf;
- ffassert(this->n == this->m);
- if (D) 
-   for (i=0;i<this->n;i++) 
-     ax[i] += D[i]*x[i];
- else
-   for (i=0;i<this->n;i++) // no dia => identyty dai
-     ax[i] +=x[i];
-      
- if (L && pL )    
-   for (kf=pL[0],i=0;  i<this->n;   i++  )  
-     { 
-       k=kf;
-       kf=pL[i+1];
-       for ( j=i-kf+k;   k<kf; j++,  k++  )
-	 ax[i] += L[k]*x[j],throwassert(i>=0 && i <this->n && j >=0 && j < this->m && k>=0 && k < pL[this->n]);
-     }
- 
- if (U && pU)     
-   for (kf=pU[0],j=0;  j<this->m;  j++)  
-     {
-       k=kf;
-       kf=pU[j+1];
-       for ( i=j-kf+k;   k<kf; i++,  k++  )
-	 ax[i] += U[k]*x[j],throwassert(i>=0 && i <this->n && j >=0 && j < this->m &&  k>=0 && k < pU[this->n]);
-     }
- 
- 
-}
-
-
-template<class R>
-void MatriceProfile<R>::operator=(const R & v) {
-  if(v!=R())
-    { cerr << " Mise a zero d'une matrice MatriceProfile<R>::operator=(R v) uniquement v=" << v << endl;
-    throw(ErrorExec("exit",1));
-    }
-  typefac = FactorizationNO;
-  delete [] U;
-  delete [] L;
-  delete [] D;
-  U=L=D=0;
-}
-template<class R>
-MatriceCreuse<R>  & MatriceProfile<R>::operator +=(MatriceElementaire<R> & me) {
-  int il,jl,i,j,k;
-  int * mi=me.ni, *mj=me.nj;
-  if (!D)  // matrice vide 
-    { D  = new R[this->n];
-    L  = pL[this->n] ? new R[pL[this->n]] :0 ;
-    for (i =0;i<this->n;i++) D[i] =0;
-    for (k =0;k<pL[this->n];k++) L[k] =0;
-    switch (me.mtype) {
-    case MatriceElementaire<R>::Full :     
-      U  = pU[this->n] ? new R[pU[this->n]] : 0;
-      for (k =0;k<pU[this->n];k++) U[k] =0;
-      break;
-    case MatriceElementaire<R>::Symmetric :     
-      U = L; 
-      break;
-    default:
-      cerr << "Big bug type MatriceElementaire unknown" << (int) me.mtype << endl;
-      throw(ErrorExec("exit",1));
-      break; 
-    }
-    }
-  R * al = me.a; 
-  switch (me.mtype) {
-  case MatriceElementaire<R>::Full : //throwassert(L !=U);
-    for (il=0; il<me.n; ++il) // modif overflow FH win32  oct 2005
-     { i=mi[il];
-      for ( jl=0; jl< me.m ; ++jl,++al)  // modif overflow FH
-        { j=mj[jl] ;
-	  if      (j<i)  L[ pL[i+1] - (i-j) ] += *al;
-	  else if (j>i)  U[ pU[j+1] - (j-i) ] += *al;
-	  else           D[i] += *al;}}
-    break;
-     
-  case MatriceElementaire<R>::Symmetric : //throwassert(L ==U);   
-    for (il=0; il<me.n; ++il) // modif overflow FH win32
-      { i=mi[il];
-      for (jl=0;jl<= il;++jl)
-       { j=mj[jl]  ;
-	 if      (j<i)  L[ pL[i+1] - (i-j) ] += *al++;
-	 else if (j>i)  U[ pU[j+1] - (j-i) ] += *al++;
-	 else           D[i] += *al++;}}
-    break;
-  default:
-    cerr << "Big bug type MatriceElementaire unknown" << (int) me.mtype << endl;
-    exit(1);
-    break; 
-  }      
-  return *this;
-} 
-
-template<class R>
-ostream& MatriceProfile<R>::dump (ostream& f) const 
-{f<< " matrix skyline " << this->n << '\t' << this->m << '\t' ;
- f <<  "  this " << endl;
- f << " pL = " << pL << " L ="  << L << endl
-   << " pU = " << pU << " U ="  << U << endl
-   << " D = " << D << endl;
- if ( (pL == pU) &&  (U == L) )
-   if (pL && L) 
-     {f << " skyline symmetric " <<endl;
-     int i,j,k;
-     for (i = 0;i<this->n;i++) 
-       { f << i << " {" << pL[i+1]-pL[i] << "}" <<'\t' ;
-       for (k=pL[i];k<pL[i+1];k++)
-	 { j=i-(pL[i+1]-k);
-	 f << j << " " << L[k] << "; "; 
-	 }
-       f <<  i  << ":" << D[i] << endl  ;
-       }
-     }
-   else f << "Skyline: pointeur null " <<endl; 
- else 
-   { 
-     f << " Skyline  non symmetric " << endl;
-     int i,k;
-     for (i = 0;i<this->n;i++) 
-       {
-	 f << i ;
-	 if (pL && L) 
-	   {
-	     f << " jO=" << i-pL[i+1]+pL[i] << " L= " <<'\t' ;
-	     for (k=pL[i];k<pL[i+1];k++)
-	       { 
-		 f <<  " " << L[k] ; 
-	       }
-	   }
-	 if (D)
-	   f  << " D= " << D[i]  << '\t' ;
-	 else 
-	   f  << " D=0 => 1 ; ";
-	 if (pU && U) 
-	   {
-	     f << " i0=" << i-pU[i+1]+pU[i] << " U= " <<'\t' ;
-	     for (k=pU[i];k<pU[i+1];k++)
-	       f << " " << U[k] ; 
-
-	   }
-	 f << endl;  
-       }
-    
-   }
- return f;
-}
-template<class R>
-void MatriceProfile<R>::cholesky(double eps) const {
-  double eps2=eps*eps;
-  R  *ij , *ii  , *ik , *jk , xii;
-  int i,j,k;
-  if (L != U) ERREUR(factorise,"Skyline matrix non symmetric");
-  U = 0; // 
-  typefac = FactorizationCholeski;
-  if ( RNM::norm2(D[0]) <= 1.0e-60)
-      ERREUR(cholesky,"pivot (" << 0 << ")= " << D[0] )
-  
-  D[0] = sqrt(D[0]); 
-  ij = L ; // pointeur sur le terme ij de la matrice avec j<i 
-  for (i=1;i<this->n;i++) // boucle sur les lignes 
-    { ii = L+pL[i+1]; // pointeur sur le terme fin de la ligne +1 =>  ij < ii;
-    xii = D[i] ; 
-    for ( ; ij < ii ; ij++) // pour les j la ligne i
-      { j = i -(ii - ij); 
-      k = Max( j - (pL[j+1]-pL[j]) ,  i-(pL[i+1]-pL[i]) ); 
-      ik =  ii - (i - k); 
-      jk =  L + pL[j+1] -(j - k); 
-      k = j - k ;
-      R s= -*ij; 
-#ifdef WITHBLAS
-      s += blas_sdot(k,ik,1,jk,1);
-#else
-      while(k--) s += *ik++ * *jk++;  
-#endif
-      *ij =  -s/D[j] ;
-      xii -= *ij * *ij ;
-      }
-    // cout << RNM::norm2(xii) << " " << Max(eps2*RNM::norm2(D[i]),1.0e-60) << " " << sqrt(xii) <<endl;
-    if ( RNM::norm2(xii) <= Max(eps2*RNM::norm2(D[i]),1.0e-60)) 
-      ERREUR(cholesky,"pivot (" << i << ")= " << xii << " < " << eps*abs(D[i]))
-    D[i] = sqrt(xii);
-    }
-}
-template<class R>
-void MatriceProfile<R>::crout(double eps) const  {
-  R  *ij , *ii  , *ik , *jk , xii, *dkk;
-  int i,j,k;
-  double eps2=eps*eps;
-  if (L != U) ERREUR(factorise,"Skyline matrix  non symmetric");
-  U = 0; // 
-  typefac = FactorizationCrout;
-   
-  ij = L ; // pointeur sur le terme ij de la matrice avec j<i 
-  for (i=1;i<this->n;i++) // boucle sur les lignes 
-    { ii = L+pL[i+1]; // pointeur sur le terme fin de la ligne +1 =>  ij < ii;
-    xii = D[i] ; 
-    for ( ; ij < ii ; ij++) // pour les j la ligne i
-      { j = i -(ii - ij); 
-      k = Max( j - (pL[j+1]-pL[j]) ,  i-(pL[i+1]-pL[i]) ); 
-      ik =  ii - (i - k); 
-      jk =  L + pL[j+1] -(j - k); 
-      dkk = D + k;
-      k = j - k ; 
-      R s=-*ij;
-      while ( k-- ) s += *ik++ * *jk++ * *dkk++;  
-      *ij = -s/ *dkk ; // k = j ici 
-
-      xii -= *ij * *ij * *dkk;
-      }
-    if (RNM::norm2(xii) <= Max(eps2*RNM::norm2(D[i]),1.0e-60))
-      ERREUR(crout,"pivot (" << i << " )= " << abs(xii)<< " <= " << eps*abs(D[i]) << " eps = " << eps)
-	D[i] = xii;
-    }
-}
-template<class R>
-void MatriceProfile<R>::LU(double eps) const  {
-  R s,uii;
-  double eps2=eps*eps;
-  int i,j;
-  if (L == U && ( pL[this->n]  || pU[this->n] ) ) ERREUR(LU,"matrix LU  symmetric");
-  if(verbosity>3)
-  cout << "  -- LU " << endl;
-  typefac=FactorizationLU;
-
-  for (i=1;i<this->n;i++) // boucle sur les sous matrice de rang i 
-    { 
-      // for L(i,j)  j=j0,i-1
-      int j0 = i-(pL[i+1]-pL[i]);
-      for ( j = j0; j<i;j++)
-        {           
-          int k0 = Max(j0,j-(pU[j+1]-pU[j]));
-          R *Lik = L + pL[i+1]-i+k0; // lower
-          R *Ukj = U + pU[j+1]-j+k0; // upper
-          s =0;
-#ifdef WITHBLAS
-	  s = blas_sdot(j-k0,Lik,1,Ukj,1);
-	  Lik += j-k0;
-#else
-          for (int k=k0;k<j;k++) // k < j < i ;
-	    s += *Lik++ * *Ukj++ ;     // a(i,k)*a(k,j);
-#endif
-	  *Lik -= s;
-	  *Lik /= D[j]; //  k == j here
-        }
-      // for U(j,i) j=0,i-1        
-      j0=i-pU[i+1]+pU[i];
-      for (j=j0;j<i;j++) 
-	{
-	  s = 0;
-	  int k0 = Max(j0,j-pL[j+1]+pL[j]);
-	  R *Ljk = L + pL[j+1]-j+k0;   
-	  R *Uki = U + pU[i+1]-i+k0;   
-#ifdef WITHBLAS
-	  s = blas_sdot(j-k0,Ljk,1,Uki,1);
-          Uki += j-k0;
-#else
-	  for (int k=k0  ;k<j;k++)    // 
-	    s +=  *Ljk++ * *Uki++ ;
-#endif
-	  *Uki -= s;  // k = j here 
-	}
-      // for D (i,i) in last because we need L(i,k) and U(k,i) for k<j
-      int k0 = i-Min(pL[i+1]-pL[i],pU[i+1]-pU[i]);
-      R *Lik = L + pL[i+1]-i+k0; // lower
-      R *Uki = U + pU[i+1]-i+k0; // upper
-      s =0;
-#ifdef WITHBLAS
-       s = blas_sdot(i-k0,Lik,1,Uki,1);
-#else
-      for (int k=k0;k<i;k++) // k < i < i ;
-	s += *Lik++ * *Uki++ ;     // a(i,k)*a(k,i);
-#endif
-      // cout << " k0 " << k0 << " i = " << i << " " <<  s << endl;
-      uii = D[i] -s;
-      
-      if (RNM::norm2(uii) <= Max(eps2*RNM::norm2(D[i]),1.0e-30))
-	ERREUR(LU,"pivot (" << i << " )= " << abs(uii) << " <= " << eps*abs(D[i]) << " eps = " << eps);     
-      
-      D[i] = uii;
-      
-    }
-}
-
-
-template<class R>
-KN_<R> & operator/=(KN_<R> & x ,const MatriceProfile<R> & a) 
-{
-  // --------------------------------------------------------------------
-  //   si La diagonal D n'existe pas alors on suppose 1 dessus (cf crout)
-  // --------------------------------------------------------------------
-  R * v = &x[0];
-  int n = a.n;  
-  if (x.n != n ) 
-    ERREUR (KN_<R> operator/(MatriceProfile<R>),"  matrice et KN_<R> incompatible");
-  const R *ij ,*ii, *ik, *ki;
-  R *xk,*xi;
-  int i;
-  switch (a.typefac) {
-  case FactorizationNO:
-    if (a.U && a.L) {cerr << "APROGRAMMER (KN_<R><R>::operator/MatriceProfile)";throw(ErrorExec("exit",2));}
-   
-    if ( a.U && !a.L ) 
-      { // matrice triangulaire superieure
-	// cout << " remonter " << (a.D ? "DU" : "U") << endl;
-	ki = a.U + a.pU[n]; 
-	i = n;
-	while ( i-- )
-	  { ii = a.U + a.pU[i];
-          xi= xk  = v +  i ;
-          if (a.D) *xi /= a.D[i];// pour crout ou LU
-          while ( ki > ii) 
-	    *--xk  -=  *--ki *  *xi ; 
-	  }
-      }
-    else if  ( !a.U && a.L ) 
-      { // matrice triangulaire inferieure
-	// cout << " descente "  <<( a.D ? "LD" : "L" ) <<endl;
-	ii = a.L;
-	for (i=0; i<n; i++)
-	  { ij = ik = (a.L + a.pL[i+1]) ;  // ii =debut,ij=fin+1 de la ligne 
-          xk = v + i;
-          R ss = v[i]; 
-          while ( ik > ii) 
-	    ss -= *--ik * *--xk ; 
-          if ( a.D) ss /= a.D[i];// pour crout ou LU
-          v[i] = ss ;
-          ii = ij;
-	  }
-      }
-    else if (a.D) 
-      { // matrice diagonale
-	// cout << " diagonal D" <<endl;
-	for (i=0;i<n;i++) 
-	  v[i]=v[i]/a.D[i];
-      }
-    break;
-  case FactorizationCholeski:  
-    //     cout << " FactorizationChosleski" << endl;
-    x /= a.ld();
-    x /= a.ldt();   
-    break;
-  case FactorizationCrout:
-    //   cout << " FactorizationCrout" << endl;
-    x /= a.l();
-    x /= a.d();
-    x /= a.lt();
-    break;
-  case FactorizationLU:
-    //  cout << " FactorizationLU" << endl;
-    x  /= a.l();
-    x  /= a.du();
-    break;
-    /*   default:
-	 ERREUR  (operator /=(MatriceProfile," Error unkown type of Factorization  =" << typefac);
-    */
-  }
-  return x;
-}
-
-template <class R> 
- MatriceMorse<R>::MatriceMorse(KNM_<R> & A,double tol)
-    :MatriceCreuse<R>(A.N(),A.M(),false),solver(0) 
-      {
-  double tol2=tol*tol;    
-  symetrique = false;
-  this->dummy=false;
-  int nbcoeff=0;
-  for(int i=0;i<this->n;i++)
-    for(int j=0;j<this->m;j++)
-      if(RNM::norm2(A(i,j))>tol2) nbcoeff++;
-
-  nbcoef=nbcoeff;
-  nbcoeff=Max(nbcoeff,1); // pour toujours alloue quelque chose FH Bug dans CheckPtr
-  a=new R[nbcoeff] ;
-  lg=new int [this->n+1];
-  cl=new int [nbcoeff];
-  nbcoeff=0;
-  R aij;
-  for(int i=0;i<this->n;i++)
-   { 
-    lg[i]=nbcoeff;
-    for(int j=0;j<this->m;j++)
-     
-      if(RNM::norm2(aij=A(i,j))>tol2)
-       {
-         cl[nbcoeff]=j;
-         a[nbcoeff]=aij;
-         nbcoeff++;
-       }
-    }
-   lg[this->n]=nbcoeff;
-
-  
-}
-template <class R> 
- MatriceMorse<R>::MatriceMorse(const int  nn,const R *aa)
-    :MatriceCreuse<R>(nn),solver(0) 
-      {
-  symetrique = true;
-  this->dummy=false;
-  this->n=nn;
-  nbcoef=this->n;
-  a=new R[this->n] ;
-  lg=new int [this->n+1];
-  cl=new int [this->n];
-  for(int i=0;i<this->n;i++)
-   {
-    lg[i]=i;
-    cl[i]=i;
-    a[i]=aa[i];      
-      }
-lg[this->n]=this->n;
-}
-
-template<class R>
-template<class K>
- MatriceMorse<R>::MatriceMorse(const MatriceMorse<K> & A,R (*f)(K ))
-   : MatriceCreuse<R>(A.n,A.m,A.dummy),nbcoef(A.nbcoef),      
-     symetrique(A.symetrique),       
-     a(new R[nbcoef]),
-     lg(new int [this->n+1]),
-     cl(new int[nbcoef]),
-     solver(0)
-{
-  ffassert(a && lg &&  cl);
-  for (int i=0;i<=this->n;i++)
-    lg[i]=A.lg[i];
-  for (int k=0;k<nbcoef;k++)
-    {
-      cl[k]=A.cl[k];
-      a[k]=f(A.a[k]);
-    }
-  
-}
-
-template<class R>
-template<class K>
-MatriceMorse<R>::MatriceMorse(const MatriceMorse<K> & A)
-: MatriceCreuse<R>(A.n,A.m,A.dummy),nbcoef(A.nbcoef),      
-symetrique(A.symetrique),       
-a(new R[nbcoef]),
-lg(new int [this->n+1]),
-cl(new int[nbcoef]),
-solver(0)
-{
-    ffassert(a && lg &&  cl);
-    for (int i=0;i<=this->n;i++)
-        lg[i]=A.lg[i];
-    for (int k=0;k<nbcoef;k++)
-    {
-        cl[k]=A.cl[k];
-        a[k]=A.a[k];
-    }
-    
-}
-
-
-
-template <class R> 
-int MatriceMorse<R>::size() const 
-{
-  return nbcoef*(sizeof(int)+sizeof(R))+ sizeof(int)*(this->n+1);
-}
-
-inline int WhichMatrix(istream & f)
-{
-    string line;
-    while ( isspace(f.peek()))
-	f.get(); 
-    if  ( f.peek() =='#' )
-    {
-	line="";
-	while ( f.good()  )
-	{
-	    char c=f.get();
-	    if(c=='\n' || c=='\r') { break;}
-	    line += c;
-	}
-	if( line.find("(Morse)")) 
-	    return 2; // morse 
-	else 
-	    return 0; 
-    }
-  return 0;   
-}
-template <class R>
-  MatriceMorse<R>::MatriceMorse(istream & f)
-:  MatriceCreuse<R>(0,0,0),nbcoef(0),
-a(0),
-lg(0),
-cl(0),
-
-solver(0)
-{
-      string line;
-      int k=0;
-      while ( isspace(f.peek()))
-	      f.get(); 
-      while ( f.peek() =='#' )
-      {
-	line="";
-	while ( f.good()  )
-	{
-	    char c=f.get();
-	    if(c=='\n' || c=='\r') { break;}
-	    line += c;
-	}
-	if( f.peek()=='\n' || f.peek()=='\r') f.get();
-	if(verbosity>9)
-	 cout << "Read matrice: "<< k << " :"   << line << endl;
-	k++;    
-      }
-      
-      f >> this->n >> this->m >> symetrique >>nbcoef;
-      if(verbosity>3)
-      cout << " read mat: " <<  this->n << " " <<  this->m << " " << symetrique << " " << nbcoef <<endl;
-      lg= new int [this->n+1];
-      cl= new int[nbcoef];
-      a= new R[nbcoef];
-      ffassert(f.good() && lg && a && cl );
-      int i,j,i0,j0;
-      i0=-1;j0=2000000000;
-      R aij;
-      int imx=-2000000000, jmx=-2000000000;
-      int imn= 2000000000, jmn= 2000000000;
-      
-      for (int k =0;k<nbcoef; ++k)
-      {
-	  f >> i >> j >> aij;
-	  ffassert(f.good() );
-	  i--;j--;
-	  imx=max(imx,i);
-	  jmx=max(jmx,j);
-	  imn=min(imn,i);
-	  jmn=min(jmn,j);
-	  //cout << i << " " << j << " " << aij << endl;
-	  if(i0!=i) {j0=-1;lg[i]=k;}
-	  ffassert(i0<=i && j0<j);
-	  lg[i+1]=k+1;
-	  cl[k]=j;
-	  a[k]=aij;
-	  j0=j;i0=i;
-      }
-      ffassert( imx < this->n && jmx < this->m );
-      ffassert( imn >=0 && jmn >=0);
-      
-}
-
-template <class R> 
-ostream& MatriceMorse<R>::dump(ostream & f) const 
-{
-  f << "# Sparse Matrix (Morse)  " << endl;
-  f << "# first line: n m (is symmetic) nbcoef \n";
-  f << "# after for each nonzero coefficient:   i j a_ij where (i,j) \\in  {1,...,n}x{1,...,m} \n";  
- 
-  f << this->n << " " << this->m << " " << symetrique << "  " << nbcoef <<endl;
-  int k=lg[0];
-  int pold= f.precision();
-  for (int i=0;i<this->n;i++)
-   { 
-    
-//    f << i << " : " << lg[i] <<","<< lg[i+1]-1 << " : " ;
-    int ke=lg[i+1];
-    for (;k<ke;k++)
-      f << setw(9) << i+1 << ' ' << setw(9) << cl[k]+1 << ' ' << setprecision( 20) << a[k]<< '\n' ;
-     // if (RNM::norm2(a[k])) f  << cl[k] << " " << a[k]<< ", ";
-     // else f  << cl[k] << " 0., " ;
-   // f << endl;    
-   }
-   f.precision(pold);
-  return f;
-}
-template <class R> 
-inline R*  MatriceMorse<R>::pij(int i,int j) const 
- {
-   if (! (i<this->n && j< this->m)) 
-   throwassert(i<this->n && j< this->m);
-   int i0=lg[i];
-   int i1=lg[i+1]-1;
-   while (i0<=i1) // dichotomie
-    { 
-      int im=(i0+i1)/2;
-      if (j<cl[im]) i1=im-1;
-      else if (j>cl[im]) i0=im+1;
-      else return a+im;      
-    }
-   return 0;     
- }
-template <class R>
-template <class FESpace> 
-void MatriceMorse<R>::Build(const FESpace & Uh,const FESpace & Vh,bool sym,bool VF)
-{
-  typedef typename FESpace::Mesh Mesh;
-  
-  // for galerkine discontinue ....
-  // VF : true=> Finite Volume matrices (change the stencil) 
-  // VF = false => Finite element 
-  // F. Hecht nov 2003
-  // -----
-  symetrique = sym;
-  this->dummy=false;
-  a=0;
-  lg=0;
-  cl=0;
-  //  bool same  = &Uh == & Vh;
-  ffassert( &Uh.Th == &Vh.Th);  // same Mesh
-  const Mesh & Th(Uh.Th);
-  //int nbt = Th.nt;
-  //int nbv = Th.nv;
-  //int nbm = Th.NbMortars;
-  int nbe = Uh.NbOfElements;
-  int nbn_u = Uh.NbOfNodes;
-  int nbn_v = Vh.NbOfNodes;
-  
-  KN<int> mark(nbn_v);
-  KN<int> pe_u(nbn_u+1+Uh.SizeToStoreAllNodeofElement());
-  //  les element du node i 
-  // sont dans pe_u[k] pour k \in [ pe_u[i] , pe_u[i+1] [
-  pe_u=0;
-  for (int k=0;k<nbe;k++)
-    { 
-      int nbne=Uh(k);
-      for (int in=0;in<nbne;in++)
-        pe_u[(Uh(k,in)+1)]++;
-   }
-  int kk= nbn_u+1,kkk=kk;
-  pe_u[0]=kk;
-  for (int in1=1;in1<=nbn_u;in1++)
-    { // in1 = in + 1
-      kk += pe_u[in1];
-      pe_u[in1] = kkk; // store the last of in 
-      kkk=kk;
-    } 
-  if(verbosity>4) 
-    cout <<"  -- MatriceMorse<R>::Build " << kk << " " << nbn_u << " " << Uh.SizeToStoreAllNodeofElement() 
-	 << " " <<  nbn_u+1+Uh.SizeToStoreAllNodeofElement() << endl;
-  ffassert(kk== nbn_u+1+Uh.SizeToStoreAllNodeofElement());
-  for (int k=0;k<nbe;k++)
-    { 
-      int nbne=Uh(k);
-      for (int in=0;in<nbne;in++)
-        pe_u[pe_u[(Uh(k,in)+1)]++] = k;
-    }
-  
-  
-  int color=0;
-  mark=color++;
-  lg = new int [this->n+1];
-  ffassert(lg);
-  for (int step=0;step<2;step++) 
-    { 
-      int ilg=0;
-      lg[0]=ilg;
-      int kij=0;
-    for (int in=0;in<nbn_u;in++)
-      {
-	int nbj=0; // number of j
-	int kijs=kij;
-	// for all triangle contening node in
-	for (int kk= pe_u[in];kk<pe_u[in+1];kk++)
-	  {
-	    int ke=pe_u[kk];// element of 
-	    int tabk[10];
-	    int ltab=0;
-	    tabk[ltab++]=ke;
-	    if( VF) // if Finite volume then add Triangle adj in stencil ...
-	      ltab+= Th.GetAllElementAdj(ke,tabk+ltab);
-	    tabk[ltab]=-1;
-	    for(int ik=0,k=tabk[ik];ik<ltab;k=tabk[++ik])
-	      {
-		throwassert(k>=0 && k < nbe);
-		int njloc = Vh(k);
-		for (int jloc=0;jloc<njloc;jloc++)
-		  { 
-		    int  jn = Vh(k,jloc);
-		    if (mark[jn] != color && (!sym ||  jn < in) ) 
-		      {
-			mark[jn] = color;
-			int fdf=Vh.FirstDFOfNode(jn);
-			int ldf=Vh.LastDFOfNode(jn);
-			if (step)
-			  for (int j=fdf;j<ldf;j++)
-			    cl[kij++] = j;
-			nbj += ldf-fdf;
-		      }            
-		  }} 
-	  }
-	int fdf=Uh.FirstDFOfNode(in);
-	int ldf=Uh.LastDFOfNode(in);
-	int kijl=kij;
-	if (step)
-	  {
-	    HeapSort(cl+kijs,kij-kijs);
-	    for (int i=fdf;i<ldf;i++)
-	      { 
-		if (i!=fdf) //  copy the ligne if not the first 
-		  for (int k=kijs;k<kijl;k++)
-		    cl[kij++]=cl[k]; 
-		if (sym) // add block diag
-		  for(int j=fdf;j<=i;j++)
-		    cl[kij++]=j;            
-		throwassert(kij==lg[i+1]);// verif           
-	      }
-	  }
-	else
-	  for (int i=fdf;i<ldf;i++)
-	    { 
-	      if (sym) ilg += ++nbj; // for the diag block
-	      else ilg += nbj;             
-	      lg[i+1]=ilg;
-	    }
-	color++; // change the color
-      }
-    if (step==0) { // do allocation 
-      nbcoef=ilg;
-      if (verbosity >3)
-<<<<<<< HEAD
-        cout << "  -- MorseMatrix: Nb coef !=0 " << nbcoef << "  n =" << this->n << " m = " << this->m << endl;
-=======
-        cout << "  -- MorseMatrix: Nb coef !=0 " << nbcoef << endl;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      a = new R[nbcoef];
-      cl = new int [nbcoef];}
-    ffassert( a && cl);
-    for (int i=0;i<nbcoef;i++) 
-      a[i]=0;
-<<<<<<< HEAD
-   }
-    if( verbosity > 999)
-    {
-        cout << "  -- MorseMatrix: " << endl;
-        for(int i=0; i< this->n; ++i)
-        { cout << i << " : " ;
-            for(int k=lg[i];k<lg[i+1]; ++k)
-                cout << cl[k] << ' ';
-            cout << endl;
-        }
-    }
-    
-}
-template<class R> inline void ConjArray( R  *v, int n)
-=======
-    
-   }
-  
-}
-template<class R> inline void ConjArray( R  *v, int n) 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  for (int i=0;i<n;++i)
-    v[i] = RNM::conj(v[i]);
-}
-template<> inline void ConjArray<double>(double *v, int n) {}
-template<> inline void ConjArray<float>(float *v, int n) {}
-
-template<class R>
- void  MatriceMorse<R>::dotransposition()
- {
-   if(symetrique) return; 
-   
-   ffassert(this->dummy==false);  
-   int *llg= new int[nbcoef];
-   int *clg= new int[this->m+1];
-   
-   for (int i=0;i<this->n;i++)
-     for (int k=lg[i];k<lg[i+1];k++)
-        llg[k]=i;
- 
-  HeapSort(cl,llg,a,nbcoef);
-  for(int k=0;k<this->m;k++)
-    clg[k]=-1;
-
-  // build new line end (old column)
-  for(int k=0;k<nbcoef;k++)
-    clg[cl[k]+1]=k+1;
-      
-   for(int kk=0, k=0;k<=this->m;k++)
-   if (clg[k]==-1)
-      clg[k]=kk;
-    else kk=clg[k];
-    
-  clg[this->m]=nbcoef;
-  // sort the new column (old line)
-  for(int i=0;i<this->m;i++)  
-    HeapSort(llg+clg[i],cl+clg[i],a+clg[i],clg[i+1]-clg[i]); 
-  delete[] cl;
-  delete[] lg;
-  Exchange(this->n,this->m);       
-  cl=llg;
-  lg=clg;
-  ConjArray(a,nbcoef);    
- }
-
-template<class R>
- triplet<int,int,bool> BuildCombMat(std::map< pair<int,int>, R> & mij,const list<triplet<R,MatriceCreuse<R> *,bool> >  &lM,bool trans,int ii00,int jj00,bool cnj=false)
-  {
-    // modif FH feb 2010  cnj =>  transpose ->  conj &  trans 
-    typedef typename list<triplet<R,MatriceCreuse<R> *,bool> >::const_iterator lconst_iterator;
-    
-    lconst_iterator begin=lM.begin();
-    lconst_iterator end=lM.end();
-    lconst_iterator i;
-    
-   // std::map< pair<int,int>, R> mij;
-    
-    int n=0,m=0;
-    bool sym=true;
-    for(i=begin;i!=end;i++++)
-     {
-	if(i->second) // M == 0 => zero matrix 
-	{
-	    MatriceCreuse<R> & M=*i->second;
-	    bool transpose = i->third !=  trans;
-	    ffassert( &M);
-	    R coef=i->first;
-	    if(verbosity>3)
-		cout << "                BuildCombMat + " << coef << "*" << &M << " " << sym << "  t = " << transpose << " " <<  i->third << endl;
-	    //  change to max FH dec 2007 to hard to satisfy
-	   /* if (n==0)*/ { if(transpose) {m=max(m,M.n); n=max(n,M.m);} else{n=max(M.n,n); m=max(M.m,m);}}// Modif mars 2007 FH
-	   /* else { if(transpose)  ffassert(n== M.m && m==M.n); else ffassert(n== M.n && m==M.m);}*/
-	    sym = M.addMatTo(coef,mij,transpose,ii00,jj00,transpose&&cnj) && sym;  
-	}
-     } 
-    int nbcoef=mij.size();
-    if(sym) nbcoef = (nbcoef+n)/2;
-
-  // return new   MatriceMorse<R>(n,m,mij,sym);   
-    return make_triplet(n,m,sym);
-  }
-  
-template<class R>
-  MatriceMorse<R> * BuildCombMat(const list<triplet<R,MatriceCreuse<R> *,bool> >  &lM,bool trans,int ii00,int jj00)
-  {
-   
-    std::map< pair<int,int>, R> mij;
-    triplet<int,int,bool> nmsym=BuildCombMat(mij,lM,trans,ii00,jj00);
-
-   return new   MatriceMorse<R>(nmsym.first,nmsym.second,mij,nmsym.third);   
-     
-  }
-template<class R>
-bool MatriceMorse<R>::addMatTo(R coef,std::map< pair<int,int>, R> &mij,bool trans,int ii00,int jj00,bool cnj,double threshold)
-{
-  double eps0=max(numeric_limits<double>::min(),threshold);
-  int i,j,k;
-  if (symetrique)
-   {
-     for ( i=0;i<this->n;i++)
-       for ( k=lg[i];k<lg[i+1];k++)
-         {
-           j=cl[k];
-           R cij =  coef* ( cnj ? RNM::conj(a[k]) : a[k]);
-           if(RNM::norm2(cij)>eps0)
-           {
-            mij[ij_mat(trans,ii00,jj00,i,j)] += cij ;
-           if (i!=j)
-             mij[ij_mat(trans,ii00,jj00,j,i)] += cij;
-           }
-         }
-           
-   }
-  else
-   {
-     for ( i=0;i<this->n;i++)
-       for ( k=lg[i];k<lg[i+1];k++)
-         {
-           j=cl[k];
-           R cij =  coef* ( cnj ? RNM::conj(a[k]) : a[k]);
-
-           if(RNM::norm2(cij)>eps0)
-           mij[ij_mat(trans,ii00,jj00,i,j)] += cij;
-         }
-   }
-
-return symetrique;
-}
-
- 
-template<class R> 
-template<class K>
-MatriceMorse<R>::MatriceMorse(int nn,int mm, std::map< pair<int,int>, K> & m, bool sym):
-  MatriceCreuse<R>(nn,mm,0),
-  nbcoef(m.size()),symetrique(sym),
-  a(new R[nbcoef]),
-  lg(new int[nn+1]),
-  cl(new int[nbcoef]),     
-  solver(0)
-{
-     int k=0;
-     bool nosym=!sym;
-     typename std::map< pair<int,int>, R>::iterator iter=m.begin(), mend=m.end();
-     //  remarque lg est croissant Bug trouver par 
-     for(int i=0;i<=nn;i++) lg[i]=0; 
-     while(iter!=mend)
-      { 
-        int i=iter->first.first;
-        int j=iter->first.second;
-        K & aij=iter->second;
-        assert( i < nn && j < mm);
-        if(j<=i || nosym)
-        {
-         cl[k]=j;
-         a[k]=aij;
-         lg[i+1]=++k;
-        }
-        ++iter;
-       }
-    // lg est croissant  on bouche les trou   
-   for(int i=1;i<=nn;i++) lg[i]=Max(lg[i-1],lg[i]); 
-      
-   ffassert(nbcoef==k);  
-  }
-// FH  mars 2009 ... 
-template<class R>
- void  MatriceMorse<R>::resize(int nn,int mm) 
-{
-    int nc=0;   
-    int *nlg=new int[nn+1],*ncl=0;
-    int nm=min(nn,this->n);
-    nc =0;
-    nlg[0]=nc; 
-    if (symetrique)
-      {   if( nn != mm) AFAIRE("MatriceMorse<R>::resize symetric  n!=m");
-	  for (int i=0;i<nm;i++)
-	    {
-	      for (int k=lg[i];k<lg[i+1];k++)
-		{   int j=cl[k];
-		    if( j<this->m && RNM::norm2(a[k]))		    
-			++nc;		   
-		}
-		nlg[i+1]=nc;
-	    }
-	  
-      }
-    else
-      {
-	  for (int i=0;i<nm;i++)
-	    {
-	      for (int k=lg[i];k<lg[i+1];k++)
-		{
-		    int j=cl[k];
-		    if(i<this->n && j<this->m && RNM::norm2(a[k]))
-			++nc ;
-		}
-		nlg[i+1]=nc;
-	    }
-      }
-    for(int i=nm+1;i<=nn;++i)
-	nlg[i]=nc;
-    ncl = new int[nc];
-    R *na=new R[nc];
-    nc=0;
-
-    if (symetrique)
-      {   if( nn != mm) AFAIRE("MatriceMorse<R>::resize symetric  n!=m");
-	  for (int i=0;i<nm;i++)
-	      for (int k=lg[i];k<lg[i+1];k++)
-		{   int j=cl[k];
-		    if( j<this->m && RNM::norm2(a[k]))		    
-		      {na[nc]=a[k];
-		       ncl[nc++]=j;}
-		}
-	  
-      }
-    else
-      {
-	  for (int i=0;i<nm;i++)
-	      for (int k=lg[i];k<lg[i+1];k++)
-		{
-		    int j=cl[k];
-		    if( j<this->m && RNM::norm2(a[k]))
-		      {na[nc]=a[k];
-		       ncl[nc++]=j;}
-		}
-      }
-    
-    delete [] cl;
-    delete [] lg;
-    delete [] a;
-    cl=ncl;
-    lg=nlg;
-    a=na;
-    this->n=nn;
-    this->m=mm;
-    this->N=nn;
-    this->M=mm;
-    this->nbcoef=nc;
- //   cout << nn << " " << mm << "  " <<  KN_<int>(lg,nn+1) << endl;
-    
-}
-template<class RA>
- template<class RB,class RAB>
- void  MatriceMorse<RA>::prod(const MatriceMorse<RB> & B, MatriceMorse<RAB> & AB)
- {
-   //  compute the s
-  bool sym=this == & B &&symetrique;
-  int *blg=B.lg;
-  int *bcl=B.cl;
-  ffassert(this->m==B.n); 
-  bool delbl= B.symetrique;
-  if (delbl)
-    {
-     int nn=B.n;
-      blg = new int[nn+1];
-     for (int i=0;i<B.n;i++)
-         blg[i]=B.lg[i+1]-B.lg[i];
-      blg[nn]=0;   
-      
-      for (int i=0;i<nn;i++)
-        for (int k= B.lg[i];k<B.lg[i+1];k++)
-          {  int j=B.cl[k];
-              assert(j <= i);
-             if (j!=i)  
-               blg[j]++;
-             }
-             
-      for (int i=1;i<=nn;i++)
-       blg[i]+=blg[i-1];
-      int nbnz = blg[nn];
-      bcl= new int[nbnz];
-      
-      for (int i=0;i<B.n;i++)
-        for (int k= B.lg[i];k<B.lg[i+1];k++)
-          {  int j=B.cl[k];
-             assert(j <= i);
-             bcl[--blg[i] ]=j;
-             if(i !=j)
-               bcl[--blg[j]]=i;
-          }
-    }
-   
-   set<pair<int,int> > sij;
-   double eps0=numeric_limits<double>::min();
-
-     for (int i=0;i<this->n;i++)
-       for (int k=lg[i];k<lg[i+1];k++)
-         {    
-           int j=cl[k];
-           if(RNM::norm2(a[k])<eps0) continue;
-           int ii[2],jj[2];
-           ii[0]=i;ii[1]=j;
-           jj[0]=j;jj[1]=i;
-           int kk=1;
-           if(symetrique && i != j) kk=2;
-           for (int ll=0;ll<kk;ll++)
-            {
-                int i=ii[ll];
-                int j=jj[ll];
-		if(j>=B.n) continue; // in case of not equal size A.m != B.n 
-                for (int kkb=blg[j];kkb<blg[j+1];kkb++)
-                  { 
-                   int kz= bcl[kkb];
-                   RB bjk;
-                   if (B.symetrique && kz > j)
-                     bjk=B(kz,j);
-                   else
-                      bjk=B(j,kz);
-                   if( RNM::norm2(bjk)>eps0 && (!sym || kz<=i))
-                     sij.insert(make_pair(i,kz));
-                  }
-            }
-           
-         }
-    int nn=this->n;
-    int mm=B.m;
-    int * llg=new int[nn+1];
-    int * lcl=new int[sij.size()];  
-    RAB * aa = new RAB[sij.size()];
-    for(int i=0;i<=nn;i++)
-        llg[i]=0;
-        
-    for (set<pair<int,int> >::iterator iter=sij.begin();iter!=sij.end();++iter)
-      { 
-        int i=iter->first;
-	// int j=iter->second;
-        llg[i]++;
-       }
-     for (int i=1;i<=nn;i++)
-       llg[i]+=llg[i-1];
-     ffassert(llg[this->n]==(long) sij.size());
-     for (set<pair<int,int> >::iterator iter=sij.begin();iter!=sij.end();++iter)
-      { 
-        int i=iter->first;
-        int j=iter->second;
-       // cout << i << " , " << j << endl;
-        lcl[--llg[i]]=j;
-       }
-     for(int i=0;i<nn;i++)  
-       HeapSort(lcl+llg[i],llg[i+1]-llg[i]); 
-       
-     AB.n=nn;
-     AB.m=mm;
-     AB.N=nn;  // add missing jan 2008 FH
-     AB.M=mm;  // add missing jan 2008 FH
-
-     AB.lg=llg;
-     AB.cl=lcl;
-     AB.a=aa;        
-     AB.nbcoef=sij.size();
-     AB.symetrique=sym;
-     AB.dummy=false;
-     AB = RAB();
-     for (int i=0;i<this->n;i++)
-       for (int k=lg[i];k<lg[i+1];k++)
-         {    
-           int j=cl[k];
-           RAB aij = a[k];
-           if(RNM::norm2(aij) <eps0 ) continue;
-           int ii[2],jj[2];
-           ii[0]=i;ii[1]=j;
-           jj[0]=j;jj[1]=i;
-           int kk=1;
-           if(symetrique && i != j) kk=2;
-           for (int ll=0;ll<kk;ll++)
-            {
-                int i=ii[ll];
-                int j=jj[ll];
-		if(j>=B.n) continue; // in case of not equal size A.m != B.n 
-                for (int kb=blg[j];kb<blg[j+1];kb++)
-                  { 
-                   int k= bcl[kb];
-                   RB bjk;
-                   if (B.symetrique && k > j)
-                     bjk=B(k,j);
-                   else
-                      bjk=B(j,k);
-                //   cout << i << "," << "," << j << "," << k << " " << aij << " " << bjk << endl;
-                   if( RNM::norm2( bjk)> eps0  && (!sym || k<=i))
-                       AB(i,k) += aij*bjk;
-                  }
-            }
-           
-         }
-
-    if (delbl) {
-      delete [] blg;
-      delete [] bcl;
-    }
-     
-     
- }
-
-template<class R>
-  void  MatriceMorse<R>::addMatMul(const KN_<R> &  x, KN_<R> & ax) const   
-{
-  int i,j,k;
-  if( ! (this->n==ax.N() && this->m==x.N()))
-    {cerr << " Err MatriceMorse<R>:  ax += A x" <<endl;
-      cerr << " A.n " << this->n<< " !=  "<< ax.N() << " ax.n \n";
-      cerr << " A.m " << this->m<< " != " <<x.N() << " x.n \n" ;
-      ffassert(0); 
-      abort();
-    }
-  if (symetrique)
-   {
-     for (i=0;i<this->n;i++)
-       for (k=lg[i];k<lg[i+1];k++)
-         {
-           j=cl[k];
-           ax[i] += a[k]*x[j];
-           if (i!=j)
-             ax[j] += a[k]*x[i];
-         }
-           
-   }
-  else
-   {
-     for (i=0;i<this->n;i++)
-       for (k=lg[i];k<lg[i+1];k++)
-         {
-           j=cl[k];
-           ax[i] += a[k]*x[j];
-         }
-   }
-}
-
-template<class R>
-  void  MatriceMorse<R>::addMatTransMul(const KN_<R> &  x, KN_<R> & ax) const   
-{
-  int i,j,k;
-  ffassert(this->m==ax.N());
-  ffassert(this->n==x.N());  
-  if (symetrique)
-   {
-     for (i=0;i<this->n;i++)
-       for (k=lg[i];k<lg[i+1];k++)
-         {
-           j=cl[k];
-           ax[j] += a[k]*x[i];
-           if (i!=j)
-             ax[i] += a[k]*x[j];
-         }
-           
-   }
-  else
-   {
-     for (i=0;i<this->n;i++)
-       for (k=lg[i];k<lg[i+1];k++)
-         {
-           j=cl[k];
-           ax[j] += a[k]*x[i];
-         }
-   }
-}
-
-
-template<class R>
-MatriceMorse<R>  & MatriceMorse<R>::operator +=(MatriceElementaire<R> & me) {
-<<<<<<< HEAD
-  //  R zero=R();
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  int il,jl,i,j;
-  int * mi=me.ni, *mj=me.nj;
-  if ((this->n==0) && (this->m==0))
-   {
-   
-    //    if(verbosity>3)
-    cout << "  -- Morse Matrice is empt: let's build it" << endl;
-    ffassert(0); 
-    /*
-    this->n=me.Uh.NbOfDF;
-    this->m=me.Vh.NbOfDF;
-    switch (me.mtype) {
-    case MatriceElementaire<R>::Full : 
-      Build(me.Uh,me.Vh,false);    
-      break;
-    case MatriceElementaire<R>::Symmetric :     
-      Build(me.Uh,me.Vh,true);    
-      break;
-     default:
-      cerr << "Big bug type MatriceElementaire is unknown" << (int) me.mtype << endl;
-      throw(ErrorExec("exit",1));
-      break; }     
-    */
-   }
-  R * al = me.a; 
-  R * aij;
-  switch (me.mtype) { // modif FH overfloat in array mi and mj => trap on win32
-  case MatriceElementaire<R>::Full : ffassert(!symetrique);
-    for (il=0; il<me.n; ++il)  { i=mi[il]; 
-      for ( jl=0; jl< me.m ; ++jl,++al)  {j=mj[jl];
-        aij = pij(i,j);
-<<<<<<< HEAD
-      //  if( *al!=zero )
-        {
-        throwassert(aij);
-            *aij += *al;}}}
-=======
-        throwassert(aij);
-	*aij += *al;}}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    break;
-     
-  case MatriceElementaire<R>::Symmetric : ffassert(symetrique);   
-    for (il=0; il<me.n; ++il) {  i=mi[il] ;
-      for (jl=0;jl< il+1 ; ++jl) { j=mj[jl];
-	 aij =    (j<i) ? pij(i,j) : pij(j,i);
-         throwassert(aij);
-         *aij += *al++;}}
-    break;
-  default:
-    cerr << "Big bug type MatriceElementaire unknown" << (int) me.mtype << endl;
-    exit(1);
-    break; 
-  }      
-  return *this;
-} 
-
-template<class R>
-  void MatriceMorse<R>::Solve(KN_<R> &x,const KN_<R> &b) const{
-    if (solver)    
-      solver->Solver(*this,x,b);
-    else
-  {  cerr << "No Solver defined  for this Morse matrix " << endl;
-    throw(ErrorExec("exit",1));}
-  }
-
-
-template<class R>
-double MatriceMorse<R>::psor(KN_<R> & x,const  KN_<R> & gmin,const  KN_<R> & gmax , double omega) 
-{
-  double err=0;
-  int n=this->n;
-  ffassert(n==this->m);
-  ffassert(n==x.N());
-  ffassert(n==gmin.N());
-  ffassert(n==gmax.N());
-  if (symetrique)
-   {
-     ErrorExec("Error:sorry psor just for no symmetric Morse matrices",1);
-   }
-  else
-   {
-     for (int i=0;i<this->n;i++)
-      {
-       R xnew =x[i];
-       R aii=R();
-       for (int k=lg[i];k<lg[i+1];k++)
-         {
-           int j=cl[k];
-           if(j!= i) 
-             xnew -= a[k]*x[j];
-            else aii=a[k];
-         }
-        if(aii != R())
-           xnew /= aii;
-         else ErrorExec("Error: psor diagonal coef = 0 ",1);
-        R dx  = (xnew - x[i])*omega ;
-        R xi = RNM::Min(RNM::Max(x[i]+dx,gmin[i]),gmax[i]);
-        dx = x[i]- xi;
-        err = Max(err, RNM::norm2(dx));
-        x[i] = xi;
-        }
-   }  return sqrt(err);
-  
-}
-
-template<class R>
-double MatriceProfile<R>::psor(KN_<R> & x,const  KN_<R> & gmin,const  KN_<R> & gmax , double omega) 
-{
-  double rr=0;
-  ErrorExec("Error:sorry psor just for no symmetric Morse matrices (will do in future FH??? )",2);
-  return rr;
-  
-}
-
-template<class R>
-void MatriceProfile<R>::setdiag(const KN_<R> & x) 
-{
-  ffassert(D);
- ffassert( this->n == x.N());
-  KN_<R> d(D,this->n) ;
-  d=x;
-}
-template<class R>
-void MatriceProfile<R>::getdiag(KN_<R> & x) const 
-{
-  ffassert(D);
-  ffassert( this->n == x.N());
-  KN_<R> d(D,this->n) ;
-  x=d;  
-}
-template<class R>
-void MatriceMorse<R>::setdiag(const KN_<R> & x) 
-{
- ffassert( this->n == this->m&& this->n == x.N());
- for (int i=0;i<this->n;++i)
-    {
-      R * p= pij(i,i);
-      if(p)     *p = x[i];
-      else ffassert( RNM::norm2(x[i]) < 1e-30);}
-}
-template<class R>
-void MatriceMorse<R>::getdiag(KN_<R> & x) const 
-{
- ffassert( this->n == this->m && this->n == x.N());
- for (int i=0;i<this->n;++i)
-    {
-      R * p= pij(i,i);
-      x[i]=  p ?  *p : R() ;
-    }
-  
-}
-template<class R>
-R MatriceMorse<R>::pscal(const KN_<R> & x,const KN_<R> & y)
-{ // (x, Ay)
-  R sum=R();
-  int i,j,k;
-  ffassert(this->n==x.N());
-  ffassert(this->m==y.N());  
-  if (symetrique)
-   {
-     for (i=0;i<this->n;i++)
-       for (k=lg[i];k<lg[i+1];k++)
-         {
-           j=cl[k];
-           sum += a[k]*x[i]*y[j];
-           if (i!=j)
-             sum += a[k]*x[j]*y[i];
-         }
-           
-   }
-  else
-   {
-     for (i=0;i<this->n;i++)
-       for (k=lg[i];k<lg[i+1];k++)
-         {
-           j=cl[k];
-           sum += a[k]*x[i]*y[j];
-         }
-   }
-  return sum;
-}
-template<class R>
-R MatriceProfile<R>::pscal(const KN_<R> & x,const KN_<R> & y)
-{
- if (y.n != this->n || x.n != this->n ) ERREUR(MatriceProfile pscal(xa,x) ," longueur incompatible c (out)") ;
- int i,j,k,kf;
- R sum = R();
- ffassert(this->n == this->m);
- if (D) 
-   for (i=0;i<this->n;i++) 
-     sum += D[i]*x[i]*y[i];
- else
-   for (i=0;i<this->n;i++) // no dia => identyty dai
-     sum +=x[i]*y[i];
-      
- if (L && pL )    
-   for (kf=pL[0],i=0;  i<this->n;   i++  )  
-     { 
-       k=kf;
-       kf=pL[i+1];
-       for ( j=i-kf+k;   k<kf; j++,  k++  )
-	 sum += L[k]*x[i]*y[j],throwassert(i>=0 && i <this->n && j >=0 && j < this->m && k>=0 && k < pL[this->n]);
-     }
- if (U && pU)     
-   for (kf=pU[0],j=0;  j<this->m;  j++)  
-     {
-       k=kf;
-       kf=pU[j+1];
-       for ( i=j-kf+k;   k<kf; i++,  k++  )
-	 sum += U[k]*x[i]*y[j],throwassert(i>=0 && i <this->n && j >=0 && j < this->m &&  k>=0 && k < pU[this->n]);
-     }
- return sum;
-}
-
-template<class R>
-void MatriceMorse<R>::getcoef(KN_<R> & x) const 
-{
- ffassert(x.N()==this->nbcoef);
- x = KN_<R>(this->a,nbcoef);  
-}
-template<class R>
-void MatriceMorse<R>::setcoef(const KN_<R> & x)  
-{
- ffassert(x.N()==nbcoef);
-  KN_<R>(this->a,nbcoef) = x;
-}
-template<class R>
-int MatriceMorse<R>::NbCoef() const  
-{
-  return this->nbcoef;
-}
-
-template<class R>
-void MatriceProfile<R>::getcoef(KN_<R> & x) const 
-{
- ffassert(x.N()==this->NbCoef());
- int k=0,kk;
- if (D)
-  {  kk=this->n;
-     x(SubArray(kk,k))  = KN_<R>(D,kk);
-     k += kk; }
- if (L)
-  {  kk= pL[this->n];
-     x(SubArray(kk,k))  = KN_<R>(L,kk);
-     k += kk; }
-  if (U && (U != L)) 
-  {  kk=  pU[this->n];
-     x(SubArray(kk,k))  = KN_<R>(U,kk);
-     k += kk; }
-   
-}
-template<class R>
-void MatriceProfile<R>::setcoef(const KN_<R> & x)  
-{
- ffassert(x.N()==this->NbCoef());
-   int k=0,kk;
- if (D)
-  {  kk=this->n;
-     KN_<R>(D,kk)=x(SubArray(kk,k))   ;
-     k += kk; }
- if (L)
-  {  kk= pL[this->n];
-     KN_<R>(L,kk)=x(SubArray(kk,k))   ;
-     k += kk; }
-  if (U && (U != L)) 
-  {  kk=  pU[this->n];
-     KN_<R>(U,kk)=x(SubArray(kk,k)) ;
-     k += kk; }
-
-}
-template<class R>
-int MatriceProfile<R>::NbCoef() const  
-{
-  int s=0;
-  if (D) s += this->n;
-  if (L) s += pL[this->n];
-  if (U && (U != L)) s += pU[this->n];
-  return s;
-}
-#endif
-
diff --git a/src/femlib/Mesh3dn.cpp b/src/femlib/Mesh3dn.cpp
index 6be3a11..ee451e5 100644
--- a/src/femlib/Mesh3dn.cpp
+++ b/src/femlib/Mesh3dn.cpp
@@ -183,9 +183,9 @@ namespace Fem2D
   // Add by J. Morice 11/10
   // compute the hmin in a 3d mesh 
   // Remark: on peut le mettre dans generic mesh
-  //         (attention aux boucles sur les arr�tes)
+  //         (attention aux boucles sur les arr�tes)
   double Mesh3::hmin() const{
-    R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
+    R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
     double hmin=1e10;
     
     for (int ii=0;ii< this->nv;ii++){ 
diff --git a/src/femlib/Mesh3dn.cpp.orig b/src/femlib/Mesh3dn.cpp.orig
deleted file mode 100644
index 16c8255..0000000
--- a/src/femlib/Mesh3dn.cpp.orig
+++ /dev/null
@@ -1,1446 +0,0 @@
-// ORIG-DATE:     Dec 2007
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :  Model  mesh 3d   
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curi, Paris,  FRANCE 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : frederic.hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- 
- Thank to the ARN ()  FF2A3 grant
- ref:ANR-07-CIS7-002-01 
- */
-
-
-#include <fstream>
-#include <iostream>
-#include <cstring>
-#include "libmesh5.h"
-#include "ufunction.hpp"
-#include "error.hpp"
-#include "RNM.hpp"
-namespace Fem2D 
-{
-}
-#include "Mesh2dn.hpp"
-#include "Mesh3dn.hpp"
-#include "rgraph.hpp"
-#include "fem.hpp"
-#include "PlotStream.hpp"
-
-namespace Fem2D 
-{
-  
-  
-  
-  
-  /*
-    const short int v_tet_face[4][3]=  {{3,2,1},{0,2,3},{ 3,1,0},{ 0,1,2}};
-    const short int a_tet_face[4][3]=  {{ 0,1,0},{ 0,2,0},{ 0,3,1},{ 1,2,1}};
-    const bool  sig_tet_face[4][3]=  {{ 0,1,0},{ 1,0,1},{ 0,1,0},{ 1,0,1}};
-    const short int v_tet_edge[6][2]= {{ 1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}; 
-    const short int fadj_tet_edge[6][2]= {{4,3},{2,4},{3,2},{4,1},{1,3},{2,1}};
-    const short int op_tet_edge[6]={ 6, 5, 4, 3, 2, 1};  
-  */
-  
-  //  Attention  nvfaceTet  donnne les faces  les 4 faces de tet telle que la
-  // tel que  le tet forme des trois sommet  + l'autre sommet soit positif.
-  //  donc  le  produit vectoriel des 2 aretes  (0,1) (0,2)  donne une  normale interieur.
-  //  Ok pour les gradients des $\lambda_i$  
-  static const int  nvfaceTet[4][3]  ={{3,2,1}, {0,2,3},{ 3,1,0},{ 0,1,2}}  ;//{ {2,1,3},{0,2,3},{1,0,3},{0,1,2} };
-  static const int  nvedgeTet[6][2] = { {0,1},{0,2},{0,3},{1,2},{1,3},{2,3} };
-  
-  static const int  nvfaceTria[1][3]  = { {0,1,2} };
-  static const int  nvedgeTria[3][2] = { {1,2},{2,0},{0,1}}; 
-  
-  static const int   nvfaceSeg[1][3]  = {{-1,-1,1}};
-  static const int  nvedgeSeg[1][2] = { {0,1} };
-  
-  
-  template<>
-  const int (* const GenericElement<DataTriangle3>::nvface)[3] = nvfaceTria ;
-  template<>
-  const int (* const GenericElement<DataTriangle3>::nvedge)[2] = nvedgeTria ;
-  template<>
-  const int (* const GenericElement<DataTriangle3>::nvadj)[2] = nvedgeTria ;
-  template<> const int  GenericElement<DataTriangle3>::nitemdim[4] = {3,3,1,0 }  ;
-  static const int onWhatIsEdge3[3][7] = {
-    {0,1,3, 2,0,0, 0}, // edge 0 
-    {3,0,1, 0,2,0, 0},
-    {1,3,0, 0,0,2, 0} };
-  
-  template<>
-  const int (* const GenericElement<DataTriangle3>::onWhatBorder)[7] = onWhatIsEdge3 ;
-  
-  
-  template<>
-  const int (* const GenericElement<DataTet>::nvface)[3] = nvfaceTet ;
-  template<>
-  const int (* const GenericElement<DataTet>::nvedge)[2] = nvedgeTet ;
-  template<>
-  const int (* const GenericElement<DataTet>::nvadj)[3] = nvfaceTet ;
-  template<> const int  GenericElement<DataTet>::nitemdim[4] = {4,6,4,1 }  ;
-  
-  int onWhatIsFace[4][15] ; 
-    typedef const int   (*const PtrConst15int) [15]; //  a pointeur on  const arry of 15 int. (to help xcode) 
- // static const int (* const SetonWhatIsFace(int  onWhatIsFace[4][15] ,const int  nvfaceTet[4][3],const int nvedgeTet[6][2]))[15];
-    static PtrConst15int SetonWhatIsFace(int  onWhatIsFace[4][15] ,const int  nvfaceTet[4][3],const int nvedgeTet[6][2]);
-    
-  template<>
-  const int (* const GenericElement<DataTet>::onWhatBorder)[15] = SetonWhatIsFace(onWhatIsFace,nvfaceTet,nvedgeTet) ;
-  
-  template<> int   GenericMesh<Tet,Triangle3,Vertex3>::kfind=0;
-  template<> int   GenericMesh<Tet,Triangle3,Vertex3>::kthrough=0;
-  
-
-//  const int (* const SetonWhatIsFace(int  onWhatIsFace[4][15] ,const int  nvfaceTet[4][3],const int nvedgeTet[6][2]))[15]
-  PtrConst15int  SetonWhatIsFace(int  onWhatIsFace[4][15] ,const int  nvfaceTet[4][3],const int nvedgeTet[6][2])
-  {
-    for(int i=0;i<15;++i)
-      for(int j=0;j<4;++j)
-	onWhatIsFace[j][i]=0;
-    for(int j=0;j<4;++j)
-      for(int i=0;i<3;++i)
-	onWhatIsFace[j][nvfaceTet[j][i]]=1;
-    for(int j=0;j<4;++j)
-      { 
-	onWhatIsFace[j][j+4+6]=3;
-	int ff[]={0,0,0,0};
-	int jo=1+2+3-nvfaceTet[j][0]-nvfaceTet[j][1]-nvfaceTet[j][2];
-	ff[jo]=1;
-	for(int i=0;i<6;++i)
-	  if(ff[nvedgeTet[i][0]]+ff[nvedgeTet[i][1]]==0)
-	    onWhatIsFace[j][i+4]=2;	
-      }
-    if(0)
-      for(int j=0;j<4;++j)
-	{
-	  for(int i=0;i<15;++i)
-	    cout << onWhatIsFace[j][i] << " ";
-	  cout << endl;
-	}
-    
-    return onWhatIsFace;
-  }
-  void Add(int *p,int n,int o)
-    {
-        for(int i=0;i<n;++i)
-            p[i] += o;
-    }
-  Mesh3::Mesh3(const string  filename)
-  {
-    int ok=load(filename);
-    cout << "read mesh ok " << ok  << endl;
-    cout << ", nt " << nt << ", nv " << nv << " nbe:  = " << nbe << endl;
-    if(ok)
-      {
-	ifstream f(filename.c_str());
-	if(!f) {	
-	  cerr << "  --  Mesh3::Mesh3 Erreur openning " << filename<<endl;ffassert(0);exit(1);}	
-	if(verbosity>2)
-	  cout << "  -- Mesh3:  Read On file \"" <<filename<<"\""<<  endl;
-	if(filename.rfind(".msh")==filename.length()-4) 
-	    readmsh(f,-1);
-        else 
-	    read(f);
-      }
-    
-    BuildBound();
-    if(nt > 0){ 
-      BuildAdj();
-      Buildbnormalv();  
-      BuildjElementConteningVertex();  
-    }
-
-    
-    if(verbosity>2)
-      cout << "  -- End of read: mesure = " << mes << " border mesure " << mesb << endl;  
-    if(verbosity)
-      cout << "  -- Mesh3 : "<<filename  << ", d "<< 3  << ", n Tet " << nt << ", n Vtx "
-	   << nv << " n Bord " << nbe << endl;
-      ffassert(mes>=0); // add F. Hecht sep 2009.
-  }
-
-  // Add by J. Morice 11/10
-  // compute the hmin in a 3d mesh 
-  // Remark: on peut le mettre dans generic mesh
-  //         (attention aux boucles sur les arr�tes)
-  double Mesh3::hmin() const{
-    R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);   // Extremit� de la bo�te englobante
-    double hmin=1e10;
-    
-    for (int ii=0;ii< this->nv;ii++){ 
-      R3 P( vertices[ii].x, vertices[ii].y, vertices[ii].z);
-      Pinf=Minc(P,Pinf);
-      Psup=Maxc(P,Psup);     
-    }
-
-    for (int k=0;k<this->nt;k++){
-      for (int e=0;e<6;e++){
-	if( this->elements[k].lenEdge(e) < Norme2(Psup-Pinf)/1e9 )
-	  {
-	    const Tet & K(this->elements[k]);
-	    int iv[4];
-	    for(int jj=0; jj <4; jj++){
-	      iv[jj] = this->operator()(K[jj]);
-	    }
-	    for (int eh=0;eh<6;eh++){
-	      if(verbosity>2) cout << "tetrahedra: " << k << " edge : " << eh << " lenght "<<  this->elements[k].lenEdge(eh) << endl;
-	    }
-	    if(verbosity>2) cout << " A tetrahedra with a very small edge was created " << endl;
-	    
-	    return 1;
-	  }
-	hmin=min(hmin,this->elements[k].lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-      }
-      
-    }
-    
-    for (int k=0;k<this->nbe;k++){
-      for (int e=0;e<3;e++){
-	if( this->be(k).lenEdge(e) < Norme2(Psup-Pinf)/1e9 )
-	  {
-	    for (int eh=0;eh<3;e++){
-	      cout << "triangles: " << k << " edge : " << eh << " lenght "<<  this->be(k).lenEdge(e) << endl;
-	    }
-	      cout << " A triangle with a very small edges was created " << endl;
-	      return 1;
-	  }
-	hmin=min(hmin,this->be(k).lenEdge(e));   // calcul de .lenEdge pour un Mesh3
-      }
-    }
-    ffassert(hmin>Norme2(Psup-Pinf)/1e9);
-    return hmin;
-  } 
-
-
-  // Read a mesh with correct the mesh : 
-  // 1) delete multiple points defined
-  // 2) delete points which is not in element or in border element
-  Mesh3::Mesh3(const string  filename, const long change)
-  {
-<<<<<<< HEAD
-   
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    int ok=load(filename);
-    cout << "read mesh ok " << ok  << endl;
-    cout << ", nt " << nt << ", nv " << nv << " nbe:  = " << nbe << endl;
-    if(ok)
-      {
-	ifstream f(filename.c_str());
-	if(!f) {	
-	  cerr << "  --  Mesh3::Mesh3 Erreur openning " << filename<<endl;ffassert(0);exit(1);}	
-	if(verbosity>2)
-	  cout << "  -- Mesh3:  Read On file \"" <<filename<<"\""<<  endl;
-	if(filename.rfind(".msh")==filename.length()-4) 
-	    readmsh(f,-1);
-        else 
-	    read(f);
-      }
-
-    if(change){
-      // verification multiple points
-      double hseuil=hmin();
-      hseuil = hseuil/10;
-      cout << " hseuil = " << hseuil << endl;
-      KN<int> Numero_Som(this->nv);
-      Vertex *vv=new Vertex[this->nv];
-      int nv_t=0;
-      {	
-	R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);
-	for (int ii=0;ii< this->nv;ii++){ 
-	  R3 P( vertices[ii].x, vertices[ii].y, vertices[ii].z);
-	  Pinf=Minc(P,Pinf);
-	  Psup=Maxc(P,Psup);     
-	}
-
-	EF23::GTree<Vertex3> *gtree = new EF23::GTree<Vertex3>(vv,Pinf,Psup,0);
-	// creation of octree
-	for (int ii=0;ii<this->nv;ii++){
-	  const R3 r3vi( this->vertices[ii].x, this->vertices[ii].y, this->vertices[ii].z );
-	  const Vertex3 &vi(r3vi);
-	  
-	  Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-	  
-	  if(!pvi){
-	    vv[nv_t].x = vi.x;
-	    vv[nv_t].y = vi.y;
-	    vv[nv_t].z = vi.z;
-	    vv[nv_t].lab = this->vertices[ii].lab; // lab mis a zero par default
-	    Numero_Som[ii] = nv_t; 
-	    gtree->Add( vv[nv_t] );
-	    nv_t=nv_t+1;
-	  }
-	  else{
-	    Numero_Som[ii] = pvi-vv;
-	  }
-	}
-	
-	delete gtree;
-	//delete [] vv;
-      }
-
-      // general case
-
-      KN<int> takevertex(nv_t,0);
-      for (int k=0; k<nbe; k++) {
-	const BorderElement & K(this->borderelements[k]);     
-	for(int jj=0; jj<3; jj++){
-	  takevertex[ Numero_Som[this->operator()(K[jj])] ] = 1;
-	}
-      }
-      for(int k=0; k< this->nt; k++){
-	const Element & K(this->elements[k]);
-	for(int jj=0; jj<4; jj++){
-	  takevertex[ Numero_Som[this->operator()(K[jj])] ] = 1;
-	}
-      }
-
-      int newvertex=0;
-      for(int iv=0; iv<nv_t; iv++){
-	newvertex+=takevertex[iv];
-      }
-
-      if( newvertex != this->nv){
-	
-	// determination of vertex
-	Vertex *vvv = new Vertex[ newvertex ];
-	KN<int> newNumero_Som(nv_t);
-	int iii=0;
-	for(int iv=0;  iv< nv_t; iv++){
-	  if( takevertex[iv ] == 1  ){
-	     vvv[iii].x = vv[iv].x;
-	     vvv[iii].y = vv[iv].y;
-	     vvv[iii].z = vv[iv].z;
-	     vvv[iii].lab = vv[iv].lab; // lab mis a zero par default
-	     newNumero_Som[iv] = iii;
-	     iii++;
-	  }
-	}
-	ffassert( newvertex== iii );
-	
-	Element *tt;
-	if(this->nt !=0) tt=new Element[this->nt];
-	BorderElement *bb = new BorderElement[this->nbe];
-
-	Element *ttt=tt;
-	BorderElement *bbb=bb;
-
-	for (int k=0; k<this->nbe; k++) {
-	  const BorderElement & K(this->borderelements[k]);    
-	  int iv[3];
-	  for(int jj=0; jj<3; jj++){
-	    iv[jj] = Numero_Som[this->operator()(K[jj])];
-	    iv[jj] = newNumero_Som[iv[jj]];
-	  }
-	  (bbb++)->set(vvv,iv,K.lab);
-	}
-
-	for(int k=0; k< this->nt; k++){
-	  const Element & K(this->elements[k]);
-	  int iv[4];
-	  for(int jj=0; jj<4; jj++){
-	    iv[jj] = Numero_Som[this->operator()(K[jj])];
-	    iv[jj] = newNumero_Som[iv[jj]];
-	  }
-	  (ttt++)->set(vvv,iv,K.lab);
-	}
-	cout << " delete vertices + autre " << endl;
-	delete [] vertices;
-	delete [] elements;
-	delete [] borderelements;
-	
-	nv = newvertex;
-
-       	vertices = vvv;
-	elements = tt;
-	borderelements = bb;
-
-        //&this = new Mesh3(newvertex,this->nt,this-nbe,vvv,tt,bb);
-	
-	delete [] newNumero_Som;
-      }
-      else{
-	cout << " no need to change the mesh " << endl;
-      }
-      delete [] Numero_Som;
-    }
-    
-    BuildBound();
-    if(nt > 0){ 
-      BuildAdj();
-      Buildbnormalv();  
-      BuildjElementConteningVertex();  
-    }
-      
-    if(verbosity>2)
-      cout << "  -- End of read: mesure = " << mes << " border mesure " << mesb << endl;  
-    if(verbosity)
-      cout << "  -- Mesh3 : "<<filename  << ", d "<< 3  << ", n Tet " << nt << ", n Vtx "
-	   << nv << " n Bord " << nbe << endl;
-      ffassert(mes>=0); // add F. Hecht sep 2009.
-  }
-   // Fin Add by J. Morice nov 2010
-   // Add J. Morice 12/2010
-   void Mesh3::TrueVertex() 
-	{
-			// verification multiple points
-		double hseuil=hmin();
-		hseuil =hseuil/10;
-		cout << " hseuil = " << hseuil << endl;
-		KN<int> Numero_Som(this->nv);
-		Vertex *vv=new Vertex[this->nv];
-		int nv_t=0;
-		{	
-			R3 Pinf(1e100,1e100,1e100),Psup(-1e100,-1e100,-1e100);
-			for (int ii=0;ii< this->nv;ii++){ 
-				R3 P( vertices[ii].x, vertices[ii].y, vertices[ii].z);
-				Pinf=Minc(P,Pinf);
-				Psup=Maxc(P,Psup);     
-			}
-			
-			EF23::GTree<Vertex3> *gtree = new EF23::GTree<Vertex3>(vv,Pinf,Psup,0);
-			// creation of octree
-			for (int ii=0;ii<this->nv;ii++){
-				const R3 r3vi( this->vertices[ii].x, this->vertices[ii].y, this->vertices[ii].z );
-				const Vertex3 &vi(r3vi);
-				
-				Vertex3 * pvi=gtree->ToClose(vi,hseuil);
-				
-				if(!pvi){
-					vv[nv_t].x = vi.x;
-					vv[nv_t].y = vi.y;
-					vv[nv_t].z = vi.z;
-					vv[nv_t].lab = this->vertices[ii].lab; // lab mis a zero par default
-					Numero_Som[ii] = nv_t; 
-					gtree->Add( vv[nv_t] );
-					nv_t=nv_t+1;
-				}
-				else{
-					Numero_Som[ii] = pvi-vv;
-				}
-			}
-			
-			delete gtree;
-			//delete [] vv;
-		}
-		
-		// general case
-		
-		KN<int> takevertex(nv_t,0);
-		for (int k=0; k<nbe; k++) {
-			const BorderElement & K(this->borderelements[k]);     
-			for(int jj=0; jj<3; jj++){
-				takevertex[ Numero_Som[this->operator()(K[jj])] ] = 1;
-			}
-		}
-		for(int k=0; k< this->nt; k++){
-			const Element & K(this->elements[k]);
-			for(int jj=0; jj<4; jj++){
-				takevertex[ Numero_Som[this->operator()(K[jj])] ] = 1;
-			}
-		}
-		
-		int newvertex=0;
-		for(int iv=0; iv<nv_t; iv++){
-			newvertex+=takevertex[iv];
-		}
-		
-		if( newvertex != this->nv){
-			
-			// determination of vertex
-			Vertex *vvv = new Vertex[ newvertex ];
-			KN<int> newNumero_Som(nv_t);
-			int iii=0;
-			for(int iv=0;  iv< nv_t; iv++){
-				if( takevertex[iv ] == 1  ){
-					vvv[iii].x = vv[iv].x;
-					vvv[iii].y = vv[iv].y;
-					vvv[iii].z = vv[iv].z;
-					vvv[iii].lab = vv[iv].lab; // lab mis a zero par default
-					newNumero_Som[iv] = iii;
-					iii++;
-				}
-			}
-			ffassert( newvertex== iii );
-			
-			Element *tt;
-			if(this->nt !=0) tt=new Element[this->nt];
-			BorderElement *bb = new BorderElement[this->nbe];
-			
-			Element *ttt=tt;
-			BorderElement *bbb=bb;
-			
-			for (int k=0; k<this->nbe; k++) {
-				const BorderElement & K(this->borderelements[k]);    
-				int iv[3];
-				for(int jj=0; jj<3; jj++){
-					iv[jj] = Numero_Som[this->operator()(K[jj])];
-					iv[jj] = newNumero_Som[iv[jj]];
-				}
-				(bbb++)->set(vvv,iv,K.lab);
-			}
-			
-			for(int k=0; k< this->nt; k++){
-				const Element & K(this->elements[k]);
-				int iv[4];
-				for(int jj=0; jj<4; jj++){
-					iv[jj] = Numero_Som[this->operator()(K[jj])];
-					iv[jj] = newNumero_Som[iv[jj]];
-				}
-				(ttt++)->set(vvv,iv,K.lab);
-			}
-			cout << " delete vertices + autre " << endl;
-			delete [] vertices;
-			delete [] elements;
-			delete [] borderelements;
-			
-			nv = newvertex;
-			
-			vertices = vvv;
-			elements = tt;
-			borderelements = bb;
-			
-			//&this = new Mesh3(newvertex,this->nt,this-nbe,vvv,tt,bb);
-			
-			delete [] newNumero_Som;
-		}
-		else{
-			cout << " no need to change the mesh " << endl;
-		}
-		delete [] Numero_Som;
-    
-    
-		BuildBound();
-		if(nt > 0){ 
-			BuildAdj();
-			Buildbnormalv();  
-			BuildjElementConteningVertex();  
-		}
-	
-		if(verbosity>2)
-			cout << "  -- End of read: mesure = " << mes << " border mesure " << mesb << endl;  
-			if(verbosity)
-				cout << "  -- Mesh3 :  d "<< 3  << ", n Tet " << nt << ", n Vtx "
-				<< nv << " n Bord " << nbe << endl;
-			ffassert(mes>=0); // add F. Hecht sep 2009.
-	}
-	
-  // Fin Add J. Morice 12/2010
-	
-  void  Mesh3::read(istream &f)
-  { // read the mesh
-    int i;
-    //	f >> nv >> nt >> neb ;
-    string str;
-<<<<<<< HEAD
-    int err=0;
-=======
-    
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    while(!f.eof())
-      {
-	f >> str;
-	//cout << str << endl;
-	if( str== "Vertices") 
-	  {
-	    f >> nv;
-	    assert(!this->vertices );
-	    if(verbosity>2)
-	      cout << "  -- Nb of Vertex " << nv << endl;
-	    this->vertices = new Vertex[nv];
-	    for (i=0;i<nv;i++)    
-	      {
-		f >> this->vertices[i];
-		assert(f.good());
-	      }
-	  }
-	else if (str=="Tetrahedra")
-	  {
-	    f >> nt;
-	    assert(this->vertices && !this->elements);
-	    this->elements = new Element [nt];
-	    mes=0;
-	    assert(this->elements);
-	    if(verbosity>2)
-	      cout <<   "  -- Nb of Elements " << nt << endl;
-	    for (int i=0;i<nt;i++) 
-	      { 
-<<<<<<< HEAD
-		this->t(i).Read1(f,this->vertices,this->nv);
-                if(this->t(i).mesure()<=0) err++; // Modif FH nov 2014
-		mes += this->t(i).mesure();
-                }
-=======
-		this->t(i).Read1(f,this->vertices,this->nv); 
-		mes += this->t(i).mesure();}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	  }
-	else if (str=="Triangles")
-	  {
-	    mesb=0;
-	    int kmv=0,ij;
-	    f >> nbe;
-	    assert(vertices);
-	    this->borderelements = new BorderElement[nbe];
-	    if(verbosity>2)
-	      cout <<   "  -- Nb of border Triangles " << nbe << endl;
-	    for (i=0;i<nbe;i++) 
-	      { 
-		this->be(i).Read1(f,this->vertices,this->nv); 
-		mesb += this->be(i).mesure();
-		for(int j=0;j<3;++j)
-		  if(!vertices[ij=this->be(i,j)].lab)
-		    {
-		      vertices[ij].lab=1;
-		      kmv++;
-		    }
-	      }
-	  }
-	else if(str[0]=='#')
-	  {// on mange la ligne 
-	    int c; 
-	    while ( (c=f.get()) != '\n' &&  c != EOF) 
-	      //cout << c << endl;
-	      ;
-	  }
-      }
-    assert( (nt >= 0 || nbe>=0)  && nv>0) ;
-    /*   done at up level ... 
-	 BuildBound();
-	 
-	 if(nt > 0){ 
-	 BuildAdj();
-	 Buildbnormalv();  
-	 BuildjElementConteningVertex();  
-	 }
-    */
-<<<<<<< HEAD
-    if(err!=0)
-    {
-        cerr << " Mesh3::read: sorry bad mesh. Number of negative Tet " << err << endl;
-        this->~Mesh3();
-        ffassert(0);
-    }
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  }
-  
-  int Mesh3::load(const string & filename)
-  {
-    
-    int bin;
-    int ver,inm,dim;
-    int lf=filename.size()+20;
-    KN<char>  fileb(lf),filef(lf);
-    char *data = new char[filename.size()+1];
-    size_t ssize = filename.size()+1;
-    char *ptr;
-    char *pfile;
-
-    strncpy( data, filename.c_str(),ssize);
-    
-    ptr = strstr(data,".mesh");
-    if( !ptr ){
-      strcpy(filef,filename.c_str());
-      strcpy(fileb,filef);
-      strcat(filef,".mesh");
-      strcat(fileb,".meshb");
-      if( (inm=GmfOpenMesh(pfile=fileb, GmfRead,&ver,&dim)) ) 
-	bin=true;
-      else if( (inm=GmfOpenMesh(pfile=filef, GmfRead,&ver,&dim)) ) 
-	bin=false;
-      else 
-	if(verbosity>5){
-	  cerr << " Erreur ouverture file " << (char *) fileb  << " " << (char *) filef  <<endl;
-	  return   1;
-	}
-    }
-    else{
-      if( !(inm=GmfOpenMesh(data, GmfRead,&ver,&dim)) ){
-	if(verbosity>5)
-	  cerr << " Erreur ouverture file " << (char *) data  << endl;
-	return   1;
-      }
-    }
-    
-    int nv=-1,nt=-1,neb=-1;
-    nv = GmfStatKwd(inm,GmfVertices);
-    nt = GmfStatKwd(inm,GmfTetrahedra);
-    neb= GmfStatKwd(inm,GmfTriangles);
-    this->set(nv,nt,neb);
-    if(verbosity>1)
-      cout << "  -- Mesh3(load): "<< (char *) data <<", ver " << ver << ", d "<< dim  
-	   << ", nt " << nt << ", nv " << nv << " nbe:  = " << nbe << endl;
-    if(dim  != 3) { 
-      cerr << "Err dim == " << dim << " !=3 " <<endl;
-      return 2; }
-    if( nv<=0 && (nt <0 || nbe <=0)  ) {
-      cerr << " missing data "<< endl;
-      return 3;
-    }
-    int iv[4],lab;
-    float cr[3];
-    // read vertices 
-    GmfGotoKwd(inm,GmfVertices);
-    int mxlab=0;
-    int mnlab=0;
-    for(int i=0;i<nv;++i)
-      {  
-	if(ver<2) {
-	  GmfGetLin(inm,GmfVertices,&cr[0],&cr[1],&cr[2],&lab);
-	  vertices[i].x=cr[0];
-	  vertices[i].y=cr[1];
-	  vertices[i].z=cr[2];}
-	else
-	  GmfGetLin(inm,GmfVertices,&vertices[i].x,&vertices[i].y,&vertices[i].z,&lab);	    
-	vertices[i].lab=lab;
-	
-	mxlab= max(mxlab,lab);
-	mnlab= min(mnlab,lab);
-      }
-    
-    
-    //    /* read mesh triangles */
-    if(nbe > 0) {
-      if(mnlab==0 && mxlab==0 )
-	{
-	  int kmv=0;
-	  mesb=0;
-	  GmfGotoKwd(inm,GmfTriangles);
-	  for(int i=0;i<nbe;++i)
-	    {  
-	      GmfGetLin(inm,GmfTriangles,&iv[0],&iv[1],&iv[2],&lab);
-	      for(int j=0;j<3;++j)
-		if(!vertices[iv[j]-1].lab)
-		  {
-		    vertices[iv[j]-1].lab=1;
-		    kmv++;
-		  }
-	      for (int j=0;j<3;++j)  
-		iv[j]--;
-	      this->be(i).set(this->vertices,iv,lab);
-	      mesb += this->be(i).mesure();
-	    }
-	  
-	  if(kmv&& verbosity>1)
-	    cout << "    Aucun label Hack (FH)  ??? => 1 sur les triangle frontiere "<<endl;
-	}
-      else
-	{
-	  mesb=0;
-	  GmfGotoKwd(inm,GmfTriangles);
-	  for(int i=0;i<nbe;++i)
-	    {  
-	      GmfGetLin(inm,GmfTriangles,&iv[0],&iv[1],&iv[2],&lab);
-	      for (int j=0;j<3;++j)  
-		iv[j]--;
-	      this->be(i).set(this->vertices,iv,lab);
-	      mesb += this->be(i).mesure();
-	    }
-	}
-    }
-    
-    if(nt>0)
-      {
-	/* read mesh tetrahedra */
-	GmfGotoKwd(inm,GmfTetrahedra);
-	for(int i=0;i<nt;++i)
-	  {  
-	    GmfGetLin(inm,GmfTetrahedra,&iv[0],&iv[1],&iv[2],&iv[3],&lab);
-	    assert( iv[0]>0 && iv[0]<=nv && iv[1]>0 && iv[1]<=nv && iv[2]>0 && iv[2]<=nv && iv[3]>0 && iv[3]<=nv);
-	    for (int j=0;j<4;j++) iv[j]--;
-	    this->elements[i].set(vertices,iv,lab); 
-	    mes += this->elements[i].mesure();	    
-	  }
-      }
-    GmfCloseMesh(inm);  
-    return 0; // OK
-  }
-  
-const     string Gsbegin="Mesh3::GSave v0",Gsend="end";  
-  void Mesh3::GSave(FILE * ff,int offset) const
-  {  
-    PlotStream f(ff);
-    
-    f <<  Gsbegin ;
-    f << nv << nt << nbe;
-    for (int k=0; k<nv; k++) {
-      const  Vertex & P = this->vertices[k];		
-      f << P.x <<P.y << P.z << P.lab ;
-    }
-    
-    if(nt != 0){
-      
-      for (int k=0; k<nt; k++) {
-	const Element & K(this->elements[k]);
-	int i0=this->operator()(K[0])+offset;
-	int i1=this->operator()(K[1])+offset;
-	int i2=this->operator()(K[2])+offset;
-	int i3=this->operator()(K[3])+offset;
-    
-	int lab=K.lab;
-	f << i0 << i1 << i2 << i3 << lab;
-      }
-    }
-    
-    
-    for (int k=0; k<nbe; k++) {
-      const BorderElement & K(this->borderelements[k]);
-      int i0=this->operator()(K[0])+offset;
-      int i1=this->operator()(K[1])+offset;
-      int i2=this->operator()(K[2])+offset;
-      int lab=K.lab;
-      f << i0 << i1 << i2  << lab;
-    }
-    f << Gsend;
-  }
-	      
-   Mesh3::Mesh3(const  Serialize &serialized)
-   :GenericMesh<Tet,Triangle3,Vertex3> (serialized) 
-    {
-	BuildBound();
-	if(verbosity>1)
-	    cout << "  -- End of serialized: mesure = " << mes << " border mesure " << mesb << endl;  
-	
-	if(nt > 0){ 
-	    BuildAdj();
-	    Buildbnormalv();  
-	    BuildjElementConteningVertex();  
-	}
-	
-	if(verbosity>1)
-	    cout << "  -- Mesh3  (serialized), d "<< 3  << ", n Tet " << nt << ", n Vtx "
-	    << nv << " n Bord " << nbe << endl;
-	ffassert(mes>=0); // add F. Hecht sep 2009.
-
-    }
-  Mesh3::Mesh3(FILE *f,int offset)
-  {
-    
-    GRead(f,offset);// remove 1 
-    assert( (nt >= 0 || nbe>=0)  && nv>0) ;
-    BuildBound();
-    if(verbosity>2)
-      cout << "  -- End of read: mesure = " << mes << " border mesure " << mesb << endl;  
-    
-    if(nt > 0){ 
-      BuildAdj();
-      Buildbnormalv();  
-      BuildjElementConteningVertex();  
-    }
-    if(verbosity>2)
-	  cout << "  -- End of read: mesure = " << mes << " border mesure " << mesb << endl;  
-    
-    if(verbosity>1)
-      cout << "  -- Mesh3  (File *), d "<< 3  << ", n Tet " << nt << ", n Vtx "
-	   << nv << " n Bord " << nbe << endl;
-      ffassert(mes>=0); // add F. Hecht sep 2009.
-  }
-  
-  void Mesh3::GRead(FILE * ff,int offset)
-  {  
-    PlotStream f(ff);
-    string s;
-    f >> s;
-    ffassert( s== Gsbegin);
-    f >> nv >> nt >> nbe;
-    if(verbosity>2)
-    cout << " GRead : nv " << nv << " " << nt << " " << nbe << endl;
-    this->vertices = new Vertex[nv];
-    this->elements = new Element [nt];
-    this->borderelements = new BorderElement[nbe];		
-    for (int k=0; k<nv; k++) {
-      Vertex & P = this->vertices[k];
-      f >> P.x >>P.y >> P.z >> P.lab ;
-    }
-    mes=0.;
-    mesb=0.;
-    
-    if(nt != 0)
-      {
-	
-	for (int k=0; k<nt; k++) {
-	  int i[4],lab;
-	  Element & K(this->elements[k]);
-	  f >> i[0] >> i[1] >> i[2] >> i[3] >> lab;
-      Add(i,4,offset);  
-	  K.set(this->vertices,i,lab);
-	  mes += K.mesure();	    
-	  
-	}
-      }
-    
-    
-    for (int k=0; k<nbe; k++) {
-      int i[4],lab;
-      BorderElement & K(this->borderelements[k]);
-      f >> i[0] >> i[1] >> i[2]  >> lab;
-      Add(i,3,offset);  
-      K.set(this->vertices,i,lab);
-      mesb += K.mesure();	    
-      
-    }
-    f >> s;
-    ffassert( s== Gsend);
-  }
-    void Mesh3::readmsh(ifstream & f,int offset)
-    {  
-<<<<<<< HEAD
-        int err=0;
-=======
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	f >> nv >> nt >> nbe;
-	if(verbosity>2)
-	    cout << " GRead : nv " << nv << " " << nt << " " << nbe << endl;
-	this->vertices = new Vertex[nv];
-	this->elements = new Element [nt];
-	this->borderelements = new BorderElement[nbe];		
-	for (int k=0; k<nv; k++) {
-	    Vertex & P = this->vertices[k];
-	    f >> P.x >>P.y >> P.z >> P.lab ;
-	}
-	mes=0.;
-	mesb=0.;
-	
-	if(nt != 0)
-	  {
-	      
-	      for (int k=0; k<nt; k++) {
-		  int i[4],lab;
-		  Element & K(this->elements[k]);
-		  f >> i[0] >> i[1] >> i[2] >> i[3] >> lab;
-<<<<<<< HEAD
-                  Add(i,4,offset);
-		  K.set(this->vertices,i,lab);
-		  mes += K.mesure();
-                  err += K.mesure() <0;
-=======
-          Add(i,4,offset);
-		  K.set(this->vertices,i,lab);
-		  mes += K.mesure();	    
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-		  
-	      }
-	  }
-	
-	
-	for (int k=0; k<nbe; k++) {
-	    int i[4],lab;
-	    BorderElement & K(this->borderelements[k]);
-	    f >> i[0] >> i[1] >> i[2]  >> lab;
-<<<<<<< HEAD
-            Add(i,3,offset);
-=======
-        Add(i,3,offset);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	    K.set(this->vertices,i,lab);
-	    mesb += K.mesure();	    
-	    
-	}
-<<<<<<< HEAD
-        if(err!=0)
-        {
-            cerr << " Mesh3::readmsh : sorry bad mesh. Number of negative Tet " << err << endl;
-            this->~Mesh3();
-            ffassert(0);
-        }
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-    }
-    
-  
-  
-  int Mesh3::Save(const string & filename) const
-  {
-    int ver = GmfFloat, outm;
-    if ( !(outm = GmfOpenMesh(filename.c_str(),GmfWrite,ver,3)) ) {
-      cerr <<"  -- Mesh3::Save  UNABLE TO OPEN  :"<< filename << endl;
-      return(1);
-    }
-    
-    float fx,fy,fz;
-    GmfSetKwd(outm,GmfVertices,this->nv);
-    for (int k=0; k<nv; k++) {
-      const  Vertex & P = this->vertices[k];
-      GmfSetLin(outm,GmfVertices,fx=P.x,fy=P.y,fz=P.z,P.lab);
-    }
-    
-    if(nt != 0){
-      GmfSetKwd(outm,GmfTetrahedra,nt);
-      for (int k=0; k<nt; k++) {
-	const Element & K(this->elements[k]);
-	int i0=this->operator()(K[0])+1;
-	int i1=this->operator()(K[1])+1;
-	int i2=this->operator()(K[2])+1;
-	int i3=this->operator()(K[3])+1;
-	int lab=K.lab;
-	GmfSetLin(outm,GmfTetrahedra,i0,i1,i2,i3,lab);
-      }
-    }
-    
-    GmfSetKwd(outm,GmfTriangles,nbe);
-    for (int k=0; k<nbe; k++) {
-      const BorderElement & K(this->borderelements[k]);
-      int i0=this->operator()(K[0])+1;
-      int i1=this->operator()(K[1])+1;
-      int i2=this->operator()(K[2])+1;
-      int lab=K.lab;
-      GmfSetLin(outm,GmfTriangles,i0,i1,i2,lab);
-    }
-    
-    GmfCloseMesh(outm);
-    return (0);
-    
-  }
-
-   int Mesh3::SaveSurface(const string & filename) const
-  {
-    int ver = GmfFloat, outm;
-    if ( !(outm = GmfOpenMesh(filename.c_str(),GmfWrite,ver,3)) ) {
-      cerr <<"  -- Mesh3::Save  UNABLE TO OPEN  :"<< filename << endl;
-      return(1);
-    }
-
-    // Number of Vertex in the surface
-    int *v_num_surf=new int[nv];
-    int *liste_v_num_surf=new int[nv];
-    for (int k=0; k<nv; k++){ 
-      v_num_surf[k]=-1;
-      liste_v_num_surf[k]=0;
-    }
-    // Search Vertex on the surface
-    int nbv_surf=0;
-    for (int k=0; k<nbe; k++) {
-      const BorderElement & K(this->borderelements[k]);     
-      for(int jj=0; jj<3; jj++){
-	int i0=this->operator()(K[jj]);
-	if( v_num_surf[i0] == -1 ){
-	  v_num_surf[i0] = nbv_surf;
-	  liste_v_num_surf[nbv_surf]= i0;
-	  nbv_surf++;
-	}
-      }
-    }
-
-    float fx,fy,fz;
-    GmfSetKwd(outm,GmfVertices,nbv_surf);
-    for (int k=0; k<nbv_surf; k++) {
-      int k0 = liste_v_num_surf[k];
-      const  Vertex & P = this->vertices[k0];
-      GmfSetLin(outm,GmfVertices,fx=P.x,fy=P.y,fz=P.z,P.lab);
-    }
-    
-    GmfSetKwd(outm,GmfTriangles,nbe);
-    for (int k=0; k<nbe; k++) {
-      const BorderElement & K(this->borderelements[k]);
-      int i0=v_num_surf[this->operator()(K[0])]+1;
-      int i1=v_num_surf[this->operator()(K[1])]+1;
-      int i2=v_num_surf[this->operator()(K[2])]+1;
-      int lab=K.lab;
-
-      assert( i0-1 < nbv_surf &&  i1-1 < nbv_surf &&  i2-1 < nbv_surf );
-      assert( 0<i0 && 0<i1 && 0<i2 );
-
-      GmfSetLin(outm,GmfTriangles,i0,i1,i2,lab);
-    }
-    
-    GmfCloseMesh(outm);
-
-    delete [ ] v_num_surf;
-    delete [ ] liste_v_num_surf;
-
-    return (0); 
-  }
-
-
-  int Mesh3::SaveSurface(const string & filename1,const string & filename2) const
-  {    
-    // Number of Vertex in the surface
-    int *v_num_surf=new int[nv];
-    int *liste_v_num_surf=new int[nv];
-    for (int k=0; k<nv; k++){ 
-      v_num_surf[k]=-1;
-      liste_v_num_surf[k]=0;
-    }
-    // Search Vertex on the surface
-    int nbv_surf=0;
-    for (int k=0; k<nbe; k++) {
-      const BorderElement & K(this->borderelements[k]);     
-      for(int jj=0; jj<3; jj++){
-	int i0=this->operator()(K[jj]);
-	if( v_num_surf[i0] == -1){
-	  v_num_surf[i0] = nbv_surf;
-	  nbv_surf++;
-	}
-      }
-    }
-
-    // file .points
-    FILE *fpoints = fopen(filename1.c_str(),"w");
-    fprintf(fpoints,"%i\n",nbv_surf);
-    
-    for (int k=0; k<nbv_surf; k++) {
-      //int k0 = liste_v_num_surf[k];
-      const  Vertex & P = this->vertices[k];
-      fprintf(fpoints,"%f %f %f %i\n",P.x,P.y,P.z,P.lab);
-    }
-    fclose(fpoints);
-    
-    // file .faces
-    FILE *ffaces = fopen(filename2.c_str(),"w");
-    fprintf(ffaces,"%i\n",nbe);
-    for (int k=0; k<nbe; k++) {
-      const BorderElement & K(this->borderelements[k]);
-      int i0=this->operator()(K[0]);
-      int i1=this->operator()(K[1]);
-      int i2=this->operator()(K[2]);
-      int lab=K.lab;
-      int label0= this->vertices[i0].lab; 
-      int label1= this->vertices[i1].lab; 
-      int label2= this->vertices[i2].lab;
-      //GmfSetLin(outm,GmfTriangles,i0,i1,i2,lab);
-      int nature=3;
-      int i0v=v_num_surf[i0]+1;
-      int i1v=v_num_surf[i1]+1;
-      int i2v=v_num_surf[i2]+1;
-      assert( i0v-1 < nbv_surf &&  i1v-1 < nbv_surf &&  i2v-1 < nbv_surf );
-      assert( 0<i0v && 0<i1v && 0<i2v );
-
-      fprintf(ffaces,"%i %i %i %i %i %i %i %i\n", nature, i0v, i1v, i2v, lab, label0, label1, label2);
-    }
-    fclose(ffaces);
-    
-    delete [ ] v_num_surf;
-    delete [ ] liste_v_num_surf;
-    return (0);  
-  }
-
-
-  Mesh3::Mesh3(int nnv, int nnt, int nnbe, Vertex3 *vv, Tet *tt, Triangle3 *bb)
-  {
-  
-    nv = nnv;
-    nt = nnt;
-    nbe =nnbe;
-    
-    vertices = vv;
-    elements = tt;
-    borderelements = bb;
-    
-    mes=0.;
-    mesb=0.;
-    
-    for (int i=0;i<nt;i++)  
-      mes += this->elements[i].mesure();
-    
-    for (int i=0;i<nbe;i++)  
-      mesb += this->be(i).mesure();  
-    
-//  Add FH to be consitant we all constructor ...  July 09
-      BuildBound();
-      if(nt > 0){ 
-	  BuildAdj();
-	  Buildbnormalv();  
-	  BuildjElementConteningVertex();  
-      }
-//  end add       
-      if(verbosity>1)
-	  cout << "  -- End of read: mesure = " << mes << " border mesure " << mesb << endl;  
-          
-//    if(verbosity>1)
-//      cout << "  -- End of read: mesure = " << mes << " border mesure " << mesb << endl;  
-      assert(mes>=0.);
-  }
-  
-  Mesh3::Mesh3(int nnv, int nnbe, Vertex3 *vv, Triangle3 *bb)
-  {
-  
-    nv = nnv;
-    nbe =nnbe;
-    
-    vertices = vv;
-    borderelements = bb;
-    
-    mes=0.;
-    mesb=0.;
-    
-    for (int i=0;i<nbe;i++)  
-      mesb += this->be(i).mesure();  
-
-//  Add FH to be consitant we all constructor ...  July 09
-      BuildBound();
-      if(nt > 0){ 
-	  BuildAdj();
-	  Buildbnormalv();  
-	  BuildjElementConteningVertex();  
-      }
-//  end add       
-      
-    if(verbosity>1)
-      cout << "  -- End of Construct  mesh3: mesure = " << mes << " border mesure " << mesb <<  endl;  
-      ffassert(mes>=0); // add F. Hecht sep 2009.
-  }
-
-  void Mesh3::flipSurfaceMesh3(int surface_orientation)
-  {
-    /* inverse the orientation of the surface if necessary*/
-    /* and control that all surfaces are oriented in the same way*/
-    int nbflip=0;
-    for (int i=0;i<this->nbe;i++)
-      { 
-	double mes_triangle3= this->be(i).mesure();
-	
-	if( surface_orientation*mes_triangle3 < 0){
-	  const Triangle3 &K( this->be(i) );
-	  int iv[3];       
-	  
-	  iv[0] = this->operator()(K[0]);
-	  iv[1] = this->operator()(K[1]);
-	  iv[2] = this->operator()(K[2]);
-	  
-	  int iv_temp=iv[1];
-	  iv[1]=iv[2];
-	  iv[2]=iv_temp;
-	  this->be(i).set( this->vertices, iv, K.lab ) ;
-	  nbflip++;
-	}
-      }
-    assert(nbflip==0 || nbflip== this->nbe); 
-  }
-
-
-  int  signe_permutation(int i0,int i1,int i2,int i3)
-  {
-    int p=1;
-    if(i0>i1) Exchange(i0,i1), p = -p;
-    if(i0>i2) Exchange(i0,i2), p = -p;
-    if(i0>i3) Exchange(i0,i3), p = -p;
-    if(i1>i2) Exchange(i1,i2), p = -p;
-    if(i1>i3) Exchange(i1,i3), p = -p;
-    if(i2>i3) Exchange(i2,i3), p = -p;
-    return p;
-  }
-
-
-  int  WalkInTet(const Mesh3 & Th,int it, R3 & Phat,const R3 & U, R & dt)
-  {
-    bool ddd=verbosity>200;
-      bool nomove=true;
-    R lambda[4];
-    Phat.toBary(lambda);
-    if(ddd) cout << "\n\n\n   WT: "  << Phat << " :  "  << lambda[0] << " " <<lambda[1] <<" " <<lambda[2] << " " <<lambda[3] << " u = "<< U << " dt " << dt <<endl;
-#ifndef NDEBUG      
-      for(int i=0;i<4;++i)
-      assert(lambda[i]<1.000001 && lambda[i]>-0.0000001);
-#endif
-    typedef R3 Rd;
-    const Mesh3::Element & T(Th[it]);
-    const int nve = 4;
-    const Rd  Q[nve]={(const R3) T[0],(const R3) T[1],(const R3) T[2],(const R3) T[3]};
-    
-    Rd P  =T(Phat);
-    
-    //  cout << " " << u << " " << v ;
-    Rd PF = P + U*dt;
-    
-    //  couleur(15);MoveTo( P); LineTo( PF);
-    R l[nve];
-    double Det=T.mesure()*6;
-    l[0] = det(PF  ,Q[1],Q[2],Q[3]);
-    l[1] = det(Q[0],PF  ,Q[2],Q[3]); 
-    l[2] = det(Q[0],Q[1],PF  ,Q[3]); 
-    l[3] = Det - l[0]-l[1]-l[2];
-    l[0] /= Det;
-    l[1] /= Det;
-    l[2] /= Det;
-    l[3] /= Det;
-     if(ddd)  cout << "\t\t\tWT " << it << ", " << Phat << ",  PF=" << PF
-		   << " :  "  << l[0] << " " <<l[1] <<" " <<l[2] << " " <<l[3] 
-	           << " == " << det(Q[0],Q[1],Q[2],PF)/Det
-		   << " : l (in) "  << lambda[0] << " " <<lambda[1] <<" " <<lambda[2] << " " <<lambda[3] 
-		   << " PF= K(l) = " << Th[it](R3(l+1)) 
-		   <<endl ;
-		  
-    const R eps = 1e-8;
-    int neg[nve],k=0;
-    int kk=-1;
-    if (l[0]>-eps && l[1]>-eps && l[2]>-eps && l[3]>-eps) 
-      {
-	dt =0;
-	Phat=R3(l+1);
-	nomove=false;
-	return -1;
-      }
-    else 
-      {
-	// on regarde de les reelement negatif 
-        // on ne veut pas des points sur les faces.
-        // car sinon il va y avoir un probleme ans on va projete sur la face
-	//  et remettre le point dans le tetraedre.
-	if (l[0]<=-eps ) neg[k++]=0;
-	if (l[1]<=-eps ) neg[k++]=1;
-	if (l[2]<=-eps ) neg[k++]=2;
-	if (l[3]<=-eps ) neg[k++]=3;
-	
-	//R eps1 = T.mesure()   * 1.e-5;
-	   if(ddd)  cout << " k= " << k << endl;
-    
-	if (k==3) //  3 face de sortie possible 
-	  {
-	    // let j be the vertex beetween the 3 faces 
-	    int j = 6-neg[0]-neg[1]-neg[2]; //  sommet intersection des 3 faces.
-	    int i0 = Tet::nvface[j][0];
-	    int i1 = Tet::nvface[j][1];
-	    int i2 = Tet::nvface[j][2];
-	     if(ddd)  cout << "  -------- " << j << " " << i0 << " " << i1 << " " << i2  << endl;
-	    //  le tet i0,i1,i2,j est positif. 
-	    assert(signe_permutation(i0,i1,i2,j)==1);
-	    // 
-	    R v0= det(Q[i0],Q[j],P,PF); 
-	    R v1= det(Q[i1],Q[j],P,PF); 
-	    R v2= det(Q[i2],Q[j],P,PF); 
-	     if(ddd)   cout << "\t\t\t " << j << " v0123 =" << v0 << " "<< v1 << " " << v2 << endl;
-	    if( v0 > eps && v1 < -eps ) 
-	      kk= i1 ;// on sort par la face j i0, j1
-	    else if( v1 > eps && v2 < -eps ) 
-	      kk= i0 ;
-	    else if( v2 > eps && v0 < -eps ) 
-	      kk= i1 ;
-	    else 
-	      {  // on ne sort pas par une face 
-		int nul[3], nn=0, mm=3;
-		  if (Abs(v0) <=eps) nul[nn++]=i0; else nul[--mm]=i0;
-		  if (Abs(v1) <=eps) nul[nn++]=i1; else nul[--mm]=i1;
-		  if (Abs(v2) <=eps) nul[nn++]=i2; else nul[--mm]=i2;
-		assert(nn>0); 
-		if(nn == 1) // on sort par l'arete nul[0] entre le face   nul[1] et nul[2]
-		  kk =  nul[1+(rand()/(RAND_MAX/2))%2];		  
-		else // on sort par le sommet j.  on choisi la face alleatoirement 
-		  kk = nul[(rand()/(RAND_MAX/3))%3];
-		  
-	      }
-	  }
-	else if (k==2)
-	  {
-	    //  numero des l'arete entre les 2 faces
-	    int i0=neg[0],i1=neg[1];
-	    int e = i0 + i1 - (i0==0); 
-	    // on a:
-	    //   e      =     0        1       2      3        4      5
-	    //  (i0,i1) =   (0,1)  , (0,2), (0,3) , (1,2)  , (1,3), (2,3) 
-	    // avec i0,i1 sont les sommets qui ne sont pas dans l'arete
-	    int   jj0[6] = {2,3,1,0,2,0};
-	    int   jj1[6] = {3,1,2,3,0,1};
-	    int j0 = jj0[e];
-	    int j1 = jj1[e];
-	     if(ddd)   cout << " e " << e << " i0 " << i0 << " " << i1 << " j0 =" << j0 << " " << j1 << endl;
-	    // le tet  j0,j1,i0,i1  doit est positif (ie. la pemutation est positive)
-	    // de meme  i0,i1,j0,j1
-	    assert(signe_permutation(j0,j1,i0,i1)==1);
-	    R v0= det(Q[j0],Q[j1],P,PF); 
-            if(ddd) cout << " v0 =" << v0 <<endl;
-	    if( Abs(v0) < eps  ) 
-	      {
-	      // on sort par l'arete  j0,j1
-	      // on choisi aleatoirement la face de sortie 
-	      kk = (rand()/(RAND_MAX/2)) ? i0 : i1; 
-	      if(ddd)
-		  cout << " rand choose  2 :  " << kk << endl;
-	      }
-	    else 
-	      kk= v0 >0 ? i0 : i1; // Attention dyslexie ici durdur FH....
-	    
-	  }
-	else if (k==1) //  une face possible de sortie (cas simple)
-	  kk = neg[0];
-	
-	if(kk>=0)
-	  {
-	    R d=lambda[kk]-l[kk];
-	    if ( l[kk] )
-	     {
-	    throwassert(d);
-	    R coef =  lambda[kk]/d;
-	    R coef1 = 1-coef;
-	    nomove= (coef<1.e-6);
-	    dt        = dt*coef1;
-	    lambda[0] = lambda[0]*coef1 + coef *l[0];
-	    lambda[1] = lambda[1]*coef1 + coef *l[1];
-	    lambda[2] = lambda[2]*coef1 + coef *l[2];
-	    lambda[3] = lambda[3]*coef1 + coef *l[3];
-            if(ddd) cout << "   \t\t -> kk=" << kk << " d=" << d << " , l= "<< lambda[0]  << " " 
-			 <<lambda[1] << " " <<lambda[2] << " " << lambda[3] << endl;
-	    lambda[kk] =0;
-	     }
-	      
-	 
-	  
-	  }
-	 
-      }
-    if(nomove )
-	// on ne bouge pas on utilse Find ... 
-	  {
-	      R dx2= (U,U)*dt*dt;
-	      R ddt=dt, dc=1;
-	      // if Udt < h/2 => recherche un point final  
-	      if(dx2*dx2*dx2 > Det*Det/4)
-		  dt=0;       
-	      else 
-		{ 
-		    dc=0.25;
-		    ddt=dt*dc;
-		    PF= P + U*ddt; // on avance que d'un 1/4
-		    dt -= ddt;
-		}
-	      bool outside;
-	      const Mesh3::Element  *K=Th.Find(PF, Phat,outside,&Th[it]);
-	      if(outside) dt=0; // on a fini 
-	      if(ddd) cout << "   \t ***** WT :  Lock -> Find P+U*ddt*c "<< it<< " " << " -> "<< Th(K) 
-		  << " dt = " << dt << " c = " << dc << " outside: "<< outside <<" , PF " << PF << endl;
-	      return 4+Th(K);
-     }
-      
-    //  on remet le point dans le tet. 
-    int jj=0;
-    R lmx=lambda[0];
-    if (lmx<lambda[1])  jj=1, lmx=lambda[1];
-    if (lmx<lambda[2])  jj=2, lmx=lambda[2];
-    if (lmx<lambda[3])  jj=3, lmx=lambda[3];
-    if(lambda[0]<0) lambda[jj] += lambda[0],lambda[0]=0;
-    if(lambda[1]<0) lambda[jj] += lambda[1],lambda[1]=0;
-    if(lambda[2]<0) lambda[jj] += lambda[2],lambda[2]=0;
-    if(lambda[3]<0) lambda[jj] += lambda[3],lambda[3]=0;
-    Phat=R3(lambda+1);
-    if(ddd) cout  << "\t\t\t -> "<< dt << " : "  << Phat << " K(Phat) ="<< Th[it](Phat) <<  ", " << kk << " jj= "<< jj << " "<< lmx << endl; 
-    assert(kk<0 || lambda[kk]==0);
-    return kk;
-  }        
-	      
-    
-} //   End  namespace Fem2D
-  
-	      
diff --git a/src/femlib/RNM.hpp.orig b/src/femlib/RNM.hpp.orig
deleted file mode 100644
index 5ee56ac..0000000
--- a/src/femlib/RNM.hpp.orig
+++ /dev/null
@@ -1,1606 +0,0 @@
-// ********** DO NOT REMOVE THIS BANNER **********
-// ORIG-DATE:    29 fev 2000  
-// -*- Mode : c++ -*-
-//
-// SUMMARY  : array modelisation 
-// USAGE    : LGPL      
-// ORG      : LJLL Universite Pierre et Marie Curie, Paris,  FRANCE 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : frederic.hecht at ann.jussieu.fr
-//
-
-/*
- 
-
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- 
-
- */
-#ifndef KNM_H_
-#define KNM_H_
-// version sept 2008 FH.
-// ----------------------
-// une tentative qui ne marche pas 
-// de tableau constant 
-#include <complex>
-#include <iostream>
-#include <iomanip>
-#include <cmath>
-#include <cassert>
-
-
-using namespace std;
-#define const_R   R
-#include <cstdlib>
-inline void Check_Kn(const char * str,const char * file,int line)
-{
- cerr << "CHECK_KN: " << str << " in file: " << file << ", line " << line <<endl;
-#ifdef VersionFreeFempp
-    ffassert(0); 
-#else
-    assert(0);
-#endif
-    
-  abort();
-}
-
-#define K_bigassert(i)  if (!(i)) Check_Kn(#i,__FILE__,__LINE__);
-#define RNM_FATAL_ERROR(i) Check_Kn(i,__FILE__,__LINE__);
-#ifdef CHECK_KN
-
-#define K_throwassert(i)  if (!(i)) Check_Kn(#i,__FILE__,__LINE__);
-
-#else
-#define K_throwassert(i) 
-#endif
-// version du 29 fev 2000  
-//  correction   for (... lj++,ui++  qui apelle le produit scalaire
-//  petite correction  throwassert 
-// ajoute de operateur /= et *= sur des vecteurs
-//   suppression de constructeur qui pose de probleme   
-//   correction oper +=  ...  dans RNM_op.h ligne 56  change = en oper
-// version de 25 nov 99  sans const R
-// ajoute de '.' pour extraire une colonne, ou ligne  , ...
-//  version du 22 nov 1999   cast to KN_<const R> 
-//   version du 21 nov 1999  correction delete 
-//  version du 13 nov 1999
-//  version du 18 mars 99
-//  F. Hecht 
-// attention les indexations les indexations peuvent changer
-//  puisque que l'on peut prendre la transposer d'une matrice
-// tableau 
-// mais ils partent de 0 
-// version corrigee du 15/11/98
-// version avec sous tableau  ---  mars 99 
-// -------
-//  remarque du 8 mars 99 FH
-// class pour prendre des sous-tableau
-// attention aux PB de continute dans les tableaux
-// on a supposer que les tableaux multi indices pouvait est vue comme 
-// un tableau continue ce qui est generalement faux quand l'on en 
-// prend un sous tableau
-//   exemple: un tableau 3,5 est numerote comme:
-//    0  3  6  9 12
-//    1  4  7 10 13
-//    2  5  8 11 14
-//             step
-//   indexi  n 1
-//   indexj  m n
-//   est le sous tableau  3,3  n'est pas numeroter consecutivement 
-//  
-//    Donc la fonction  IsVector1() nous dit si un tableau 
-//    a un 2 ou 3 indices est ou non consecutif en memoire
-//    
-//  --  ajoute d'une classe VirtualMatrice
-// pour modeliser le produit matrice vecteur 
-//  x = A*v; via des fonctions virtuelle 
-//  ---------------------------------- 
-//   version du 6 mars 2001 FH
-//   ---  initialisation --
-//   --------------------------------
-//   version du 9 oct 2001 FH
-//   ajoute de constructeur par defaut d'une vecteur
-//   +  set , pour definir le vecteur 
-//   ou l'affectation (bof bof) 
-// ---------------------
-//  version sep 2002
-//  ajoute  operateur >> pour  KN<R> et KN_<R>
-//  --------------------  
-//  version  april 2003
-//  ajoute un gestion auto de 
-//  la fonction InternalError pour les matriceVirtuel
-//  --------------------  
-//   version jan 2004
-//   correction pour go ++ 
-//   des operateur  #=  pour les matrices et tenseurs
-//  ----------------------
-//   version  feb 2004 
-//   v(i(:)) =  w   //  i(1:10) 
-//   w=u(i(:))  //  
-//   version mars 2004 make small correction
-//   in  ITAB operator problem if non type R a defi 
-//   -------------------
-//   Modif pour version avec les Complex   mai 2004                                                                                                 
-//   (u,v)  donne le produit complex utiliser dans le produit matrice vecteur
-//   (u,conj(v))  donne le produit hermitiene pour le gradient conjugue
-//
-//   -- de fonction dans le cas real                                                                                                                 
-// modif for g++ 4.0 and xlc++   mai 2005
-//  adding some this-> 
-//   mars 2007
-// correction in operator operation:b -1*c 
-// aout 2007, 
-//  correct y = A*x ; when y is unset 
-//  correct y += A*x ; when y is unset 
-//  re-correct += sep 2007
-//  add size of the matrix in VirtualMatrix class.
-//   mars 2010 add  unset KNM case ...
-//  sept 2014  add 1/v operator  ... 
-// ----------------
-
-namespace RNM {
-inline double  conj(const double & x){return x;}
-inline float  conj(const float &x){return x;}
-inline long  conj(const long &x){return x;}
-inline double  real(const double &x){return x;}
-inline float  real(const float &x){return x;}
-    template<class T> T  real(const complex<T>& v){ return std::real(v);}
-inline double  norm2(const double x){return x*x;}
-inline float  norm2(const float x){return x*x;}
-template<class T> T  norm2(const complex<T>& v){ return std::norm(v);}
-    
-template<class T> inline complex<T>  conj(const complex<T>& v){ return std::conj<T>(v);}
-template<class T> inline T Min (const T &a,const T &b){return a < b ? a : b;}
-template<class T> inline T Max (const T &a,const T & b){return a > b ? a : b;}
-template<class T> inline T Abs (const T &a){return a <0 ? -a : a;}
-
-template<class T> inline void Exchange (T& a,T& b) {T c=a;a=b;b=c;}
-template<class T> inline T Max (const T &a,const T & b,const T & c){return Max(Max(a,b),c);}
-template<class T> inline T Min (const T &a,const T & b,const T & c){return Min(Min(a,b),c);}
-// specialisation cas complex ---
-template<class T> 
-inline complex<T> Min(const complex<T> &a,complex<T> &b)
-{ return complex<T>(min(a.real(),b.real()),min(a.imag(),b.imag()));}
-template<class T> 
-inline complex<T> Max(const complex<T> &a,const complex<T> &b)
-{ return complex<T>(max(a.real(),b.real()),max(a.imag(),b.imag()));}
-
-/*inline complex<double> Min(const complex<double> &a,complex<double> &b)
-{ return complex<double>(Min(real(a),real(b)),Min(imag(a),imag(b)));}
-inline complex<double> Max(const complex<double> &a,const complex<double> &b)
-{ return complex<double>(Max(real(a),real(b)),Max(imag(a),imag(b)));}
-*/ }
-//  ----                                                                                                                                             
-
-template<class R> class KNMK_ ;
-template<class R> class KNM_ ;
-template<class R> class KN_ ;
-template<class R> class TKN_ ; // KN_ Hermitain 
-template<class R> class ConjKNM_ ;//  take the conj of the matrix.
-template<class R> class notKN_ ; // KN_ not 
-template<class R> class notnotKN_ ; // KN_ not not 
-
-template<class R> class KNMK ;
-template<class R> class KNM ;
-template<class R> class KN ;
-
-template<class R> class conj_KN_ ;
-template<class R> class Add_KN_;
-template<class R> class Sub_KN_;
-template<class R> class Mulc_KN_; // vector b*a_i
-template<class R> class Divc_KN_;// vector b/a_i
-template<class R> class Add_Mulc_KN_;
-template<class R> class Mul_KNM_KN_; 
-template<class R> class DotStar_KN_;
-template<class R> class DotSlash_KN_;
-
-template<class R> class outProduct_KN_;
-template<class R> class if_KN_;
-template<class R> class if_arth_KN_;
-template<class R> class ifnot_KN_;
-template<class R,class I> class KN_ITAB; 
-
-template<class R,typename A,typename B> class F_KN_;
-
-
-#ifndef ffassert
-#define ffassert assert
-#endif
-
-// gestion des erreur interne --
-#ifndef InternalError
-typedef void (* TypeofInternalErrorRoutine)(const char *) ;
-static TypeofInternalErrorRoutine &InternalErrorRoutinePtr()
-{ 
-  static TypeofInternalErrorRoutine routine=0;
-  return routine;
-}
-
-static void InternalError(const char * str) {
-  if (InternalErrorRoutinePtr() ) (*InternalErrorRoutinePtr())(str);
-  cerr << str; 
-  exit(1);
-}
-inline void  SetInternalErrorRoutine(TypeofInternalErrorRoutine f) 
-{
-  InternalErrorRoutinePtr()=f;
-}
-#endif
-//  -- 
-template<class P,class Q> 
-   struct PplusQ { const P & p;const Q & q;
-    PplusQ(const P & pp,const Q & qq) : p(pp),q(qq){}
-    };
-
-template<class R> 
-struct  VirtualMatrice { public:
-    int N,M;
-    VirtualMatrice(int nn,int mm): N(nn),M(mm) {}
-    VirtualMatrice(int nn): N(nn),M(nn) {}
-  //  y += A x
-  virtual void addMatMul(const KN_<R> &  x, KN_<R> & y) const =0; 
-  virtual void addMatTransMul(const KN_<R> &  , KN_<R> & ) const 
-    { InternalError("VirtualMatrice::addMatTransMul not implemented "); }
-  virtual bool WithSolver() const {return false;} // by default no solver          
-  virtual void Solve( KN_<R> &  ,const KN_<R> & ) const 
-    { InternalError("VirtualMatrice::solve not implemented "); } 
-
-#ifdef VersionFreeFempp
-  virtual bool ChecknbLine  (int n) const= 0; 
-  virtual bool ChecknbColumn  (int m) const =0; 
-#else
-  virtual bool ChecknbLine  (int n) const {return true;} 
-  virtual bool ChecknbColumn  (int m) const {return true;}
-#endif
-  struct  plusAx { const VirtualMatrice * A; const KN_<R>   x;
-   plusAx( const VirtualMatrice * B,const KN_<R> &  y) :A(B),x(y) 
-      { ffassert(B->ChecknbColumn(y.N())); }
-    };
-    
-   plusAx operator*(const KN_<R> &  x) const {return plusAx(this,x);}
-   
-  struct  plusAtx { const VirtualMatrice * A; const KN_<R>   x;
-   plusAtx( const VirtualMatrice * B,const KN_<R> &  y) :A(B),x(y) 
-    {ffassert(B->ChecknbLine(y.N()));} };
-    
-  struct  solveAxeqb { const VirtualMatrice * A; const KN_<R>   b;
-   solveAxeqb( const VirtualMatrice * B,const KN_<R> &  y) :A(B),b(y) 
-    {ffassert(B->ChecknbColumn(y.N()));} };
-  
-  virtual ~VirtualMatrice(){} 
-};
-
-    
-
-//template <class R> class MatriceCreuseMulKN_;
-//template <class R> class MatriceCreuseDivKN_;
-
-class ShapeOfArray;
-
-class FromTo{ public:
-  long from,to;
-  FromTo(long i,long j):from(i),to(j) {K_throwassert(i<j);} 
- };
- 
-class SubArray{ public:
-  const long n,step,start;
-//  SubArray(char  nn): n(-1),step(1),start(0) {}  
- explicit SubArray(long nn,long sta=0,long s=1): n(nn),step(s),start(sta) {}
-  SubArray(const FromTo& ft) : n(ft.to-ft.from+1),step(1),start(ft.from) {}
-  SubArray(const ShapeOfArray & ); // all 
-  long end()  const  { return start+ step*n;}
-  long last() const  { return start+ step*(n-1);}
-  long len1() const  { return step*(n-1);}  
-};
-
-
-class ShapeOfArray{ protected:
-  public:
-
-    long n;     //   n  nb of item
-    long step;  //   step  nb of between 2 item
-    long next;  //  the   next array of same type in matrix for subarray  
-              // by default  no next ( in case of KN, and KNM  -next is
-              // a counter of destruction  (use in frefem++)
-  ShapeOfArray(const ShapeOfArray & s,long nn): n(s.n),step(s.n),next(nn) {}              
-  ShapeOfArray(long nn): n(nn),step(1),next(-1) {}
-  
-  ShapeOfArray(long nn,long s): n(nn),step(s),next(-1) {}
-  
-  ShapeOfArray(long nn,long s,long nextt): n(nn),step(s),next(nextt) {}
-  
-  ShapeOfArray(const ShapeOfArray &old,const SubArray &sub) 
-         : n(sub.n),step(old.step*sub.step),next(old.next)
-          { K_throwassert((sub.last())*old.step <= old.last());} // a constructor 
-          
-  ShapeOfArray(const ShapeOfArray &old,long stepo,long start) 
-         : n(old.n-start),step(old.step*stepo),next(old.next) 
-          { K_throwassert(n>=0);}        
-          
-  long end()  const      { return n*step;}
-  long last()      const      { return (n-1)*step;}
-  long constant()  const { return step==0;}
-  long index(long k) const { K_throwassert( (k>=0) && ( (k <n) || !step) );
-           return step*k;}
-  ShapeOfArray operator*(long stepp) const {return  ShapeOfArray(n,step*stepp,next);}  
-  bool SameShape(const ShapeOfArray & a) const 
-          { return  !step || !a.step || a.n == n ;} 
-  long  N(const ShapeOfArray & a) { return step ? n : a.n;} // size of 2 shape 
-
-  
-// protected:
-  long operator[](long k) const {  
-    //if( k<0 || ( k<n && !step) )
-    //  cout << "k,n,step=" << k << " " << n << " " << step << endl;
-    K_throwassert( (k>=0) && ( (k <n) || !step) );
-           return step*k;}     
-  void init(long nn,long s=1,long nextt=-1) { n=nn; step=s; next=nextt;}         
-};
-
-ostream & operator<<(ostream & f,const ShapeOfArray & s);
-
-inline bool  SameShape(const ShapeOfArray & a,const ShapeOfArray & b) 
-           { return  !a.step || !b.step || a.n == b.n ;} 
-   
-inline long N(const ShapeOfArray & a,const ShapeOfArray & b) 
-           { K_throwassert(SameShape(a,b)); return  a.step ? a.n :  b.n ;}
-
-inline SubArray::SubArray(const ShapeOfArray & s) 
-           :n(s.n),step(s.step),start(0) {}
-           
-   
-
-template<class R> 
-ostream & operator<<(ostream & f,const KN_<const_R> & v) ;
-
-template<class R> istream & operator>>(istream & f, KN_<R> & v);
-template<class R> istream & operator>>(istream & f, KN<R> & v);
-
-template<class R>
-class SetArray { public:
-    R o,step;
-    long n;
-    explicit SetArray(long nn,R oo=R(),R sstep=R(1)): o(oo),n(nn),step(sstep) {}
-    template<class K>   SetArray(SetArray<K> sa): o(sa.o),n(sa.n),step(sa.step) {}
-    
-  R operator[](long i) const { return i <= n ? o + R(i)*step : R();}
-    long size() const {return n;}
-};
-
-/// <<KN_>>
-template<class R>
-class KN_: public  ShapeOfArray {
-protected:
-  R *v;
-public:
-  typedef R K; // type of data 
-  long N() const {return n;}
-  bool unset() const { return !v;}
-  void set(R * vv,int nn,int st=1,int nx=-1) {v=vv;n=nn;step=st;next=nx;}
-  long size() const{return step?n*step:n;}
-  operator R *() const {return v;}
-  KN_(const KN_<R> & u) :ShapeOfArray(u),v(u.v){} 
-  KN_(const KN_<R> & U,const SubArray & sa)  : ShapeOfArray(U,sa),v(U.v + U.index(sa.start)) {}
-
-  KN_ operator()(const SubArray & sa) const { return KN_(*this,sa);} // sub array 
-  
-  R & operator[](long i) const {return v[index(i)];}
-  R & operator()(long i) const {return v[index(i)];}
-  R & operator[](int i) const {return v[index(i)];}
-  R & operator()(int i) const {return v[index(i)];}
-
-  R operator,(const KN_<const_R> & v) const; // dot  product 
-
-   KN_& operator  =(const SetArray<R> & u)  ;
-   KN_& operator +=(const SetArray<R> & u)  ;
-   KN_& operator -=(const SetArray<R> & u)  ;  
-   KN_& operator *=(const SetArray<R> & u)  ;
-   KN_& operator /=(const SetArray<R> & u)  ;
-
-    KN_& operator  =(const KN_<const_R> & u)  ;
-    KN_& operator +=(const KN_<const_R> & u)  ;
-    KN_& operator -=(const KN_<const_R> & u)  ;
-    
-    KN_& operator *=(const KN_<const_R> & u)  ;
-    KN_& operator /=(const KN_<const_R> & u)  ;
-    
-  
-   KN_& operator = (const_R  a) ;  
-   KN_& operator +=(const_R  a) ;
-   KN_& operator -=(const_R  a) ;  
-   KN_& operator /=(const_R  a) ;
-   KN_& operator *=(const_R  a) ;
-  
-   KN_& operator  = (R*  a) { return operator =(KN_<R>(a,n));}
-   KN_& operator += (R*  a) { return operator+=(KN_<R>(a,n));}  
-   KN_& operator -= (R*  a) { return operator-=(KN_<R>(a,n));}  
-   KN_& operator *= (R*  a) { return operator*=(KN_<R>(a,n));}  
-   KN_& operator /= (R*  a) { return operator/=(KN_<R>(a,n));}  
-
-
-  
-  R min() const ;
-  R max() const ;
-  R sum() const ;
-  double norm() const ;
-  double l2() const ;
-  double l1() const ;
-  double linfty() const ;
-  double lp(double p) const ;
-  
-  template<class T> long last(const T &) const;
-  template<class T> long first(const T &) const;
-  
-  void map(R (*f)(R )); // apply the f fonction a all element of the array
-  void map(R (*f)(const  R& )); // apply the f fonction a all element of the array
-
- template<class T>
-   void set(R (*f)(const  T& ),KN_<T> & u); // apply the f fonction a all element of the array u
-  
-   KN_& operator =(const DotStar_KN_<R> & u) ;
-   KN_& operator+=(const DotStar_KN_<R> & u) ;
-   KN_& operator-=(const DotStar_KN_<R> & u) ;
-   KN_& operator*=(const DotStar_KN_<R> & u) ;
-   KN_& operator/=(const DotStar_KN_<R> & u) ;
-
-   KN_& operator =(const DotSlash_KN_<R> & u) ;
-   KN_& operator+=(const DotSlash_KN_<R> & u) ;
-   KN_& operator-=(const DotSlash_KN_<R> & u) ;
-   KN_& operator*=(const DotSlash_KN_<R> & u) ;
-   KN_& operator/=(const DotSlash_KN_<R> & u) ;
-
-   KN_& operator =(const if_KN_<R> & u) ;
-   KN_& operator+=(const if_KN_<R> & u) ;
-   KN_& operator-=(const if_KN_<R> & u) ;
-   KN_& operator*=(const if_KN_<R> & u) ;
-   KN_& operator/=(const if_KN_<R> & u) ;
-
-   KN_& operator =(const ifnot_KN_<R> & u) ;
-   KN_& operator+=(const ifnot_KN_<R> & u) ;
-   KN_& operator-=(const ifnot_KN_<R> & u) ;
-   KN_& operator*=(const ifnot_KN_<R> & u) ;
-   KN_& operator/=(const ifnot_KN_<R> & u) ;
-
-   KN_& operator =(const Add_KN_<R> & u) ;
-   KN_& operator+=(const Add_KN_<R> & u) ;
-   KN_& operator-=(const Add_KN_<R> & u) ;
-   KN_& operator*=(const Add_KN_<R> & u) ;
-   KN_& operator/=(const Add_KN_<R> & u) ;
-  
-   template<class I,class T> KN_& operator =  (const KN_ITAB<T,I> & u);
-   template<class I,class T> KN_& operator +=  (const KN_ITAB<T,I> & u);
-   template<class I,class T> KN_& operator -=  (const KN_ITAB<T,I> & u);
-   template<class I,class T> KN_& operator *=  (const KN_ITAB<T,I> & u);
-   template<class I,class T> KN_& operator /=  (const KN_ITAB<T,I> & u);
-
-
-   KN_ITAB< KN_<R>,const KN_<int> >  operator()(const KN_<int> &itab) ;
-   KN_ITAB< KN_<R>,const KN_<long> >  operator()(const KN_<long> &itab) ;
-   KN_ITAB<const KN_<R>,const KN_<int> > operator()(const KN_<int> &itab) const ;
-   KN_ITAB<const KN_<R>,const KN_<long> >  operator()(const KN_<long> &itab) const ;
-
-
-    
-
-  
-   KN_& operator =(const Sub_KN_<R> & u) ;
-   KN_& operator-=(const Sub_KN_<R> & u) ;
-   KN_& operator+=(const Sub_KN_<R> & u) ;
-   KN_& operator*=(const Sub_KN_<R> & u) ;
-   KN_& operator/=(const Sub_KN_<R> & u) ;
-  
-   KN_& operator =(const Mulc_KN_<R> & u) ;
-   KN_& operator+=(const Mulc_KN_<R> & u) ;
-   KN_& operator-=(const Mulc_KN_<R> & u) ;
-   KN_& operator*=(const Mulc_KN_<R> & u) ;
-   KN_& operator/=(const Mulc_KN_<R> & u) ;
- 
-    KN_& operator =(const Divc_KN_<R> & u) ;
-    KN_& operator+=(const Divc_KN_<R> & u) ;
-    KN_& operator-=(const Divc_KN_<R> & u) ;
-    KN_& operator*=(const Divc_KN_<R> & u) ;
-    KN_& operator/=(const Divc_KN_<R> & u) ;
-    
-   KN_& operator =(const Add_Mulc_KN_<R> & u) ;
-   KN_& operator+=(const Add_Mulc_KN_<R> & u) ;
-   KN_& operator-=(const Add_Mulc_KN_<R> & u) ;
-   KN_& operator*=(const Add_Mulc_KN_<R> & u) ;
-   KN_& operator/=(const Add_Mulc_KN_<R> & u) ;
-
-   KN_& operator =(const if_arth_KN_<R> & u) ;
-   KN_& operator+=(const if_arth_KN_<R> & u) ;
-   KN_& operator-=(const if_arth_KN_<R> & u) ;
-   KN_& operator*=(const if_arth_KN_<R> & u) ;
-   KN_& operator/=(const if_arth_KN_<R> & u) ;
-
-  
-   KN_& operator =(const Mul_KNM_KN_<R> & u) ; 
-   KN_& operator+=(const Mul_KNM_KN_<R> & u) ; 
-   KN_& operator-=(const Mul_KNM_KN_<R> & u) ; 
-   KN_& operator*=(const Mul_KNM_KN_<R> & u) ; 
-   KN_& operator/=(const Mul_KNM_KN_<R> & u) ; 
-  
- //  KN_& operator =(const MatriceCreuseMulKN_<R> & ) ;
- //  KN_& operator +=(const MatriceCreuseMulKN_<R> & ) ;
-   KN_& operator =(const typename VirtualMatrice<R>::plusAx & Ax)  
-    {*this=R(); Ax.A->addMatMul(Ax.x,*this);return *this;}
-   KN_& operator =(const typename VirtualMatrice<R>::plusAtx & Ax)  
-    {*this=R(); Ax.A->addMatTransMul(Ax.x,*this);return *this;}
-   KN_& operator +=(const typename VirtualMatrice<R>::plusAx & Ax)  
-    {  Ax.A->addMatMul(Ax.x,*this);return *this;}
-   KN_& operator +=(const typename VirtualMatrice<R>::plusAtx & Ax)  
-    {  Ax.A->addMatTransMul(Ax.x,*this);return *this;}
-   KN_& operator =(const typename VirtualMatrice<R>::solveAxeqb & Ab)  
-    {*this=R(); Ab.A->Solve(*this,Ab.b);return *this;}
-    
-  template<class  A,class B,class C> KN_&  operator =  (const F_KN_<A,B,C>  & u) ;
-  template<class  A,class B,class C> KN_&  operator +=  (const F_KN_<A,B,C>  & u) ;
-  template<class  A,class B,class C> KN_&  operator -=  (const F_KN_<A,B,C>  & u) ;
-  template<class  A,class B,class C> KN_&  operator /=  (const F_KN_<A,B,C>  & u) ;
-  template<class  A,class B,class C> KN_&  operator *=  (const F_KN_<A,B,C>  & u) ;
-    
-   
-//   KN_& operator =(const MatriceCreuseDivKN_<R> &)  ;
-
- friend   ostream & operator<< <R>(ostream & f,const KN_<const_R> & v)  ;
- 
-  KN_(R *u,const ShapeOfArray & s):ShapeOfArray(s),v(u){}
-  KN_(R *u,long nn,long s):ShapeOfArray(nn,s),v(u){}
-  KN_(R *u,long nn,long s,long nextt):ShapeOfArray(nn,s,nextt),v(u){}
-  KN_(R *u,long nn):ShapeOfArray(nn),v(u){}
-
-
-  TKN_<R>  t() ; // transpose
-  const TKN_<R>  t() const ; // transpose
-  notKN_<R>  operator!()  ; //  not
-  const  notKN_<R>  operator!() const ; // not
-
-  //  operator KN<R> &();
-  // operator const KN<R> &() const;
-
- private:
- 
-  KN_&  operator++(){K_throwassert(next>=0);v += next;return *this;} //    ++U
-  KN_&  operator--(){K_throwassert(next>=0);v -= next;return *this;} //    --U
-  KN_   operator++(int ){K_throwassert(next>=0); KN_ old=*this;v = v +next;return old;} // U++
-  KN_   operator--(int ){K_throwassert(next>=0); KN_ old=*this;v = v -next;return old;} // U++
- 
-  KN_(const KN_<R> & u,long offset) :ShapeOfArray(u),v(&u[offset]){} 
-  KN_(const KN_<R> & u,const ShapeOfArray &sh,long startv=0)
-         :ShapeOfArray(sh*u.step),v(&u[startv]){}
-  KN_(const KN_<R> & u,long nnext,const ShapeOfArray &sh,long startv=0)
-         :ShapeOfArray(sh.n,sh.step*u.step,nnext),v(&u[startv]){ }
-
-  
-// friend class KN_<R>;   
- friend class KNM_<R>;   
- friend class KNMK_<R>;   
- friend class KN<R>;   
- friend class KNM<R>;   
- friend class KNMK<R>;   
-  
-};
-
-template<class R>
-class KNM_: public KN_<R> {
-  public:
-  ShapeOfArray shapei;
-  ShapeOfArray shapej;
-  public:
-  long IsVector1() const  {  return (shapei.n*shapej.n) ==  this->n ;} 
-  long N() const {return shapei.n;}
-  long M() const {return shapej.n;}  
-  long size() const { return shapei.n*shapej.n;}
-    
-  ConjKNM_<R>  h() ; // take the conj for hermian operator
-  const ConjKNM_<R>  h() const ; // take the conj for hermian operator
-  
-  KNM_(R* u,const ShapeOfArray & s,
-            const ShapeOfArray & si,
-            const ShapeOfArray & sj)
-             : KN_<R>(u,s),shapei(si),shapej(sj){} 
-  KNM_(R* u,long nn,long mm)
-             : KN_<R>(u,ShapeOfArray(nn*mm)),shapei(nn,1,nn),shapej(mm,nn,1){}
-  KNM_(R* u,long nn,long mm,long s)
-             : KN_<R>(u,ShapeOfArray(nn*mm,s)),shapei(nn,1,nn),shapej(mm,nn,1){}                     
-  KNM_(KN_<R> u,long n,long m) 
-             : KN_<R>(u,ShapeOfArray(m*n)),shapei(n,1,n),shapej(m,n,1){ }
-             
-  KNM_(const KN_<R> &u,const ShapeOfArray & si,const ShapeOfArray & sj,long offset=0) 
-             : KN_<R>(&u[offset],si.last()+sj.last()+1,u.step),shapei(si),shapej(sj) 
-             {K_throwassert( offset>=0 && this->n+ (this->v-(R*)u) <= u.n);}
-  KNM_(const KN_<R> &u,const ShapeOfArray & si,const ShapeOfArray & sj,long offset,long nnext) 
-             : KN_<R>(&u[offset],si.last()+sj.last()+1,u.step,nnext),shapei(si),shapej(sj) 
-             {K_throwassert( offset>=0 && this->n+ (this->v-(R*)u) <= u.n);}
-  
-  KNM_(KNM_<R> U,const SubArray & si,const SubArray & sj)  
-             :KN_<R>(U,SubArray(U.ij(si.len1(),sj.len1())+1,U.ij(si.start,sj.start))),
-                     shapei(U.shapei,si),shapej(U.shapej,sj){} 
-
-  KNM_(KNM_<R> U,const SubArray & sa,const SubArray & si,const SubArray & sj)  
-             :KN_<R>(U,SubArray(sa)),shapei(U.shapei,si),shapej(U.shapej,sj){} 
-
-  KNM_(const KNM_<R> & u) 
-             :KN_<R>(u),shapei(u.shapei),shapej(u.shapej) {}
-
-  KNM_ operator()(const SubArray & sa,const SubArray & sb) const 
-            { return KNM_(*this,sa,sb);} // sub array 
-  
-  long ij(long i,long j) const   
-            { return shapei.index(i)+shapej.index(j);}
-  long indexij(long i,long j)        const   
-            { return this->index(shapei.index(i)+shapej.index(j));}
-  R & operator()(long i,long j)     const   
-            { return this->v[indexij(i,j)];}
-  R & operator()(int i,int j)     const   
-            { return this->v[indexij(i,j)];}
-            
-   KN_<R> operator()(const SubArray & sa,long j) const 
-    { return this->operator()(':',j)(sa);}  // sub array 
-   
-  KN_<R> operator()(long i,const SubArray & sb) const 
-    { return  this->operator()(i,':')(sb);} 
-    
-  KN_<R> operator()(const char,long j    )  const   // une colonne j  ('.',j)
-            { return KN_<R>(&this->v[this->index(shapej.index(j))],shapei*this->step);} 
-  KN_<R> operator()(long i    ,const char)  const   // une ligne i  (i,'.')
-            { return KN_<R>(&this->v[this->index(shapei.index(i))],shapej*this->step);}  
-  KN_<R> operator()(const char,int j    )  const   // une colonne j  ('.',j)
-            { return KN_<R>(&this->v[this->index(shapej.index(j))],shapei*this->step);} 
-  KN_<R> operator()(int i    ,const char)  const   // une ligne i  (i,'.')
-            { return KN_<R>(&this->v[this->index(shapei.index(i))],shapej*this->step);}  
-  KN_<R> operator()(const char,const char)  const   // tous 
-            { return *this;}
-  KNM_<R> t() const
-    { return KNM_<R>(this->v,*this,shapej,shapei);} //  before  { return KNM_<R>(*this,shapej,shapei,v);}
-  
-   KNM_& operator =(const KNM_<const_R> & u) ;
-   KNM_& operator =(const_R a)               ;
-   KNM_& operator+=(const_R a)               ;
-   KNM_& operator-=(const_R a)               ; 
-   KNM_& operator/=(const_R a)               ;
-   KNM_& operator*=(const_R a)               ; 
-   KNM_& operator+=(const KNM_<const_R> & u) ;
-   KNM_& operator-=(const KNM_<const_R> & u) ;
-   KNM_& operator*=(const KNM_<const_R> & u) ;
-   KNM_& operator/=(const KNM_<const_R> & u) ;
-   
-   KNM_ &operator =(const outProduct_KN_<R> &);
-   KNM_ &operator +=(const outProduct_KN_<R> &);
-   KNM_ &operator -=(const outProduct_KN_<R> &);
-   KNM_ &operator /=(const outProduct_KN_<R> &); // bofbof
-   KNM_ &operator *=(const outProduct_KN_<R> &); // bofbof
-
-    KNM_ &operator  =(const ConjKNM_<R> &);
-    KNM_ &operator +=(const ConjKNM_<R> &);
-    KNM_ &operator -=(const ConjKNM_<R> &);
-    KNM_ &operator /=(const ConjKNM_<R> &); // bofbof
-    KNM_ &operator *=(const ConjKNM_<R> &); // bofbof
-    
-private:  
-  KNM_& operator++() {this->v += this->next;return *this;} // ++U
-  KNM_& operator--() {this->v -= this->next;return *this;} // ++U
-  KNM_  operator++(int ){KNM_<R> old=*this;this->v = this->v +this->next;return old;} // U++
-  KNM_  operator--(int ){KNM_<R> old=*this;this->v = this->v -this->next;return old;} // U--
-
-
- friend class KN_<R>;   
-// friend class KNM_<R>;   
- friend class KNMK_<R>;   
- friend class KN<R>;   
- friend class KNM<R>;   
- friend class KNMK<R>;   
-};
-
-template<class T,class I> 
-struct KN_ITAB
-{
-  KN_ITAB(const T &vv,const I &iindex) : v(vv),index(iindex) {}
-  T  v;
-  I  index;
-  KN_ITAB & operator=(const T & t);
-  KN_ITAB & operator+=(const T & t);
-  KN_ITAB & operator-=(const T & t);
-  KN_ITAB & operator*=(const T & t);
-  KN_ITAB & operator/=(const T & t);
-  typename T::R & operator[](long i){ return v[index[i]];}
-  const typename T::R &  operator[](long i) const { return v[index[i]];}
-  long N() const { return index.N();}    
-};
-
-template<class R>  KN_ITAB<const KN_<R>,const KN_<int> >  KN_<R>::operator()(const KN_<int>  &itab) const { return KN_ITAB<const KN_<R>,const KN_<int> > (*this,itab);}
-template<class R>  KN_ITAB<const KN_<R>,const KN_<long> >  KN_<R>::operator()(const KN_<long>  &itab) const { return KN_ITAB<const KN_<R>,const KN_<long> > (*this,itab);}
-template<class R>  KN_ITAB< KN_<R>,const KN_<int> >  KN_<R>::operator()(const KN_<int>  &itab) { return KN_ITAB<KN_<R>,const KN_<int> > (*this,itab);}
-template<class R>  KN_ITAB< KN_<R>,const KN_<long> >  KN_<R>::operator()(const KN_<long>  &itab) { return KN_ITAB<KN_<R>,const KN_<long> > (*this,itab);}
-
-
-template<class R>
-struct TKN_:public KN_<R> {
-    TKN_(const KN_<R> &x) : KN_<R>(x) {}
-};
-
-template<class R>
-struct ConjKNM_:public KNM_<R> {
-    ConjKNM_(const KNM_<R> &x) : KNM_<R>(x) {}
-};
-
-template<class R>
-struct notKN_:public KN_<R> {
-    notKN_(const KN_<R> &x) : KN_<R>(x) {}
-    notnotKN_<R>  operator!()  ; //  not
-    const  notnotKN_<R>  operator!() const ; // not
-};
-
-template<class R>
-struct notnotKN_:public KN_<R> {
-    notnotKN_(const notKN_<R> &x) : KN_<R>(x) {}
-    notKN_<R>  operator!()  ; //  notnot
-    const  notKN_<R>  operator!() const ; // notnot
-};
-
-template<class R>
-TKN_<R>  KN_<R>::t() { return *this;} // transpose
-template<class R>
-ConjKNM_<R>  KNM_<R>::h() { return *this;} // conj of the matrix
-
-template<class R>
-const TKN_<R>  KN_<R>::t() const { return *this;} // transpose
-template<class R>
-const ConjKNM_<R>  KNM_<R>::h() const { return *this;} //  conj of the matrix
-
-template<class R>
-notKN_<R>  KN_<R>::operator!() { return *this;} // not
-
-template<class R>
-const notKN_<R>  KN_<R>::operator!() const { return *this;} // not
-
-template<class R>
-notnotKN_<R>  notKN_<R>::operator!() { return *this;} // not
-
-template<class R>
-const notnotKN_<R>  notKN_<R>::operator!() const { return *this;} // not
-
-
-template<class R>
-struct outProduct_KN_ {
-    const KN_<R>  a,b;
-    R c;
-    long N() const {return a.N();    }
-    long M() const {return b.N();    }
-    outProduct_KN_(const KN_<R> & aa, const KN_<R> &bb,R cc=(R)1) : a(aa),b(bb),c(cc) {}
-    outProduct_KN_(const KN_<R> * aa, const KN_<R> &bb,R cc=(R)1) : a(*aa),b(bb),c(cc) {}
-    outProduct_KN_(const KN_<R> * aa, const KN_<R> *bb,R cc=(R)1) : a(*aa),b(*bb),c(cc) {}
-    outProduct_KN_(const Mulc_KN_<R> & aa,const KN_<R> & bb) : a(aa.a),b(bb),c(aa.b) {}    
-    outProduct_KN_ operator * (R cc) { return outProduct_KN_(a,b,c*cc);}    
-};
-
-template<class R>
-struct if_KN_ {
-    const KN_<R> & a,&b;
-    R c;
-    if_KN_(const KN_<R> & aa, const KN_<R> &bb,R cc=1.) : a(aa),b(bb),c(cc) {}
-    if_KN_ operator * (R cc) { return if_KN_(a,b,c*cc);}    
-};
-
-template<class R>
-struct ifnot_KN_ {
-    const KN_<R> & a,&b;
-    R c;
-    ifnot_KN_(const KN_<R> & aa, const KN_<R> &bb,R cc=1.) : a(aa),b(bb),c(cc) {}
-    ifnot_KN_ operator * (R cc) { return ifnot_KN_(a,b,c*cc);}    
-};
-
-
-template<class R> 
-outProduct_KN_<R> operator*(const KN_<R> &a,const TKN_<R> &b) 
-{ return outProduct_KN_<R>(a,b);}
-
-template<class R> 
-ifnot_KN_<R> operator*(const KN_<R> &a,const notKN_<R> &b) 
-{ return ifnot_KN_<R>(b,a);}
-
-template<class R> 
-ifnot_KN_<R> operator*(const KN_<R> &a,const notnotKN_<R> &b) 
-{ return if_KN_<R>(b,a);}
-
-template<class R> 
-ifnot_KN_<R> operator*(const notKN_<R> &b,const KN_<R> &a) 
-{ return ifnot_KN_<R>(b,a);}
-
-template<class R> 
-ifnot_KN_<R> operator*(const notnotKN_<R> &b,const KN_<R> & a) 
-{ return if_KN_<R>(b,a);}
-
-
-template<class R> 
-R operator*(const TKN_<R> &a,const KN_<R> &b) 
-{ return (a,b);}
-
-template<class R>
-class KNMK_: public KN_<R> {
-  friend class KNMK<R>;
-  public:
-  ShapeOfArray shapei;
-  ShapeOfArray shapej;
-  ShapeOfArray shapek;
-  public:
-  long IsVector1() const {  return (shapei.n*shapej.n*shapek.n) == this->n ;} 
-  long N() const {return shapei.n;}
-  long M() const {return shapej.n;}
-  long K() const {return shapek.n;}
-  long size() const { return shapei.n*shapej.n*shapek.n;}
-  KNMK_(const ShapeOfArray & s,
-        const ShapeOfArray & si,
-        const ShapeOfArray & sj,
-        const ShapeOfArray & sk,
-	    R * u)
-    : KN_<R>(u,s),shapei(si),shapej(sj),shapek(sk){} 
-    
-  KNMK_(R* u,long n,long m,long k)
-    : KN_<R>(u, ShapeOfArray(n*m*k)),shapei(n,1,n),shapej(m,n,1),shapek(k,n*m,n*m){};
-    
-//  KNMK_(const KN_<R> & u,long n,long m,long k)
-//   : KN_<R>(ShapeOfArray(n*m*k)),shapei(n,1,n),shapekj(m,n,1),u),
-//     shapek(k,n*m,n*m){};
-
-  KNMK_(const KNMK_<R> &U,const SubArray & si,const SubArray & sj,const SubArray & sk)  :
-    KN_<R>(U,SubArray(U.ijk(si.len1(),sj.len1(),sk.len1())+1,
-                       U.ijk(si.start,sj.start,sk.start))),
-                       shapei(U.shapei,si),
-                       shapej(U.shapej,sj),
-                       shapek(U.shapek,sk){} 
-
-  KNMK_(const KNMK_<R> & u) :KN_<R>(u),shapei(u.shapei),shapej(u.shapej),shapek(u.shapek) {}
-
-    
-  long ijk(long i,long j,long k) const 
-              { return shapei.index(i)+shapej.index(j)+shapek.index(k);}
-  long indexijk(long i,long j,long k) const 
-              {return this->index(shapei.index(i)+shapej.index(j)+shapek.index(k));} 
-                           
-  R & operator()(long i,long j,long k)   const   {return this->v[indexijk(i,j,k)];}
-  R & operator()(int i,int j,int k)   const   {return this->v[indexijk(i,j,k)];}
-  
-//  pas de tableau suivant
- KN_<R>  operator()(const char ,long j,long k)  const  { // le tableau (.,j,k) 
-        return KN_<R>(*this,-1,shapei,shapej[j]+shapek[k]);}
- KN_<R>  operator()(long i,const char ,long k)  const  { // le tableau (i,.,k) 
-        return KN_<R>(*this,-1,shapej,shapei[i]+shapek[k]);}
- KN_<R>  operator()(long i,long j,const char )  const  { // le tableau (i,j,.) 
-        return KN_<R>(*this,-1,shapek,shapei[i]+shapej[j]);}
-
- KN_<R>  operator()(const char ,int j,int k)  const  { // le tableau (.,j,k) 
-        return KN_<R>(*this,-1,shapei,shapej[j]+shapek[k]);}
- KN_<R>  operator()(int i,const char ,int k)  const  { // le tableau (i,.,k) 
-        return KN_<R>(*this,-1,shapej,shapei[i]+shapek[k]);}
- KN_<R>  operator()(int i,int j,const char )  const  { // le tableau (i,j,.) 
-        return KN_<R>(*this,-1,shapek,shapei[i]+shapej[j]);}
-//                                              
- KNM_<R>  operator()(const char ,const char ,long k)  const  { // le tableau (.,.,k) 
-        return KNM_<R>(*this,shapei,shapej,shapek[k],shapek.next);} // step = n*m
- //attention les suivants ne marche pas
- KNM_<R>  operator()(const char ,long j,const char )  const  { // le tableau (.,j,.) 
-        return KNM_<R>(*this,shapei,shapek,shapej[j],-1/*shapej.next*/);} // step = n
-        
- KNM_<R>  operator()(long i,const char ,const char )  const  { // le tableau (i,.,.) 
-        return KNM_<R>(*this,shapej,shapek,shapei[i],-1/*shapei.next*/);}  // step = 1
-
- KNM_<R>  operator()(const char ,const char ,int k)  const  { // le tableau (.,.,k) 
-        return KNM_<R>(*this,shapei,shapej,shapek[k],shapek.next);} // step = n*m
- //attention les suivants ne marche pas
- KNM_<R>  operator()(const char ,int j,const char )  const  { // le tableau (.,j,.) 
-        return KNM_<R>(*this,shapei,shapek,shapej[j],-1/*shapej.next*/);} // step = n
-        
- KNM_<R>  operator()(int i,const char ,const char )  const  { // le tableau (i,.,.) 
-        return KNM_<R>(*this,shapej,shapek,shapei[i],-1/*shapei.next*/);}  // step = 1
-
-   KNMK_& operator =(const KNMK_<const_R> & u) ;
-   KNMK_& operator+=(const KNMK_<const_R> & u)  ;
-   KNMK_& operator-=(const KNMK_<const_R> & u)  ;
-   KNMK_& operator/=(const KNMK_<const_R> & u)  ;
-   KNMK_& operator*=(const KNMK_<const_R> & u)  ;
-   KNMK_& operator =(const_R a)  ; 
-   KNMK_& operator+=(const_R a)  ;
-   KNMK_& operator-=(const_R a)  ;
-   KNMK_& operator/=(const_R a)  ;
-   KNMK_& operator*=(const_R a)  ;
-
-  KNMK_  operator()(SubArray si,SubArray sj,SubArray sk) const 
-        {return KNMK_(*this,si,sj,sk);}
-
-  private:
-//  KNMK_&  operator++(){v += next;return *this;} // ++U
-//  KNMK_&  operator--(){v -= next;return *this;} // --U
-//  KNMK_  operator++(long ){KNMK_ old=*this;v = v +next;return old;} // U++ 
-//  KNMK_  operator--(long ){KNMK_ old=*this;v = v -next;return old;} // U--
- 
-        
-friend class KNM_<R>;   
-friend class KN_<R>;   
-
-};
-
-
-
-template<class R>
-class KN :public KN_<R> { public:
-
-  typedef R K;
-
- // explicit  KN(const R & u):KN_<R>(new R(uu),1,0) {}
-  KN() : KN_<R>(0,0) {}
-  KN(long nn) : KN_<R>(new R[nn],nn)         {} 
-  KN(long nn, R * p) : KN_<R>(new R[nn],nn)  
-    { KN_<R>::operator=(KN_<R>(p,nn));}
-  KN(long nn,R (*f)(long i) ) : KN_<R>(new R[nn],nn) 
-        {for(long i=0;i<this->n;i++) this->v[i]=f(i);}  
-  KN(long nn,const  R & a) : KN_<R>(new R[nn],nn) 
-        { KN_<R>::operator=(a);} 
-  KN(long nn,long s,const  R  a) : KN_<R>(new R[nn],nn,s) 
-        { KN_<R>::operator=(a);} 
-  template<class S>   KN(const KN_<S> & s):KN_<R>(new R[s.n],s.n) 
-        {for (long i=0;i<this->n;i++) this->v[i] = s[i];}
-  template<class S>  KN(const KN_<S> & s,R (*f)(S )):KN_<R>(new R[s.n],s.n) 
-        {for (long i=0;i<this->n;i++) this->v[i] = f(s[i]);}
-  KN(const KN<R> & u):KN_<R>(new R[u.n],u.n)
-        { KN_<R>::operator=(u);}
-  KN(bool ,KN<R> & u):KN_<R>(u) {u.v=0;u.n=0;}// remove copy for return of local KN. 
-    
-  //  explicit KN(const KN_<R> & u):KN_<R>(new R[u.n],u.n) 
-  //      { KN_<R>::operator=(u);}
-        
-  ~KN(){delete [] this->v;}
-   
-  void CheckSet() { if(!(this->n)) {cerr << "Error RNM set array\n";K_throwassert(0); exit(1);}}
-   KN& operator  = (R*  a) { CheckSet(); return operator =(KN_<R>(a,this->n));}
-   KN& operator += (R*  a) { CheckSet(); return operator+=(KN_<R>(a,this->n));}  
-   KN& operator -= (R*  a) { CheckSet(); return operator-=(KN_<R>(a,this->n));}  
-   KN& operator *= (R*  a) { CheckSet(); return operator*=(KN_<R>(a,this->n));}  
-   KN& operator /= (R*  a) { CheckSet(); return operator/=(KN_<R>(a,this->n));}  
-  
-   KN& operator  =(const SetArray<R> & u)  
-     { if(this->unset()) this->set(new R[u.size()],u.size(),0,0); KN_<R>::operator= (u);return *this;}
-   KN& operator +=(const SetArray<R> & u)  
-     { if(this->unset()) this->set(new R[u.size()],u.size(),0,0); KN_<R>::operator+= (u);return *this;}
-   KN& operator -=(const SetArray<R> & u)    
-     { if(this->unset()) this->set(new R[u.size()],u.size(),0,0); KN_<R>::operator-= (u);return *this;}
-   KN& operator *=(const SetArray<R> & u)  
-     { if(this->unset()) this->set(new R[u.size()],u.size(),0,0); KN_<R>::operator*= (u);return *this;}
-   KN& operator /=(const SetArray<R> & u)  
-     { if(this->unset()) this->set(new R[u.size()],u.size(),0,0); KN_<R>::operator/= (u);return *this;}
-
-   KN& operator =(const_R a)  
-        { if(this->unset()) this->set(new R[1],1,0,0); KN_<R>::operator= (a);return *this;}
-   KN& operator =(const KN_<R>& a)  
-        { if(this->unset()) this->set(new R[a.N()],a.N()); KN_<R>::operator= (a);return *this;}                
-   KN& operator =(const KN<R>& a)  
-        { if(this->unset()) this->set(new R[a.N()],a.N()); KN_<R>::operator= (a);return *this;}                
-   KN& operator =(const Add_KN_<R> & u)  
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const DotStar_KN_<R> & u)  
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const if_KN_<R> & u)  
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const ifnot_KN_<R> & u)  
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const DotSlash_KN_<R> & u)  
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const Sub_KN_<R> & u)  
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const Mulc_KN_<R> & u)  
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const Divc_KN_<R> & u)
-    { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const Add_Mulc_KN_<R> & u)
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-   KN& operator =(const if_arth_KN_<R> & u)  
-        { if(this->unset()) this->set(new R[u.a.N()],u.a.N());KN_<R>::operator=(u);return *this;}
-        
-        
-   KN& operator =(const Mul_KNM_KN_<R> & u) 
-        { if(this->unset()) this->set(new R[u.b.N()],u.b.N());KN_<R>::operator=(u);return *this;}
-//   KN& operator =(const MatriceCreuseMulKN_<R> & Ax) 
-//       {if(this->unset()) set(new R[Ax.v.N()],Ax.v.N()); KN_<R>::operator=(Ax);return *this;}
-//   KN& operator +=(const MatriceCreuseMulKN_<R> & Ax) 
-//       {if(this->unset()) set(new R[Ax.v.N()],Ax.v.N()); KN_<R>::operator+=(Ax);return *this;}
-//   KN& operator =(const MatriceCreuseDivKN_<R> & A1x)  
-//       { if(this->unset()) set(new R[A1x.v.N()],A1x.v.N());KN_<R>::operator=(A1x);return *this;}
-  // correcton aout 2007 FH  add N,M flied in VirtualMatrice
-   KN& operator =(const typename VirtualMatrice<R>::plusAx & Ax)  
-        { if(this->unset() && Ax.A->N ) this->set(new R[Ax.A->N],Ax.A->N);KN_<R>::operator=(Ax);return *this;}
-   KN& operator =(const typename VirtualMatrice<R>::solveAxeqb & Ab)  
-        { if(this->unset()) this->set(new R[Ab.b.N()],Ab.b.N());KN_<R>::operator=(Ab);return *this;}
-   KN& operator +=(const typename  VirtualMatrice<R>::plusAx & Ax)  
-  { if(this->unset()  && Ax.A->N) {
-        this->set(new R[Ax.A->N],Ax.A->N);
-        KN_<R>::operator=(R());}
-    KN_<R>::operator+=(Ax);
-    return *this;}
-   KN& operator =(const typename VirtualMatrice<R>::plusAtx & Ax)  
-        { if(this->unset()&&Ax.A->M) this->set(new R[Ax.A->M],Ax.A->M);KN_<R>::operator=(Ax);return *this;}
-   KN& operator +=(const typename VirtualMatrice<R>::plusAtx & Ax)  
-  { if(this->unset()&&Ax.A->M) {
-       this->set(new R[Ax.A->M],Ax.A->M);
-      KN_<R>::operator=(R());}
-      KN_<R>::operator+=(Ax);
-     return *this;}
-// end correcton FH
-   template<class P,class Q> 
-     KN& operator =(const  PplusQ<P,Q> & PQ)  
-      { *this=PQ.p; *this+=PQ.q;return *this; } 
-   template<class P,class Q> 
-     KN& operator +=(const  PplusQ<P,Q> & PQ)  
-      { *this+=PQ.p; *this+=PQ.q;return *this; } 
-           
-   KN& operator -=(const_R a)  
-        { KN_<R>::operator-=(a);return *this;}
-   KN& operator -=(const KN_<R>& a)  
-        { KN_<R>::operator-= (a);return *this;}
-   KN& operator -=(const Add_KN_<R> & u)  
-        { KN_<R>::operator-=(u);return *this;}
-   KN& operator -=(const DotStar_KN_<R> & u)  
-        { KN_<R>::operator-=(u);return *this;}
-   KN& operator -=(const DotSlash_KN_<R> & u)  
-        { KN_<R>::operator-=(u);return *this;}
-   KN& operator -=(const Sub_KN_<R> & u)  
-        { KN_<R>::operator-=(u);return *this;}
-   KN& operator -=(const Mulc_KN_<R> & u)  
-        { KN_<R>::operator-=(u);return *this;}
-   KN& operator -=(const Divc_KN_<R> & u)
-    { KN_<R>::operator-=(u);return *this;}
-   KN& operator -=(const Add_Mulc_KN_<R> & u)
-        { KN_<R>::operator-=(u);return *this;}
-   KN& operator -=(const if_arth_KN_<R> & u)  
-        { KN_<R>::operator-=(u);return *this;}
-   KN& operator -=(const Mul_KNM_KN_<R> & u) 
-        { KN_<R>::operator-=(u);return *this;}
- 
-   KN& operator +=(const_R a)  
-        { KN_<R>::operator += (a);return *this;}
-   KN& operator += (const KN_<R>& a)  
-        { KN_<R>::operator+= (a);return *this;}
-   KN& operator +=(const Add_KN_<R> & u)  
-        { KN_<R>::operator+=(u);return *this;}
-   KN& operator +=(const DotStar_KN_<R> & u)  
-        { KN_<R>::operator+=(u);return *this;}
-   KN& operator +=(const DotSlash_KN_<R> & u)  
-        { KN_<R>::operator+=(u);return *this;}
-   KN& operator +=(const Sub_KN_<R> & u)  
-        { KN_<R>::operator+=(u);return *this;}
-   KN& operator +=(const Mulc_KN_<R> & u)  
-        { KN_<R>::operator+=(u);return *this;}
-   KN& operator +=(const Divc_KN_<R> & u)
-    { KN_<R>::operator+=(u);return *this;}
-   KN& operator +=(const Add_Mulc_KN_<R> & u)
-        { KN_<R>::operator+=(u);return *this;}
-   KN& operator +=(const if_arth_KN_<R> & u)  
-        { KN_<R>::operator+=(u);return *this;}
-   KN& operator +=(const Mul_KNM_KN_<R> & u) 
-        { KN_<R>::operator+=(u);return *this;}
-        
-
-   KN& operator/=(const_R a)  
-        { KN_<R>::operator/=(a);return *this;}
-   KN& operator /= (const KN_<R>& a)  
-        { KN_<R>::operator/= (a);return *this;}
-   KN& operator /=(const Add_KN_<R> & u)  
-        { KN_<R>::operator/=(u);return *this;}
-   KN& operator /=(const Sub_KN_<R> & u)  
-        { KN_<R>::operator/=(u);return *this;}
-   KN& operator /=(const Mulc_KN_<R> & u)  
-        { KN_<R>::operator/=(u);return *this;}
-   KN& operator /=(const Divc_KN_<R> & u)
-    { KN_<R>::operator/=(u);return *this;}
-    
-   KN& operator /=(const Add_Mulc_KN_<R> & u)  
-        { KN_<R>::operator/=(u);return *this;}
-   KN& operator /=(const if_arth_KN_<R> & u)  
-        { KN_<R>::operator/=(u);return *this;}
-        
-   KN& operator /=(const Mul_KNM_KN_<R> & u) 
-        { KN_<R>::operator/=(u);return *this;}
-        
-   KN& operator*=(const_R a)  
-        { KN_<R>::operator*=(a);return *this;}
-   KN& operator*=(const KN_<const_R>& a)  
-        { KN_<R>::operator*= (a);return *this;}
-   KN& operator *=(const Add_KN_<R> & u)  
-        { KN_<R>::operator*=(u);return *this;}
-   KN& operator *=(const Sub_KN_<R> & u)  
-        { KN_<R>::operator*=(u);return *this;}
-   KN& operator *=(const Mulc_KN_<R> & u)  
-        { KN_<R>::operator*=(u);return *this;}
-   KN& operator *=(const Divc_KN_<R> & u)
-    { KN_<R>::operator*=(u);return *this;}
-   KN& operator *=(const Add_Mulc_KN_<R> & u)
-        { KN_<R>::operator*=(u);return *this;}
-   KN& operator *=(const if_arth_KN_<R> & u)  
-        { KN_<R>::operator*=(u);return *this;}
-   KN& operator *=(const Mul_KNM_KN_<R> & u) 
-        { KN_<R>::operator*=(u);return *this;}
-        
-  
-  template<class I,class T> KN& operator =   (const KN_ITAB<T ,I> & ui)
-     {  KN_<R>::operator =(ui);  return *this;}
-  template<class I,class T> KN& operator +=   (const KN_ITAB<T ,I> & ui)
-     {  KN_<R>::operator +=(ui);  return *this;}
-  template<class I,class T> KN& operator -=   (const KN_ITAB<T ,I> & ui)
-     {  KN_<R>::operator -=(ui);  return *this;}
-  template<class I,class T> KN& operator *=   (const KN_ITAB<T ,I> & ui)
-     {  KN_<R>::operator *=(ui);  return *this;}
-  template<class I,class T> KN& operator /=   (const KN_ITAB<T ,I> & ui)
-     {  KN_<R>::operator /=(ui);  return *this;}
-        
-        
-  //  two opertor to cast to an array of constant      
-//    operator KN_<const_R> & ()  
-//          { return *  (KN_<const_R>*) this;}
-//    operator KN_<const_R> const & ()  const 
-//          { return *(const KN_<const_R>*) this;}
-//    operator KN<const_R> & () 
-//          { return   (KN<const_R> &) *this;}
-//    operator KN<const_R> const & ()  const 
-//          { return (const KN<const_R>& ) *this;}
-    static void fill0(R *v,int n) { if(n && v) for(int i=0;i<n;++i) v[i]=R();} 
-    void init(long nn) {this->n=nn;this->step=1;this->next=-1;this->v=new R[nn];fill0(this->v,this->n) ;}
-  void init() {this->n=0;this->step=1;this->next=-1;this->v=0;}
-  void init(const KN_<R> & a){init(a.N()); operator=(a);}
-  void resize(long nn) {
-    if ( nn != this->n) 
-     {
-       R *vo=this->v;
-       long no=std::min(this->n,nn), so=this->step;
-       ShapeOfArray::init(nn);
-       this->v=new R[this->n];
-       // copy
-       if(this->v && vo) 
-         for(long i=0,j=0;j<no;i++,j+=so) 
-           this->v[i]=vo[j]; 
-        delete [] vo;} }//  mars 2010
-<<<<<<< HEAD
-  void destroy(){/*assert(this->next<0);*/  if(this->next++ ==-1) {delete [] this->v; this->v=0;this->n=0;}}//  mars 2010
-  void increment() {/*assert(this->next<0);*/  this->next--;}
-=======
-    void destroy(){assert(this->next<0);  if(this->next++ ==-1) {delete [] this->v; this->v=0;this->n=0;}}//  mars 2010
-    void increment() {assert(this->next<0);  this->next--;}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-};
-
-//  Array with 2 indices
-//  ---------------------
-
-template<class R>
-class KNM: public KNM_<R>{ public:
-  KNM() :KNM_<R>(0,0,0){}
-  KNM(long nn,long mm) 
-        :KNM_<R>(new R[nn*mm],nn,mm){}
-   KNM(const KNM<R> & u)  // PB si stepi ou stepj nulle
-        :KNM_<R>(new R[u.size()],u.N(),u.M()) 
-       { KN_<R>::operator=(u);}
-  explicit KNM(const KNM_<R> & u)
-        :KNM_<R>(new R[u.size()],u.N(),u.M()) 
-        { KNM_<R>::operator=(u);}
-        
-  ~KNM(){delete [] this->v;}
-  
-   KNM& operator=(const KNM_<const_R> & u)   
-    { if(this->unset()) this->init(u.N(),u.M()) ; KNM_<R>::operator=(u);return *this;}
-   KNM& operator=(const_R a)                 
-    { if(this->unset()) RNM_FATAL_ERROR(" KNM operator=(double)"); KNM_<R>::operator=(a);return *this;}
-   KNM& operator+=(const_R  a)               
-        { if(this->unset()) RNM_FATAL_ERROR(" KNM operator+=(double)"); KNM_<R>::operator+=(a);return *this;}
-   KNM& operator-=(const_R  a)               
-        {if(this->unset()) RNM_FATAL_ERROR(" KNM operator-=(double)"); KNM_<R>::operator-=(a);return *this;}
-   KNM& operator/=(const_R  a)               
-        {if(this->unset()) RNM_FATAL_ERROR(" KNM operator/=(double)"); KNM_<R>::operator/=(a);return *this;}
-   KNM& operator*=(const_R  a)               
-        {if(this->unset()) RNM_FATAL_ERROR(" KNM operator*=(double)"); KNM_<R>::operator*=(a);return *this;}
-   KNM& operator+=(const KNM_<const_R> & u)  
-        { if(this->unset()) this->init(u.N(),u.M()) ; KNM_<R>::operator+=(u);return *this;}
-   KNM& operator-=(const KNM_<const_R> & u)  
-        {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator-=(u);return *this;}
-
-   KNM& operator/=(const KNM_<const_R> & u)  
-        {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator/=(u);return *this;}
-   KNM& operator*=(const KNM_<const_R> & u)  
-        { if(this->unset()) this->init(u.N(),u.M()) ; KNM_<R>::operator*=(u);return *this;}
-
-
-   KNM &operator  =(const outProduct_KN_<R> & u)
-        { if(this->unset()) this->init(u.N(),u.M()) ; KNM_<R>::operator =(u);return *this;}
-   KNM &operator +=(const outProduct_KN_<R> & u)
-        { if(this->unset()) this->init(u.N(),u.M()) ; KNM_<R>::operator+=(u);return *this;}
-   KNM &operator -=(const outProduct_KN_<R> & u)
-        { if(this->unset()) this->init(u.N(),u.M()) ; KNM_<R>::operator-=(u);return *this;}
-   KNM &operator /=(const outProduct_KN_<R> & u) 
-        {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator/=(u);return *this;}
-   KNM &operator *=(const outProduct_KN_<R> & u)
-        {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator*=(u);return *this;}
- 
-    
-    KNM &operator  =(const ConjKNM_<R> &u)  {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator=(u);return *this;}
-    KNM &operator +=(const ConjKNM_<R> &u)  {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator+=(u);return *this;}
-    KNM &operator -=(const ConjKNM_<R> &u)  {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator-=(u);return *this;}
-    KNM &operator /=(const ConjKNM_<R> &u)  {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator/=(u);return *this;}
-    KNM &operator *=(const ConjKNM_<R> &u)  {  if(this->unset()) this->init(u.N(),u.M()) ;KNM_<R>::operator*=(u);return *this;}
- // bofbof
-
-        
-  //  two opertors to cast to un array of constant        
-//    operator KNM_<const_R> & ()  
-//          { return *  (KNM_<const_R>*) this;}
-//    operator KNM_<const_R> const & ()  const 
-//          { return *(const KNM_<const_R>*) this;}
-
-//    operator KNM<const_R> & ()  
-//          { return *  (KNM<const_R>*) this;}
-//    operator KNM<const_R> const & ()  const 
-//          { return *(const KNM<const_R>*) this;}
- 
-    void init() { //  add mars 2010 ...
-	this->n=0;this->step=1;this->next=-1;this->v=0;
-	this->shapei.init(0);
-	this->shapej.init(0);}
-    
-  void init(long nn,long mm) {
-    ShapeOfArray::init(nn*mm);
-    this->shapei.init(nn,1,nn);
-    this->shapej.init(mm,nn,1),
-    this->v=new R[nn*mm];}
-    
-  void resize(long nn,long mm) {     
-    long kk=nn*mm;
-      
-    long lso = this->size();
-    long n = this->shapei.n;
-    long m = this->shapej.n;
-    
-    if( (n !=nn) || ( m != mm))  // correct FH Jav 2012 ..
-     {
-       KNM_ <R> old(*this); 
-       long no=std::min(n,nn);
-       long mo=std::min(m,mm);
-       R *vo=this->v;
-       
-       // new mat 
-       ShapeOfArray::init(kk);
-       this->v=new R[this->n];
-       this->shapei.init(nn,1,nn);
-       this->shapej.init(mm,nn,1);
-       
-       if(this->v && vo)  // copy
-	 (*this)(SubArray(no),SubArray(mo)) = old(SubArray(no),SubArray(mo));
-       
-       delete []vo;
-     }
-    
-  }
-  void destroy(){assert(this->next<0);  if(this->next++ ==-1) {delete [] this->v; this->v=0;this->n=0;}} 
-  void increment() {assert(this->next<0);  this->next--;}
-    
-//  void destroy(){delete [] this->v;this->n=0 ;}
-
-};
-
-//  Array with 3 indices
-//  ---------------------
-template<class R>
-class KNMK: public KNMK_<R>{ public:
-
-  KNMK(long n,long m,long k) 
-     :KNMK_<R>(new R[n*m*k],n,m,k){}
-  explicit KNMK(const KNMK_<R> & u)
-     :KNMK_<R>(new R[u.size()],u.N(),u.M(),u.K()) 
-     { KNMK_<R>::operator=(u);}
-   KNMK(const KNMK<R> & u)
-     :KNMK_<R>(new R[u.size()],u.N(),u.M(),u.K()) 
-     { KNMK_<R>::operator=(u);}
-     
-  ~KNMK(){delete [] this->v;}
-  
-  KNMK& operator=(const KNMK_<const_R> & u)   
-     { KNMK_<R>::operator=(u);return *this;}
-  KNMK& operator=(const_R a)                  
-     { KNMK_<R>::operator=(a);return *this;}
-  KNMK& operator+=(const_R  a)                
-     { KNMK_<R>::operator+=(a);return *this;}
-  KNMK& operator-=(const_R  a)                
-     { KNMK_<R>::operator-=(a);return *this;}
-  KNMK& operator/=(const_R  a)                
-     { KNMK_<R>::operator/=(a);return *this;}
-  KNMK& operator*=(const_R  a)                
-     { KNMK_<R>::operator*=(a);return *this;}
-  KNMK& operator+=(const KNMK_<const_R> & u)  
-     { KNMK_<R>::operator+=(u);return *this;}
-  // ici jd 
-  KNMK& operator-=(const KNMK_<const_R> & u)  
-     { KNMK_<R>::operator-=(u);return *this;}
-  KNMK& operator*=(const KNMK_<const_R> & u)   
-     { KNMK_<R>::operator*=(u);return *this;}
-  KNMK& operator/=(const KNMK_<const_R> & u)   
-     { KNMK_<R>::operator/=(u);return *this;}
-     
-//  two opertor to cast to un array of constant          
-//    operator KNMK_<const_R> & ()  
-//       { return *  (KNMK_<const_R>*) this;}
-//    operator KNMK_<const_R> const & ()  const 
-//       { return *(const KNMK_<const_R>*) this;}  
-
-//    operator KNMK<const_R> & ()  
-//       { return *  (KNMK<const_R>*) this;}
-//    operator KNMK<const_R> const & ()  const 
-//       { return *(const KNMK<const_R>*) this;}  
-};
-
-//  -------------  optimization ---------------------
-template<class R> 
-class conj_KN_{public:
-  const KN_<const_R> & a;
-  conj_KN_(const KN_<const_R> & aa) : a(aa){}
-};
-
-
-inline const KN_<long> conj(const KN_<long> &a){ return a;}
-inline const KN_<double> conj(const KN_<double> &a){ return a;}
-inline const KN_<float> conj(const KN_<float> &a){ return a;}
-
-//template<class R> conj_KN_<R> conj(const KN<R> &a){ return a;}
-template<class R> conj_KN_<R> conj(const KN_<R> &a){ return a;}
-
-template<class R> 
-class DotStar_KN_{public: 
-  const KN_<const_R>  a; const KN_<const_R>  b;
-  DotStar_KN_(const KN_<const_R> & aa,const KN_<const_R> & bb) : a(aa),b(bb)  {}
- }; 
-
- 
-template<class R> 
-class DotSlash_KN_{public: 
-  const KN_<const_R>  a; const KN_<const_R>  b;
-  DotSlash_KN_(const KN_<const_R> & aa,const KN_<const_R> & bb) : a(aa),b(bb)  {}
- }; 
-
-template<class R> 
-class Add_KN_{public: 
-  const KN_<const_R>  a; const KN_<const_R>  b;
-  Add_KN_(const KN_<const_R> & aa,const KN_<const_R> & bb) 
-     : a(aa),b(bb)  { K_throwassert(SameShape(a,b));}
- };  
- 
-template<class R> 
-class Sub_KN_{public: 
-  const KN_<const_R>  a; const KN_<const_R>  b;
-  Sub_KN_(const KN_<const_R> & aa,const KN_<const_R> & bb) 
-    : a(aa),b(bb) { K_throwassert(SameShape(a,b));}
- };
- 
-template<class R> 
-class Mulc_KN_ { public: 
-  const KN_<const_R>  a;  const_R  b;
-  Mulc_KN_(const KN_<const_R> & aa,const_R  bb) : a(aa),b(bb) {}
-  Mulc_KN_(const Mulc_KN_<R> & aa,const_R  bb) : a(aa.a),b(aa.b*bb) {}
-  Mulc_KN_ operator-() const {return Mulc_KN_(a,-b);}
-  outProduct_KN_<R> operator*(const  TKN_<double> & bb)
-{  return outProduct_KN_<R>(a,bb,b);} 
-
- };  
-template<class R>
-class Divc_KN_ {
-    // // vector b/a_i ..
-public:
-    const KN_<const_R>  a;  const_R  b;
-    Divc_KN_(const_R  bb,const KN_<const_R> & aa) : a(aa),b(bb) {}
-  //  Divc_KN_(const Divc_KN_<R> & aa,const_R  bb) : a(aa.a),b(aa.b*bb) {}
-    Divc_KN_ operator-() const {return Divc_KN_(a,-b);}
-};  
-
-template<class R> 
-class Add_Mulc_KN_ { public:
-  const KN_<const_R> a,b;
-  const R ca,cb; 
-  Add_Mulc_KN_(const Mulc_KN_<R> & aa,const Mulc_KN_<R> & bb)  
-        : a(aa.a),b(bb.a),ca(aa.b),cb(bb.b) { K_throwassert(SameShape(a,b));}
-  Add_Mulc_KN_(const Mulc_KN_<R> & aa,const KN_<const_R> & bb,const R cbb) 
-        : a(aa.a),b(bb),ca(aa.b),cb(cbb)  { K_throwassert(SameShape(a,b));}
-  Add_Mulc_KN_(const KN_<const_R> & aa,const R caa,const KN_<const_R> & bb,const R cbb) 
-        : a(aa),b(bb),ca(caa),cb(cbb) { K_throwassert(SameShape(a,b));}
- };  
-
-template<class R> 
-class if_arth_KN_ { public:
-  const KN_<const_R> a,b,c;
-  if_arth_KN_(const KN_<R> & aa,const KN_<R> & bb,const KN_<R> & cc)  
-        : a(aa),b(bb),c(cc){ K_throwassert(SameShape(a,b)&&SameShape(a,c));}
- };  
-
-
-
-template<class R> 
-class Mul_KNM_KN_ { public:
-  const KNM_<const_R> &A;
-  const KN_<const_R> &b;
-  Mul_KNM_KN_(const  KNM_<const_R>  &aa,const KN_<const_R>  &bb)  
-        : A(aa),b(bb) {K_throwassert(SameShape(A.shapej,b));} 
-};
-
-
-ostream & operator<<(ostream & f,const ShapeOfArray & s);
-
-template<class R> ostream & operator<<(ostream & f,const KN_<const_R>   & v);
-template<class R> ostream & operator<<(ostream & f,const KNM_<const_R>  & v);
-template<class R> ostream & operator<<(ostream & f,const KNMK_<const_R> & v);
-template<class R> inline ostream & operator<<(ostream & f,const KN<const_R>   & v) 
-    { return f << (const KN_<const_R> &) v;}
-template<class R> inline ostream & operator<<(ostream & f,const KNM<const_R>  & v) 
-    { return f << (const KNM_<const_R> &) v;}
-template<class R> inline ostream & operator<<(ostream & f,const KNMK<const_R> & v) 
-    { return f << (const KNMK_<const_R> &) v;}
-
-
-template<class R> inline Add_KN_<R> operator+(const KN_<const_R> &a,const KN_<const_R> &b) 
-    { return Add_KN_<R>(a,b);}
-template<class R> inline Sub_KN_<R> operator-(const KN_<const_R> &a,const KN_<const_R> &b) 
-    { return Sub_KN_<R>(a,b);}
-template<class R> inline Mulc_KN_<R> operator*(const KN_<const_R> &a,const R &b) 
-    { return Mulc_KN_<R>(a,b);}
-template<class R> inline Mulc_KN_<R> operator/(const KN_<const_R> &a,const R &b) 
-    { return Mulc_KN_<R>(a,R(1)/b);}
-template<class R> inline Mulc_KN_<R> operator*(const R &b,const KN_<const_R> &a) 
-    { return Mulc_KN_<R>(a,b);}
-template<class R> inline Divc_KN_<R> operator/(const R &b,const KN_<const_R> &a)
-{ return Divc_KN_<R>(b,a);}
-template<class R> inline Mulc_KN_<R> operator-(const KN_<const_R> &a)
-    { return Mulc_KN_<R>(a,R(-1));}
-
-
-
-template<class R> inline Add_Mulc_KN_<R> operator+(const  Mulc_KN_<R>& a,const Mulc_KN_<R> &b) 
-    { return Add_Mulc_KN_<R>(a,b);}
-template<class R> inline Add_Mulc_KN_<R> operator-(const  Mulc_KN_<R>& a,const Mulc_KN_<R> &b) 
-    { return Add_Mulc_KN_<R>(a,b.a,-b.b);}
-
-template<class R> inline Add_Mulc_KN_<R> operator+(const  Mulc_KN_<R>& a,const KN_<const_R> &b) 
-   { return Add_Mulc_KN_<R>(a,b,R(1));}
-template<class R> inline Add_Mulc_KN_<R> operator-(const  Mulc_KN_<R>& a,const KN_<const_R> &b) 
-   { return Add_Mulc_KN_<R>(a,b,R(-1));}
-
-template<class R> inline Add_Mulc_KN_<R> operator+(const KN_<const_R> & b,const  Mulc_KN_<R>& a) 
-   { return Add_Mulc_KN_<R>(a,b,R(1));}
-
-// modif FH mars 2007 
-template<class R> inline Add_Mulc_KN_<R> operator-(const KN_<const_R> & a,const  Mulc_KN_<R>& b) 
-   { return Add_Mulc_KN_<R>(a,R(1),b.a,-b.b);}// modif FH mars 2007  
-
-template<class R> inline Mul_KNM_KN_<R> operator*(const  KNM_<const_R> & A,const  KN_<const_R> & b) 
-    { return Mul_KNM_KN_<R>(A,b);}
-
-
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const Add_Mulc_KN_<R> & b) 
-           { return SameShape(a,b.a) ;} 
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const if_arth_KN_<R> & b) 
-           { return SameShape(a,b.a) ;} 
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const Add_KN_<R> & b) 
-           { return SameShape(a,b.a) ;} 
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const Sub_KN_<R> & b) 
-           { return SameShape(a,b.a) ;} 
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const Mulc_KN_<R> & b) 
-           { return SameShape(a,b.a) ;}
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const Divc_KN_<R> & b)
-{ return SameShape(a,b.a) ;}
-
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const DotStar_KN_<R> & b)
-           { return SameShape(a,b.a) ;} 
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const DotSlash_KN_<R> & b) 
-           { return SameShape(a,b.a) ;} 
-template<class R> inline bool  SameShape(const ShapeOfArray & a,const Mul_KNM_KN_<R> & b) 
-           { return a.n==b.A.N() ;} 
- inline bool  SameShape(const ShapeOfArray & ,const VirtualMatrice<double>::plusAx & ) 
-           { return true ;} //  pas de test car la matrice peut etre rectangulaire
- inline bool  SameShape(const ShapeOfArray & ,const VirtualMatrice<double>::plusAtx & ) 
-           { return true ;} //  pas de test car la matrice peut etre rectangulaire
- inline bool  SameShape(const ShapeOfArray & ,const VirtualMatrice<complex<double> >::plusAx & ) 
-           { return true ;} //  pas de test car la matrice peut etre rectangulaire
- inline bool  SameShape(const ShapeOfArray & ,const VirtualMatrice<complex<double> >::plusAtx & ) 
-           { return true ;} //  pas de test car la matrice peut etre rectangulaire
-
- inline bool  SameShape(const ShapeOfArray & ,const double) 
-           { return true;} 
- inline bool  SameShape(const ShapeOfArray & ,const complex<double>) 
-           { return true;} 
- inline bool  SameShape(const ShapeOfArray & ,const complex<float>) 
-           { return true;}            
-
-template<class R>
- inline bool SameShape(KNM<R>& m, const outProduct_KN_<R>& p)
- { return p.a.N()>=m.N() && m.M()>=p.b.N(); } 
-
-template<class R> inline long SameAdress(const KN_<R> &a, const KN_<R> &b) { return &a[0]==&b[0];}
-// bof -bof 
-//template<class R> inline
-//  KN_<R>::operator KN<R> &() { return *(KN<R> *) (void *) this;}
-//template<class R> inline
-//  KN_<R>::operator const KN<R> &() const { return *(const KN<R> *) ( const void *) this;}
-
-//  operateur y=Ax-b ou y=Ax + b pour le GC
-template<class R> 
-   PplusQ< typename VirtualMatrice<R>::plusAx, Mulc_KN_<R> >  operator-(const typename VirtualMatrice<R>::plusAx & A,const KN_<R> & B)  
-    { return PplusQ< typename VirtualMatrice<R>::plusAx, Mulc_KN_<R> >(A,Mulc_KN_<R>(B,R(-1.)));}
-
-template<class R> 
-   PplusQ< typename VirtualMatrice<R>::plusAx, KN_<R> >  operator+(const typename VirtualMatrice<R>::plusAx & A,const KN_<R> & B)  
-    { return PplusQ< typename VirtualMatrice<R>::plusAx, KN_<R> >(A,B);}
-
-template<class R> 
-   PplusQ< typename VirtualMatrice<R>::plusAx, Mulc_KN_<R> >  operator-(const typename VirtualMatrice<R>::plusAx & A,const KN<R> & B)  
-    { return PplusQ< typename VirtualMatrice<R>::plusAx, Mulc_KN_<R> >(A,Mulc_KN_<R>(B,R(-1.)));}
-
-template<class R> 
-   PplusQ< typename VirtualMatrice<R>::plusAx, KN_<R> >  operator+(const typename VirtualMatrice<R>::plusAx & A,const KN<R> & B)  
-    { return PplusQ< typename VirtualMatrice<R>::plusAx, KN_<R> >(A,B);}
-    
-
-template<class R>
-KN_<R> diagonal(const KNM<R> & A) { 
-  K_throwassert(A.N() == A.M()); 
-  return KN_<R>(A,SubArray(A.N(),0,A.N()+1));}
-
-// to def  inv permutation FH mars 2006 
-class Inv_KN_long{ public:
-  KN_<long>  t;
-  Inv_KN_long(const KN_<long> & v)
-   : t(v) {}
-  Inv_KN_long( KN_<long> const  * & v)
-   : t(*v) {}
-  operator const KN_<long> & () const {return t;}
-};
-
-// For  sparce solve to set array to be consecutif (step==1) if neccessarly 
-template<class R>
-class KN_2Ptr { public:
-    // transfo de KN_ peut etre non concecutif (a.step != 1) en 
-    // un tableau concecutif en memoire si necessaire 
-    //  avec recopie du tableau dans le tableau d'origne a la destruction. 
-    KN_<R>   a;
-    const KN_<R>   ca;
-    KN<R> c; // tableau copie si non vide  
-    KN_2Ptr(KN_<R> & vv) : a(vv),ca(vv),c() { assert(a.N()); if (ca.step !=1 ) c=ca;} // copy if non consecutif
-    KN_2Ptr(const KN_<R> & vv) : a(0,0),ca(vv),c() { assert(ca.N()); if (ca.step !=1 ) c=ca; }// copy if non consecutif
-    operator R *() { return c.unset() ? (R *) ca:(R *) c ;}
-    operator const R *() const  { return c.unset() ? (R *) ca:(R *) c ;}
-    ~KN_2Ptr() { if(!a.unset() && !c.unset() ) {a=c; } } // recopy 	
-}; 
-
-template<class R,typename A,typename B=R> class  F_KN_ 
-{ 
-  public: 
-  A (*f)(B);
-  KN_<R> a;
-  long N() const {return a.N();}
-  F_KN_( A (*ff)(B),const KN_<R> & aa): f(ff),a(aa) {}
-  A operator[](long i) const { return f(a[i]);}
-  bool check(long n)  const { return  n <= a.N() || a.constant(); }
-  bool constant() const {return a.constant();}
-}; 
-
-template<class R,typename A,typename B>
-inline bool  SameShape(const ShapeOfArray & a,const F_KN_<R,A,B>  & b) 
-           { return  !a.step || b.constant()  || a.n == b.N() ;} 
-           
-#include "RNM_tpl.hpp"
-#ifdef K_throwassert
-#undef K_throwassert
-#endif
-#endif
diff --git a/src/fflib/._AFunction.hpp~HEAD b/src/fflib/._AFunction.hpp~HEAD
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/fflib/._AFunction.hpp~HEAD and /dev/null differ
diff --git a/src/fflib/._AFunction.hpp~upstream_3.34.2 b/src/fflib/._AFunction.hpp~upstream_3.34.2
deleted file mode 100644
index 63e1130..0000000
Binary files a/src/fflib/._AFunction.hpp~upstream_3.34.2 and /dev/null differ
diff --git a/src/fflib/._AFunction2.cpp b/src/fflib/._AFunction2.cpp
deleted file mode 100644
index e9604e8..0000000
Binary files a/src/fflib/._AFunction2.cpp and /dev/null differ
diff --git a/src/fflib/._InitFunct.hpp b/src/fflib/._InitFunct.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/fflib/._InitFunct.hpp and /dev/null differ
diff --git a/src/fflib/._InitFunct.hpp.orig b/src/fflib/._InitFunct.hpp.orig
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/fflib/._InitFunct.hpp.orig and /dev/null differ
diff --git a/src/fflib/._array_tlp.hpp~upstream_3.34.2 b/src/fflib/._array_tlp.hpp~upstream_3.34.2
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/fflib/._array_tlp.hpp~upstream_3.34.2 and /dev/null differ
diff --git a/src/fflib/._ffapi.cpp b/src/fflib/._ffapi.cpp
deleted file mode 100755
index 14f037e..0000000
Binary files a/src/fflib/._ffapi.cpp and /dev/null differ
diff --git a/src/fflib/._ffapi.hpp b/src/fflib/._ffapi.hpp
deleted file mode 100755
index 14f037e..0000000
Binary files a/src/fflib/._ffapi.hpp and /dev/null differ
diff --git a/src/fflib/._lgfem.cpp~HEAD b/src/fflib/._lgfem.cpp~HEAD
deleted file mode 100644
index e9604e8..0000000
Binary files a/src/fflib/._lgfem.cpp~HEAD and /dev/null differ
diff --git a/src/fflib/._lgfem.cpp~upstream_3.34.2 b/src/fflib/._lgfem.cpp~upstream_3.34.2
deleted file mode 100644
index e9604e8..0000000
Binary files a/src/fflib/._lgfem.cpp~upstream_3.34.2 and /dev/null differ
diff --git a/src/fflib/._lgsolver.hpp b/src/fflib/._lgsolver.hpp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/fflib/._lgsolver.hpp and /dev/null differ
diff --git a/src/fflib/AFunction.cpp.orig b/src/fflib/AFunction.cpp.orig
deleted file mode 100644
index 8e438b8..0000000
--- a/src/fflib/AFunction.cpp.orig
+++ /dev/null
@@ -1,1996 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-//#pragma dont_inline on
-//#pragma inline_depth(1)
-
-#include "config-wrapper.h"
-
-<<<<<<< HEAD
-#include <cmath>
-#include <complex>
-//  put here some def dur to c++11 
-// problem with mixed with using namespace std; 
-// to correct bug in g++ v 4.8.1 add std
-long isNaN(double x){return isnan(x);}
-long isInf(double x){return isinf(x);}
-long isNormal(double x){return std::isnormal(x);}
-#ifdef HAVE_JN
-double myyn(long n, double x){ return yn((int)n,x);}
-double myjn(long n, double x){ return jn((int) n,x);}
-#endif
-//int  ShowAlloc(const char *s, size_t lg);
-
-// F. Hecht fev. 2015 ...
-=======
-#include <complex>
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-#include "AFunction.hpp"
-#include <cstdarg>
-#include <cstring>
-#include "error.hpp"
-#include "lex.hpp"
-
-#include "RNM.hpp"
-
-#include "Operator.hpp"
-// for exec routine 
-#include "rgraph.hpp"
-#include "InitFunct.hpp"
-#include <queue>
-
-#include "array_init.hpp"
-
-// Add FH to get memroy used in test .. march 2014
-#if __APPLE__
-#include <malloc/malloc.h>
-#elif HAVE_MALLOC_H
-#include <malloc.h> 
-#endif
-#ifdef HAVE_TIMES
-#include <time.h>
-#endif
-long storageused()
-{
-#if HAVE_MSTATS
-    struct mstats mem1;
-    mem1 = mstats();
-    return mem1.bytes_used;
-#elif HAVE_MALLINFO
-    struct mallinfo mem1;
-    mem1=mallinfo();
-    return mem1.uordblks;
-#else
-    return 0;
-#endif
-
-}
-long storagetotal()
-{
-#if HAVE_MSTATS
-    struct mstats mem1;
-    mem1 = mstats();
-    return mem1.bytes_total;
-#elif HAVE_MALLINFO
-    struct mallinfo mem1;
-    mem1=mallinfo();
-    return mem1.keepcost;
-#else
-    return 0;
-#endif
-}
-// end add mach 2014 ...
-extern Map_type_of_map map_type_of_map ; //  to store te type 
-extern Map_type_of_map map_pair_of_type ; //  to store te type 
-
-extern basicForEachType *  typevarreal,  * typevarcomplex;  //  type of real and complex variable
-
-extern int TheCurrentLine; // unset: by default
-extern long mpisize,mpirank;
-// FH  for g++ 3.4  the prototypage  have change
-double  VersionNumber(); 
-double Imag(const  complex<double> & z){ return imag(z);}
-double Real(const  complex<double> & z){ return real(z);}
-const  basicForEachType * basicForEachType::type_C_F0 =0; //  for any type un formal operation .... FH add 09/2012
-
-// FH
-
-template<class T> inline T Max (const T &a,const T & b){return a > b ? a : b;}
-template<class T> inline T Min (const T &a,const T & b){return a < b ? a : b;}
-template<class T> inline T Abs (const T &a){return a <0 ? -a : a;}
-template<class T> inline T Max (const T &a,const T & b,const T & c){return Max(Max(a,b),c);}
-template<class T> inline T Min (const T &a,const T & b,const T & c){return Min(Min(a,b),c);}
-template<class T> inline T Square (const T &a){return a*a;}
-
-struct SubArray2: public binary_function<long,long,SubArray> { 
-  static SubArray f(const long & a,const long & b)  { 
-   // cout << "SubArray: " << a << " " << b << endl;
-    return SubArray(b-a+1,a);} }; 
-struct SubArray3: public ternary_function<long,long,long,SubArray> { 
-  static SubArray f(Stack s,const long & a,const long & b,const long & c)  {  
-  // cout << "SubArray: " << a << " " << b << " " <<  c << endl;
-   return SubArray((b-a+1)/c,a,c);} }; 
-
-#ifdef OLDCPP
-template<class T> inline
-complex<T> polar(const T& r, const T& theta)
-{
-	return complex<T>(r * cos(theta), r * sin(theta));
-}
-#endif
-
-
-double preal( Complex * const& p){return real(*p);}
-
- 
-template<class A,class B>  A Build(B b) {  return A(b);}
-  
-  
-
-
-long Exit(long i) {throw(ErrorExit("Exit",i));return 0;}
-bool Assert(bool b) {if (!b) throw(ErrorExec("exec assert",1));return true;}
-  
-inline void MyAssert(int i,char * ex,char * file,long line)
-{if (i) {
-    cout << "CompileError assertion :  " << ex << " in file " << file << "  line = " << line << endl; 
-     CompileError();}
- }
-
-
-/*  
-template<class R>
-class  OneOperator0 : public OneOperator {
- class E_F0_F :public  E_F0 { public:
-  typedef  R (*func)( ) ; 
-  func f;
-  E_F0_F(func ff)  : f(ff) {}
-  AnyType operator()(Stack )  const  {return SetAny<R>( f()) ;}  
-     operator aType () const { return atype<R>();} 
-
-};
-
-  //  aType r; //  return type
-    typedef  R (*func)() ; 
-    func  f;
-    public: 
-    E_F0 * code(const basicAC_F0 & ) const 
-     { return  new E_F0_F(f);} 
-    OneOperator0(func  ff): OneOperator(map_type[typeid(R).name()]),f(ff){}
-};
-*/
-template<class R>
-class  OneOperatorConst : public OneOperator {
-    E_F0 * e;
-    public: 
-    E_F0 * code(const basicAC_F0 & ) const  { return  e;} 
-    OneOperatorConst(E_F0 * ee):  OneOperator(map_type[typeid(R).name()]),e(ee){}
-};
-
-class  OneOperator_array : public OneOperator {public:
-    E_F0 * code(const basicAC_F0 & a) const 
-     { return  new E_Array(a);} 
-    OneOperator_array(): OneOperator(atype<E_Array>(),true) {}
-};
-class  OneOperator_border : public OneOperator {public:
-    E_F0 * code(const basicAC_F0 & a) const 
-     { if (a.size()==1 && a[0].left()==atype<E_Array>() ) 
-        return new E_Border(dynamic_cast<const E_Array*>(a[0].LeftValue()));
-        else     
-        return  new E_Border(a);} 
-    OneOperator_border(): OneOperator(atype<const E_Border *>(),true) {}
-};
-
-class  OneOperator_border_label : public OneOperator {public:
-  class Op : public E_F0 {public:
-   const  E_Border *b;
-      Op( const  E_Border *bb) : b(bb) {}
-      AnyType operator()(Stack)  const { return SetAny<long>(b->label);}
-   };
-    E_F0 * code(const basicAC_F0 & a) const 
-     {  const  E_Border * b = dynamic_cast<const E_Border *>(a[0].LeftValue());
-        return new Op(b);} 
-    OneOperator_border_label(): OneOperator(atype<long>(),atype<const E_Border *>()) {}
-};
-
-
-
-template<class RR> RR LIncremantation(RR* a){ return ++(*a);}
-template<class RR> RR RIncremantation(RR* a){ return (*a)++;}
-template<class RR> RR LDecremantation(RR* a){ return --(*a);}
-template<class RR> RR RDecremantation(RR* a){ return (*a)--;}
-
-template<class RR,class B>
- RR * New_form_string(string * s) {B * r=  new B(s);delete s;return r;}// correct Mars 2011 remove * if delete
- 
- 
-
-
-inline   string ** get_elements( MyMap<String,String> *  const  &  a,string*  const   & b)
- { String* Sret=  &((*a)[*b]); // correction FH feb 2004
-   // delete b; la chaine est detruire automatiquement en fin d'instruction  FH jan 2010
-    return Sret->getap();}
-
-template<class RR> RR Abs(RR a) { return a<0?-a:a;}
-
-template<class R,class A,class B>
-R *MakePtrWithDel( A  const & a)
-{ R *r= new B(a->c_str());
-  delete a;
-  return r;}
-
-template<class R,class RR> 
-struct Op1_new_pstring: public unary_function<string*,R> { 
-  static R f(string * const & a)  {R r =  new RR(a->c_str());
-    // delete a;  (stack ptr) FH mars 2006
-    return r;} }; 
-
-template<class R,class RR> 
-struct Op2_set_pstring: public binary_function<R,string*,R> { 
-  static R  f(R const & p,string * const & a)  {*p =  new RR(a->c_str());
-   if ( !*p || !**p) { 
-       cerr << " Error openning file " << *a << endl; 
-       ExecError("Error openning file");}
-  //  delete a; modif mars 2006 FH
-   return p;} }; 
-
-template<class R,class RR> 
-struct Op2_set_pstringiomode: public ternary_function<R,string*,ios::openmode,R> { 
-  static R  f(Stack s,R const & p,string * const & a,const ios::openmode & mode) 
-   {*p =  new RR(a->c_str(),mode);
-     // delete a;   modif mars 2006 FH
-    return p;} }; 
-
-AnyType FWhile(Stack s ,Expression test,Expression ins)
-{ 
-  bool sptrclean=true;
-  AnyType a;
-  StackOfPtr2Free * sptr = WhereStackOfPtr2Free(s);
-  while ( GetAny<bool>((*test)(s)))
-     try  { 
-        a=(*ins)(s);
-        if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-       }
-     catch ( E_exception & e) { 
-        if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-       if (e.code == E_exception::e_break) break;
-       else if  (e.code == E_exception::e_continue) continue;
-       else throw e;
-       }
-  return a;
-}
-    
-AnyType FFor(Stack s ,Expression i0,Expression i1,Expression i2,Expression ins)
-{ 
-  bool sptrclean=true;
-  AnyType a;
-     StackOfPtr2Free * sptr = WhereStackOfPtr2Free(s);
-  for ( (*i0)(s);GetAny<bool>((*i1)(s));(*i2)(s))
-   {
-     try  {
-        a=(*ins)(s);
-        if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-       }
-     catch ( E_exception & e) { 
-        if (verbosity>50)
-          cerr << "FFor " << e.what() << e.code << endl; 
-        if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-       if (e.code == E_exception::e_break) break;
-       else if  (e.code == E_exception::e_continue) continue;
-       else throw e;
-       }
-   }
-  return a;
-}
-
-AnyType TTry(Stack s ,Expression ins,Expression ccatch,Expression fin,Expression notused)
-{ 
-  assert(notused == 0);
-  AnyType a;
-     try  {a=(*ins)(s);}
-     catch ( E_exception & e) { 
-        throw e; 
-       }
-     catch(...) {
-        if(verbosity> 2) cerr << "Try:: catch (...) exception " << endl;
-        a=(*ccatch)(s);         
-     }
-   
-   a=(*fin)(s);
-  return a;
-}
-
-AnyType FIf(Stack s ,Expression test,Expression i1,Expression i2,Expression )
- {  AnyType a;
-   if (GetAny<bool>((*test)(s))) 
-     {
-       if(i1) a=(*i1)(s);//Add if FH oct 2010
-     }
-      else if (i2) 
-    {
-     if(i2) a=(*i2)(s); //Add if FH oct 2010
-    }
-   	     	
-  return a;
- }
-
-
-
-aType TypeArray(aType b,aType a)
-{ // type of  b[a]
-   aType r=map_type_of_map[make_pair(a->right(),b->right())];
-   if (!r) {
-      cerr << "Sorry is not possible to make a map "<< *b->right() << " [" << *a->right() << "]" << endl;
-      cerr << " list: " << endl;
-      Map_type_of_map::const_iterator i;
-      for(i=map_type_of_map.begin();i!=map_type_of_map.end();i++)
-        cerr << "\t " << *i->first.second << " [" << *i->first.first << "]" << "=" << *i->second << endl;        
-      CompileError();
-   }
-   return r;
-}
-
-aType TypeTemplate(aType b,aType a)
-{ // type of  b[a]
-   aType r=map_type_of_map[make_pair(b,a)];
-   if (!r) {
-      cerr << "Sorry is not possible to make a map "<< *b << "<" << *a << ">" << endl;
-      cerr << " list: " << endl;
-      Map_type_of_map::const_iterator i;
-      for(i=map_type_of_map.begin();i!=map_type_of_map.end();i++)
-        cerr << "\t " << *i->first.second << " <" << *i->first.first << ">" << "=" << *i->second << endl;        
-      CompileError();
-   }
-   return r;
-}
-aType TypeArray(aType c,aType b,aType a)
-{
-   // type of  c[ b, a] 
-   aType ba=map_pair_of_type[make_pair(b->right(),a->right())];
-   if (!ba) {
-      cerr << "Sorry is not possible to make a type of pair  "<< *b->right() << ", " << *c->right() << " " << endl;
-      cerr << " list: " << endl;
-      Map_type_of_map::const_iterator i;
-      for(i=map_pair_of_type.begin();i!=map_pair_of_type.end();i++)
-        cerr << "\t (" << *i->first.second << " , " << *i->first.first << ") " << "=" << *i->second << endl;        
-      CompileError();
-   }
-   return TypeArray(c,ba);
-}
-
-
-inline  void ShowOn_cerr(const pair<const char * ,const OneOperator *> & i)
-{ 
-   cerr << "\t" <<  *i.first << ":" <<  endl;
-   i.second->Show(cerr);
-}
-
-
-
-void ShowKeyWord(ostream & f ) 
- {
-   zzzfff->dump(f);
- 
- }
-
-ostream* dumptable(ostream* f)
-{
-
-  *f << " the keywords " << endl;
-  ShowKeyWord(*f);
-  *f << " the types " << endl; 
-  ShowType(*f);
-   ListOfTOfId::const_iterator i=tables_of_identifier.begin();
-   for(;i!=tables_of_identifier.end();++i)
-    { 
-      cout << "  --------- table of identifier ---------\n";
-      TableOfIdentifier * ti=*i;
-      TableOfIdentifier::const_iterator mc=ti->m.begin();
-      TableOfIdentifier::const_iterator end=ti->m.end();
-      for (;mc != end;mc++)
-       {
-         *f  << "  - " << mc->first << ",  type :" <<  *mc->second.first << endl;
-         const Polymorphic * op =dynamic_cast<const Polymorphic *>(mc->second.second) ;
-         if ( op )  *f << *op << endl;
-       }
-      
-     }
-  
-  return f;
-}
-
-
-long exec(string *s)
-    {
-      int r=execute(s->c_str());
-    //  delete s;    modif mars 2006 FH
-      return r;}
-      
-
-
- 
- class ostream_precis { public:
- ostream_precis(ostream * ff) :f(ff) {}
-  ostream * f;
-   operator long () const {return f->precision();}
- };
-
- ostream_precis ostream_precision(ostream **f){ return ostream_precis(*f);}
-  ostream_precis ostream_precision(ostream *f){ return ostream_precis(f);}
- long get_precis( ostream_precis  pf) { return pf.f->precision();}
- long set_precis( ostream_precis  pf, long  l) { return pf.f->precision(l);}
-
-class ostream_seekp { public:
-    ostream_seekp(ostream * ff) :f(ff) {}
-    ostream * f;
-    operator long () const {return f->tellp();}
-};
-
-
-class istream_seekg { public:
-    istream_seekg(istream * ff) :f(ff) {}
-    istream * f;
-    operator long () const {return f->tellg();}
-};
-
-ostream_seekp ff_oseekp(ostream **f){ return ostream_seekp(*f);}
-ostream_seekp ff_oseekp(ostream *f){ return ostream_seekp(f);}
-istream_seekg ff_iseekg(istream **f){ return istream_seekg(*f);}
-istream_seekg ff_iseekg(istream *f){ return istream_seekg(f);}
-
-long ffseekp( ostream_seekp  pf, long  l) {  pf.f->clear();long ll= pf.f->tellp(); return pf.f->seekp(l),ll;}
-long fftellp( ostream_seekp  pf) { pf.f->clear(); return pf.f->tellp() ;}
-long ffseekg( istream_seekg  pf, long  l) { pf.f->clear(); return pf.f->seekg(l),l;}
-long fftellg( istream_seekg  pf) { return pf.f->tellg() ;}
-
- class istream_good { public:
-  istream_good(istream * ff) :f(ff) {}
-  istream * f;
-  operator bool () const {return f->good();}
- };
- inline istream_good to_istream_good(istream **f){ return istream_good(*f);}
- inline istream_good to_istream_good(istream *f){ return istream_good(f);}
-  
-  inline long get_good( istream_good  pf) { return pf.f->good();}
-  inline bool get_eof(istream ** p){ return (**p).eof();}
- 
-typedef ios_base& ( * ostream_manipulateur )(ios_base&);
-
-ios_base&  default1(ios_base& f)
-{
-    f.flags( (ios_base::fmtflags) 0 ) ; // (/*ios_base::scientific | */ios_base::fixed) );
-    return f;
-}
-
-
-template< ostream_manipulateur pf> 
-inline ostream **set_os(ostream **f)
-{ 
-    **f << pf  ; return f;
-}
-
-inline ostream **set_os_flush(ostream **f)
-{ 
-    (**f).flush()  ; return f;
-}
-inline ostream *set_os_flush(ostream *f)
-{ 
-    (*f).flush()  ; return f;
-}
-template< ostream_manipulateur pf> 
-inline ostream *set_os1(ostream *f)
-{ 
-    *f << pf  ; return f;
-}
-
-
-template<class R>
-class  OneOperator_0 : public OneOperator {
-  class E_F0_F :public  E_F0mps { public:
-    typedef  R (*func)( ) ; 
-    func f;
-    E_F0_F(func ff)  : f(ff) {}
-    AnyType operator()(Stack )  const {return SetAny<R>( f()) ;}  
-    operator aType () const { return atype<R>();} 
-
-  };
-
-  typedef  R (*func)() ; 
-  func  f;
-public: 
-  E_F0 * code(const basicAC_F0 & ) const 
-  { return  new E_F0_F(f);} 
-  OneOperator_0(func  ff): OneOperator(map_type[typeid(R).name()]),f(ff){}
-};
-
-
-void init_by_array(unsigned long init_key[], int key_length);
-long genrand_int32(void);
-void init_genrand(unsigned long);
-long genrandint (long  s) { init_genrand( (unsigned long ) s); return 0;}
-long genrandint32 () {return (long)  genrand_int32();}
-
-template<class A,class B,bool RO=true>
-struct  MIMul {
-  static bool MeshIndependent(Expression a,Expression b)   
-   { 
-    bool mia= a->MeshIndependent() ;
-    bool mib= b->MeshIndependent();
-    if ( mia && mib) return true;
-    else
-      {
-        if (mia && a->EvaluableWithOutStack() )
-          {
-            A va = GetAny<A>((*a)(NullStack));
-           // cout << " va = " << va << endl;
-            if ( va == A() )
-             { 
-             //  cout << " va = " << va << endl; 
-               return true;
-             }
-          }
-        if (mib && b->EvaluableWithOutStack() )
-          {
-            B vb = GetAny<B>((*b)(NullStack));
-            // cout << " vb = " << vb << endl;
-            if ( vb == B() ) 
-            { //cout << " vb = " << vb << endl;
-             return true; }
-           }
-         return false;
-        }
-      
-    }
-  static bool ReadOnly() { return RO;}
-    
-};
-// add frev 2007
-class TransE_Array:  public E_F0 {  public:  
-     const E_Array * v;
-    int size() const {return v->size();}
-    size_t nbitem() const {return v->size();}
-    bool MeshIndependent(){return v->MeshIndependent();}
-    TransE_Array(const E_Array * e): v(e) {ffassert(e);}
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-};
-
-
-// add frev 2007 
-class opTrans : public OneOperator{
-public:
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-    opTrans():   OneOperator(atype<TransE_Array>(),atype<E_Array>()  ) {}
-    E_F0 * code(const basicAC_F0 & args) const {
-	  return new TransE_Array(dynamic_cast<const E_Array*>((Expression) args[0])); } 
-};
-
-/*
-class opTTrans : public OneOperator{
-public:
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-    opTTrans():   OneOperator(atype<E_Array>(),atype<TransE_Array>()  ) {}
-    E_F0 * code(const basicAC_F0 & args) const {
-	return dynamic_cast<const TransE_Array*>((Expression) args[0])->v; } 
-};
-*/ 
-
-class opDot : public OneOperator{
-public:
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-    bool MeshIndependent() const { return false;}
-    
-    opDot(aType A, aType B): OneOperator(atype<C_F0>(),A,B) {}
-    opDot(): OneOperator(atype<C_F0>(),atype<TransE_Array >(),atype<E_Array>()  ) {}
-    
-    E_F0 *  code(const basicAC_F0 & ) const {ffassert(0);}
-    C_F0  code2(const basicAC_F0 &args) const;       
-};
-
-
-class opColumn : public OneOperator{
-public:
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-    bool MeshIndependent() const { return false;}
-    
-    opColumn(aType A, aType B): OneOperator(atype<C_F0>(),A,B) {if( A== basicForEachType::type_C_F0)pref=-100;}
-    opColumn(aType A): OneOperator(atype<C_F0>(),ArrayOfaType(A,true)) {pref=-100;}
-    
-  //  opColumn(): OneOperator(atype<C_F0>(),atype<TransE_Array >(),atype<E_Array>()  ) {}
-    
-    E_F0 *  code(const basicAC_F0 & ) const {ffassert(0);}
-    C_F0  code2(const basicAC_F0 &args) const;
-};
-
-class opSum : public OneOperator{
-public:
-    const char * op;
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-    bool MeshIndependent() const { return false;}
-    
-    opSum(const char *opp,aType A, aType B): OneOperator(atype<C_F0>(),A,B),op(opp) {}
-    
-    E_F0 *  code(const basicAC_F0 & ) const {ffassert(0);}
-    C_F0  code2(const basicAC_F0 &args) const;       
-};
-
-
-/*
-class opArray : public OneOperator{
-public:
-    const char * op;
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-    bool MeshIndependent() const { return false;}
-    
-    opSum(const char *opp,aType A, aType B): OneOperator(atype<C_F0>(),A,B),op(opp) {}
-    
-    E_F0 *  code(const basicAC_F0 & ) const {ffassert(0);}
-    C_F0  code2(const basicAC_F0 &args) const;       
-};
-*/
-
-class opFormal : public OneOperator{
-public:
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-    bool MeshIndependent() const { return false;}
-    C_F0  (*thecode2)(const basicAC_F0 &args);     
-    opFormal(aType A,C_F0  (c2)(const basicAC_F0 &args) ): OneOperator(atype<C_F0>(),A),thecode2(c2) {}       
-    E_F0 *  code(const basicAC_F0 & ) const {ffassert(0);}
-    C_F0  code2(const basicAC_F0 &args) const { return (*thecode2)(args);}    
-};
-// fin frev 2007
-// nov 2007   v[i]
-class opVI : public OneOperator{
-public:
-    AnyType operator()(Stack s)  const {ffassert(0);return 0L;}
-    bool MeshIndependent() const { return false;}
-    
-    opVI(aType A): OneOperator(atype<C_F0>(),A,atype<long>()) {}
-    
-    E_F0 *  code(const basicAC_F0 & ) const {ffassert(0);}
-    C_F0  code2(const basicAC_F0 &args) const;       
-};
-// fin nov 2007
-//  add 2010 feb.  FH
-C_F0 TryConj(const C_F0 & c) {
-    //   here put the conj   operator ... 
-    ArrayOfaType at(c.left()); 
-    basicAC_F0_wa p(c);
-    const  OneOperator *  ff=TheOperators->Find("\'",at);
-	if (ff) { 
-	    if(verbosity>10) 
-	    cout << " ( do Conj) "  ;
-	     return ff->code2(p);
-	}
-	
-    return c; }
-// fin add 2010 feb.	  
-// avril 2007
-
-C_F0  formalMatCofactor(const basicAC_F0 &args)
-{
-    bool ta =args[0].left()==atype<TransE_Array>();
-    const TransE_Array * tea=0;
-    const E_Array * ea=0;
-    if( ta)  tea = dynamic_cast<const TransE_Array*>((Expression) args[0]);
-    else ea = dynamic_cast<const E_Array*>((Expression) args[0]);
-    assert( ea || tea );
-    const E_Array & a=  ta ? *tea->v : *ea;
-    int ma =1;
-    int na=a.size();
-    if(na <1 ) CompileError(" Cofactor  ([ ...])  ");
-    bool maa= a[0].left()==atype<E_Array>();
-    if(maa) {
-	ma= a[0].LeftValue()->nbitem();
-	for (int i=1;i<na;i++)
-	    if( ma != (int) a[i].LeftValue()->nbitem())
-		CompileError(" a matrix with variable number of columm");
-        
-    }
-    
-    int na1=na,ma1=ma;
-    if(ta) RNM::Exchange(na1,ma1);
-    if(na1 != ma1) CompileError(" CoFactor:  no square matrix ");
-    if(na1 > 3 || ( na1 <1) ) CompileError(" CoFactor:   square matrix size is more then 3   ");
-    KNM<CC_F0> A(na1,na1);
-    KNM<CC_F0> C(na1,na1);
-    if(maa)
-	for (int i=0;i<na;++i)
-	{
-	    const E_Array * li=  dynamic_cast<const E_Array *>(a[i].LeftValue());
-	    ffassert(li);
-	    for (int j=0; j<ma;++j)
-		if(!ta)  A(i,j) = (*li)[j];
-		else     A(j,i) = TryConj((*li)[j]);
-	}
-    else
-        for (int i=0;i<na;++i)
-            if(!ta)  A(i,0) = a[i];
-            else     A(0,i) = TryConj(a[i]);
-    
-    
-    AC_F0  v,cc;
-    if(na1==2)
-    {
-      for(int i=0;i<na1;++i)
-        for(int j=0;j<na1;++j)
-          if( (i+j) %2 == 0)
-            C(i,j) = A(1-i,1-j);
-          else
-            C(i,j) = C_F0(TheOperators,"-",A(1-i,1-j));
-    }
-    else if( na1 ==3)
-    {
-        int i1,i2,j1,j2;
-        for(int i=0;i<3;++i)
-          for(int j=0;j<3;++j)
-          {
-              i1 = (i+1)%3;
-              i2 = (i+2)%3;
-              j1 = (j+1)%3;
-              j2 = (j+2)%3;
-              
-            C(i,j) = A(i1,j1)*A(i2,i2)-A(i1,j2)*A(i2,j1);
-          }
-    }
-    v=C(0,0);
-    
-    for (int i=0;i<na1;++i)
-    {  cc = C(i,0);
-        for (int j=1;j<ma1;++j)
-            cc+= C(i,j);
-        C_F0  vi(TheOperators,"[]",cc);
-        if(i==0) v=vi;
-        else v+= vi;
-    }
-    return C_F0(TheOperators,"[]",v);
-
-    
-}
-
-C_F0  formalMatTrace(const basicAC_F0 &args)       
-{
-    bool ta =args[0].left()==atype<TransE_Array>();
-    const TransE_Array * tea=0;
-    const E_Array * ea=0;
-	if( ta)  tea = dynamic_cast<const TransE_Array*>((Expression) args[0]);
-    else ea = dynamic_cast<const E_Array*>((Expression) args[0]);
-    assert( ea || tea );
-    const E_Array & a=  ta ? *tea->v : *ea;
-    int ma =1;
-    int na=a.size();
-    if(na <1 ) CompileError(" trace  [ ...]  ");
-    bool maa= a[0].left()==atype<E_Array>();
-    if(maa) {
-	ma= a[0].LeftValue()->nbitem();
-	for (int i=1;i<na;i++)
-	    if( ma != (int) a[i].LeftValue()->nbitem()) 
-		CompileError(" first matrix with variable number of columm");
-        
-    }
-
-    int na1=na,ma1=ma;
-    if(ta) RNM::Exchange(na1,ma1);
-    if(na1 != ma1) CompileError(" trace:  no square matrix ");
-    KNM<CC_F0> A(na1,ma1);
-    
-    if(maa)
-	for (int i=0;i<na;++i)
-	{
-	    const E_Array * li=  dynamic_cast<const E_Array *>(a[i].LeftValue());
-	    ffassert(li);
-	    for (int j=0; j<ma;++j)
-		if(!ta)  A(i,j) = (*li)[j];
-		else     A(j,i) = TryConj((*li)[j]);
-	} 
-	    else
-		for (int i=0;i<na;++i)
-		    if(!ta)  A(i,0) = a[i];
-		    else     A(0,i) = TryConj(a[i]);
-    
-    
-    CC_F0 s;
-    s= A(0,0);
-    for (int i=0;i<na1;++i)
-	s = C_F0(TheOperators,"+",s,A(i,i));
-    return  s;
-     
-}
-
-
-C_F0  formalMatDet(const basicAC_F0 &args)
-{
-    bool ta =args[0].left()==atype<TransE_Array>();
-    const TransE_Array * tea=0;
-    const E_Array * ea=0;
-    if( ta)  tea = dynamic_cast<const TransE_Array*>((Expression) args[0]);
-    else ea = dynamic_cast<const E_Array*>((Expression) args[0]);
-    assert( ea || tea );
-    const E_Array & a=  ta ? *tea->v : *ea;
-    int ma =1;
-    int na=a.size();
-    if(na <1 ) CompileError(" trace  [ ...]  ");
-    bool maa= a[0].left()==atype<E_Array>();
-    if(maa) {
-	ma= a[0].LeftValue()->nbitem();
-	for (int i=1;i<na;i++)
-	    if( ma != (int) a[i].LeftValue()->nbitem()) 
-		CompileError("  matrix with variable number of columm");
-        
-    }
-    
-    int na1=na,ma1=ma;
-    if(ta) RNM::Exchange(na1,ma1);
-    if(na1 != ma1) CompileError(" trace:  no square matrix ");
-    KNM<CC_F0> A(na1,ma1);
-    
-    if(maa)
-	for (int i=0;i<na;++i)
-	{
-	    const E_Array * li=  dynamic_cast<const E_Array *>(a[i].LeftValue());
-	    ffassert(li);
-	    for (int j=0; j<ma;++j)
-		if(!ta)  A(i,j) = (*li)[j];
-		else     A(j,i) = TryConj((*li)[j]);
-	} 
-	    else
-		for (int i=0;i<na;++i)
-		    if(!ta)  A(i,0) = a[i];
-		    else     A(0,i) = TryConj(a[i]);
-    
-    
-    if(na1==1)
-      return  A(0,0);
-    else if( na1==2 )
-    {
-	C_F0 s1(TheOperators,"*",A(0,0),A(1,1));
-	C_F0 s2(TheOperators,"*",A(0,1),A(1,0));
-	return C_F0(TheOperators,"-",s1,s2);
-    }
-    else if( na1==3 )
-    {
-        int i=0,ii=(i+1)%3,iii=(i+2)%3;
-        A(i,0)*A(i,0);
-        C_F0 det = A(i,0)*A(ii,1)*A(iii,2) - A(i,0)*A(ii,2)*A(iii,1);
-        i++;ii=(i+1)%3,iii=(i+2)%3;
-        det +=  A(i,0)*A(ii,1)*A(iii,2) - A(i,0)*A(ii,2)*A(iii,1);
-        i++;ii=(i+1)%3,iii=(i+2)%3;
-        det +=  A(i,0)*A(ii,1)*A(iii,2) - A(i,0)*A(ii,2)*A(iii,1);
-        return det;
-    }
-    else
-    {
-	CompileError("FH: sorry only det of 1x1 and 2x2 matrix ");
-    }
-    return  C_F0(); 
-    
-}
-
-<<<<<<< HEAD
-=======
-#ifdef HAVE_JN
-double myyn(long n, double x){ return yn((int)n,x);}
-double myjn(long n, double x){ return jn((int) n,x);}
-#endif
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-//  Add juin  2007 
-template<class A,class B=A,class R=A>
-struct evalE_mul {
-    static AnyType eval(Stack s,const E_F0 * ab,const E_F0 * a,const E_F0 * b, bool & meshidenp) 
-    {
-	A aa = GetAny<A>((*a)(s)) ;
-	B bb = GetAny<B>((*b)(s)) ;
-	R rr(aa*bb);
-	bool mia=a->MeshIndependent();
-	bool mib=b->MeshIndependent();
-	
-	if (( aa == A()) && mia ) meshidenp=true;
-	else if(( bb == B()) && mib ) meshidenp=true;
-        else meshidenp = mib && mia;
-	cout << " meshidenp ??? " << meshidenp << " " << rr << endl;
-	return SetAny<R>(static_cast<R>(rr)); 
-    }
-};
-istream *Getline(istream * f, string ** s)
-{
-    if( *s==0) *s=new string;
-    getline(*f,**s);
-    size_t l = (**s).length();
-    if( l > 0 && ((**s)[l-1]=='\r')) (**s).resize(l-1); //
-       return f;    
-}
-// Fin Add ne marche pas ....
-// fiun avril 2007
-//  Hack to Bypass a bug in freefem FH  ... 
-template<> 
-class ForEachType<void *>:  public basicForEachType{public:// correction july 2009..... FH  Hoooo....  (Il y a un bug DUR DUR FH  ...) 
-    ForEachType(Function1 iv=0,Function1 id=0,Function1 OOnReturn=0):basicForEachType(typeid(void *),sizeof(void *),0,0,iv,id,OOnReturn) { }
-};
-
-inline double walltime(){
-#ifdef HAVE_GETTIMEOFDAY
-
-    
-    struct              timeval currentWallTime;
-    double             msecTime;
-    
-    gettimeofday(&currentWallTime, NULL);
-    
-    //time with milliseconds
-    msecTime = ( currentWallTime.tv_sec*1000. + currentWallTime.tv_usec/1000. )/1000.0;
-    
-    // return time with milliseconds
-    return msecTime;
-
-    
-#else
-
-    // add for Pichon mars 2010 
-    time_t currentWallTime;
-    time(&currentWallTime);
-    return (double)currentWallTime;
-#endif
-}
-
-inline long fftime()
-{
-#ifdef HAVE_GETTIMEOFDAY
-    time_t tloc;
-    return time(&tloc);
-#endif
-    return -1;
-}
-
-long atoi(string* p) {return atoi(p->c_str());}// add march 2010
-double atof(string* p) {return atof(p->c_str());}// add march 2010
-<<<<<<< HEAD
-double NaN(string* p) {
-return nan(p->c_str());}// add march 2012
-double NaN() {return nan("");}// add march 2012
-=======
-double NaN(string* p) {return nan(p->c_str());}// add march 2012
-double NaN() {return nan("");}// add march 2012
-
-long isNaN(double x){return isnan(x);}
-long isInf(double x){return isinf(x);}
-long isNormal(double x){return isnormal(x);}
-//int  ShowAlloc(const char *s, size_t lg);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-int ShowAlloc(const char *s,size_t & lg); 
-long ShowAlloc1(string *  s,long * np) { size_t lg; long  n= ShowAlloc(s->c_str(),lg); *np=lg; return n;}
-long ShowAlloc1(string *  s) { size_t lg; long  n= ShowAlloc(s->c_str(),lg); return n;}
-void Init_map_type()
-{
-   TheOperators=new Polymorphic(), 
-   TheRightOperators=new Polymorphic();
-  //  cout << sizeof(string) << endl;
-    map_type[typeid(AnyType).name()] = new ForTypeAnyType();
-    map_type[typeid(void).name()] = new ForTypeVoid();
-
-    Dcl_Type<Expression>(0);    
-    Dcl_TypeandPtr<double>(0,0,::InitializeDef<double>,0);
-    Dcl_TypeandPtr<long>(0,0,::InitializeDef<long>,0);
-    Dcl_TypeandPtr<bool>(0,0,::InitializeDef<bool>,0);
-    Dcl_TypeandPtr<Complex>(0,0,::InitializeDef<Complex>,0);
-    Dcl_Type<void*>(); // add FH ...  for mpi comm world
-    Dcl_Type<char*>();
-    Dcl_Type<const char *>();
-    Dcl_Type<char>();
-    Dcl_TypeandPtr<string*>(0,0,::InitializePtr<string*>,::DeletePtr<string*>);
-    Dcl_TypeandPtr<ostream*>(0,0,::InitializePtr<ostream*>,::DeletePtr<ostream*>);
-    Dcl_TypeandPtr<istream*>(0,0,::InitializePtr<istream*>,::DeletePtr<istream*>);
-    Dcl_Type< ostream_precis > ();
-    Dcl_Type< ostream_seekp > ();
-    Dcl_Type< istream_seekg > ();
-    Dcl_Type< istream_good > ();
-    Dcl_Type< NothingType > ();
-    
-    Dcl_Type<Polymorphic*>();
-    
-//    Dcl_Type<C_F0>();
-    basicForEachType::type_C_F0 = map_type[typeid(C_F0).name()] =  new TypeLineFunction;
-    Dcl_Type<E_Array>();
-    Dcl_Type<TransE_Array >();// add
-    Dcl_Type<const E_Border *>();
-    Dcl_Type<const E_BorderN *>();
-
-    
-    
-    Dcl_Type<SubArray>();
-    Dcl_Type<pair<long,long> >();
-    
-    initArrayDCLlong();
-    initArrayDCLdouble();
-    initArrayDCLComplex();
-        
-    Dcl_Type<ios::openmode>();
-    
-//  les types des variables 
-    
-  zzzfff->Add("real",typevarreal=atype<double*>());
-  zzzfff->Add("int",atype<long*>());
-  zzzfff->Add("complex",typevarcomplex=atype<Complex*>());
-  zzzfff->Add("bool",atype<bool*>());
-  zzzfff->Add("string",atype<string**>());
-  zzzfff->Add("ifstream",atype<istream**>());
-  zzzfff->Add("ofstream",atype<ostream**>());
-  zzzfff->AddF("func",atype<C_F0>());
-  
-  
-    
-//  end of know types
-
-     map_type[typeid(bool).name()]->AddCast(
-       new E_F1_funcT<bool,bool*>(UnRef<bool>),
-       new E_F1_funcT<bool,long>(Cast<bool,long>),
-       new E_F1_funcT<bool,double>(Cast<bool,double>)
-       );                                         
-                        
-
-     map_type[typeid(long).name()]->AddCast(
-       new E_F1_funcT<long,long*>(UnRef<long>),
-       new E_F1_funcT<long,double>(Cast<long,double>),
-       new E_F1_funcT<long,bool>(Cast<long,bool>),
-       new E_F1_funcT<long,ostream_precis>(Cast<long,ostream_precis>),
-       new E_F1_funcT<long,ostream_seekp>(Cast<long,ostream_seekp>),
-       new E_F1_funcT<long,istream_seekg>(Cast<long,istream_seekg>)
-       );
-       
-       
-     map_type[typeid(double).name()]->AddCast(
-       new E_F1_funcT<double,double*>(UnRef<double>),
-       new E_F1_funcT<double,long>(Cast<double,long>),
-       new E_F1_funcT<double,bool>(Cast<double,bool>)
-       
-       ); 
-                                               
-     map_type[typeid(Complex).name()]->AddCast(
-       new E_F1_funcT<Complex,Complex*>(UnRef<Complex>),
-       new E_F1_funcT<Complex,long>(Cast<Complex,long>),
-       new E_F1_funcT<Complex,double>(Cast<Complex,double>)
-       );                                         
-
-     map_type[typeid(string*).name()]->AddCast(
-       new E_F1_funcT<string*,string**>(UnRefCopyPtr<string>),
-       new E_F1_funcT<string*,long>(FCast<string*,long,toString>),
-       new E_F1_funcT<string*,double>(FCast<string*,double,toString>),
-       new E_F1_funcT<string*,bool>(FCast<string*,bool,toString>),
-       new E_F1_funcT<string*,Complex>(FCast<string*,Complex,toString>)
-        ); 
-     //   a changer ---------------  modif                                         
-        map_type[typeid(string*).name()]->AddCast(					       
-          new E_F1_funcT<string*,char *>(FCast<string*,char *,toStringC>),
-          new E_F1_funcT<string*,const char *>(FCast<string* ,const char *,toStringCconst>)
-       );
-       
-     map_type[typeid(long).name()]->AddCast(new OneOperator_border_label);
-      
-     Global.New("verbosity",CPValue<long>(verbosity));
-     Global.New("searchMethod",CPValue<long>(searchMethod)); //pichon
-     
-     Global.New("cout",CConstant<ostream*>(&cout));
-     Global.New("cerr",CConstant<ostream*>(&cerr));// add jan 2014 FH.
-     Global.New("cin",CConstant<istream*>(&cin));
-     Global.New("append",CConstant<ios::openmode>(ios::app));
-     Global.New("binary",CConstant<ios::openmode>(ios::binary)); // add FH april 2014
-     TheOperators->Add("|",new OneBinaryOperator<Op2_pipe<ios::openmode> >); // add FH april 2014
-     Global.New("endl",CConstant<const char*>("\n"));
-     Global.New("true",CConstant<bool>(true));
-     Global.New("false",CConstant<bool>(false));
-     Global.New("pi",CConstant<double>(3.14159265358979323846264338328));
-     Global.New("version",CConstant<double>(VersionNumber()));
-      
-     Global.New("CPUTime",CConstant<bool*>(&showCPU));
-     // def de Zero et One
-     pZero = new  C_F0(CConstant<double>(0.0));
-     pOne = new  C_F0(CConstant<double>(1.0));
-     pminusOne = new  C_F0(CConstant<double>(-1.0));
-     
-     TheOperators->Add(":",
-       new OneOperatorConst<char>(new EConstant<char>(':')),
-       new OneBinaryOperator<SubArray2>,
-       new OneTernaryOperator3<SubArray3>);
-     
-       
-     TheOperators->Add("+",
-       new OneBinaryOperator<Op2_add<long,long,long> >,
-       new OneBinaryOperator<Op2_add<double,double,double> >,
-       new OneBinaryOperator<Op2_add<double,double,long> >,
-       new OneBinaryOperator<Op2_add<double,long,double> >,
-       new OneBinaryOperator<Op2_add<long,bool,bool> >,       
-       new OneBinaryOperator<Op2_add<long,long,bool> >,       
-       new OneBinaryOperator<Op2_add<long,bool,long> >,       
-       new OneBinaryOperator<Op2_add<Complex,Complex,Complex> >,
-       new OneBinaryOperator<Op2_add<Complex,Complex,double> >,
-       new OneBinaryOperator<Op2_add<Complex,double,Complex> >,
-       new OneBinaryOperator<Op2_add<Complex,Complex,long> >,
-       new OneBinaryOperator<Op2_add<Complex,long,Complex> > ,      
-       new OneBinaryOperator_st<Op2_padd<string,string*,string*> >  // a changer to do FH string * mars 2006    
-       );
-     TheOperators->Add("-",
-       new OneBinaryOperator<Op2_sub<long,long,long> >,
-       new OneBinaryOperator<Op2_sub<double,double,double> >,
-       new OneBinaryOperator<Op2_sub<double,double,long> >,
-       new OneBinaryOperator<Op2_sub<double,long,double> >,
-       new OneBinaryOperator<Op2_sub<long,bool,bool> >,              
-       new OneBinaryOperator<Op2_sub<Complex,Complex,Complex> >,
-       new OneBinaryOperator<Op2_sub<Complex,Complex,double> >,
-       new OneBinaryOperator<Op2_sub<Complex,double,Complex> >,
-       new OneBinaryOperator<Op2_sub<Complex,Complex,long> >,
-       new OneBinaryOperator<Op2_sub<Complex,long,Complex> >       
-       );
-       
-     TheOperators->Add("*",
-       new OneBinaryOperator<Op2_mul<long,long,long>,OneBinaryOperatorMI,evalE_mul<long> >,
-       new OneBinaryOperator<Op2_mul<double,double,double>,MIMul<double,double>,evalE_mul<double> >,
-       new OneBinaryOperator<Op2_mul<double,double,long>, MIMul<double,long>,evalE_mul<double,long,double> >,
-       new OneBinaryOperator<Op2_mul<double,long,double>,MIMul<long,double>,evalE_mul<long,double,double>  >,
-       new OneBinaryOperator<Op2_mul<Complex,Complex,Complex> >,
-       new OneBinaryOperator<Op2_mul<Complex,Complex,double> >,
-       new OneBinaryOperator<Op2_mul<Complex,double,Complex> >,
-       new OneBinaryOperator<Op2_mul<Complex,Complex,long> >,
-       new OneBinaryOperator<Op2_mul<Complex,long,Complex> >       
-       );
-     TheOperators->Add("/",
-       new OneBinaryOperator<Op2_div<long,long,long> >,
-       new OneBinaryOperator<Op2_div<double,double,double> >,
-       new OneBinaryOperator<Op2_div<double,double,long> >,
-       new OneBinaryOperator<Op2_div<double,long,double> >,
-       new OneBinaryOperator<Op2_div<Complex,Complex,Complex> >,
-       new OneBinaryOperator<Op2_div<Complex,Complex,double> >,
-       new OneBinaryOperator<Op2_div<Complex,double,Complex> >,
-       new OneBinaryOperator<Op2_div<Complex,Complex,long> >,
-       new OneBinaryOperator<Op2_div<Complex,long,Complex> >       
-       );
-
-     TheOperators->Add("%",
-       new OneBinaryOperator<Op2_mod<long,long,long> >
-       );
-
-
-    TheOperators->Add("+",
-       new OneUnaryOperator<Op1_plus<double> >,
-       new OneUnaryOperator<Op1_plus<long> >,
-       new OneUnaryOperator<Op1_plus<Complex> >);
-     
-    TheOperators->Add("-",
-       new OneUnaryOperator<Op1_neg<double> >,
-       new OneUnaryOperator<Op1_neg<long> >,
-       new OneUnaryOperator<Op1_neg<Complex> >);
-              
-     TheOperators->Add("^",
-		       new OneBinaryOperator<Op2_pow<long,long,long> >,
-    //   new OneBinaryOperator<Op2_pow<double,long,double> >,
-		       new OneBinaryOperator<Op2_pow<double,double,double> >,
-		       new OneBinaryOperator<Op2_pow<double,double,long> >,
-    //   new OneBinaryOperator<Op2_pow<Complex,Complex,double> >,
-    //  new OneBinaryOperator<Op2_pow<Complex,double,Complex> >,
-		       new OneBinaryOperator<Op2_pow<Complex,Complex,Complex> >
-     );
-     
-     TheOperators->Add("<",
-       new OneBinaryOperator<Op2_lt<long,long> >,
-       new OneBinaryOperator<Op2_lt<double,double> >,
-       new OneBinaryOperator<Op2_plt<string*,string*> >  //  FH string * mars 2006 
-     );
-     TheOperators->Add("<=",
-       new OneBinaryOperator<Op2_le<long,long> >,
-       new OneBinaryOperator<Op2_le<double,double> >,
-       new OneBinaryOperator<Op2_ple<string*,string*> >  //  FH string * mars 2006 
-     );
-     TheOperators->Add(">",
-       new OneBinaryOperator<Op2_gt<long,long> >,
-       new OneBinaryOperator<Op2_gt<double,double> >,
-       new OneBinaryOperator<Op2_pgt<string*,string*> >  //  string * mars 2006 
-     );
-     TheOperators->Add(">=",
-       new OneBinaryOperator<Op2_ge<long,long> >,
-       new OneBinaryOperator<Op2_ge<double,double> >,
-       new OneBinaryOperator<Op2_pge<string*,string*> >  //  FH string * mars 2006 
-     );
-     TheOperators->Add("==",
-       new OneBinaryOperator<Op2_eq<long,long> >,
-       new OneBinaryOperator<Op2_eq<double,double> >,
-       new OneBinaryOperator<Op2_eq<Complex,Complex> >,
-       new OneBinaryOperator<Op2_peq<string*,string*> >  //   FH string * mars 2006 
-     );
-
-     TheOperators->Add("!=",
-       new OneBinaryOperator<Op2_ne<long,long> >,
-       new OneBinaryOperator<Op2_ne<double,double> >,
-       new OneBinaryOperator<Op2_ne<Complex,Complex> >,
-       new OneBinaryOperator<Op2_pne<string*,string*> >  //  FH string * mars 2006 
-     );
-     
-     TheOperators->Add("!",
-       new OneUnaryOperator<Op1_not<bool > >
-     );
-     
-     TheOperators->Add("&&", new OneBinaryOperator<Op2_and > );
-     TheOperators->Add("&", new OneBinaryOperator<Op2_and > );
-     TheOperators->Add("||", new OneBinaryOperator<Op2_or> );
-     TheOperators->Add("|", new OneBinaryOperator<Op2_or> );
-       
-      // Unary_Op_Comparaision
-     
-     TheOperators->Add("=",
-       new OneBinaryOperator<set_eq<bool> ,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<set_eq<long> ,OneBinaryOperatorMIWO>,
-       new OneBinaryOperator<set_eq<double> ,OneBinaryOperatorMIWO>,
-       new OneBinaryOperator<set_eq<Complex> ,OneBinaryOperatorMIWO>,
-       new OneBinaryOperator<set_peq<string> ,OneBinaryOperatorMIWO>  // FH string * mars 2006 
-       ); 
-
-     TheOperators->Add("?:",
-       new Operator_Aritm_If<bool >,
-       new Operator_Aritm_If<long >,
-       new Operator_Aritm_If<double >,
-       new Operator_Aritm_If<Complex >,
-       new Operator_Aritm_If<string* >  // (OK???)  to do FH string * mars 2006 
-       ); 
-       
-/*
-     ArrayOperator<double>();
-     ArrayOperator<Complex>();
-     ArrayOperator<long>();
-*/
-//      initArrayOperators()   ;  
-     initArrayOperatorlong();
-     initArrayOperatordouble();
-     initArrayOperatorComplex();
-     initStringOperator();
-
-
-     TheOperators->Add("+=",
-       new OneBinaryOperator<set_eq_add<long>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<set_eq_add<double>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<set_eq_add<Complex>,OneBinaryOperatorMIWO >
-      );
-
-
-     TheOperators->Add("-=",
-       new OneBinaryOperator<set_eq_sub<long>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<set_eq_sub<double>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<set_eq_sub<Complex>,OneBinaryOperatorMIWO >
-      );
-
-
-
-     TheOperators->Add("*=",
-       new OneBinaryOperator<set_eq_mul<long> ,OneBinaryOperatorMIWO>,
-       new OneBinaryOperator<set_eq_mul<double>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<set_eq_mul<Complex>,OneBinaryOperatorMIWO >     
-      );
-
-
-     TheOperators->Add("/=",
-       new OneBinaryOperator<set_eq_div<long>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<set_eq_div<double>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<set_eq_div<Complex>,OneBinaryOperatorMIWO >     
-     );
-
-     TheOperators->Add("+",
-    //   new OneBinaryOperator<Op2_addp<const E_BorderN *,const E_BorderN *,const E_BorderN * > >,  
-       new AddBorderOperator
-       );
-
-      // add frev 2007
-      TheOperators->Add("\'", new opTrans); 
-      
-     // TheOperators->Add("\'", new opTTrans); 
-      TheOperators->Add("*",new opDot(atype<TransE_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("*",new opDot(atype<E_Array >(),atype<E_Array>() )   );  // a faire mais dur
-      TheOperators->Add("*",new opColumn(atype<E_Array >() )   );  //  [ ]* C_F0 (all)
-      TheOperators->Add("*",new opColumn(basicForEachType::type_C_F0,atype<E_Array >() )   );  //  [ ]* C_F0 (all)
-      TheOperators->Add("*",new opColumn(basicForEachType::type_C_F0,atype<TransE_Array >() )   );  //  [ ]* C_F0 (all)
-//    type_C_F0
-      TheOperators->Add("::",new opColumn(atype<E_Array >(),atype<E_Array>() )   );  // a faire mais dur
-      TheOperators->Add("*",new opDot(atype<E_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("*",new opDot(atype<TransE_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
- 
-     // car le type de retour depent des objets du tableau
-      atype<E_Array >()->Add("[","",new opVI(atype<E_Array >())   );  
-      atype<TransE_Array >()->Add("[","",new opVI(atype<TransE_Array >())   );  
-      TheOperators->Add("+",new opSum("+",atype<TransE_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("+",new opSum("+",atype<E_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("+",new opSum("+",atype<E_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("+",new opSum("+",atype<TransE_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("-",new opSum("-",atype<TransE_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("-",new opSum("-",atype<E_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("-",new opSum("-",atype<E_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("-",new opSum("-",atype<TransE_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-      TheOperators->Add(".*",new opSum("*",atype<TransE_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add(".*",new opSum("*",atype<E_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add(".*",new opSum("*",atype<E_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-      TheOperators->Add(".*",new opSum("*",atype<TransE_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("./",new opSum("/",atype<TransE_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("./",new opSum("/",atype<E_Array >(),atype<E_Array>() )   );  // a faire mais dur 
-      TheOperators->Add("./",new opSum("/",atype<E_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-    // correct in sept. 2009
-      TheOperators->Add("./",new opSum("/",atype<TransE_Array >(),atype<TransE_Array>() )   );  // a faire mais dur 
-    
-      
-     // il faut refechir  .....  FH 
-     // il faut definir le type d'un tableau bof, bof (atype<C_F0>())
-     TheOperators->Add(">>",
-       new OneBinaryOperator<Op_Read<bool>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<Op_Read<long>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<Op_Read<double>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<Op_Read<Complex>,OneBinaryOperatorMIWO >,
-       new OneBinaryOperator<Op_ReadP<string>,OneBinaryOperatorMIWO >
-		       
-       );
-     
-     TheOperators->Add("<<",
-       new OneBinaryOperator<Print<bool> >,
-       new OneBinaryOperator<Print<long> >,
-       new OneBinaryOperator<Print<double> >,
-       new OneBinaryOperator<Print<Complex> >,
-       new OneBinaryOperator<PrintP<string*> >  //  FH string * mars 2006 
-       );
-
-     
-     TheRightOperators->Add("++",       
-       new OneOperator1<long,long*, E_F_F0<long,long*,false> >(&RIncremantation<long>));
-     TheRightOperators->Add("--",       
-       new OneOperator1<long,long*, E_F_F0<long,long*,false> >(&RDecremantation<long>));
-     TheOperators->Add("++",       
-       new OneOperator1<long,long*, E_F_F0<long,long*,false> >(&LIncremantation<long>));
-     TheOperators->Add("--",       
-       new OneOperator1<long,long*, E_F_F0<long,long*,false> >(&LDecremantation<long>));
-//   init        
-     TheOperators->Add("<-", 
-       new OneOperator2<string**,string**,string*>(&set_copyp_new<string>),  //  FH string * mars 2006 
-       new OneOperator2_<double*,double*,double>(&set_copyp),  // 
-       new OneOperator2_<long*,long*,long>(&set_copyp),
-       new OneOperator2_<bool*,bool*,bool>(&set_copyp), //  mars 2006
-       new OneOperator2_<Complex*,Complex*,Complex>(&set_copy),
-  //     new OneOperator2_<istream**,istream**,istream*>(&set_copy_new<istream>),
-   //    new OneOperator2_<ostream**,ostream**,ostream*>(&set_copy_new<ostream>),
-//       new OneUnaryOperator<Op1_new_pstring<istream*,ifstream> >,
-//       new OneUnaryOperator<Op1_new_pstring<ostream*,ofstream> >,
-       new OneBinaryOperator<Op2_set_pstring<istream**,ifstream> >,  //  FH string * mars 2006 
-       new OneBinaryOperator<Op2_set_pstring<ostream**,ofstream> >,  //  FH string * mars 2006 
-       new OneTernaryOperator3<Op2_set_pstringiomode<ostream**,ofstream> >  ,    //  FH string * mars 2006
-       new OneTernaryOperator3<Op2_set_pstringiomode<istream**,ifstream> >   //  FH string * april  2014
-       );
-       
-     atype<istream* >()->AddCast( new E_F1_funcT<istream*,istream**>(UnRef<istream* >)); 
-     atype<ostream* >()->AddCast( new E_F1_funcT<ostream*,ostream**>(UnRef<ostream* >)); 
-   
-//     Add<istream**>("<-","(", new OneUnaryOperator<Op1_new_pstring<istream*,ifstream> >);
-     Add<ostream**>("<-","(", new OneUnaryOperator<Op1_new_pstring<ostream*,ofstream> >);  //  FH string * mars 2006 
-     
-    // Polymorphic * precis =new Polymorphic();
-    //  Add<ostream*>("precision",".",precis);
-     Add<ostream**>("precision",".",new OneOperator1<ostream_precis,ostream**>(ostream_precision));
-     Add<ostream*>("precision",".",new OneOperator1<ostream_precis,ostream*>(ostream_precision));
-    
-    // add FH jan 2010 ...
-    Add<ostream**>("seekp",".",new OneOperator1<ostream_seekp,ostream**>(ff_oseekp));
-    Add<ostream*>("seekp",".",new OneOperator1<ostream_seekp,ostream*>(ff_oseekp));
-    
-    Add<istream**>("seekg",".",new OneOperator1<istream_seekg,istream**>(ff_iseekg));
-    Add<istream*>("seekg",".",new OneOperator1<istream_seekg,istream*>(ff_iseekg));
-    Add<ostream**>("tellp",".",new OneOperator1<ostream_seekp,ostream**>(ff_oseekp));
-    Add<ostream*>("tellp",".",new OneOperator1<ostream_seekp,ostream*>(ff_oseekp));
-    
-    Add<istream**>("tellg",".",new OneOperator1<istream_seekg,istream**>(ff_iseekg));
-    Add<istream*>("tellg",".",new OneOperator1<istream_seekg,istream*>(ff_iseekg));
-    
- //   Add<istream_seekp>("(","",new OneOperator1<long,istream_seekp>(fftellp),
-//			new OneOperator2<long,istream_seekp,long>(ffseekp));    
-    Add<ostream_seekp>("(","",new OneOperator1<long,ostream_seekp>(fftellp),
-		       new OneOperator2<long,ostream_seekp,long>(ffseekp));
-    Add<istream_seekg>("(","",new OneOperator1<long,istream_seekg>(fftellg),
-		       new OneOperator2<long,istream_seekg,long>(ffseekg));
-    // end add  jan 2010 .. 
-    Add<ostream_precis>("(","",new OneOperator1<long,ostream_precis>(get_precis),
-                                new OneOperator2<long,ostream_precis,long>(set_precis));
-//  add v 1.41   
-     Add<istream**>("good",".",new OneOperator1<istream_good,istream**>(to_istream_good));
-     Add<istream*>("good",".",new OneOperator1<istream_good,istream*>(to_istream_good));
-     Add<istream*>("good",".",new OneOperator1<istream_good,istream*>(to_istream_good));    
-     Add<istream_good>("(","",new OneOperator1<long,istream_good>(get_good));
-
-     Add<istream**>("eof",".",new OneOperator1<bool,istream**>(get_eof));
-// add v 2.8 
-     Add<ostream**>("scientific",".",new OneOperator1<ostream**,ostream**>(set_os<scientific>));
-     Add<ostream**>("fixed",".",new OneOperator1<ostream**,ostream**>(set_os<fixed>));
-     Add<ostream**>("showbase",".",new OneOperator1<ostream**,ostream**>(set_os<showbase>));
-     Add<ostream**>("noshowbase",".",new OneOperator1<ostream**,ostream**>(set_os<noshowbase>));
-     Add<ostream**>("showpos",".",new OneOperator1<ostream**,ostream**>(set_os<showpos>));
-     Add<ostream**>("noshowpos",".",new OneOperator1<ostream**,ostream**>(set_os<noshowpos>));
-     Add<ostream**>("default",".",new OneOperator1<ostream**,ostream**>(set_os<default1>));
-     Add<ostream**>("flush",".",new OneOperator1<ostream**,ostream**>(set_os_flush));// ADD may 2010
-     
-     Add<ostream*>("scientific",".",new OneOperator1<ostream*,ostream*>(set_os1<scientific>));
-     Add<ostream*>("fixed",".",new OneOperator1<ostream*,ostream*>(set_os1<fixed>));
-     Add<ostream*>("showbase",".",new OneOperator1<ostream*,ostream*>(set_os1<showbase>));
-     Add<ostream*>("noshowbase",".",new OneOperator1<ostream*,ostream*>(set_os1<noshowbase>));
-     Add<ostream*>("showpos",".",new OneOperator1<ostream*,ostream*>(set_os1<showpos>));
-     Add<ostream*>("noshowpos",".",new OneOperator1<ostream*,ostream*>(set_os1<noshowpos>));
-     Add<ostream*>("default",".",new OneOperator1<ostream*,ostream*>(set_os1<default1>));
-     Add<ostream*>("flush",".",new OneOperator1<ostream*,ostream*>(set_os_flush));// ADD may 2010
-     
-    Global.Add("getline","(",new OneOperator2<istream*,istream*,string **>(Getline));
-// add 2.16
-     Global.Add("trace","(",new opFormal(atype<E_Array>(),formalMatTrace ));
-     Global.Add("det","(",new opFormal(atype<E_Array>(),formalMatDet ));
-// end add
-                                
-    // add 3.20
-    Global.Add("Cofactor","(",new opFormal(atype<E_Array>(),formalMatCofactor ));
-      
-     TheOperators->Add("[]",new OneOperator_array );
-     TheOperators->Add("[border]",new OneOperator_border );
-     
-      
-     Global.Add("cos","(",new OneOperator1<double>(cos));
-//     Global.Add("square","(",new OneOperator1_<double>(Square));
-    Global.Add("square","(",new OneOperator1<long,long,E_F_F0<long,const long &> >(Square));// add FH Mai 2011
-    Global.Add("square","(",new OneOperator1<double,double,E_F_F0<double,const double &> >(Square));
-    Global.Add("square","(",new OneOperator1<Complex,Complex,E_F_F0<Complex,const Complex &> >(Square));// add FH Mai 2011
-<<<<<<< HEAD
- //add for Olivier FH July 2014
-    Global.Add("sqr","(",new OneOperator1<long,long,E_F_F0<long,const long &> >(Square));//
-    Global.Add("sqr","(",new OneOperator1<double,double,E_F_F0<double,const double &> >(Square));
-    Global.Add("sqr","(",new OneOperator1<Complex,Complex,E_F_F0<Complex,const Complex &> >(Square));//
-=======
- //add for Olivier FH July 2017
-    Global.Add("sqr","(",new OneOperator1<long,long,E_F_F0<long,const long &> >(Square));// add FH Mai 2011
-    Global.Add("sqr","(",new OneOperator1<double,double,E_F_F0<double,const double &> >(Square));
-    Global.Add("sqr","(",new OneOperator1<Complex,Complex,E_F_F0<Complex,const Complex &> >(Square));// add FH Mai 2011
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-     Global.Add("round","(",new OneOperator1<double>(round)); // add june 2007
-     Global.Add("lround","(",new OneOperator1<long,double>(lround)); // add june 2007
-     Global.Add("floor","(",new OneOperator1<double>(floor)); // add march 2006
-     Global.Add("ceil","(",new OneOperator1<double>(ceil));  // add march 2006
-     Global.Add("rint","(",new OneOperator1<double>(rint));  // add june 2006
-     Global.Add("lrint","(",new OneOperator1<long,double>(lrint));  // add mars  2014
-    
-     Global.Add("sin","(",new OneOperator1<double>(sin));
-     Global.Add("tan","(",new OneOperator1<double>(tan));
-     Global.Add("atan","(",new OneOperator1<double>(atan));
-     Global.Add("sinh","(",new OneOperator1<double>(sinh));
-     Global.Add("cosh","(",new OneOperator1<double>(cosh));
-     Global.Add("tanh","(",new OneOperator1<double>(tanh));
-
-    Global.Add("atoi","(",new OneOperator1<long,string*>(atoi));// add march 2010
-    Global.Add("atof","(",new OneOperator1<double,string*>(atof));// add march 2010
-    
-#ifdef HAVE_ATANH
-     Global.Add("atanh","(",new OneOperator1<double>(atanh));
-#endif
-     Global.Add("asin","(",new OneOperator1<double>(asin));
-     Global.Add("acos","(",new OneOperator1<double>(acos));
-#ifdef HAVE_ASINH
-     Global.Add("asinh","(",new OneOperator1<double>(asinh));
-#endif
-#ifdef HAVE_ACOSH
-     Global.Add("acosh","(",new OneOperator1<double>(acosh));
-#endif
-#ifdef HAVE_ERFC
-     Global.Add("erf","(",new OneOperator1<double>(erf));
-     Global.Add("erfc","(",new OneOperator1<double>(erfc));
-#endif
-#ifdef HAVE_TGAMMA
-     Global.Add("tgamma","(",new OneOperator1<double>(tgamma));
-     Global.Add("lgamma","(",new OneOperator1<double>(lgamma));
-#endif
-     //  function de bessel j0, j1, jn, y0, y1, yn -- bessel functions of first and second kind     
-#ifdef HAVE_JN
-      Global.Add("j0","(",new OneOperator1<double>(j0));
-      Global.Add("j1","(",new OneOperator1<double>(j1));
-      Global.Add("jn","(",new OneOperator2<double,long,double>(myjn));
-      Global.Add("y0","(",new OneOperator1<double>(y0));
-      Global.Add("y1","(",new OneOperator1<double>(y1));
-      Global.Add("yn","(",new OneOperator2<double,long,double>(myyn));      
-#endif
-     Global.Add("exp","(",new OneOperator1<double>(exp));
-     Global.Add("log","(",new OneOperator1<double>(log));
-     Global.Add("log10","(",new OneOperator1<double>(log10));
-     Global.Add("pow","(",new OneOperator2<double,double>(pow));
-//     Global.Add("pow","(",new OneOperator2<double,double,long>(pow));
-     Global.Add("max","(",new OneOperator2_<double,double>(Max<double> ));
-     Global.Add("min","(",new OneOperator2_<double,double>(Min<double> ));
-     Global.Add("max","(",new OneOperator2_<long,long>(Max));
-     Global.Add("min","(",new OneOperator2_<long,long>(Min));
-     Global.Add("atan2","(",new OneOperator2<double>(atan2));
-     Global.Add("hypot","(",new OneOperator2<double>(hypot));// add Jan 2014
-    
-     Global.Add("atan","(",new OneOperator2<double>(atan2));
-     Global.Add("sqrt","(",new OneOperator1<double>(sqrt,2));
-     Global.Add("abs","(",new OneOperator1<double>(Abs));
-     Global.Add("abs","(",new OneOperator1<long>(Abs));
-     Global.Add("cos","(",new OneOperator1_<Complex>(cos));
-     Global.Add("sin","(",new OneOperator1_<Complex>(sin));
-     Global.Add("sinh","(",new OneOperator1_<Complex>(sinh));
-     Global.Add("cosh","(",new OneOperator1_<Complex>(cosh));
-     Global.Add("log","(",new OneOperator1_<Complex>(log));
-     //     Global.Add("log10","(",new OneOperator1_<Complex>(log10));
-     Global.Add("tan","(",new OneOperator1_<Complex>(tan));
-     Global.Add("exp","(",new OneOperator1_<Complex>(exp));
-     //Complex (* powcc  )( const  Complex &, const Complex &) =pow;
-<<<<<<< HEAD
-    
-    Global.Add("pow","(",new OneBinaryOperator<Op2_pow<Complex,Complex,Complex> >);
-                //new OneOperator2_<Complex,Complex>(pow ));
-=======
-     Global.Add("pow","(",new OneOperator2_<Complex,Complex>(pow ));
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-     Global.Add("sqrt","(",new OneOperator1_<Complex>(sqrt,0));
-     Global.Add("conj","(",new OneOperator1_<Complex>(conj,0));
-     Global.Add("conj","(",new OneOperator1_<double>(RNM::conj,1));
-     TheOperators->Add("\'",new OneOperator1_<Complex>(conj,0));       
-     TheOperators->Add("\'",new OneOperator1_<double>(RNM::conj,1));       //  add F.  Feb 2010  of conj of varf.. 
-     
-     
-     Global.Add("imag","(",new OneOperator1_<double,Complex>(Imag));
-     //  Big probleme  real is a type
-     Add<double>("<--","(",new OneOperator1_<double,Complex>(Real));
-    // Global.Add("real","(",new OneOperator1_<double,Complex>(Real));
-    // Add<double>(typevarreal->right()->name(),".",new OneOperator1_<double,Complex>(Real));
-    // Global.Add(typevarreal->right()->name(),".",new OneOperator1_<double,Complex>(Real));
-    // Add<double*>(typevarreal->left()->name(),".",new OneOperator1_<double,Complex*>(preal));
-    
-     Global.Add("abs","(",new OneOperator1_<double,Complex>(abs));
-
-     Global.Add("arg","(",new OneOperator1_<double,Complex>(arg));
-     Global.Add("norm","(",new OneOperator1_<double,Complex>(norm));
-     Global.Add("exit","(",new OneOperator1<long>(Exit));     
-     Global.Add("assert","(",new OneOperator1<bool>(Assert));     
-     
-     Global.Add("clock","(",new OneOperator0<double>(CPUtime));
-    Global.Add("time","(",new OneOperator0<double>(walltime));// add mars 2010 for Pichon.
-    Global.Add("ltime","(",new OneOperator0<long>(fftime));// add mars 2014 ( the times unix fonction)
-    Global.Add("storageused","(",new OneOperator0<long>(storageused));
-    Global.Add("storagetotal","(",new OneOperator0<long>(storagetotal));
-    
-     Global.Add("dumptable","(",new OneOperator1<ostream*,ostream*>(dumptable));
-     Global.Add("exec","(",new OneOperator1<long,string* >(exec));  //FH string * mars 2006 
-     Global.Add("system","(",new OneOperator1<long,string* >(exec));  //FH string fevr 2011 
-    
-     Global.Add("polar","(",new OneOperator2_<Complex,double,double>(polar));
- // rand generator ---
-  unsigned long init[4]={0x123, 0x234, 0x345, 0x456}, length=4;                                                            
-  init_by_array(init, length);
-  extern long genrand_int31(void);   
-  extern double genrand_real1(void);
-  extern double genrand_real2(void);
-  extern double genrand_real3(void);
-  extern double  genrand_res53(void) ;
-  
-  Global.Add("randint32","(",new OneOperator_0<long>(genrandint32));
-  Global.Add("randint31","(",new OneOperator_0<long>(genrand_int31));
-  Global.Add("randreal1","(",new OneOperator_0<double>(genrand_real1));
-  Global.Add("randreal2","(",new OneOperator_0<double>(genrand_real2));
-  Global.Add("randreal3","(",new OneOperator_0<double>(genrand_real3));
-  Global.Add("randres53","(",new OneOperator_0<double>(genrand_res53));
-  Global.Add("randinit","(",new OneOperator1<long>(genrandint));
-  
-   //  NaN and Inf 
-  Global.Add("ShowAlloc","(",new OneOperator1<long,string*>(ShowAlloc1));// debuging 
-  Global.Add("ShowAlloc","(",new OneOperator2<long,string*,long*>(ShowAlloc1));// debuging 
-  Global.Add("NaN","(",new OneOperator0<double>(NaN));
-  Global.Add("NaN","(",new OneOperator1<double,string*   >(NaN));
-    Global.Add("isNaN","(",new OneOperator1<long,double>(isNaN));
-    Global.Add("isInf","(",new OneOperator1<long,double>(isInf));
-    Global.Add("isNormal","(",new OneOperator1<long,double>(isNormal));
- 
-  
-
-typedef MyMap<String,String> MyMapSS;
-    
-     map_type[typeid(MyMapSS*).name()] = new ForEachType<MyMapSS*>(Initialize<MyMapSS >,Delete<MyMapSS >) ; 
-//Dcl_TypeandPtr_<KN_<string*> ,KN<string*>*  > (0,0,0,::Destroy<KN<K> >, ::ClearReturnKK_<K,KN<K>,KN_<K> >,::ClearReturnpKK<K,KN<K> >);
-    
-  //  map_type[typeid(KN2String*).name()] = new ForEachType<MyMapIS*>(Initialize<KN2String >,Delete<MyMapIS >) ;         
-     map_type_of_map[make_pair(atype<string*>(),atype<string*>())]=atype<MyMapSS*>();      
-     atype<MyMapSS*>()->Add("[","",new OneOperator2_<string**,MyMapSS*,string*>(get_elements));
-
-    
-          
-     tables_of_identifier.push_back(&Global);
-  
-
-}
-//int ShowAlloc(const char *s,size_t & lg); 
-
-
-
-
- void ClearMem()
- {
-     size_t lg;
-     ShowAlloc("ClearMem: begin" , lg);
-     delete pZero;
-     delete pOne;
-     delete pminusOne;
-      
-     tables_of_identifier.clear();
-     for (map<const string,basicForEachType *>::iterator i=map_type.begin();i!=map_type.end();++i)
-        delete i->second;
-        
-     map_type.clear();
-     map_type_of_map.clear();
-     map_pair_of_type.clear();
-     Global.clear();
-     if(TheOperators) 
-       TheOperators->clear();
-     if(TheRightOperators)
-       TheRightOperators->clear();
-        
-     CodeAlloc::clear();
-     ShowAlloc("ClearMem: end" , lg); 
-
- } 
-static addingInitFunct TheaddingInitFunct(-10000,Init_map_type); 
-
-C_F0  opVI::code2(const basicAC_F0 &args) const      
-{
-    Expression p=args[1];
-    if ( ! p->EvaluableWithOutStack() ) 
-    { 
-	bool bb=p->EvaluableWithOutStack();
-	//cout << bb << " " <<  * p <<  endl;
-	CompileError(" [...][p], The p must be a constant , sorry");}
-        long pv = GetAny<long>((*p)(NullStack));
-    bool ta =args[0].left()==atype<TransE_Array>();
-    const TransE_Array * tea=0;
-    const E_Array * ea=0;
-	if( ta)  tea = dynamic_cast<const TransE_Array*>((Expression) args[0]);
-    else ea = dynamic_cast<const E_Array*>((Expression) args[0]);
-    assert( ea || tea );
-    const E_Array & a=  ta ? *tea->v : *ea;
-   // cout << " pv =" << pv << " size = "<< a.size() << endl;
-    if(!(pv >=0 && pv <a.size()))
-    {
-      cerr << "\n\nerror [ ... ][" << pv <<" ] " << " the  size of [ ...]  is "<< a.size() << endl;
-      lgerror(" bound of  [ .., .. , ..][ . ] operation  ");
-    }
-    
-    //ffassert(pv >=0 && pv <a.size());
-    return (* a.v)[pv];
-}
-
-C_F0  opDot::code2(const basicAC_F0 &args) const      
-{
-    bool ta =args[0].left()==atype<TransE_Array>();
-    bool tb = args[1].left()==atype<TransE_Array>();
-    const TransE_Array * tea=0;
-    const TransE_Array * teb=0;
-    const E_Array * ea=0;
-    const E_Array * eb=0;// E_F0
-	if( ta)  tea = dynamic_cast<const TransE_Array*>((Expression) args[0]);
-    else ea = dynamic_cast<const E_Array*>((Expression) args[0]);
-    if( tb)  teb = dynamic_cast<const TransE_Array*>((Expression) args[1]);
-    else eb = dynamic_cast<const E_Array*>((Expression) args[1]);
-    assert( ea || tea );
-    assert( eb || teb );
-    const E_Array & a=  ta ? *tea->v : *ea;
-    const E_Array & b=  tb ? *teb->v : *eb;
-    int ma =1;
-    int mb =1;
-    int na=a.size();
-    int nb=b.size();
-    if(na <1 && nb < 1) CompileError(" empty array  [ ...]'*[ ...  ]  ");
-    bool mab= b[0].left()==atype<E_Array>();
-    bool maa= a[0].left()==atype<E_Array>();
-    if(maa) {
-	ma= a[0].LeftValue()->nbitem();
-	for (int i=1;i<na;i++)
-	    if( ma != (int) a[i].LeftValue()->nbitem()) 
-		CompileError(" first matrix with variable number of columm");
-        
-    }
-    if(mab) {
-	mb= b[1].LeftValue()->nbitem();
-	for (int i=1;i<nb;i++)
-	    if( mb != (int) b[i].LeftValue()->nbitem()) 
-		CompileError(" second matrix with variable number of columm");
-    }
-    int na1=na,ma1=ma,nb1=nb,mb1=mb;
-    if(ta) RNM::Exchange(na1,ma1);
-    if(tb) RNM::Exchange(nb1,mb1);
-    
-    KNM<CC_F0> A(na1,ma1), B(nb1,mb1);
-    if ( A.M() != B.N())
-    {
-	cout << "   formal prod array or matrix : [ .. ] * [ .. ]   " << endl;
-	cout << " first  array :  matrix " << maa << " trans " << ta << " " << na << "x" << ma <<endl;
-	cout << " second array :  matrix " << mab << " trans " << tb << " " << nb << "x" << mb <<endl;	
-	CompileError(" no same size  [ ...]'*[ ...  ] sorry ");
-    }
-    
-    if(maa)
-	for (int i=0;i<na;++i)
-	{
-	    const E_Array * li=  dynamic_cast<const E_Array *>(a[i].LeftValue());
-	    ffassert(li);
-	    for (int j=0; j<ma;++j)
-		if(!ta)  A(i,j) = (*li)[j];
-		else     A(j,i) = TryConj((*li)[j]);
-	} 
-    else
-	for (int i=0;i<na;++i)
-	    if(!ta)  A(i,0) = a[i];
-	    else     A(0,i) = TryConj(a[i]);
-	 
-    if(mab)
-	for (int i=0;i<nb;++i)
-	{
-	    const E_Array * li=  dynamic_cast<const E_Array *>(b[i].LeftValue());
-	    ffassert(li);
-	    for (int j=0; j<mb;++j)
-		if(!tb)  B(i,j) = (*li)[j];
-		else     B(j,i) = TryConj((*li)[j]);
-	} 
-    else
-	for (int i=0;i<nb;++i)
-	    if(!tb)  B(i,0) = b[i];
-	    else     B(0,i) = TryConj(b[i]);
-    
-    KNM<CC_F0> C(na1,mb1);
-    CC_F0 s,abi;
-    for (int i=0;i<na1;++i)
-	for (int j=0;j<mb1;++j)
-	{
-	    s= C_F0(TheOperators,"*",A(i,0),B(0,j));
-	    for (int k=1;k<ma1;++k) {
-		abi = C_F0(TheOperators,"*",A(i,k),B(k,j));
-		s = C_F0(TheOperators,"+",s,abi);}
-	    C(i,j)=s;
-	};
-   // cout << "\n ***na1 nb1 == = "<< na1 << " " << nb1 << endl;
-    if( na1==1 && mb1 ==1)
-	return C(0,0);
-    else if ( mb1 ==1 ) // || (na1==1)) // correct du car ' on conj encore r . mars 2010 
-    {
-	AC_F0  v;
-	v=C(0,0);
-	int i0=na1!=1,j0=mb1!=1, nn= mb1*na1;
-	for (int i=1;i<nn;++i)
-	    v+=C(i0*i,j0*i);
-	C_F0  r(TheOperators,"[]",v);
-	if(mb1==1) return r;                                                                                                                                                                                         
-	else return C_F0(TheOperators,"\'",r);// Bug car on conj encore r . mars 2010 
-    }
-    else
-    {
-	AC_F0  v,cc;
-	v=C(0,0);
-	for (int i=0;i<na1;++i)	
-	{  cc = C(i,0);
-	    for (int j=1;j<mb1;++j)
-		cc+= C(i,j);
-	    C_F0  vi(TheOperators,"[]",cc);
-	    if(i==0) v=vi;
-	    else v+= vi;
-	}
-	return C_F0(TheOperators,"[]",v);
-    }
-/*	  
-    if ( !mab && ! maa)
-    {
-	
-	if( na != nb)
-	    CompileError(" no same size  [ ...]'*[ ...  ] sorry ");
-	
-	if( ta && ! tb)
-	{
-	    s= C_F0(TheOperators,"*",a[0],b[0]);
-	    for (int i=1;i<na;++i)
-	    {
-		abi = C_F0(TheOperators,"*",a[i],b[i]);
-		s = C_F0(TheOperators,"+",s,abi);
-	    }
-	    return s;//Type_Expr(s); //new C_F0(s);   ATTENTION le type est variable ici   FH
-	}
-	
-	if(!ma && mb)
-	{  
-	}
-	
-    }*/
-    
-    cout << "   formal prod array or matrix : [ .. ] * [ .. ]   " << na << "x" << nb << endl;
-    cout << "   formal prod array or matrix : [ .. ] * [ .. ]   " <<  endl;
-    cout << " first  array :  matrix " << maa << " trans " << ta << " " << na << "x" << ma <<endl;
-    cout << " second array :  matrix " << mab << " trans " << tb << " " << nb << "x" << mb <<endl;
-    CompileError("  not implemented sorry ..... (FH) to do ???? ");	
-    return C_F0();
-
-}
-C_F0  opColumn::code2(const basicAC_F0 &args) const
-{
-    bool ta =args[0].left()==atype<TransE_Array>();
-    bool tb = args[1].left()==atype<TransE_Array>();
-    const TransE_Array * tea=0;
-    const TransE_Array * teb=0;
-    const E_Array * ea=0;
-    const E_Array * eb=0;// E_F0
-    if( ta)  tea = dynamic_cast<const TransE_Array*>((Expression) args[0]);
-    else ea = dynamic_cast<const E_Array*>((Expression) args[0]);
-    if( tb)  teb = dynamic_cast<const TransE_Array*>((Expression) args[1]);
-    else eb = dynamic_cast<const E_Array*>((Expression) args[1]);
-    
-    // ffassert( ea || tea );
-    
-    if( (eb || teb) && ( ea || tea ) )
-    {
-        const E_Array & a=  ta ? *tea->v : *ea;
-        const E_Array & b=  tb ? *teb->v : *eb;
-        int ma =1;
-        int mb =1;
-        int na=a.size();
-        int nb=b.size();
-        if(na <1 && nb < 1) CompileError(" empty array  [ ...]':[ ...  ]  ");
-        bool mab= b[0].left()==atype<E_Array>();
-        bool maa= a[0].left()==atype<E_Array>();
-        if(maa) {
-            ma= a[0].LeftValue()->nbitem();
-            for (int i=1;i<na;i++)
-                if( ma != (int) a[i].LeftValue()->nbitem())
-                    CompileError(" first matrix with variable number of columm");
-            
-        }
-        if(mab) {
-            mb= b[1].LeftValue()->nbitem();
-            for (int i=1;i<nb;i++)
-                if( mb != (int) b[i].LeftValue()->nbitem())
-                    CompileError(" second matrix with variable number of columm");
-        }
-        int na1=na,ma1=ma,nb1=nb,mb1=mb;
-        if(ta) RNM::Exchange(na1,ma1);
-        if(tb) RNM::Exchange(nb1,mb1);
-        
-        KNM<CC_F0> A(na1,ma1), B(nb1,mb1);
-        if ( (na1!=nb1 ) || (ma1 != mb1) || (na1 * ma1 ==0)  )
-        {
-            cout << "\n   formal  array or matrix : [ .. ] : [ .. ]   " << endl;
-            cout << " first  array :  matrix " << maa << " trans " << ta << " " << na << "x" << ma <<endl;
-            cout << " second array :  matrix " << mab << " trans " << tb << " " << nb << "x" << mb <<endl;
-            CompileError(" no same size  [ ...] : [ ...  ] sorry ");
-        }
-        
-        if(maa)
-            for (int i=0;i<na;++i)
-            {
-                const E_Array * li=  dynamic_cast<const E_Array *>(a[i].LeftValue());
-                ffassert(li);
-                for (int j=0; j<ma;++j)
-                    if(!ta)  A(i,j) = (*li)[j];
-                    else     A(j,i) = TryConj((*li)[j]);
-            }
-        else
-            for (int i=0;i<na;++i)
-                if(!ta)  A(i,0) = a[i];
-                else     A(0,i) = TryConj(a[i]);
-        
-        if(mab)
-            for (int i=0;i<nb;++i)
-            {
-                const E_Array * li=  dynamic_cast<const E_Array *>(b[i].LeftValue());
-                ffassert(li);
-                for (int j=0; j<mb;++j)
-                    if(!tb)  B(i,j) = (*li)[j];
-                    else     B(j,i) = TryConj((*li)[j]);
-            }
-        else
-            for (int i=0;i<nb;++i)
-                if(!tb)  B(i,0) = b[i];
-                else     B(0,i) = TryConj(b[i]);
-        
-        //KNM<CC_F0> C(na1,mb1);
-        CC_F0 s,aibi;
-        
-        for (int i=0;i<na1;++i)
-            for (int j=0;j<ma1;++j)
-            {
-                aibi = C_F0(TheOperators,"*",A(i,j),B(i,j));
-                if( (i==0) && (j==0))
-                    s = aibi; 
-                else 
-                    s = C_F0(TheOperators,"+",s,aibi);
-            };
-        //   if( na1==1 && mb1 ==1)
-        return s;
-    }
-    else if ( ea || tea )
-    { // modif 2 /08/  2013  FH .. bug in [ a0,a1,... ]'*b 
-        //  [a0,a1,... ]*b  or [ a0,a1,... ]'*b  => [ a0*b',a1*b',
-        const E_Array & a=  ta ? *tea->v : *ea;
-        int na=a.size();
-        AC_F0  v;
-        v = 0; // empty
-        C_F0 b =ta ? TryConj(args[1]) :args[1]; 
-        for (int i=0;i<na;++i)
-        v += C_F0(TheOperators,"*",a[i],b)  ;            
-        return ta ? C_F0(TheOperators,"\'",C_F0(TheOperators,"[]",v)) :   C_F0(TheOperators,"[]",v);
-        
-    }
-    else if(eb || teb)
-    {  // modif 2 /08/  2013  FH .. bug in a*[ b0,b1,... ]'
-        const E_Array & b=  tb ? *teb->v : *eb;
-        int nb=b.size();
-        C_F0 a =tb ? TryConj(args[0]) :args[0]; 
-        AC_F0  v;
-        v = 0; // empty
-        for (int i=0;i<nb;++i)
-            v += C_F0(TheOperators,"*",a,b[i]) ;
-        return tb ? C_F0(TheOperators,"\'",C_F0(TheOperators,"[]",v)) :   C_F0(TheOperators,"[]",v);
-        
-    }
-    else ffassert(0); 
-    /*
-     cout << "   formal : array or matrix : [ .. ] : [ .. ]   " << na << "x" << nb << endl;
-     cout << "   formal : array or matrix : [ .. ] : [ .. ]   " <<  endl;
-     cout << " first  array :  matrix " << maa << " trans " << ta << " " << na << "x" << ma <<endl;
-     cout << " second array :  matrix " << mab << " trans " << tb << " " << nb << "x" << mb <<endl;
-     CompileError("  not implemented sorry ..... (FH) to do ???? ");
-     
-     */
-    return C_F0();
-}
-
-
-C_F0  opSum::code2(const basicAC_F0 &args) const
-{
-    
-    bool ta =args[0].left()==atype<TransE_Array>();
-    bool tb = args[1].left()==atype<TransE_Array>();
-    const TransE_Array * tea=0;
-    const TransE_Array * teb=0;
-    const E_Array * ea=0;
-    const E_Array * eb=0;// E_F0
-    if( ta)  tea = dynamic_cast<const TransE_Array*>((Expression) args[0]);
-    else ea = dynamic_cast<const E_Array*>((Expression) args[0]);
-    if( tb)  teb = dynamic_cast<const TransE_Array*>((Expression) args[1]);
-    else eb = dynamic_cast<const E_Array*>((Expression) args[1]);
-    assert( ea || tea );
-    assert( eb || teb );
-    const E_Array & a=  ta ? *tea->v : *ea;
-    const E_Array & b=  tb ? *teb->v : *eb;
-    int na=a.size();
-    int nb=b.size();
-    if(na != nb) CompileError(" formal   [ [...] [] ] : [ [..], [..] , ... ]  ");
-    
-
-    AC_F0  v;
-    v = 0; // empty
-	for (int i=0;i<na;++i)	
-	    v += C_F0(TheOperators,op,ta ? TryConj(a[i]) : a[i],tb ? TryConj(b[i]): b[i]) ;
-	return C_F0(TheOperators,"[]",v);
-    
-}
-
-
-
-
-
-
diff --git a/src/fflib/AFunction.hpp b/src/fflib/AFunction.hpp
index c9bbb21..07becb4 100644
--- a/src/fflib/AFunction.hpp
+++ b/src/fflib/AFunction.hpp
@@ -1829,7 +1829,7 @@ inline Type_Expr  NewVariable(aType t,size_t &off)
    size_t o= align8(off);//  align    
  //  off += t->un_ptr_type->size;
  // bug    off += t->size;
-   off += t->un_ptr_type->size; // correction 16/09/2003 merci � Richard MICHEL
+   off += t->un_ptr_type->size; // correction 16/09/2003 merci � Richard MICHEL
    return  Type_Expr(t,new T(o,t));
 } 
 
diff --git a/src/fflib/AFunction.hpp.orig b/src/fflib/AFunction.hpp.orig
deleted file mode 100644
index 3e4ac8d..0000000
--- a/src/fflib/AFunction.hpp.orig
+++ /dev/null
@@ -1,3264 +0,0 @@
-/// \file
-
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-//file afonction.h
-#ifndef __AFONCTION__
-#define __AFONCTION__
-#include "showverb.hpp" 
-#include "InitFunct.hpp"
-
-#include <typeinfo>
-#include <cstddef>
-#include <iostream>
-#include <fstream>
-#include <cstring>
-#include "error.hpp"
-#include <map>
-#include <deque>
-#include <list>
-#include <vector>
-#include <queue>
-#include <complex>
-#include <string>
-#include <cstdlib>
-#include <algorithm>
-extern bool showCPU;
-#include "RNM.hpp" 
-
-#ifdef TIME_WITH_SYS_TIME 
-# include <sys/time.h> 
-# include <time.h> 
-#else
-# ifdef HAVE_SYS_TIME_H 
-# include <sys/time.h> 
-# else 
-# include <time.h>
-# endif 
-#endif
-
-// #include <time.h> 
-#include "CodeAlloc.hpp"
-
-inline double CPUtime(){
-#ifdef SYSTIMES
-  struct tms buf;
-  if (times(&buf)!=-1)
-    return ((double)buf.tms_utime+(double)buf.tms_stime)/(long) sysconf(_SC_CLK_TCK);
-  else
-#endif
-    return ((double) clock())/CLOCKS_PER_SEC;
-}
-
-extern long verbosity;  // level off printing
-extern long searchMethod; //pichon
-
-extern bool  withrgraphique;
-
-
-
-using namespace std;
-#include "ffstack.hpp"
-
-#include "AnyType.hpp"
-#include "String.hpp"
-
-
-class basicForEachType;
-class E_F1_funcT_Type;
-class E_F0;  //  une instruction exec time 
-class C_F0;  //  une instruction  complie time
-class ListOfInst;
-class Polymorphic;
-class OneOperator;
-
-/// <<Expression>> is used as the type of the local list contained in ListOfInst
-
-typedef  E_F0  *  Expression;
-
-class AC_F0;
-class basicAC_F0;
-typedef complex<double> Complex;
-
-/// <<Type_Expr>> [[file:AnyType.hpp::aType]] [[E_F0]]
-typedef pair<aType,  E_F0  *>  Type_Expr ;// to store the type and the expression  29042005 FH
-
- int  FindType(const char * name) ; 
-  void lgerror (const char* s) ;  
- void CompileError(string msg="",aType r=0);
- void ExecError(string msg="");
- 
-struct UnId {
-  const char * id;
-  aType r;
-  Expression  e; 
-  deque<UnId> * array; //  to store a array 
-  aType re; 
-  bool ref; // a ref or non 
-  UnId() :id(0),r(0),e(0),array(0),re(0),ref(false) {}
-  UnId(const char * idd) :id(idd),r(0),e(0),array(0),re(0),ref(false) {}
-  UnId(const char * idd,const C_F0 & ee,aType rr,bool reff) ;  
-  UnId(deque<UnId>  * d) : id(0),r(0),e(0),array(d?new deque<UnId>(*d):0),re(0),ref(false) {}
-  UnId(const UnId & u) : 
-    id(u.id),r(u.r),e(u.e),
-    array(u.array?new deque<UnId>(*u.array):0),
-    re(u.re),ref(u.ref) {}
-   // Modif 24032005  
-  void  operator= (const UnId & u) {
-    id=u.id;
-    r=u.r;
-    e=u.e;
-    re=u.re;
-    ref=u.ref;
-    if(array) delete array;
-    array=0;
-    if(u.array) array= new deque<UnId>(*u.array);
-  }
-    
-  ~UnId(){ if( array) delete array;} // Modif 24032005  
-  
-};
-
-/// <<ListOfId>>
-
-typedef deque<UnId> ListOfId;
-
-//  xxx is a type so xxx can't be a parameter 
-#define ATYPE(xxx) map_type[typeid(xxx).name()]
-/* #define NEW_TYPE(type) map_type[typeid(type).name()] = new ForEachType<type >(0,0)
-//#define NEW_TYPE(type) map_type[typeid(type).name()] = new ForEachType<type >()
-#define NEW_TYPE_I(type,i,d) map_type[typeid(type).name()] = new ForEachType<type>(i,d)   
-#define NEW_TYPE_Ptr(type) map_type[typeid(type*).name()] = new ForEachTypePtr<type  >()
-#define NEW_TYPE_PtrND(type) map_type[typeid(type*).name()] = new  ForEachTypePtr<type >(0)
-#define NEW_TYPE_PtrNIND(type) map_type[typeid(type*).name()] = new ForEachTypePtr<type >(0,0)
-//#define NEW_TYPE_PtrI(type) map_type[typeid(type*).name()] = new ForEachTypePtr<type*>(Initialize<type>)
-*/
-
-/// Doxygen doc
-extern Polymorphic * TheOperators, * TheRightOperators;
-
-//  -------------
-extern  C_F0 *pOne,*pZero,*pminusOne;
-
-
-typedef   AnyType (* Function1)(Stack, const AnyType &);
-typedef   AnyType (* Function2)(Stack, const AnyType &,const AnyType &);
-typedef   AnyType (* CFunction2)(Stack,  E_F0 *, E_F0  *);
-typedef   AnyType (* CFunction4)(Stack,  E_F0 *, E_F0 *, E_F0 *, E_F0 *);
-
-
-Expression NewExpression(Function1,Expression);
-Expression NewExpression(Function2,Expression,Expression);
-
-
-inline Type_Expr make_Type_Expr(aType t, E_F0  * e) {return make_pair(t,e);}
-inline Type_Expr make_Type_Expr( E_F0  * e,aType t) {return make_pair(t,e);}
-
-struct Keyless : binary_function<const char *,const char *, bool>
-   { 
-    typedef const char * Key;
-    bool operator()(const Key& x, const Key& y) const { return strcmp(x,y)<0;} };
-    
-
-// <<TableOfIdentifier>>
-class TableOfIdentifier: public CodeAlloc {
-  public:
-  struct Value;
-  typedef const char * Key;
-  typedef map<Key,Value,Keyless> maptype;
-  typedef pair<const Key,Value> pKV;
-  typedef maptype::iterator iterator;
-  typedef maptype::const_iterator const_iterator;
-  
-  struct  Value :public Type_Expr {
-    pKV *  next; // link all the variable in reverse order to call delete on each variable 
-    bool del; 
-    Value(const Type_Expr & vv,pKV * n,bool dd=true) : Type_Expr(vv),next(n),del(dd) {}
-    Value(aType t,E_F0  *f,pKV *n,bool dd=true): Type_Expr(t,f),next(n),del(dd) {}
-  };//  to store the type and the expression 
-  pKV *   listofvar;
-  
-// struct Keyless : binary_function<Key,Key, bool>
-//   { bool operator()(const Key& x, const Key& y) const{ return strcmp(x,y)<0;} };
-
-
-  maptype m;
-  C_F0 Find(Key) const ; 
-  C_F0 Find(Key,const basicAC_F0 &) const ; 
-  
-  const Type_Expr & New(Key k,const Type_Expr &  v,bool del=true);
-  void Add(Key k,Key op,OneOperator *p0,OneOperator *p1=0,
-      OneOperator *p2=0,OneOperator *p3=0,OneOperator *p4=0,
-      OneOperator *p5=0,OneOperator *p6=0)  ;
-  void clear(); 
-template<class T>         
-  C_F0 NewVar(Key k,aType t,size_t & top,const C_F0 &i) ;
-template<class T>         
-  C_F0 NewVar(Key k,aType t,size_t & top,const basicAC_F0 &args) ;
-template<class T,class U>         
-  C_F0 NewVar(Key k,aType t,size_t & top,const basicAC_F0 &args,const U & data) ;
-//  C_F0 NewVar(Key k,aType t,size_t & top,const basicAC_F0 &args,const C_F0& f) ;
-template<class T>         
-  C_F0 NewVar(Key k,aType t,size_t & top) ;
-  C_F0 NewID(aType t,Key k, C_F0 & c,size_t & top,bool del=true);   
-  C_F0 NewID(aType t,Key k, C_F0 & c,const ListOfId & l,size_t & top,bool del=true);   
-template<class T>   
-  C_F0 NewFESpace(Key k,aType t,size_t & top,const basicAC_F0 &args);
-  friend   ostream & operator<<(ostream & f,const TableOfIdentifier & );
-  C_F0 destroy();
-  TableOfIdentifier() ; //: listofvar(0) {};
-  ~TableOfIdentifier(); //
-};
-
-
-// <<basicForEachType>> for all the type of the language 
-class basicForEachType : public CodeAlloc {
-    const type_info  * ktype;  // the real type_info
-  //  const type_info *ktypefunc;// the type of code 
-    public:
-     const size_t size;
-
-    
-    typedef OneOperator * CastFunc;
-    typedef map<aType,CastFunc>::const_iterator const_cast_iterator;
-
-    typedef const char * Key;
-
-   // virtual  void print(ostream &f,const void *p) const =0;
-                            
-    friend ostream & operator<<(ostream & f,const basicForEachType & e) 
-      { f << '<' << e.name() << '>' ;return f;}
-     void Show(ostream & f) const ;
-     const char * name() const  { return this  ?  ktype->name() :"NULL" ;}
-     virtual bool CastingFrom(const basicForEachType * t) const ;
-     //  modif FH -----  A TESTER  // 
-     virtual bool SametypeRight(const basicForEachType * t) const {return  (this == t) || (t == un_ptr_type) || (t == type_C_F0);}
-//     virtual Type_Expr init(const Type_Expr & te) const { return Type_Expr(0,0);}
-     virtual int TYPEOFID() const  {return 0;}
-//     bool SametypeLeft(const basicForEachType * t) const {return  t == this;}
-   //  bool To(const basicForEachType * t) const { throwassert(t && this);return un_ptr_type == this ? t->un_ptr_type == this :  t == this;}
-     virtual C_F0 CastTo(const C_F0 & e) const ; 
-     virtual void SetArgs(const ListOfId *lid) const ;// { cout << "SetArgs::\n " ;throwassert(lid==0 || lid->size()==0);}
-     aType right() const {return un_ptr_type;};
-     Expression RightValueExpr(Expression f) const; 
- //    Type_Expr NewVar(Key k,aType t,size_t & top,const C_F0 &i);
-     virtual  C_F0 Initialization(const Type_Expr & e) const ;
-     virtual Expression Destroy(const C_F0 &) const ;
-     virtual bool ExistDestroy() const {return destroy;} 
-     virtual Type_Expr SetParam(const C_F0 & c,const ListOfId * l,size_t & top) const;
-     virtual Expression OnReturn(Expression f) const; 
-     // { return make_pair<aType,const E_F0  *>(this,c.left());}
-
-   protected: 
-     basicForEachType(const type_info  & k ,const size_t ,
-                            const E_F1_funcT_Type * p=0,basicForEachType *rr=0,
-                            Function1 iv=0,Function1 id=0, Function1 dreturn=0) ;
-/*    inline basicForEachType(const type_info  & k ,const type_info  & kf ,const size_t ,
-                            const E_F1_funcT_Type * p=0,basicForEachType *rr=0,
-                            Function1 iv=0,Function1 id=0) ;*/
-
-public:
-    static  const  basicForEachType * type_C_F0; //  for any type un formal operation .... FH add 09/2012
-    
-    const basicForEachType * un_ptr_type;  // type of right exp
-   private:
- //   map<aType,CastFunc> mapofcast;
-    OneOperator * casting; // list of operator for casting to this type 
-    
-    const E_F1_funcT_Type * un_ptr;        //  is ptr -> get value function
-    Function1 DoOnReturn;        //  to call some thing on return. 
-    
-    
-    Function1 InitExp;       //  to init the ptr value 
-    Function1  destroy;//  the destroy function 
-    TableOfIdentifier ti; //  all polymorphisme of the Identifier   
-   public:
-  // basicForEachType * FunctionType() const;// { return funct_type ? funct_type : (funct_type= new FuncForEachType(this));}
-   C_F0  Find(const char * k) const; // {return ti->Find(k);}
-   C_F0  Find(const char * k,const basicAC_F0 & args) const; // {return ti->Find(k);}
-   void  New(Key k,Type_Expr  v,bool del=true){ti.New(k,v,del);}
-  
-  void Add(Key k,Key op,OneOperator *p0,OneOperator *p1=0,
-      OneOperator *p2=0,OneOperator *p3=0,OneOperator *p4=0,
-      OneOperator *p5=0,OneOperator *p6=0)  
-     {ti.Add(k,op,p0,p1,p2,p3,p4,p5,p6);}     
- 
- 	void AddCast(CastFunc f1,CastFunc f2=0,CastFunc f3=0,CastFunc f4=0,
- 	             CastFunc f5=0,CastFunc f6=0,CastFunc f7=0,CastFunc f8=0);
-    ostream & ShowTable(ostream & f) const { f << ti; return f;}
-    
-  //  basicForEachType * funct_type;
-  virtual ~basicForEachType();
-    
-};
-
-
-template<typename T> 
-inline basicForEachType * atype() { 
-  map<const string,basicForEachType *>::iterator ir=map_type.find(typeid(T).name());
- // basicForEachType * r=map_type[];
-  if (ir == map_type.end()) { cerr << "Error: aType  '" << typeid(T).name() << "', doesn't exist\n";
-             ShowType(cerr);
-            throw(ErrorExec("exit",1));}
-  return ir->second;}
-
-
-//  --------
-//typedef basicForEachType TheType;
-
-//  const basicForEachType * ktype; // compilation time 
-
-//  class for all   exp 
-// a left exp is a pointer expression 
-//  -------
-//  --  exec times le code is just E_F0*(fonction without args)
-class C_LF2;
-class C_LF1;
-
-//  3 types of function/expression  0,1,2 args  
-
-/// <<E_F0>> is the base class for all expressions built by parsing an EDP script in the grammar of the FreeFem++
-/// language (see lg.ypp). E_F0 pointers are typed as #Expression, stored as a list in [[ListOfInst]], and evaluated
-/// when CListOfInst::eval() [[file:AFunction.hpp::CListOfInst::eval]] is called (see \ref index).
-
-class E_F0 :public CodeAlloc 
-   {
-   public:
-
-  struct kless : binary_function<Expression,Expression, bool>
-   { bool operator()(const Expression& x, const Expression& y) const{ 
-     //cout << x << " " << y << x->compare(y) << " ::: ";
-      int r1 = x->compare(y);// , r2 = y->compare(x);
-     //assert(r1+r2==0);
-     return r1<0;} };  
-   typedef map< E_F0 *,int,kless> MapOfE_F0;
-
-    virtual AnyType operator()(Stack)  const =0;
-    virtual bool Empty() const {return !this; }
-   // virtual E_F0 * destroy(Stack ) const {return 0;}
-  //  virtual const E_F0 * Parameter(Stack ) const {return this;}
-    virtual size_t nbitem() const {return 1;}
-    virtual bool EvaluableWithOutStack() const {return false;} // 
-    virtual bool MeshIndependent() const {return true;} // 
-    virtual bool Zero() const {return false;} //
-    virtual E_F0 * right_E_F0() const { return 0;}
-    virtual bool ReadOnly() const { return true;} // the expression do not change the memory     
-    virtual ~E_F0() {}
-    virtual int compare (const E_F0 *t) const { int r= (t==this) ? 0 : ( ( this<t) ?-1 : 1);
-     //cout << "cmp " <<  typeid(*this).name() << r << endl; 
-     return r;} // to give a order in instuction 
-    virtual int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) ;  // build optimisation
-    virtual AnyType operator()(Stack stack,AnyType *)  const { return operator()(stack);}  // call optim code
-    virtual  operator aType ()  const { assert(0);return 0;}   // the type of the expression
-    virtual ostream & dump(ostream &f) const  { f << ' ' << typeid(*this).name() << ' ' << this << ' '  ;return f; }
-    // for OPTIMIZATION
-    
-    int find(const MapOfE_F0 & m) ;
-    int insert(Expression  opt,deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) ;
-    // ajoute for optimisation to say if a expression in meshindep a exec time
-    // to solve   0*x // question 
-    // juin 2007 FH
-    virtual AnyType eval(Stack stack, bool & meshindep ) const  
-    { meshindep=MeshIndependent();return operator()(stack);}
-     
- };  
- 
-inline ostream & operator<<(ostream & f,const E_F0 &e) { if(&e) e.dump(f); else f << " --0-- " ;return f;}
-
-/// <<E_F0mps>> Specialization of [[E_F0]] where MeshIndependent() always returns false instead of true.  
-
-class E_F0mps : public E_F0 { public:
-  virtual bool MeshIndependent() const {return false;} // 
-};
-
-class E_F0info : public E_F0 { public:
-  // not a real expression just to pass information 
-    virtual bool EvaluableWithOutStack() const {return true;} // 
-    virtual bool MeshIndependent() const {return true;} // 
-    virtual AnyType operator()(Stack )  const {  
-    return SetAny<const E_F0 *>(this);}
-    operator aType () const { return atype<Expression>();} 
-
-  
-};
-
-class E_F1 : public CodeAlloc{ public: virtual AnyType operator()(Stack,AnyType &)  const =0;}; 
-class E_F2 : public CodeAlloc{ public: virtual AnyType operator()(Stack,AnyType &,AnyType &)  const =0;};
-class E_FN : public CodeAlloc{ public: virtual AnyType operator()(Stack,size_t N,...)  const =0;};
-
-//   class to play with  polymorphisme 
-//   ---------------------------------
-class basicAC_F0;
-class  ArrayOfaType : public CodeAlloc{ 
-  //  class for the type of parameter
-   aType tt[11]; 
-   protected:
-
-   int n;
-   aType * t; // array of type  
-   bool ellipse; 
-   void operator=(const ArrayOfaType &); // no set  operator
-   public:
- //  ArrayOfaType() :n(0),t(0),ellipse(false) {}
-   explicit ArrayOfaType(bool ell=false) 
-       :n(0),t(0),ellipse(ell) {}
-   
-   explicit ArrayOfaType(const aType & a,bool ell=false) 
-       :n(1),t(tt),ellipse(ell)  {t[0]=a;}
-       
-   explicit ArrayOfaType(const aType & a,const aType & b,bool ell=false) 
-       :n(2),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;}
-       
-   explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,bool ell=false) 
-       :n(3),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;}
-       
-   explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,const aType & d,bool ell=false) 
-       :n(4),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;t[3]=d;
-       /* cout << * a << *b << * c << * d << " ---------" << endl; */}
-   explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,const aType & d,const aType & e,bool ell=false) 
-       :n(5),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;t[3]=d; t[4]=e; }
-   explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,const aType & d,const aType & e,const aType & f,bool ell=false) 
-       :n(6),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;t[3]=d; t[4]=e; t[5]=f; }
-
-  explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,const aType & d,const aType & e,
-			const aType & f,const aType & g,
-			bool ell=false) 
-    :n(7),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;t[3]=d; t[4]=e; t[5]=f; t[6]=g; }  // (6 args) Added by Fabian Dortu
-
-  explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,const aType & d,const aType & e,
-			const aType & f,const aType & g,const aType & h,
-			bool ell=false) 
-    :n(8),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;t[3]=d; t[4]=e; t[5]=f; t[6]=g; t[7]=h; }  // (7 args) Added by Fabian Dortu
-
-  explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,const aType & d,const aType & e,
-  			const aType & f,const aType & g,const aType & h, const aType & i,
-			bool ell=false) 
-    :n(9),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;t[3]=d; t[4]=e; t[5]=f; t[6]=g; t[7]=h; t[8]=i; }  // (8 args) Added by Fabian Dortu
-
-  explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,const aType & d, const aType & e,
-  		const aType & f,const aType & g,const aType & h, const aType & i, const aType & j,
-  		bool ell=false) 
-    :n(10),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;t[3]=d; t[4]=e; t[5]=f; t[6]=g; t[7]=h; t[8]=i;  t[9]=j; }  // (10 args) Added by Fabian Dortu
-  
-   explicit ArrayOfaType(const aType & a,const aType & b,const aType & c,const aType & d,const aType & e,const aType & f,const aType & g,const aType & h, const aType & i, const aType & j, const aType & k,bool ell=false) 
-    :n(11),t(tt),ellipse(ell)  {t[0]=a,t[1]=b;t[2]=c;t[3]=d; t[4]=e; t[5]=f; t[6]=g; t[7]=h; t[8]=i;  t[9]=j; t[10]=k; }  // (10 args) Added by Fabian Dortu
-  
-       
-   ArrayOfaType(const basicAC_F0 & ) ;
-   ArrayOfaType(const ArrayOfaType & ); // 
-   ArrayOfaType(const ListOfId * l);
-   ~ArrayOfaType() { if(t && t != tt) delete [] t;t=0;n=0;}
-   bool WithOutCast( const ArrayOfaType & a) const ;  
-   bool WithCast( const ArrayOfaType & a,int nbcast=100000) const ;  // return the number of cast 
-   // exactly comparaison 
-   bool operator==( const ArrayOfaType & a) const { 
-     if (a.n != n || a.ellipse !=ellipse) return false;
-     for (int i=0;i<n;i++)  
-       if (t[i] != a.t[i]) 
-         return false; 
-     return true;}
-   
-   friend ostream & operator<<(ostream & f,const ArrayOfaType & a);
-};
-
-
-/// <<OneOperator>> Base class for all language operators. Daughter classes have the same name with several extensions:
-/// "[1-9]" represent the number of operator arguments, "_" designates operators that take a reference instead of a
-/// copied argument, "s" designates operators that require a stack argument.
-
-class  OneOperator : public ArrayOfaType {
-    friend class MakeVectSpaceN;
-    friend class basicForEachType;
-    const basicForEachType * r; //  return type 
-    OneOperator *next; // to make a list of OneOperator
-    public: 
-    int pref; //  to try to solve ambiguity for binary operator
-    //  10 for bool, 20 for int , 30 for long , 40, for float, 50 double, 60 for complex, 70 string
-    //  string+ 1 => string 
-    // 1+string => string 
-    OneOperator(aType rr) ;// : r(rr),ArrayOfaType(),next(0),pref(0) {throwassert(r);}
-    OneOperator(aType rr,aType  a) ;//: r(rr),ArrayOfaType(a,false),next(0),pref(0) {throwassert(rr && a );}
-    OneOperator(aType rr,aType  a,aType  b);// : r(rr),ArrayOfaType(a,b,false),next(0),pref(0) {
-    // throwassert(rr && a && b);} 
-    OneOperator(aType rr,aType  a,aType  b,aType c) ;
-    //: r(rr),ArrayOfaType(a,b,c,false),next(0),pref(0) {throwassert(rr && a && b && c);} 
-    OneOperator(aType rr,aType  a,aType  b,aType c,aType d) ;
-    //: r(rr),ArrayOfaType(a,b,c,d,false),next(0),pref(0) {throwassert(rr && a && b && c);} 
-    
-    OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e) ;
-     //: r(rr),ArrayOfaType(a,b,c,d,e,false),next(0),pref(0) {throwassert(rr && a && b && c && d);} // Added by Fabian Dortu (5 parameters)
-    OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f) ;
-     //: r(rr),ArrayOfaType(a,b,c,d,e,f,false),next(0),pref(0) {throwassert(rr && a && b && c && d && e && f);} // Added by Fabian Dortu (6 parameters) 
-    OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f, aType g);
-     // : r(rr),ArrayOfaType(a,b,c,d,e,f,g,false),next(0),pref(0) {throwassert(rr && a && b && c && d && e && f && g);} // Added by Fabian Dortu (7 parameters) 
-    OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f, aType g, aType h);
-     // : r(rr),ArrayOfaType(a,b,c,d,e,f,g,h,false),next(0),pref(0) {throwassert(rr && a && b && c && d && e && f && g && h);} // Added by Fabian Dortu (8 parameters) 
-    OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f, aType g, aType h, aType i) ;
-     //: r(rr),ArrayOfaType(a,b,c,d,e,f,g,h,i,false),next(0),pref(0) {throwassert(rr && a && b && c && d && e && f && g && h && i);} // Added by Fabian Dortu (9 parameters) 
-    OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f, aType g, aType h, aType i, aType j);
-      // : r(rr),ArrayOfaType(a,b,c,d,e,f,g,h,i,j,false),next(0),pref(0) {throwassert(rr && a && b && c && d && e && f && g && h && i && j);} // Added by Fabian Dortu (10 parameters) 
-    
-    
-    
-    OneOperator(aType rr,const ArrayOfaType &ta) ;
-      //: r(rr),ArrayOfaType(ta),next(0),pref(0) {throwassert(rr);} 
-    OneOperator(aType rr,bool ellipse) ;
-    //: r(rr),ArrayOfaType(ellipse),next(0),pref(0) {throwassert(rr );} 
-    OneOperator(aType rr,const ListOfId *l) ;
-    //: r(rr),ArrayOfaType(l),next(0),pref(0) {throwassert(rr );} 
-    
-    typedef pair<const OneOperator *,int> pair_find;
-    void operator+=(OneOperator &a){throwassert(a.next==0);a.next=next;next=&a;} 
-    //  a way to make none recurve delete  good   
-    virtual ~OneOperator();
-    pair_find Find(const ArrayOfaType & at) const ;
-    pair_find FindWithOutCast(const ArrayOfaType & at) const ; // for 
-    OneOperator * FindSameR(const ArrayOfaType & at)  ; 
-       
-    void Show(const ArrayOfaType & at,ostream &f=cerr) const;
-    void Show(ostream &f=cerr) const;
-    operator aType () const { return r;}
-
-    // <<OneOperator_code_decl>>
-    virtual E_F0 * code(const basicAC_F0 &) const =0; 
-    virtual C_F0  code2(const basicAC_F0 &a) const ; // {return code(code(a),r);}	
-    const OneOperator * Simple() const { return next||n?0:this;}
-    friend ostream & operator<<(ostream & f,const OneOperator & a);
-    
-};
-
-/// <<Polymorphic>>
-
-class Polymorphic:  
-  public E_F0mps // [[E_F0mps]]
-{
-   //  a list of type 
-   //  simple, array or function
-private: 
-   typedef const char * Key;
-   typedef OneOperator * Value;
- //  struct Keyless : binary_function<Key,Key, bool>
- //  { bool operator()(const Key& x, const Key& y) const{ return strcmp(x,y)<0;} };
-   
-   typedef map<Key,Value,Keyless> maptype;          //  
-   typedef maptype::const_iterator const_iterator;  // 
-   typedef maptype::iterator iterator;              // 
-   //  remark the map is mutable because 
-   //  a expression is const E_F0 *
-   // So There is a incompatibility between 
-   //   we save an  expression in a variable 
-   //   we have to add thing to a polymorphisme expression
-   mutable maptype m; //  all polymorphisme of the Identifier
-   Expression e; // default expression
-public:    
-  Polymorphic() : m(),e(0) {}
-  
-//  by default Empty and do nothing      
- virtual AnyType operator()(Stack ) const  { return Nothing;}
- virtual bool Empty() const {return true;} //  by default Empty 
- void clear() { m.clear();}
- const  OneOperator * Find(const char *op, const ArrayOfaType &at) const;
- const  OneOperator * FindWithOutCast(const char *op,const  ArrayOfaType &at) const;
- void Show(const char *op,const ArrayOfaType & at,ostream &f=cerr)const ; 
- void  Add(const char * op,OneOperator * p0  ,OneOperator * p1=0,OneOperator * p2=0,
-                           OneOperator * p3=0,OneOperator * p4=0,OneOperator * p5=0,
-                           OneOperator * p6=0,OneOperator * p7=0,OneOperator * p8=0,
-                           OneOperator * p9=0,OneOperator * pa=0,OneOperator * pb=0,
-                           OneOperator * pc=0,OneOperator * pd=0,OneOperator * pe=0
-                           ) const
-      {Addp(op,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,pa,pb,pc,pd,pe,0);}
- void Add(const char * op,OneOperator ** pp) const ;      
-private:
-  void Addp(const char * op,OneOperator * pp,...) const ;
-  friend ostream & operator<<(ostream & f,const Polymorphic & a);
-};
-
-///   the type for polymorphisme of id 
-
-/// <<C_F0>> compile time expressions
-
-class basicAC_F0;
-class C_F0 {
-  friend class CC_F0; // cf [[CC_F0]]
-protected: 
-  Expression  f; //  the expression code, cf [[Expression]]
-  aType r;   // the expression type, cf  [[file:../fflib/AnyType.hpp::aType]]
-  
-public: 
-  //  the constructeur 
-  C_F0() :f(0),r(0) {}
-  C_F0(const C_F0 & c):f(c.f),r(c.r)   {}
-  C_F0(const C_F0 & a,const C_F0 & b); // concatenation 
-
-  /// cf [[Type_Expr]]
-  C_F0(const Type_Expr & a):f(a.second),r(a.first)   {}
-
-  /// <<C_F0_constructor_pop_char_basicAC_F0_decl>>
-  /// [[file:AFunction2.cpp::C_F0_constructor_pop_char_basicAC_F0_impl]]
-  /// cf [[Polymorphic]]
-  C_F0(const Polymorphic *,const char *,const basicAC_F0 & );
-
-  C_F0(const Polymorphic *,const char *, AC_F0 & );
-
-  //  function, array ..  
-  C_F0(const C_F0 & e,const char *op,const basicAC_F0 & p)  ;
-  C_F0(const C_F0 & e,const char *op, AC_F0 & p) ;	  
-
-  // <<C_F0_constructor_char_C_F0_decl>> [[C_F0_constructor_char_C_F0_impl]]
-  C_F0(const C_F0 & e,const char *op,const C_F0 & ee);
-
-  C_F0(const C_F0 & e,const char *op,const C_F0 & a,const C_F0 & b) ; 	  
-  C_F0(const C_F0 & e,const char *nm) ; 
-
-  //  without parameter ex f(). cf [[Polymorphic]]
-  C_F0(const Polymorphic * pop,const char *op); 
-
-  // unary operator  
-  C_F0(const Polymorphic * pop,const char *op,const C_F0 & a); 
-
-  // <<C_F0_constructor_binary_decl>> binary operator [[file:AFunction2.cpp::C_F0_constructor_binary]]
-  C_F0(const Polymorphic * pop,const char *op,const C_F0 & a,const  C_F0  & b); 
-
-  // ternary operator  
-  C_F0(const Polymorphic * pop,const char *op,const  C_F0 & a,const  C_F0 & b,const  C_F0 & c); 
-	  
-  C_F0( Expression ff,aType rr ): f(ff),r(rr) { 
-    //   cout << "C_F0: " <<  * rr << endl;//  dec 2007 FH
-    // if (!rr && ff)  cerr << "Type Null" << endl;
-  }
-
-  // operator Expression() const {return f;}
-  AnyType eval(Stack s) const {return (*f)(s);}
-  
-  Expression RightValue() const { return r->RightValueExpr(f);}	  
-  Expression LeftValue() const;
-	  
-  aType left() const {return r;}
-  aType right() const {return r->right();}
-  C_F0  RightExp() const { return C_F0(RightValue(),right());} // FH add 07/2005
-  operator    E_F0 *  () const {return f;}
-  bool Empty() const {return !f || f->Empty();}
-  bool NotNull() const {return  f;}
-  int  TYPEOFID() const { return r ? r->TYPEOFID(): 0;}
-  int  nbitem() const { return f ? f->nbitem() : 0;}
-  bool EvaluableWithOutStack() const { return f && f->EvaluableWithOutStack();}
-  bool Zero() const { return !f || f->Zero();}
-  Expression Destroy() {  return r->Destroy(*this);}
-    
-  operator const Polymorphic * () const {return  dynamic_cast<const Polymorphic *>(f);}
-  bool operator==(const C_F0 & a) const {return f==a.f && r == a.r;}
-  bool operator!=(const C_F0 & a) const {return f!=a.f || r != a.r;}
-  //          Type_Expr SetParam(const ListOfId * l,size_t & top) const ;
-  bool MeshIndependent() const { return f ==0 ? f->MeshIndependent() : false;}
-  C_F0 OnReturn() {	 f=r->OnReturn(f); return *this;  } // Add mai 2009 (for return statment.
-private:
-  friend class Block;	 
-  friend class TableOfIdentifier; 
-  C_F0( Expression ff ): f(ff),r(0) {}
-};
-
-
-
-// for bison [[CListOfInst]]
-class CListOfInst;
-
- //  a => b
- //  f => t||f
- //  t => t
- //  (a =>b)  <=>  (!a || b )
- 
-//  warning ------------------
-class ForTypeVoid:  public basicForEachType{public:
-    ForTypeVoid():basicForEachType(typeid(void),0,0,0,0,0) {}
-};
-
-template<class T> 
-class ForEachType:  public basicForEachType{public:
-    ForEachType(Function1 iv=0,Function1 id=0,Function1 OOnReturn=0):basicForEachType(typeid(T),sizeof(T),0,0,iv,id,OOnReturn) {
-     if (sizeof(T) > sizeof(AnyTypeWithOutCheck) )
-      {
-        cout << " Sorry the " <<typeid(T).name() << " is too large  ( " << sizeof(T) 
-             << " > " << sizeof(AnyTypeWithOutCheck) << " ) " << endl;
-	throwassert(sizeof(T) <= sizeof(AnyTypeWithOutCheck) );
-      }
-    }
-};
-template<class T> 
-class ForEachType<T*>:  public basicForEachType{public:// coorection july 2009..... FH  Hoooo....  (Il y a un bug DUR DUR FH  ...) 
-    ForEachType(Function1 iv=0,Function1 id=0,Function1 OOnReturn=0):basicForEachType(typeid(T),sizeof(T),0,0,iv,id,OOnReturn) {
-	//T i= 0.0;
-    }
-};
-
-template<class A,class B>  AnyType UnRef(Stack,const AnyType &a) ; 
-template<class A>  AnyType Initialize(Stack,const AnyType &a) ; 
-template<class A>  AnyType Destroy(Stack,const AnyType &a) ; 
-
-//  the type of variable is pointer because we need to write in 
-template<class T,class PT=T*> 
-class ForEachTypePtr:  public basicForEachType { public:
-    ForEachTypePtr();
-    ForEachTypePtr(Function1 init,Function1 dl,Function1 onreturn=0);         
-    ForEachTypePtr(Function1 dl);
-};
-
-template<class T> 
-class ForEachTypePtr<T*,T**>:  public basicForEachType { public:
-    ForEachTypePtr(T* bb=0,Function1 onreturn=0);
-    ForEachTypePtr(Function1 init,Function1 dl,Function1 onreturn=0);         
-    ForEachTypePtr(Function1 dl);
-};
-
-
-template<class T,int RTYPE> 
-class ForEachTypePtrfspace:  public ForEachTypePtr<T> { public:
-    ForEachTypePtrfspace():ForEachTypePtr<T>() {} 
-    int TYPEOFID() const {return RTYPE;} 
-};
-
-
-class ForTypeAnyType:  public basicForEachType{public:
-    ForTypeAnyType(): basicForEachType(typeid(AnyType),sizeof(AnyType)) {}
-      bool CastingFrom(const basicForEachType * ) const {return true;}
-	  C_F0 CastTo(const C_F0 & e) const {return e;}     
-};
-
-
-//  for  cast and get value associed to a pointer  
-
-    
-template<class A,class B> 
-  AnyType Cast(Stack,const AnyType &b) { 
-    return   SetAny<A>(static_cast<A>(GetAny<B>(b)));}
-    
-template<class A,class B,A F(const  B &)> 
-  AnyType FCast(Stack s,const AnyType &b) { 
-    return   SetAny<A>(Add2StackOfPtr2Free(s,F(GetAny<B>(b))));}
-    
-template<class A> 
-  AnyType UnRef(Stack,const AnyType &a) { 
-    return   SetAny<A>(*PGetAny<A>(a));}
-
-template<class A,class B> 
-  AnyType UnRef(Stack,const AnyType &a) { 
-    return   SetAny<A>(*GetAny<B>(a));}
-    
-    
-template<class A> 
-  AnyType UnRefCopyPtr(Stack s,const AnyType &a) { 
-    A ** ppa=PGetAny<A*>(a);
-    A * pc = new A(**ppa);
-    return   SetAny<A*>(Add2StackOfPtr2Free(s,pc)) ;} 
-       
-    
-template<class A> AnyType Initialize(Stack,const AnyType &x){
-  A * a=PGetAny<A>(x);
-  A *b=new A;// 
-  memcpy(a,b,sizeof(A));// bitcopy
-  ::operator delete(b); // delete with no destruction 
-  return  SetAny<A*>(a);
-}
-
-template<class A> AnyType InitializePtr(Stack stack,const AnyType &x){
-  A * a=PGetAny<A>(x);
-  SHOWVERB( cout << " init ptr " << typeid(A*).name() <<  (char *) a  - (char*) stack<< endl);
-  *a=0;
-  return  x;
-}
-
-template<class A> AnyType InitializeDef(Stack stack,const AnyType &x){
-    A * a=PGetAny<A>(x);
-    SHOWVERB( cout << " init ptr " << typeid(A*).name() <<  (char *) a  - (char*) stack<< endl);
-    *a=A();
-    return  x;
-}
-
-
-template<class A> inline AnyType Delete(Stack,const AnyType &x){
-  A * a=PGetAny<A>(x);
-  SHOWVERB(cout << "DESTROY " <<typeid(A).name() << " " << a <<  endl); 
-  (*a).~A(); 
-  return  Nothing;
-}
-
-template<class A> inline AnyType Destroy(Stack,const AnyType &x){
-  A * a=PGetAny<A>(x);
-  SHOWVERB(cout << "DESTROY " <<typeid(A).name() << " " << a <<  endl); 
-  a->destroy(); 
-  return  Nothing;
-}
-
-template<class A> inline AnyType DestroyS(Stack,const AnyType &x){
-  A a=GetAny<A>(x);
-  SHOWVERB(cout << "DESTROY " <<typeid(A).name() << " " << a <<  endl); 
-  a.destroy(); 
-  return  Nothing;
-}
-
-template<class A> inline AnyType InitS(Stack,const AnyType &x){
-  A  a=GetAny<A>(x);
-  SHOWVERB(cout << "InitS " <<typeid(A).name() << " " << a <<  endl); 
-  a.init(); 
-  return  Nothing;
-}
-template<class A> inline AnyType InitP(Stack,const AnyType &x){
-  A  *a=PGetAny<A>(x);
-  SHOWVERB(cout << "InitP " <<typeid(A).name() << " " << a <<  endl); 
-  a->init(); 
-  return  Nothing;
-}
-
-
-template<class A> inline AnyType  DestroyPtr(Stack,const AnyType &x) {
-  const A *  a=PGetAny<A>(x);
-  SHOWVERB(cout << "DestroyPtr " << typeid(A).name() << *a  << endl);
-   (*a)->destroy(); 
-   //  delete *a; 
-
-  return  Nothing; 
-};
-template<class A> inline AnyType DeletePtr(Stack,const AnyType &x) {
-  const A *  a=PGetAny<A>(x);
-  SHOWVERB(cout << "DeletePtr " << typeid(A).name() << *a  << endl);
-  // (*a)->destroy(); 
-    delete *a; 
-
-  return  Nothing; 
-};
-
-template<> AnyType inline DestroyPtr<string *>(Stack,const AnyType &x) {
-  string **  a=PGetAny<string*>(x);
- SHOWVERB( cout << "DestroyPtr " << typeid(string*).name() << *a  << endl);
-  delete *a; 
-  return  Nothing; 
-};
-
-
-
-template<class A> AnyType Initialize(Stack,const AnyType &x,const AnyType &y){
- A * a=PGetAny<A>(x);
- A *b=new A(GetAny<A>(x));// 
-  memcpy(a,b,sizeof(A));// bitcopy
-  ::operator delete(b); // delete with no destruction 
-  return  SetAny<A*>(a);
-}
- 
-
-  
-class E_F0_CFunc2 :public  E_F0mps { public:
-   CFunction2  f2;
-   E_F0 *a,*b;
-   AnyType operator()(Stack s)  const {return f2(s,a,b);}
-   E_F0_CFunc2( CFunction2 ff,E_F0 *aa,E_F0 *bb) : f2(ff),a(aa),b(bb){}
-   bool EvaluableWithOutStack() const 
-      {return a->EvaluableWithOutStack() && b->EvaluableWithOutStack();} // 
-    operator aType () const { return atype<void>();}         
-
-};
-
-class E_F0_CFunc4 :public  E_F0mps { public:
-   CFunction4  f4;
-   E_F0 *a,*b,*c,*d;
-   AnyType operator()(Stack s)  const {return f4(s,a,b,c,d);}
-   E_F0_CFunc4( CFunction4 ff,E_F0 *aa,E_F0 *bb,E_F0 *cc,E_F0 *dd) 
-   : f4(ff),a(aa),b(bb),c(cc),d(dd){}
-    operator aType () const { return atype<void>();}         
-
-};
-
-
-
-template<class R,class A>
- class E_F1_F :public  E_F1 { public:
-  typedef  R (*func)(A) ; 
-  func f;
-  E_F1_F(func ff) : f(ff) {}
-  AnyType operator()(Stack s,AnyType & a)  const 
-    {return SetAny<R>(f(GetAny<A>(a)));}  
-};
-
-template<class R,class A0,class A1>
- class E_F2_F :public  E_F2 { public:
-  typedef  R (*func)(const  A0 &,const  A1&) ; 
-  func f;
-  E_F2_F(func ff) : f(ff) {}
-  AnyType operator()(Stack s,AnyType & a0,AnyType & a1)  const 
-    {return SetAny<R>(f(GetAny<A0>(a0),GetAny<A1>(a1)));}  
-};
-
-template<class R,class TA0,bool RO=true>
- class E_F_F0 :public  E_F0 { public:
-   template <class T> struct remove_reference     {typedef T type;};
-//   template <class T> struct remove_reference<T&> {typedef T type;};
-   template <class T> struct remove_reference<const T&> {typedef T type;};
-   typedef typename remove_reference<TA0>::type A0;
-   
- 
-  typedef  R (*func)(  TA0 ) ; 
-  func f;
-  Expression a;
-  E_F_F0(func ff,Expression aa) : f(ff),a(aa) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>(f(GetAny<A0>( (*a)(s) )));}  
-  bool EvaluableWithOutStack() const 
-      {return a->EvaluableWithOutStack();} // 
-  bool MeshIndependent() const {return a->MeshIndependent();} // 
-  bool ReadOnly() const { return RO  ;}     
-  int compare (const E_F0 *t) const { 
-     int rr;
-    // cout << "cmp " << typeid(*this).name() << " and " << typeid(t).name() << endl;
-     const  E_F_F0* tt=dynamic_cast<const E_F_F0 *>(t);
-     if (tt && f == tt->f) rr = a->compare(tt->a);
-     else rr = E_F0::compare(t);
-     return rr;
-     } // to give a order in instuction 
-
-   int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) ;
-   virtual ostream & dump(ostream &ff) const  { ff << typeid(*this).name() <<" f= " << f << " a= "<< *a << ' '  ;return ff; }
-
-};
-
-// modif for xlc++ FH 
-template<class R,class TA0,bool RO=true>
-class E_F_F0_Opt: public E_F_F0<R,TA0,RO>  { public :
-  size_t ia;  
-  E_F_F0_Opt(const  E_F_F0<R,TA0,RO>  &t,size_t iaa) 
-    : E_F_F0<R,TA0,RO>(t) , ia(iaa) {assert(iaa<2000000 && iaa >0);}
-  AnyType operator()(Stack s)  const 
-  {
-    // A0 x =  *static_cast<A0 *>(static_cast<void*>(static_cast<char *>(s)+ia));
-    // cout << " opt f (" << x << " ) = "   << ": " << ia << endl; 
-    return SetAny<R>( this->f( *static_cast<typename E_F_F0<R,TA0>::A0 *>(static_cast<void*>(static_cast<char *>(s)+ia))  ) );}  
-  
-};   
-
-template<class R,class TA0,bool RO>   
-   int  E_F_F0<R,TA0,RO>::Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) 
-    {
-       int rr = find(m);
-       if (rr) return rr;
-       return insert(new E_F_F0_Opt<R,TA0,RO>(*this,a->Optimize(l,m,n)),l,m,n);       
-    } 
-// fin modif xlc++ 
-
-template<class A0>
- class E_VF_F0 :public  E_F0 { public:
-  typedef  void (*func)(  A0 ) ; 
-  func f;
-  Expression a;
-  E_VF_F0(func ff,Expression aa) : f(ff),a(aa) {}
-  AnyType operator()(Stack s)  const 
-    {f(GetAny<A0>( (*a)(s) ));return Nothing;}  
-  bool EvaluableWithOutStack() const 
-      {return a->EvaluableWithOutStack();} // 
-      
- bool MeshIndependent() const { return a->MeshIndependent();  }    
-
-};
-
-inline int clexico(int i,int j) { return i==0 ? j : i;}
-inline int clexico(int i,int j,int k) { int ll=clexico(i,j);  return  ll==0 ? k : ll;}
-
-template<class R,class TA0,class TA1>
- class E_F_F0F0 :public  E_F0 { public:
-   template <class T> struct remove_reference     {typedef T type;};
-   template <class T> struct remove_reference<T&> {typedef T type;};
-   typedef typename remove_reference<TA0>::type A0;
-   typedef typename remove_reference<TA1>::type A1;
-   typedef  R (*func)( A0 , A1 ) ;
-    
-  func f;
-  Expression a0,a1;
-  E_F_F0F0(func ff,Expression aa0,Expression aa1) 
-    : f(ff),a0(aa0),a1(aa1) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>( f( GetAny<A0>((*a0)(s)) , GetAny<A1>((*a1)(s)) ) );}  
-   bool EvaluableWithOutStack() const 
-      {return a0->EvaluableWithOutStack() && a1->EvaluableWithOutStack();} // 
-   bool MeshIndependent() const 
-      {return a0->MeshIndependent() && a1->MeshIndependent();} // 
-  int compare (const E_F0 *t) const { 
-     int rr;
-    // cout << "cmp " << typeid(*this).name() << " and " << typeid(t).name() << endl;
-     const  E_F_F0F0* tt=dynamic_cast<const E_F_F0F0 *>(t);
-     if (tt && f == tt->f) rr= clexico(a0->compare(tt->a0),a1->compare(tt->a1));
-     else rr = E_F0::compare(t);
-     return rr;
-     } // to give a order in instuction 
-      
-   int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) ;
-    
-};
-
-// modif for xlc++
-template<class R,class TA0,class TA1>
-class E_F_F0F0_Opt: public E_F_F0F0<R,TA0,TA1>  { public :
-  size_t ia,ib;  
-  E_F_F0F0_Opt(const  E_F_F0F0<R,TA0,TA1> &t,size_t iaa,size_t ibb) 
-    : E_F_F0F0<R,TA0,TA1>(t) ,
-      ia(iaa),ib(ibb) {}
-  AnyType operator()(Stack s)  const 
-  {
-    //A0 aa =*static_cast<A0 *>(static_cast<void*>(static_cast<char *>(s)+ia));
-    //A1 bb=*static_cast<A1 *>(static_cast<void*>(static_cast<char *>(s)+ib)) ;
-    //cout << ia << " " << ib <<  "f( " << aa << "," << bb  << " )   = "<< f(aa,bb) << endl;
-    return SetAny<R>( this->f( *static_cast<typename E_F_F0F0<R,TA0,TA1>::A0 *>(static_cast<void*>(static_cast<char *>(s)+ia)) , 
-			 *static_cast<typename E_F_F0F0<R,TA0,TA1>::A1 *>(static_cast<void*>(static_cast<char *>(s)+ib)) ) );}  
-  
-};     
-       
-
-template<class R,class TA0,class TA1>
-   int E_F_F0F0<R,TA0,TA1>::Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) 
-    {
-
-       int rr = find(m);
-       if (rr) return rr;
-
-       return insert(new E_F_F0F0_Opt<R,TA0,TA1>(*this,a0->Optimize(l,m,n),a1->Optimize(l,m,n)),l,m,n);
-    }
-// add modif for xlc++
-
-
-
-template<class R,class A0>
- class E_F_F0_ :public  E_F0 { public:
-  typedef  R (*func)(const   A0& ) ; 
-  func f;
-  Expression a;
-  E_F_F0_(func ff,Expression aa) : f(ff),a(aa) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>(f(GetAny<A0>( (*a)(s) )));}  
-   bool EvaluableWithOutStack() const 
-      {return a->EvaluableWithOutStack() ;} // 
-   bool MeshIndependent() const 
-      {return a->MeshIndependent();} // 
-    
-};
-// add FH 07/2008  for pmesh clean 
-template<class R,class A0>
-class E_F_F0_Add2RC :public  E_F0 { public:
-    typedef  R (*func)(const   A0& ) ; 
-    func f;
-    Expression a;
-    E_F_F0_Add2RC(func ff,Expression aa) : f(ff),a(aa) {}
-    AnyType operator()(Stack s)  const 
-    {return SetAny<R>(Add2StackOfPtr2FreeRC(s,f(GetAny<A0>( (*a)(s) ))));}  
-    bool EvaluableWithOutStack() const 
-    {return a->EvaluableWithOutStack() ;} // 
-    bool MeshIndependent() const 
-    {return a->MeshIndependent();} // 
-    
-};
-// end add. 
-template<class R,class A0,class E=E_F0>
- class E_F_F0s_ :public  E { public:
-  typedef  R (*func)(Stack stack,const   A0& ) ; 
-  func f;
-  Expression a;
-  E_F_F0s_(func ff,Expression aa) : f(ff),a(aa) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>(f(s,GetAny<A0>( (*a)(s) )));}  
-//  bool MeshIndependent() const {return true;} // def in E
-
-    operator aType () const { return atype<R>();}         
-    
-};
-
-template<class R,class A0,class A1,class E=E_F0>
- class E_F_F0F0_ :public  E { public:
-  typedef  R (*func)(const  A0 &,const  A1 & ) ; 
-  func f;
-  Expression a0,a1;
-  E_F_F0F0_(func ff,Expression aa0,Expression aa1) 
-    : f(ff),a0(aa0),a1(aa1) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>( f( GetAny<A0>((*a0)(s)) , GetAny<A1>((*a1)(s)) ) );} 
-    bool MeshIndependent() const 
-      {return a0->MeshIndependent() && a1->MeshIndependent();} // 
- 
-};
-// FH Add 07/2008 
-//   class with add 1 to the refcounter  for  mesh . 
-template<class R,class A0,class A1,class E=E_F0>
-class E_F_F0F0_Add2RC :public  E { public:
-typedef  R (*func)(const  A0 &,const  A1 & ) ; 
-func f;
-Expression a0,a1;
-E_F_F0F0_Add2RC(func ff,Expression aa0,Expression aa1) 
-: f(ff),a0(aa0),a1(aa1) {}
-AnyType operator()(Stack s)  const 
-{return SetAny<R>(Add2StackOfPtr2FreeRC(s, f( GetAny<A0>((*a0)(s)) , GetAny<A1>((*a1)(s)) ) ));} 
-bool MeshIndependent() const 
-{return a0->MeshIndependent() && a1->MeshIndependent();} // 
-
-};
-// FH end 07/2008 
-template<class R,class A0,class A1,class A2,class E=E_F0>
- class E_F_F0F0F0_ :public  E { public:
-  typedef  R (*func)(const  A0 &,const  A1 & , const A2 &) ; 
-  func f;
-  Expression a0,a1,a2;
-  E_F_F0F0F0_(func ff,Expression aa0,Expression aa1,Expression aa2) 
-    : f(ff),a0(aa0),a1(aa1),a2(aa2) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>( f( GetAny<A0>((*a0)(s)) , GetAny<A1>((*a1)(s)),GetAny<A2>((*a2)(s))  ) );}  
-    virtual size_t nbitem() const {return a2->nbitem(); } 
-      bool MeshIndependent() const 
-      {return a0->MeshIndependent() && a1->MeshIndependent()&& a2->MeshIndependent();} // 
-
-};
-
-template<class R,class A0,class A1,class A2,class E=E_F0>
- class E_F_stackF0F0F0_ :public  E_F0mps { public:
-  typedef  R (*func)(Stack, const  A0 &,const  A1 & , const A2 &) ; 
-  func f;
-  Expression a0,a1,a2;
-  E_F_stackF0F0F0_(func ff,Expression aa0,Expression aa1,Expression aa2) 
-    : f(ff),a0(aa0),a1(aa1),a2(aa2) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>( f(s, GetAny<A0>((*a0)(s)) , GetAny<A1>((*a1)(s)),GetAny<A2>((*a2)(s))  ) );}  
-    virtual size_t nbitem() const {return a2->nbitem(); } 
-   bool MeshIndependent() const { return true;}
-};
-
-template<class R,class A0,class A1>
- class E_F_F0F0_NC :public  E_F0 { public:
-  typedef  R (*func)(  A0 &,const  A1 & ) ; 
-  func f;
-  Expression a0,a1;
-  E_F_F0F0_NC(func ff,Expression aa0,Expression aa1) 
-    : f(ff),a0(aa0),a1(aa1) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>( f( GetAny<A0>((*a0)(s)) , GetAny<A1>((*a1)(s)) ) );}  
-   bool MeshIndependent() const 
-      {return a0->MeshIndependent() && a1->MeshIndependent() ; } // 
-
-};
-
-
-
-
- class E_F_StackF0F0 :public  E_F0mps { public:
-  typedef   AnyType (*func)(Stack,Expression ,Expression ) ; 
-  func f;
-  Expression a0,a1;
-  E_F_StackF0F0(func ff,Expression aa0,Expression aa1) 
-    : f(ff),a0(aa0),a1(aa1) { }
-  AnyType operator()(Stack s)  const 
-    {return  (*f)(s, a0 , a1) ;}  
-
-};
-
-
-/*
- class E_F_F0F0_<AnyType,AnyType,AnyType> :public  E_F0 { public:
-  typedef  AnyType (*func)(const  AnyType &,const  AnyType & ) ; 
-  func f;
-  Expression a0,a1;
-  E_F_F0F0_(func ff,Expression aa0,Expression aa1) 
-    : f(ff),a0(aa0),a1(aa1) {}
-  AnyType operator()(Stack s)  const 
-    {return  f( (*a0)(s) , (*a1)(s) );}  
-   bool MeshIndependent() const 
-      {return a0->MeshIndependent() && a1->MeshIndependent() ; } // 
-
-};
-*/
-
-class E_F2_func :public  E_F2 { public:
-   Function2 f;
-   AnyType operator()(Stack s,AnyType & a,AnyType & b)  const {return f(s,a,b);}
-   E_F2_func( Function2 ff) : f(ff) {}
-};
-
-class E_F0_Func1 :public  E_F0 { public:
-   Function1  f;
-   E_F0 *a;
-   AnyType operator()(Stack s)  const {return f(s,(*a)(s));}
-   E_F0_Func1( Function1 f1,E_F0 *aa) : f(f1),a(aa){}
-   bool EvaluableWithOutStack() const {return a->EvaluableWithOutStack();} // 
-   bool MeshIndependent() const {return a->MeshIndependent();} // 
-   int compare (const E_F0 *t) const { 
-     int rr;
-     const  E_F0_Func1* tt=dynamic_cast<const E_F0_Func1 *>(t);
-     if (tt && f == tt->f) rr = a->compare(tt->a);
-     else rr = E_F0::compare(t);
-     if(tt && 0)
-      {
-       cout << "\n\t\t\t -------- " << (void *) f << " " << (void *) tt->f << " rr=" << a->compare(tt->a) << endl;
-       cout << "\t\t\tcmp E_F0_Func1 " << rr <<" << " << *this << " cmp " << *t << " " << tt << ">>\n";
-      }
-     return rr;
-     } // to give a order in instuction 
-  // int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) const;  // build optimisation
-
-    virtual ostream & dump(ostream &ff) const  { ff << "E_F0_Func1 f= " << f << " a= "<< *a << ' '  ;return ff; }
-
-};
-class E_F0_Func2 :public  E_F0 { public:
-   Function2  f;
-   E_F0 *a,*b;
-   AnyType operator()(Stack s)  const {return f(s,(*a)(s),(*b)(s));}
-   E_F0_Func2( Function2 f1,E_F0 *aa,E_F0 *bb) : f(f1),a(aa),b(bb){}
-   bool EvaluableWithOutStack() const 
-     {return a->EvaluableWithOutStack() &&b->EvaluableWithOutStack();} // 
-   bool MeshIndependent() const {return a->MeshIndependent() && b->MeshIndependent();} // 
-
-};
-
-
-
-//  the variable offset / stack (local variable)
-template<class R> class Value1:public E_F0
- { 
-  size_t offset;
-  public:
-  AnyType operator()(Stack s) const { return SetAny<R*>(static_cast<R *>(static_cast<void *>(  static_cast<char *>(s)+offset)));}
-  Value1(size_t o):offset(o) {}
-};
-
-//  the variable globale
-template<class R> class GValue:public E_F0
- { 
-  mutable R v;
-  public:
-  AnyType operator()(Stack ) const { return SetAny<R*>(static_cast<R *>(static_cast<void *>(&v)));}
-  GValue(R o):v(o) {}
-  bool EvaluableWithOutStack() const {return true;} // 
-  
-};
-
-//  a constante value 
-template<class R> int ccompare(const R & a,const R& b){ return a==b ?  0 :( a<b ? -1 : +1);}
-template<class R> int ccompare(const complex<R> & a,const complex<R>& b){ 
-  int c=ccompare(a.real(),b.real()); 
-  return c==0 ? ccompare(a.imag(),b.imag()): c ;}
-  
-template<class R> class EConstant:public E_F0
- { 
-  const R v;
-  public:
-  AnyType operator()(Stack ) const { /*cout << " ()" << v << endl*/;return SetAny<R>(v);}
-  EConstant(const R & o):v(o) { /*cout << "New constant " << o << endl;*/}
-  bool EvaluableWithOutStack() const {return true;} //   
-  operator aType () const { return atype<R>();}
-     bool Zero()const  { return v == R();}
-  int compare (const E_F0 *t) const { 
-        int rr;
-        const  EConstant * tt=dynamic_cast<const EConstant *>(t);
-            if (tt) rr = ccompare(v,tt->v);
-             else rr = E_F0::compare(t);
-         return rr;
-       } 
-   ostream & dump(ostream &f) const { f << " ((" <<typeid(R).name()  << ") " << v << ") " ;return f;}  
-};
-
-
-
-
-
-//  the variable offset / stack (local variable)
-
- class LocalVariable:public E_F0
- { 
-  size_t offset;
-  aType t; //  type of the variable just for check  
-  public:
-  AnyType operator()(Stack s) const { 
-    SHOWVERB( cout << "\n\tget var " << offset << " " <<  t->name() << endl);  
-//   return PtrtoAny(static_cast<void *>(static_cast<char *>(s)+offset),t);}
-   return PtrtoAny(Stack_offset<void>(s,offset),t);}
-
-  LocalVariable(size_t o,aType tt):offset(o),t(tt) {throwassert(tt);     
-     SHOWVERB(cout << "\n--------new var " << offset << " " <<  t->name() << endl);
-    }
-};
-
-
-class LocalVariableFES : public LocalVariable { public:
-  size_t data;
-  LocalVariableFES(size_t o,aType tt,const  size_t & d) 
-   : LocalVariable(o,tt),data(d) {}
-  size_t nbitem() const { return data;}
-};
-
-template <class U>
-class LocalVariablePlus : public LocalVariable { public:
-  U data;
-  LocalVariablePlus(size_t o,aType tt,const  U & d) 
-   : LocalVariable(o,tt),data(d) {}
-};
-
-//  global variable bof bof 
-template<class T> class PValue:public E_F0
- { 
-  T * p;
-  public:
-  AnyType operator()(Stack  ) const { return p;}
-  PValue(T * pp):p(pp) {}
-};
-
-
-//  global variable bof bof
-//  value througth  a pointeur   add F.H  july 2014
-template<class T> class dPValue:public E_F0
-{
-    T * p;
-public:
-    AnyType operator()(Stack  ) const { return SetAny<T>(*p);}
-    dPValue(T * pp):p(pp) {}
-};
-
-template<class R> class PPValue:public E_F0
- { 
-  R ** p;
-  public:
-  AnyType operator()(Stack ) const { return SetAny<R*>(*p);}
-  PPValue(R ** pp):p(pp) {}
-};
-
-
-template<class R>
-Type_Expr CPValue(R & v)
- {
-   throwassert(map_type[typeid(R*).name()]);
-  return make_pair(map_type[typeid(R*).name()],new PValue<R>(&v));
- }
-
-template<class R>
-Type_Expr dCPValue(R * v)
-{
-    throwassert(map_type[typeid(R).name()]);
-    return make_pair(map_type[typeid(R).name()],new dPValue<R>(v));
-}
-template<class R>
-Type_Expr CPPValue(R *& v)
- {
-   throwassert(map_type[typeid(R*).name()]);
-  return make_pair(map_type[typeid(R*).name()],new PPValue<R>(&v));
- }
- 
-template<class R >
-Type_Expr CConstant(const R & v)
- {
-  throwassert(map_type[typeid(R).name()]);
-  return make_pair(map_type[typeid(R).name()],new  EConstant<R>(v));
- }
-
-
-/// <<CC_F0>> used in [[file:../lglib/lg.ypp::YYSTYPE]]
-
-class CC_F0 {
-  Expression f;
-  aType r;
-public:
-  void operator=(const C_F0& c) { f=c.f;r=c.r;;} 
-  void operator=(const AC_F0& a) ; //{ f=new E_Array(a); f= atype<E_Array>();};
-  void operator=(long ) {f=0;r=0;}
-  void operator=(const CListOfInst& c);//{ C_FO cc=c;f=cc.f;r=cc.r}
-  operator C_F0 () const {return C_F0(f,r);}
-  bool Empty() const {return !f || f->Empty();}
-  aType left() const {return r;}
- // operator const C_F0 &() const {return  *this;}
-};
-
-/// <<ListOfInst>>
-
-class ListOfInst :
-  public E_F0mps /*[[E_F0mps]]*/
-{ 
-  int n;
-  Expression   *   list;
-  int   *   linenumber;
-  const int nx;
-public:
-  ListOfInst():n(0),list(0),linenumber(0),nx(10){}
-  ListOfInst(int nn):n(0),list(0),linenumber(0),nx(nn?nn:10){}
-  void Add(const C_F0 & ins); 
-
-  /// <<ListOfInst::operator()>> implemented at [[file:AFunction2.cpp::ListOfInst::operator()]]
-
-  AnyType operator()(Stack s) const; 
-
-  operator aType () const { return n ? (aType) * (list[n-1]) : atype<void>();} 
-   
-  Expression &operator[](int i){return list[i];}
-  bool empty() const {return n==0;}
-  int size() const {return n;}
-  Expression * ptr() const {return list;}
-  int * nlines() const {return linenumber;}
-
-  ~ListOfInst(){
-    cout << " ----- ~ListOfInst " << endl;
-    if(list) delete [] list;
-    list=0;
-    if(linenumber)  delete[] linenumber;
-    linenumber=0;
-  }
-};
-
-/// <<CListOfInst>> used in [[file:../lglib/lg.ypp::YYSTYPE]]
-
-class CListOfInst{
-private:
-
-    /// class [[ListOfInst]]
-    ListOfInst * f;
-
-  const basicForEachType *r;
-
-public:
-  void operator=(const CC_F0 &a){
-    f=new ListOfInst();     
-    if( !a.Empty() ) {
-      f->Add(a);
-      r=a.left(); }}
-  CListOfInst & operator+=(const CC_F0 & a);//{ if( !a.Empty()){ f->Add(a);r=a.left();};return *this;} 
-  operator C_F0 () const  { return C_F0(f,r);}
-
-  /// <<CListOfInst::eval>> Called by yyparse() at [[file:../lglib/lg.ypp::start_symbol]] to evaluate the
-  /// complete expression tree when reaching the end of its "start" symbol. It calls ListOfInst::operator()() at
-  /// [[ListOfInst::operator()]] for its private [[ListOfInst]] pointer #f.
-
-  void eval(Stack s) {(*f)(s);}
-
-  int size() const {return f->size();}
-  Expression * ptr() const {return f->ptr();}
-  int * nlines() const { return f->nlines();}
-};
-
-
-AnyType FWhile(Stack ,E_F0 * test,E_F0 * ins);
-AnyType FFor(Stack s ,E_F0 * i0,E_F0 * i1,E_F0 * i2,E_F0 * ins);
-AnyType FIf(Stack s ,E_F0 * test,E_F0 * i1,E_F0 * i2,E_F0 * notuse);
-AnyType TTry(Stack s ,E_F0 * i0,E_F0 * i1,E_F0 * i2,E_F0 * notuse);
-
-
-/// <<Global>> Contains all FreeFem++ language keywords. Definition in [[file:global.cpp::Global]], uses
-/// [[TableOfIdentifier]]
-
-extern TableOfIdentifier Global;
-
-void ShowType(ostream & );
-
-template<class T> 
-inline C_F0 to(const C_F0 & a) { return map_type[typeid(T).name()]->CastTo(a);}
-
-
-/*
-inline C_F0 toBool(const C_F0 & a)    {return ATYPE(bool)->CastTo(a);}
-inline C_F0 toInt(const C_F0 & a)     {return ATYPE(int)->CastTo(a);}
-inline C_F0 toLong(const C_F0 & a)    {return ATYPE(long)->CastTo(a);}
-inline C_F0 toDouble(const C_F0 & a)  {return ATYPE(double)->CastTo(a);}
-inline C_F0 toComplex(const C_F0 & a)  {return ATYPE(Complex)->CastTo(a);}
-*/
-inline C_F0 While(C_F0 test,C_F0 ins) {return C_F0(new E_F0_CFunc2(FWhile,to<bool>(test),ins),0);}
-inline C_F0 For(C_F0 i0,C_F0 i1,C_F0 i2,C_F0 ins) {return C_F0(new E_F0_CFunc4(FFor,i0,to<bool>(i1),i2,ins),0);}
-inline C_F0 Try(C_F0 i0,C_F0 i1,C_F0 i2)  {return C_F0(new E_F0_CFunc4(TTry,i0,i1,i2,0),0);}
-inline C_F0 FIf(C_F0 i0,C_F0 i1,C_F0 i2) {return C_F0(new E_F0_CFunc4(FIf,to<bool>(i0),i1,i2,0),0);}
-inline C_F0 FIf(C_F0 i0,C_F0 i1) {return C_F0(new E_F0_CFunc4(FIf,to<bool>(i0),i1,0,0),0);}
-//inline  C_F0 C_F0::PtrValue() const{ 
-//   if (!(r && r->un_ptr)) { cerr << "PtrValue: Not a Left value " << *r << endl;CompileError();} 
-//   return C_F0(new  E_F0_Func1(r->un_ptr->f,f),r->un_ptr->r);}
-
-/// <<basicAC_F0>>
-
-class basicAC_F0 {
-//  version de base d'un tableau d'un parametres  
-//   pour les operateurs unaire, binaire, , 
-//   pas d'allocation 
-  friend class E_Array; // for mapping fonction 
-  protected:
-  typedef const C_F0 const_C_F0;
- int nb;
- C_F0 *a;
- public:
-  typedef map<const char *,C_F0,Keyless> maptype ;
-  typedef maptype::iterator iterator;
-  typedef maptype::const_iterator const_iterator;
-  maptype * named_parameter;
- basicAC_F0 & operator=(int i) {throwassert(i==0);named_parameter=0,nb=0;return *this;} // pas de parametres
- basicAC_F0 & operator=(C_F0 & c) {named_parameter=0;nb=1;a=&c;return *this;}
- basicAC_F0 & operator=(pair<int,C_F0*> p)  {named_parameter=0;nb=p.first;a=p.second;return *this;} 
- const C_F0 & operator [] (int i) const {throwassert(a && i<nb);return a[i];}
- int size() const {return nb;}
- C_F0 * ptr() const  {return a;}
- C_F0  find(const char * k) const  { 
-    assert(k);  
-   if (named_parameter) { const_iterator i=named_parameter->find(k) ;
-    if (i == named_parameter->end() ) return C_F0();
-    else  return i->second;}
-   else return C_F0();} 
-   
- struct name_and_type{ 
-  const char * name;
-  const type_info * type;
- } ;
- 
-  void SetNameParam(int n=0,name_and_type *l=0 , Expression * e=0) const ;
-};
-
-/// <<AC_F0>> array of parameters for FF language operators. uses [[basicAC_F0]]
-
-class AC_F0: public basicAC_F0 { //  a Array of C_F0
-//    tableau d'un parametres  max 1024 parametres 
-//    avec allocation  
- const static  int MaxSize;
- //  no constructor in this class (this class is in a union )
-  public:
-  AC_F0 & operator=(pair<const char *,const C_F0> p) {
-    named_parameter=0; a=new C_F0[MaxSize]; nb=0;Add(p.first,p.second);return *this;}
-  AC_F0 & operator+=(pair<const char *,const C_F0> p) {Add(p.first,p.second);return *this;} 
-
-  AC_F0 & operator=(long k) {throwassert(k==0);named_parameter=0;a=new C_F0[MaxSize]; nb=0;return *this;}     
-  AC_F0 & operator=(const C_F0& c) {named_parameter=0; a=new C_F0[MaxSize]; nb=0;a[nb++]=c;return *this;} 
-  AC_F0 & operator+=(const C_F0& c) { 
-       if ( ! (a&& nb<MaxSize))
-         CompileError("Sorry  number of parameters > 1024");
-       a[nb++]=c;return *this;} 
-  AC_F0 & Add(const char * nm,const C_F0 &c)  {
-     if (!named_parameter) named_parameter=new maptype();
-    iterator i=named_parameter->find(nm);
-    if(i==named_parameter->end()) named_parameter->insert(make_pair(nm,c));
-    else {cerr << " the named in the list already exists "<< nm <<endl; CompileError();}
-    return *this;}
-  int size() const {return nb;}
-  const C_F0 & operator [] (int i) const {throwassert(a && i<nb);return a[i];}
-  void destroy() {
-      
-        nb=0;       
-        if(named_parameter) 
-          delete named_parameter;
-        if (a)
-           delete []  a;
-        a=0;named_parameter=0;}
-  
-}; 
-
-class  basicAC_F0_wa : public basicAC_F0 { public:
- basicAC_F0_wa(const C_F0 & e) {
-   named_parameter=0;
-   nb=1;
-   a= new C_F0[nb];
-   a[0]=e;
- }
- basicAC_F0_wa(const C_F0 & e,const C_F0 & ee) {
-   named_parameter=0;
-   nb=2;
-   a= new C_F0[nb];
-   a[0]=e;
-   a[1]=ee;
- }
- 
-
- basicAC_F0_wa(C_F0 e,const basicAC_F0 & b) { 
-   named_parameter=0;
-   if (b.named_parameter) named_parameter = new maptype(*b.named_parameter);
-   nb=1+b.size();
-   a= new C_F0[nb];
-   a[0]=e;
-   for (int i=1;i<nb;i++) a[i]=b[i-1];}
-<<<<<<< HEAD
-    ~basicAC_F0_wa(){delete [] a;
-        a=0;
-        delete named_parameter;
-        named_parameter=0;}
- 
-=======
- ~basicAC_F0_wa(){delete [] a;} 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
- basicAC_F0_wa(const basicAC_F0 & b) { 
-   named_parameter=0;
-   if (b.named_parameter) named_parameter = new maptype(*b.named_parameter);
-   nb=b.size();
-   a= new C_F0[nb];
-   for (int i=0;i<nb;i++) a[i]=b[i];}
-   
-  private: 
-   void operator=(const basicAC_F0 & b);
-};
-
-
-
-class E_Array  :public E_F0 {  public: 
-  basicAC_F0_wa *v;// the value
-  E_Array(const basicAC_F0 & aa) : v(new basicAC_F0_wa(aa))  {throwassert(v);}
-  AnyType operator()(Stack)  const {
-     cerr << " No evaluation of an E_array" << endl;
-     throwassert(0);
-     return  Nothing;}
- const C_F0 & operator [] (int i) const {throwassert(v );return (*v)[i];}
- int size() const {return v->size();}
- size_t nbitem() const {return v->size();}
- void map(C_F0 (*mapping)(const C_F0 & )) const 
-   { for (int i=0;i<v->size();i++) 
-      v->a[i]=(*mapping)(v->a[i]);}
-  virtual bool MeshIndependent() const {
-    for (int i=0;i<v->size();i++) 
-      if (v->a[i].MeshIndependent()) return false;
-     return false;
-   
-  } // 
-  operator aType () const { return atype<void>();} 
- 
-  };
-class PlotStream;  
-class E_Border ;
-class E_BorderN :public E_F0mps { public: 
-   const E_Border * b;
-   int cas;// 0 long , 1, KN_ , 2 : Array // FH april 14 ..
-   Expression  n;
-   const E_BorderN * next;
-    
-    static   int Cas(C_F0  nn)
-    {
-        if( atype<long>()->CastingFrom(nn.left())) return 0;
-        else if(atype<KN_<long> >()->CastingFrom(nn.left())) return 1;
-        else if( atype< const E_Array * >()->CastingFrom(nn.left())  )
-        {
-            E_Array & a =  *dynamic_cast< E_Array *>((Expression) nn);
-            ffassert(a);
-            a.map(::to<long>);
-            //   a[i]=CastTo<long>(a[i]);
-            return 2;
-        }
-        else CompileError(" Number of element of a border ( longn , int array, [ ] array ");
-        return -1; // bug
-    }
-    E_BorderN(const E_Border *  bb, C_F0  nn,const E_BorderN * nx=0) ;
-    E_BorderN(const E_BorderN & bb,const E_BorderN * nx)
-    : b(bb.b),n(bb.n),cas(bb.cas),next(nx)
-    {
-      int kk=1;
-	if(bb.next) {// modif FH. 13/02/2008
-	       
-	    const E_BorderN ** pnext = &next;
-	    E_BorderN  *pp;
-	    next = bb.next;  // copy bb;       
-	    for(int step=0;step<2;++step)
-	    {
-	      while (*pnext)
-	       {
-		 kk++;
-		 pp = new E_BorderN(**pnext); // copy 
-		 *pnext = pp;
-		 pnext = & pp->next;
-	       }
-	      if(step==0)
-	       *pnext= nx;  // copy de nx
-	    }
-	   // cout << "  BorderN : nb item : " << kk << " == " << size()<< endl;  
-	}
-    }   
-    AnyType operator()(Stack)  const {
-     return  SetAny<const  E_BorderN *>(this);}  
-  operator aType () const { return atype<const  E_BorderN *>();}         
-    int size() const { int k=0;for(const E_BorderN  *pp=this;pp; pp=pp->next) k++; return k;}  
-   E_BorderN * operator+( const E_BorderN & bb)  const 
-   { throwassert(bb.next==0);
-     return new E_BorderN(bb,this);}
-
-static C_F0 to(int cas, C_F0 nn)
-    {
-        if(cas==0) return ::to<long>(nn);
-        else if(cas ==1) return ::to<KN_<long> >(nn);
-        else if(cas == 2) return ::to<E_Array> (nn);
-        else ffassert(0); // Big bug .. FH ..
-    }
-  long Nbseg(Stack stack,int index) const {
-      if(cas==0) {assert(index==0);  return GetAny<long>((*n)(stack));}
-      else if (cas==1 ) return  (GetAny<KN_<long> >((*n)(stack)))(index);
-      else if (cas==2)  {E_Array & a =  *dynamic_cast< E_Array *>((Expression) n);assert(a); Expression nn= a[index]; return  GetAny<long>((*nn)(stack));}
-      else return 0;
-  }
-  long NbBorder(Stack stack) const {
-       if(cas==0) return 1;
-      else if (cas==1 ) return  GetAny<KN_<long> >((*n)(stack)).N();
-      else if (cas==2)  return dynamic_cast<const E_Array *>(n)->size();
-      else return 0;
-  } //GetAny<long>((*n)(stack));}
-    
-  double from(Stack stack) const ;//{ return GetAny<double>((*n)(stack));}
-  double to(Stack stack) const ;//{ return GetAny<double>((*b)(stack));}
-  long * index(Stack stack) const ;//{ return GetAny<double>((*b)(stack));}
-  double * var(Stack stack) const ;//{ return GetAny<double*>((*n)(stack));}
-  void code(Stack stack) const ;
-  long label()const  ;
-  void Plot(Stack stack) const ;
-  void SavePlot(Stack stack,PlotStream & plot ) const;
-    
-  void BoundingBox(Stack stack,double  &xmin,double & xmax, double & ymin,double & ymax) const ;
-};
-
-class AddBorderOperator: public  OneOperator{
-  typedef const E_BorderN * A;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     {
-       A a0=dynamic_cast<A>((Expression) args[0]);
-       A a1=dynamic_cast<A>((Expression) args[1]);
-       ffassert( a0 && a1);
-       //ffassert(a1->next==0);  // change FH 13/02/2008
-       return  new E_BorderN(*a1,a0);} 
-    AddBorderOperator(): 
-      OneOperator(map_type[typeid(A).name()],map_type[typeid(A).name()],map_type[typeid(A).name()])
-      {pref = 0;}
-
-};
-
-
-class  OneOperator_borderN : public OneOperator {public:
-    const  E_Border * theborder;int cas;
-    E_F0 * code(const basicAC_F0 & a) const 
-     { return  new E_BorderN(theborder,a[0]);} 
-    OneOperator_borderN(const  E_Border * b)
-      : OneOperator(atype<const E_BorderN *>(),atype<long>()),
-      theborder(b),cas(0){}
-    OneOperator_borderN(const  E_Border * b,int )
-    : OneOperator(atype<const E_BorderN *>(),atype<KN_<long> >()),
-    theborder(b),cas(1){}
-    OneOperator_borderN(const  E_Border * b,int,int )
-    : OneOperator(atype<const E_BorderN *>(),atype<E_Array >()),
-    theborder(b),cas(2){}
-    
-};
-
-class E_Border  :public Polymorphic  {  public: 
-  static basicAC_F0::name_and_type name_param[] ;
-  static const int n_name_param =0;
-  static long Count;
-  Expression xvar,xfrom,xto,xcode,xindex;
-  basicAC_F0_wa * tab;
-  long label;
-  E_Border(const E_Array * a) : 
-    xvar(0),xfrom(0),xto(0),xcode(0),xindex(0), tab(a? a->v:0) ,label(++Count)
-  {
-    assert(tab); 
-    Add("(",new OneOperator_borderN(this));
-    Add("(",new OneOperator_borderN(this,1));
-    Add("(",new OneOperator_borderN(this,1,1));
-      /* A FAIRE pour multy border ****/
-  }
-  
-  E_Border(const basicAC_F0 & aa) :    
-    xvar(to<double*>(aa[0])),
-    xfrom(to<double>(aa[1])),
-    xto(to<double>(aa[2])),
-    xcode(aa[aa.size()-1].LeftValue()),
-    xindex( (aa.size() > 4) ? (Expression) to<long*>(aa[3]) : 0 ),
-    //xindex( to<long*>(aa[3])  ),
-    tab(0),
-    label(++Count)
-  {
-    Add("(",new OneOperator_borderN(this));
-    Add("(",new OneOperator_borderN(this,1));
-    Add("(",new OneOperator_borderN(this,1,1));
-  }
-
-  AnyType operator()(Stack)  const {
-    return  SetAny<const  E_Border *>(this);}
-  double length(Stack ) const { ffassert(0);return 0.0; /* a faire */ }
-};
-  
-inline  E_BorderN::E_BorderN(const E_Border *bb, C_F0  nn,const E_BorderN * nx)
-:b(bb),cas(Cas(nn)),n(to(cas,nn) ),next(nx) { /* cout << "  -- E_BorderN  : cas " << cas << endl; */ throwassert(b);}
-
-inline  double E_BorderN::from(Stack stack) const { return b->xfrom ? GetAny<double>((*b->xfrom)(stack)): double(0.0);}
-inline  double  E_BorderN::to(Stack stack) const { return b->xto? GetAny<double>((*b->xto)(stack)): b->length(stack) ;}
-inline  double *  E_BorderN::var(Stack stack) const { return b->xvar ? GetAny<double*>((*b->xvar)(stack)): (double*) 0 ;}
-inline  long *  E_BorderN::index(Stack stack) const { return b->xindex ? GetAny<long*>((*b->xindex)(stack)): (long*) 0 ;}
-inline  void  E_BorderN::code(Stack stack)const { (*b->xcode)(stack);}
-inline  long  E_BorderN::label()const { return b->label;}
-
-inline ArrayOfaType::ArrayOfaType(const basicAC_F0 & aa) : n(aa.size()),t(n ? (n<=4 ? tt : new aType[n]):0),ellipse(false) { 
-   for (int i=0;i<n;i++) t[i]=aa[i].left();}
-   
-inline ArrayOfaType::ArrayOfaType(const ArrayOfaType & aa) : n(aa.n),t(n<=4?tt:new aType[n]),ellipse(aa.ellipse) { 
-   for (int i=0;i<n;i++) t[i]=aa.t[i];}   
-
-
-inline C_F0 TableOfIdentifier::Find(const char * name) const  {
-    const_iterator i=m.find(name); 
-    if ( i == m.end()) { return C_F0();}
-    else return C_F0(i->second);}
-
-inline C_F0 TableOfIdentifier::Find(const char * name,const basicAC_F0 & args) const  {
-    const_iterator i=m.find(name); 
-    if ( i == m.end()) {cerr<<"No operator " << name<<endl;
-    cerr <<*this << endl;CompileError("TableOfIdentifier::Find");return C_F0();}
-    else {return C_F0(C_F0(i->second),"(",args);}}
-//  Attention il y a moralement un bug
-//  les initialisation   x = y   ( passe par l'operateur binaire <-  dans TheOperators
-//   les initialisation   x(y)   ( passe par l'operateur unaire <-  du type de x
-//   -------
-
-inline size_t align8(size_t &off) 
-{ 
-  size_t o= off %8 ;
-  off += o ? 8-o : 0;
- return off;
-}
-
-
-template<class T>
-inline Type_Expr  NewVariable(aType t,size_t &off) 
-{ 
-   size_t o= align8(off);//  align    
- //  off += t->un_ptr_type->size;
- // bug    off += t->size;
-   off += t->un_ptr_type->size; // correction 16/09/2003 merci � Richard MICHEL
-   return  Type_Expr(t,new T(o,t));
-} 
-
-template<class T>
-inline Type_Expr  NewVariable(aType t,size_t &off,const basicAC_F0 &args) 
-{ 
-   size_t o= align8(off);//  align    
-   off += t->un_ptr_type->size;
-   return  Type_Expr(t,new T(o,t,args));
-}
-
-template<class T,class U>
-inline Type_Expr  NewVariable(aType t,size_t &off,const U & data) 
-{ 
-   size_t o= align8(off);//  align    
-   off += t->un_ptr_type->size;
-   return  Type_Expr(t,new T(o,t,data));
-}
-
-template<class T>   
-inline  C_F0 TableOfIdentifier::NewVar(Key k,aType t,size_t & top,const C_F0 &i) 
-   { 
-     return C_F0(TheOperators,"<-",New(k,NewVariable<T>(t,top)),i);}
-
-template<class T>   
-inline  C_F0 TableOfIdentifier::NewVar(Key k,aType t,size_t & top,const basicAC_F0 &args) 
-   {  
- //      return C_F0(TheOperators,"<-",New(k,NewVariable(t,top)),t->Find("<-",args));}
-        return C_F0(TheOperators,"<-",basicAC_F0_wa(New(k,NewVariable<T>(t,top)),args));}
-        
-template<class T>   
-inline  C_F0 TableOfIdentifier::NewFESpace(Key k,aType t,size_t & top,const basicAC_F0 &args) 
-   {  
-        return C_F0(TheOperators,"<-",basicAC_F0_wa(New(k,NewFESpace<T>(t,top,args)),args));}
-        
-
-template<class T,class U>   
-inline  C_F0 TableOfIdentifier::NewVar(Key k,aType t,size_t & top,const basicAC_F0 &args,const U & data) 
-   {  
- //      return C_F0(TheOperators,"<-",New(k,t->NewVar(top)),t->Find("<-",args));}
-        return C_F0(TheOperators,"<-",basicAC_F0_wa(New(k,NewVariable<T,U>(t,top,data)),args));}
-   
-//inline  C_F0 TableOfIdentifier::NewVar(Key k,aType t,size_t & top,const AC_F0 &args,const C_F0& ) 
-//   {   throwassert(0); return C_F0(TheOperators,"<-",New(k,NewVariable(t,top)),t->Find("<-",args));}
-
-template<class T>   
-inline  C_F0 TableOfIdentifier::NewVar(Key k,aType t,size_t & top) 
-   {  return t->Initialization(New(k,NewVariable<T>(t,top))); }
-
-// save a expression 
-inline  C_F0 TableOfIdentifier::NewID(aType r,Key k, C_F0 & c,size_t &top, bool del ) 
-   {  New(k,(make_pair<aType, E_F0  *>(c.left(),c.LeftValue())),del);return 0; }
- //  { return r->Initialization(New(k,r->SetParam(c,ListOfId(),top),del));}
-
-inline  C_F0 TableOfIdentifier::NewID(aType r,Key k, C_F0 & c,const ListOfId & l,size_t & top,bool del) 
-   { return r->Initialization(New(k,r->SetParam(c,&l,top),del));}
-   
-/// <<tables_of_identifier>> allocated at [[file:global.cpp::tables_of_identifier]]
-
-typedef list<TableOfIdentifier *> ListOfTOfId;    
-extern list<TableOfIdentifier *> tables_of_identifier;
-
-/// [[file:AFunction2.cpp::Find]]
-
-C_F0 Find(const char * name);
-  
-inline  C_F0 basicForEachType::Find(const char * k) const
-  {  C_F0 r( ti.Find(k));
-     //if (r.Empty()) {cerr << " no member " <<k << " in type " << name() << endl; CompileError("  ");}
-     return r; }
-inline C_F0  basicForEachType::Find(const char * k,const basicAC_F0 & args) const {return ti.Find(k,args);}
-inline  C_F0 basicForEachType::Initialization(const Type_Expr & e) const 
-  {
-     if(!InitExp) 
-       { 
-          cerr << "Internal Error: No Way to m Initialize this var type " << *this << endl;
-          CompileError();
-       }
-   return C_F0(new  E_F0_Func1(InitExp,e.second),this);        
-  }
-  
-
-    
-//inline  AnyType Args2(const AnyType &,const  AnyType & b) {return b;}
-class E_comma : public E_F0 {public:
-   Expression a,b;
-   E_comma(Expression aa,Expression bb) : a(aa),b(bb) {}
-   AnyType operator()(Stack s) const  { (*a)(s); return (*b)(s);}
-   bool MeshIndependent() const {
-    return a->MeshIndependent() && b->MeshIndependent();}
-} ;
-
-inline	  C_F0::C_F0(const C_F0 & a,const C_F0 & b)  
-  { // the concatenation 
-      if (a.Empty())
-         {r=b.r,f=b.f;}
-      else if (b.Empty())
-         {r=a.r,f=b.f;}
-      else 
-        {r=b.r;
-        f= new E_comma(a.f,b.f);}
-  }
-
-inline	  C_F0::C_F0(const C_F0 & e,const char *op, AC_F0 & p)  
-   {    *this=C_F0(e,op,(const basicAC_F0 &) p);
-        p.destroy();
-   }          
-inline	  C_F0::C_F0(const Polymorphic * poly,const char *op, AC_F0 & p)
-   {    *this=C_F0(poly,op,(const basicAC_F0 &) p);
-        p.destroy();
-   }          
-
-inline	  C_F0::C_F0(const C_F0 & e,const char *op,const basicAC_F0 & p)  
-	   { 
-	     const Polymorphic * pop=e;
-	     if (pop) 
-	      {
-	      //cerr << "poly: " <<  *pop << endl;
-	      *this=C_F0(pop,op,p);
-	      }
-	     else { 
-	      // cerr << *e.r << " : table  " << endl;
-	      // e.r->ShowTable(cerr);
-	       C_F0 x=e.r->Find(op);
-	       
-	       pop=x;
-	       if(pop) 
-	       	 {  
-	       	   basicAC_F0_wa ep(e,p);       
-	           *this=C_F0(pop,"",ep); 
-	         } 
-	       else
-	        {
-	           cerr << " unknown operator " << op << " on type " << *e.r << endl;
-	           CompileError();
-	        }}	       
-	   }
-
-inline	  C_F0::C_F0(const C_F0 & e,const char *op,const C_F0 & a,const C_F0 & b)  
-{
-    C_F0 tab[2]={a,b};
-    basicAC_F0  p;
-    p=make_pair(2,tab);
-    *this= C_F0(e,op,p);
-}
-	   
-/// <<C_F0_constructor_char_C_F0_impl>>
-inline	  C_F0::C_F0(const C_F0 & e,const char *op,const C_F0 & ee)  
-{
-  const Polymorphic * pop=e;
-  if (pop) 
-    {
-      // calls [[C_F0_constructor_binary_decl]]
-      *this=C_F0(pop,op,e,ee);
-    }
-  else { 
-    // cerr << *e.r << " : table  " << endl;
-    // e.r->ShowTable(cerr);
-    C_F0 x=e.r->Find(op);       
-    pop=x;
-    if(pop) 	         
-      *this=C_F0(pop,"",e,ee);  
-    else
-      {
-	cerr << " unknown operator " << op << " on type " << *e.r << " " << *ee.r<<  endl;
-	CompileError();
-      }
-  }	       
-}
-	   
-inline	  C_F0::C_F0(const C_F0 & e,const char *nm)  
-	   { 
-	    // cerr << "  C_F0(const C_F0 & e,const char *item) : "   <<  " " << nm << endl;
-	     C_F0 x=e.r->Find(nm); 
-	     const Polymorphic * pop=x;
-	     // cerr << "Find " << *pop << endl;
-	     if (pop) 
-	       *this=C_F0(pop,".",e); //  unary oper . 
-	     else 
-	       {
-	           cerr << " No operator ." << nm << " for type " << *e.r  <<  endl;
-	          lgerror("");	          	        
-	       }
-	       
-	   }
-inline  E_F0 * C_F0::LeftValue() const {
-    return f;
-}
-
-/*inline Type_Expr C_F0::SetParam(const ListOfId * l,size_t & top) const {
-    return r->SetParam(*this,l,top);
-}*/
-
-
-/// Declaration of TypeArray
-aType TypeArray(aType,aType);
-aType TypeArray(aType c,aType b,aType a);
-
-/// Declaration of TypeTemplate
-aType TypeTemplate(aType,aType);
-
-void Init_map_type();
-
-/// <<Block>>
-
-class Block { //
-   static size_t Max(size_t a,size_t b){ return a < b ? b :a;}
-   typedef const char *  Key;
-   Block * fatherblock;
-   size_t  top,topmax;
-   TableOfIdentifier table;
-   ListOfTOfId::iterator itabl;    
-public:
-   //  list of variable
-   size_t OffSet(size_t ssize) {
-      top=align8(top);
-     size_t r=top;  top+=ssize ;topmax=Max(topmax,top);
-     return r;}
-   Block(Block * f=0);
-/*   :fatherblock(f),top(f?f->top:BeginOffset*sizeof(void*)),topmax(top)
-    {     
-      itabl=tables_of_identifier.insert(tables_of_identifier.begin(),&table);
-    }*/ 
-   size_t size() const { return Max(topmax,top);}
-  void Add(Key k,Key op,OneOperator *p0)  
-    { table.Add(k,op,p0);}
-   
-template<class T>   
-   C_F0 NewVar(Key k,aType t,const C_F0 &i) 
-     {return table.NewVar<T>(k, t,top,i);}
-template<class T>   
-   C_F0 NewFESpace(Key k,aType t,const basicAC_F0 &args) 
-     {return table.NewFESpace<T>(k, t,top,args);}
-template<class T>   
-   C_F0 NewVar(Key k,aType t, AC_F0 &args) 
-     {C_F0 r= table.NewVar<T>(k, t,top,args);
-      args.destroy();
-      topmax=Max(topmax,top);
-      return r;}
-template<class T>   
-   C_F0 NewVar(Key k,aType t,const basicAC_F0 &args) 
-     {C_F0 r= table.NewVar<T>(k, t,top,args);
-      topmax=Max(topmax,top);
-      return r;}
-template<class T,class U>   
-   C_F0 NewVar(Key k,aType t,const basicAC_F0 &args,const U & data) 
-     {C_F0 r= table.NewVar<T,U>(k, t,top,args,data);
-      topmax=Max(topmax,top);
-      return r;}
-//   C_F0 NewVar(Key k,aType t,const AC_F0 &args,const C_F0 & f) 
-//     {return table.NewVar(k, t,top,args,f);}
-template<class T>   
-   C_F0 NewVar(Key k,aType t) 
-     {C_F0 r= table.NewVar<T>(k, t,top);
-      topmax=Max(topmax,top);
-      return r;
-      }
-
-  // C_F0 NewVar(aType t,Key k,C_F0 f) 
-  //   {return table.NewVar(t,k, f);}
-  C_F0 NewID(aType t,Key k,C_F0 f,bool del=true) 
-     {C_F0 r= table.NewID(t,k, f,top,del);
-      topmax=Max(topmax,top);
-      return r;}
-  C_F0 NewID(aType t,Key k,C_F0 f,const ListOfId & l,bool del=true) 
-     {C_F0 r= table.NewID(t,k,f,l,top,del);
-      topmax=Max(topmax,top);
-      return r;}
-
- static   Block * open(Block *& c); 
-   CC_F0  close(Block *& c); /* {
-     tables_of_identifier.erase(itabl);      
-     c=fatherblock;
-     if (fatherblock) {fatherblock->topmax=topmax;
-                       fatherblock->top=top;}
-        
-     CC_F0 r;
-     r = table.destroy();
-     delete this;
-     return r;}*/
-   C_F0 Find(const char * k) const  {return table.Find(k);}
-   
-   ~Block(); //{} 
-}; 
-
-
-
-/// <<OneOperator1>> To know the meaning of OneOperator name extensions, see [[OneOperator]]. The template arguments to
-/// OneOperator classes are identical to the types of the arguments of the C++ function that is called from the
-/// class. The matrices are of type KNM<double>* or KNM<double>** (for left-side expressions, but this is "more
-/// tricky") which correspond to a real[int,int] in the edp script.
-
-template<class R,class A=R,class CODE=E_F_F0<R,A> >
-class  OneOperator1 : public OneOperator {
-    aType r,t0; //  return type
-    typedef typename CODE::func func; // R (*func)(A) ; 
-    func  f;
-    public: 
-
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new CODE(f,t0->CastTo(args[0]));} 
-     
-    OneOperator1(func  ff,int ppref=0): 
-      OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()]),
-    t0( map_type[typeid(A).name()] ), f(ff) {pref=ppref;}
-      
-    OneOperator1(func  ff,aType tt0,int ppref=0): 
-      OneOperator(map_type[typeid(R).name()],tt0),
-      t0( map_type[typeid(A).name()] ), f(ff) {pref=ppref;}
-};
-
-
-template<class R,class A=R,class B=A,class CODE=E_F_F0F0<R,A,B> >
-class  OneOperator2 : public OneOperator {
-    aType r,t0,t1; //  return type 
-    typedef typename CODE::func func;
-    func f;
-    public: 
-
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new CODE(f,t0->CastTo(args[0]),t1->CastTo(args[1]));} 
-
-    OneOperator2(func  ff): 
-      OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()],map_type[typeid(B).name()]),
-      t0( map_type[typeid(A).name()] ),t1(map_type[typeid(B).name()] ), f(ff) {}
-      
-    OneOperator2(func  ff,aType tt0,aType tt1): 
-      OneOperator(map_type[typeid(R).name()],tt0,tt1),
-      t0( map_type[typeid(A).name()] ),t1(map_type[typeid(B).name()] ), f(ff) {}
-      
-};
-
-/*template<typename C>
-struct OneBinaryOperator_Traits {
-  typedef C::result_type R;
-  typedef C::first_argument_type A;
-  typedef C::second_argument_type B;
-};*/
-
-template<class A,class B>  struct SameType { static const int OK=0;};
-template<class A>  struct SameType<A,A> { static const int OK=1;};
-template<>  struct SameType<bool,bool> { static const int OK=10;};
-template<>  struct SameType<long,long> { static const int OK=20;};
-template<>  struct SameType<double,double> { static const int OK=30;};
-template<>  struct SameType<Complex,Complex> { static const int OK=40;};
-template<>  struct SameType<string*,string*> { static const int OK=50;};
-
-template <typename Arg1, typename Arg2,typename Arg3, class Result>
-struct ternary_function
-{
-	typedef Arg1   first_argument_type;
-	typedef Arg2   second_argument_type;
-	typedef Arg3   third_argument_type;
-	typedef Result result_type;
-};
-
-template <typename Arg1, typename Arg2,typename Arg3,typename Arg4 , class Result>
-struct quad_function
-{
-	typedef Arg1   first_argument_type;
-	typedef Arg2   second_argument_type;
-	typedef Arg3   third_argument_type;
-	typedef Arg4   fourth_argument_type;
-	typedef Result result_type;
-};
-
-template<typename T,class CODE >
-class  OneTernaryOperator : public OneOperator{
-  typedef typename T::result_type R;
-  typedef typename T::first_argument_type A;
-  typedef typename T::second_argument_type B;
-  typedef typename T::third_argument_type C;
-
-    class Op : public E_F0 {
-      typedef  typename C::result_type Result;
-         Expression a,b,c;
-       public:
-       AnyType operator()(Stack s)  const 
-        {return  SetAny<R>(static_cast<R>(C::f( GetAny<A>((*a)(s)) ,
-                                                GetAny<B>((*b)(s)) ,
-                                                GetAny<C>((*c)(s)))));}
-       Op(Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc) {} 
-       bool MeshIndependent() const {
-       return a->MeshIndependent() && b->MeshIndependent() && c->MeshIndependent();}
-    };
-
-   public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new CODE(t[0]->CastTo(args[0]),t[1]->CastTo(args[1]),t[2]->CastTo(args[2]));} 
-    OneTernaryOperator(): 
-      OneOperator(map_type[typeid(R).name()],
-                  map_type[typeid(A).name()],
-                  map_type[typeid(B).name()],
-                  map_type[typeid(C).name()]) {}
-};
-
-template<typename T,class CODE >
-class  OneQuadOperator : public OneOperator{
-  typedef typename T::result_type R;
-  typedef typename T::first_argument_type A;
-  typedef typename T::second_argument_type B;
-  typedef typename T::third_argument_type C;
-  typedef typename T::fourth_argument_type D;
-
-  class Op : public E_F0 {
-    typedef  typename C::result_type Result;
-    Expression a,b,c,d;
-  public:
-    AnyType operator()(Stack s)  const 
-    {return  SetAny<R>(static_cast<R>(T::f( GetAny<A>((*a)(s)) ,
-					    GetAny<B>((*b)(s)) ,
-					    GetAny<C>((*c)(s)),
-					    GetAny<D>((*d)(s))
-					    )));}
-    Op(Expression aa,Expression bb,Expression cc,Expression dd) : a(aa),b(bb),c(cc),d(dd) {} 
-    bool MeshIndependent() const {
-      return a->MeshIndependent() && b->MeshIndependent() && c->MeshIndependent()  && d->MeshIndependent();}
-  };
-  
-public: 
-  E_F0 * code(const basicAC_F0 & args) const 
-  { return  new CODE(t[0]->CastTo(args[0]),t[1]->CastTo(args[1]),t[2]->CastTo(args[2]),t[3]->CastTo(args[3]));} 
-  OneQuadOperator(): 
-    OneOperator(map_type[typeid(R).name()],
-		map_type[typeid(A).name()],
-		map_type[typeid(B).name()],
-		map_type[typeid(C).name()],
-		map_type[typeid(D).name()]
-		) {}
-};
-
-
-template<typename T >
-class  OneTernaryOperator3 : public OneOperator{
-  typedef typename T::result_type R;
-  typedef typename T::first_argument_type A;
-  typedef typename T::second_argument_type B;
-  typedef typename T::third_argument_type C;
-
-    class Op : public E_F0 {
-     // typedef  typename C::result_type Result;
-         Expression a,b,c;
-       public:
-       AnyType operator()(Stack s)  const 
-        {return  SetAny<R>(static_cast<R>(T::f( s, GetAny<A>((*a)(s)) ,
-                                                GetAny<B>((*b)(s)) ,
-                                                GetAny<C>((*c)(s)))));}
-       Op(Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc) {} 
-       bool MeshIndependent() const { return a->MeshIndependent() && b->MeshIndependent() &&  c->MeshIndependent();}
-       
-    };
-
-   public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new Op(t[0]->CastTo(args[0]),t[1]->CastTo(args[1]),t[2]->CastTo(args[2]));} 
-    OneTernaryOperator3(): 
-      OneOperator(map_type[typeid(R).name()],
-                  map_type[typeid(A).name()],
-                  map_type[typeid(B).name()],
-                  map_type[typeid(C).name()]) {}
-};
-
-
-
-
-struct OneBinaryOperatorMI {
-  static bool MeshIndependent(Expression a,Expression b)   { return a->MeshIndependent() && b->MeshIndependent();}
-  static bool ReadOnly() { return true;}
-};
-struct OneBinaryOperatorMIWO {
-  static bool MeshIndependent(Expression a,Expression b)   { return a->MeshIndependent() && b->MeshIndependent();}
-  static bool ReadOnly() { return false;}
-};
-// ----------  operator with stack ??? for auto delete
-template<typename C,class MI=OneBinaryOperatorMI>
-class  OneBinaryOperator_st : public OneOperator{
-  typedef  typename C::result_type R;
-  typedef typename C::first_argument_type A;
-  typedef typename C::second_argument_type B;
-  aType t0,t1; // type of template modif FH mars 2006 
-  class Op : public E_F0 {
-    typedef  typename C::result_type Result;
-    Expression a,b;
-  public:
-    AnyType operator()(Stack s)  const 
-    {return  SetAny<R>(static_cast<R>(C::f(s, GetAny<A>((*a)(s)) , GetAny<B>((*b)(s)))));}
-    Op(Expression aa,Expression bb) : a(aa),b(bb) {} 
-    bool MeshIndependent() const { return MI::MeshIndependent(a,b);}
-    bool ReadOnly() const { return MI::ReadOnly()  ;} 
-    int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) 
-    {
-      int rr = find(m);
-      if (rr) return rr;          
-      int Opa = a->Optimize(l,m,n);          
-      int Opb =b->Optimize(l,m,n);
-      return insert(new Opt(*this,Opa,Opb),l,m,n);       
-    } 
-    int compare (const E_F0 *t) const { 
-      int rr;
-      const  Op * tt=dynamic_cast<const Op *>(t);
-      if (tt ) rr =   clexico(a->compare(tt->a),b->compare(tt->b));
-      else rr = E_F0::compare(t);
-      // cout << "cmp E_F0_Func1 " << rr << endl;
-      return rr;
-    } // to give a order in instuction 
-    // int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) const;  // build optimisation
-    
-    virtual ostream & dump(ostream &f) const  { 
-      f << "Op<" << typeid(C).name() 
-	<< ">   \n\t\t\t( a= "<< *a<< ")  \n\t\t\t(b= "<< *b << ") "  ;
-      return f; }
-  };
-    // build optimisation
-  class Opt: public Op  { public :
-    size_t ia,ib;  
-    Opt(const  Op &t,size_t iaa,size_t ibb) 
-      : Op(t) ,
-	ia(iaa),ib(ibb) {}
-    AnyType operator()(Stack s)  const 
-    {
-      // cout <<  "Opt2 ::: " << ia << " "<< ib << " f = " 
-      //      <<  GetAny<double>(SetAny<R>(C::f( *static_cast<A *>(static_cast<void*>(static_cast<char *>(s)+ia)) , 
-      //                     *static_cast<B *>(static_cast<void*>(static_cast<char *>(s)+ib))))) << endl;
-      
-      
-      return SetAny<R>( C::f(s, *static_cast<A *>(static_cast<void*>(static_cast<char *>(s)+ia)) , 
-			        *static_cast<B *>(static_cast<void*>(static_cast<char *>(s)+ib)) ) );}  
-    
-    
-  };     
-  //   aType r; //  return type 
-public: 
-  E_F0 * code(const basicAC_F0 & args) const 
-  { //cout << "A op B \n" ;
-    return  new Op(t0->CastTo(args[0]),t1->CastTo(args[1]));} 
-  OneBinaryOperator_st(): 
-    OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()],map_type[typeid(B).name()]), 
-    t0(t[0]),
-    t1(t[1]) 
-  {pref = SameType<A,B>::OK ;}
-  
-  OneBinaryOperator_st(aType tt0,aType tt1):  
-    OneOperator(map_type[typeid(R).name()],
-                tt0 ? tt0  : map_type[typeid(A).name()] ,
-                tt1 ? tt1  : map_type[typeid(B).name()]), 
-    t0(map_type[typeid(A).name()]),
-    t1(map_type[typeid(B).name()])
-   {pref = SameType<A,B>::OK ;}
-
-};
-
-struct evalE_F2 {
-   static AnyType eval(Stack s,const E_F0 * ab,const E_F0 * a,const E_F0 * b, bool & meshidenp) 
-   {
-       return ab->E_F0::eval(s,meshidenp); 
-   }
-};
-
-//
-template<typename C,class MI=OneBinaryOperatorMI,class MIx=evalE_F2 >
-class  OneBinaryOperator : public OneOperator{
-  typedef  typename C::result_type R;
-  typedef typename C::first_argument_type A;
-  typedef typename C::second_argument_type B;
-  aType t0,t1; // type of template modif FH mars 2006 
-  class Op : public E_F0 {
-      typedef typename C::first_argument_type A;
-      typedef typename C::second_argument_type B;
-      typedef  typename C::result_type Result;
-    Expression a,b;
-  public:
-    AnyType operator()(Stack s)  const 
-    {return  SetAny<R>(static_cast<R>(C::f( GetAny<A>((*a)(s)) , GetAny<B>((*b)(s)))));}
-    //   optim  eval MI ...  juin 2007 FH ...
-    AnyType eval(Stack s, bool & meshidenp)  const 
-    {return  MIx::eval(s,this,a,b,meshidenp);}
-    // fi optime 
-    Op(Expression aa,Expression bb) : a(aa),b(bb) {} 
-    bool MeshIndependent() const { return MI::MeshIndependent(a,b);}
-    bool ReadOnly() const { return MI::ReadOnly()  ;} 
-    int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) 
-    {
-      int rr = find(m);
-      if (rr) return rr;          
-      int Opa = a->Optimize(l,m,n);          
-      int Opb =b->Optimize(l,m,n);
-      return insert(new Opt(*this,Opa,Opb),l,m,n);       
-    } 
-    int compare (const E_F0 *t) const { 
-      int rr;
-      const  Op * tt=dynamic_cast<const Op *>(t);
-      if (tt ) rr =   clexico(a->compare(tt->a),b->compare(tt->b));
-      else rr = E_F0::compare(t);
-      // cout << "cmp E_F0_Func1 " << rr << endl;
-      return rr;
-    } // to give a order in instuction 
-    // int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) const;  // build optimisation
-    
-    virtual ostream & dump(ostream &f) const  { 
-      f << "Op<" << typeid(C).name() 
-	<< ">   \n\t\t\t( a= "<< *a<< ")  \n\t\t\t(b= "<< *b << ") "  ;
-      return f; }
-  };
-    // build optimisation
-  class Opt: public Op  { public :
-    size_t ia,ib;  
-    Opt(const  Op &t,size_t iaa,size_t ibb) 
-      : Op(t) ,
-	ia(iaa),ib(ibb) {}
-    AnyType operator()(Stack s)  const 
-    {
-      // cout <<  "Opt2 ::: " << ia << " "<< ib << " f = " 
-      //      <<  GetAny<double>(SetAny<R>(C::f( *static_cast<A *>(static_cast<void*>(static_cast<char *>(s)+ia)) , 
-      //                     *static_cast<B *>(static_cast<void*>(static_cast<char *>(s)+ib))))) << endl;
-      
-      
-      return SetAny<R>( C::f( *static_cast<A *>(static_cast<void*>(static_cast<char *>(s)+ia)) , 
-			      *static_cast<B *>(static_cast<void*>(static_cast<char *>(s)+ib)) ) );}  
-    
-    
-  };     
-  //   aType r; //  return type 
-public: 
-  E_F0 * code(const basicAC_F0 & args) const 
-  { //cout << "A op B \n" ;
-    if ( args.named_parameter && !args.named_parameter->empty()  ) 
-	CompileError( " They are used Named parameter ");
- 
-    return  new Op(t0->CastTo(args[0]),t1->CastTo(args[1]));} 
-  OneBinaryOperator(): 
-    OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()],map_type[typeid(B).name()]), 
-    t0(t[0]),
-    t1(t[1]) 
-  {pref = SameType<A,B>::OK ;}
-  
-  OneBinaryOperator(aType tt0,aType tt1):  
-    OneOperator(map_type[typeid(R).name()],
-                tt0 ? tt0  : map_type[typeid(A).name()] ,
-                tt1 ? tt1  : map_type[typeid(B).name()]), 
-    t0(map_type[typeid(A).name()]),
-    t1(map_type[typeid(B).name()])
-   {pref = SameType<A,B>::OK ;}
-
-};
-//-------------
-template<typename R>
-class  Operator_Aritm_If : public OneOperator{
-  typedef bool A; 
-  typedef R B; 
-  typedef R C; 
-  class Op : public E_F0 {
-    typedef  R Result;
-    Expression a,b,c;
-  public:
-    AnyType operator()(Stack s)  const 
-         {
-             bool ok = GetAny<bool>((*a)(s)) ;
-             R r ;
-             if( ok) r=GetAny<B>((*b)(s)) ;
-             else r =GetAny<C>((*c)(s)) ;
-             return  SetAny<R>(r);// static_cast<R>( ? GetAny<B>((*b)(s))  : GetAny<C>((*c)(s))  ));
-          }
-    Op(Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc){} 
-    bool MeshIndependent() const { return a->MeshIndependent() && b->MeshIndependent() &&b->MeshIndependent() ;}
-    int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) 
-    {
-      int rr = find(m);
-      if (rr) return rr;          
-      int Opa = a->Optimize(l,m,n);          
-      int Opb =b->Optimize(l,m,n);
-      int Opc =c->Optimize(l,m,n);
-      return insert(new Opt(*this,Opa,Opb,Opc),l,m,n);       
-    } 
-    int compare (const E_F0 *t) const { 
-      int rr;
-      const  Op * tt=dynamic_cast<const Op *>(t);
-      if (tt ) rr =   clexico(a->compare(tt->a),b->compare(tt->b),c->compare(tt->c));
-      else rr = E_F0::compare(t);
-      // cout << "cmp E_F0_Func1 " << rr << endl;
-      return rr;
-    } // to give a order in instuction 
-    // int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) const;  // build optimisation
-    
-    virtual ostream & dump(ostream &f) const  { 
-      f << "Op<" << typeid(C).name() 
-	<< ">   \n\t\t\t( a= "<< *a<< ")  \n\t\t\t(b= "<< *b << ") "  ;
-      return f; }
-  };
-    // build optimisation
-  class Opt: public Op  { public :
-    size_t ia,ib,ic;  
-    Opt(const  Op &t,size_t iaa,size_t ibb,size_t icc) 
-      : Op(t) ,
-	ia(iaa),ib(ibb),ic(icc) {}
-    AnyType operator()(Stack s)  const 
-    {
-      // cout <<  "Opt2 ::: " << ia << " "<< ib << " f = " 
-      //      <<  GetAny<double>(SetAny<R>(C::f( *static_cast<A *>(static_cast<void*>(static_cast<char *>(s)+ia)) , 
-      //                     *static_cast<B *>(static_cast<void*>(static_cast<char *>(s)+ib))))) << endl;
-      
-      
-      return SetAny<R>(
-               static_cast<R> (
-                              *static_cast<bool *>(static_cast<void*>(static_cast<char *>(s)+ia)) ? 
-			      *static_cast<B    *>(static_cast<void*>(static_cast<char *>(s)+ib))    :
-			      *static_cast<C    *>(static_cast<void*>(static_cast<char *>(s)+ic)) ) );}  
-    
-    
-  };     
-  //   aType r; //  return type 
-public: 
-  E_F0 * code(const basicAC_F0 & args) const 
-  { //cout << "A op B \n" ;
-      if ( args.named_parameter && !args.named_parameter->empty()  ) 
-	  CompileError( " They are used Named parameter "); 
-    return  new Op(t[0]->CastTo(args[0]),t[1]->CastTo(args[1]),t[2]->CastTo(args[2]));} 
-  Operator_Aritm_If(): 
-    OneOperator(map_type[typeid(R).name()],map_type[typeid(bool).name()],map_type[typeid(B).name()],map_type[typeid(B).name()])
-  {pref = SameType<B,B>::OK ;}
-};
-
-/* essai d'unification des classes 
-
-template<class R,class A,R ff(A),class AA=A> 
-struct F_1 : unary_function<AA,R>,public E_F0 {
-       AnyType operator()(Stack s)  const 
-        { return  SetAny<R>( ff(GetAny<A>((*a)(s)))) ;}
-
-};
-
-
-template<class C>
-class bUnary_Op : public C { public:
-
-         Expression a;
-       public:
-        
-       bUnary_Op(Expression aa) : a(aa) {} 
-      
-       int compare (const E_F0 *t) const { 
-           int rr;
-            const  bUnary_Op * tt=dynamic_cast<const bUnary_Op *>(t);
-            if (tt) rr = a->compare(tt->a);
-             else rr = E_F0::compare(t);
-             // cout << "cmp E_F0_Func1 " << rr << endl;
-         return rr;
-       } // to give a order in instuction 
-      bool EvaluableWithOutStack() const {return a->EvaluableWithOutStack();} // 
-     bool MeshIndependent() const {return a->MeshIndependent();} // 
-       
-  // int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) const;  // build optimisation
-
-    virtual ostream & dump(ostream &f) const  { 
-       f << "Op1<" << typeid(C).name() 
-         << ">   \n\t\t\t( a= "<< *a<< ") "  ;
-      return f; }       
-       
-    };
-*/ 
-template<class C>
-class Unary_Op : public E_F0 { public:
-
-
-  typedef typename C::result_type R;
-  typedef typename C::argument_type A; 
-  
-       Expression a;
-       public:
-       AnyType operator()(Stack s)  const 
-        { return  SetAny<R>( C::f(GetAny<A>((*a)(s)))) ;}
-        
-       Unary_Op(Expression aa) : a(aa) {} 
-      
-       int compare (const E_F0 *t) const { 
-           int rr;
-            const  Unary_Op * tt=dynamic_cast<const Unary_Op *>(t);
-            if (tt) rr = a->compare(tt->a);
-             else rr = E_F0::compare(t);
-             // cout << "cmp E_F0_Func1 " << rr << endl;
-         return rr;
-       } // to give a order in instuction 
-      bool EvaluableWithOutStack() const {return a->EvaluableWithOutStack();} // 
-     bool MeshIndependent() const {return a->MeshIndependent();} // 
-       
-  // int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) const;  // build optimisation
-
-    virtual ostream & dump(ostream &f) const  { 
-       f << "Op1<" << typeid(C).name() 
-         << ">   \n\t\t\t( a= "<< *a<< ") "  ;
-      return f; }
-       
-       
-    };
-
-
-
-template<class C,class Op=Unary_Op<C> > 
-class  OneUnaryOperator : public OneOperator{
-  typedef typename C::result_type R;
-  typedef typename C::argument_type A; 
-   // aType r; //  return type 
-    aType tA;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-    {     if ( args.named_parameter && !args.named_parameter->empty()  ) 
-	CompileError( " They are used Named parameter ");
-	 return  new Op(tA->CastTo(args[0]));} 
-    OneUnaryOperator(aType tt0=map_type[typeid(A).name()]): 
-      OneOperator(map_type[typeid(R).name()],tt0), 
-      tA(map_type[typeid(A).name()])
-      {}
-};
-
-template<class R,class A=R,class E=E_F0>
-class  OneOperator1s_ : public OneOperator {
-    aType r; //  return type
-    typedef  R (*func)(Stack stack, const A &) ; 
-    func  f;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-    {     if ( args.named_parameter && !args.named_parameter->empty()  ) 
-	CompileError( " They are used Named parameter ");
-	 return  new E_F_F0s_<R,A,E>(f,t[0]->CastTo(args[0]));}
-    OneOperator1s_(func  ff): 
-      OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()]),f(ff){}
-};
-
-template<class R,class A=R,class CODE=E_F_F0_<R,A> >
-class  OneOperator1_ : public OneOperator {
-    aType r,t0; //  return type
-    typedef  R (*func)(const A &) ; 
-    func  f;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { 
-	 if ( args.named_parameter && !args.named_parameter->empty()  ) 
-	     CompileError( " They are used Named parameter ");
-
-	 return  new CODE(f,t[0]->CastTo(args[0]));} 
-    OneOperator1_(func  ff,int ppref=0): 
-    OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()]),t0( map_type[typeid(A).name()] ),f(ff){pref=ppref;}
-    OneOperator1_(func  ff,aType tt0,int ppref=0): 
-	OneOperator(map_type[typeid(R).name()],tt0),
-	t0( map_type[typeid(A).name()]), f(ff) {pref=ppref;}
-    
-};
-
-template<class R,class A,class B,class E> class E_F_F0F0_;
-
-
-
-
-template<class R,class A=R,class B=A,class CODE=E_F_F0F0_<R,A,B,E_F0> >
-class  OneOperator2_ : public OneOperator {
-    aType r,t0,t1; //  return type  type de f,  f(t1, t2) 
-    typedef typename  CODE::func  func;
-    func f;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { 
-	 if ( args.named_parameter && !args.named_parameter->empty()  ) 
-	     CompileError( " They are used Named parameter ");
-
-	 return  new CODE(f,t0->CastTo(args[0]),t1->CastTo(args[1]));} 
-    OneOperator2_(func  ff): 
-      OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()],map_type[typeid(B).name()]),
-      t0( map_type[typeid(A).name()] ),t1(map_type[typeid(B).name()] ), f(ff) {}
-     OneOperator2_(int ppref,func  ff): 
-       OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()],map_type[typeid(B).name()]),
-       t0( map_type[typeid(A).name()] ),t1(map_type[typeid(B).name()] ), f(ff) {pref=ppref;}
-
-    OneOperator2_(func  ff,aType tt0,aType tt1): 
-      OneOperator(map_type[typeid(R).name()],tt0,tt1),
-      t0( map_type[typeid(A).name()] ),t1(map_type[typeid(B).name()] ), f(ff) {}
-      
-};
-
-template<class R,class A=R,class B=A,class C=B,class CODE=E_F_F0F0F0_<R,A,B,C,E_F0> >
-class  OneOperator3_ : public OneOperator {
-   // aType r; //  return type 
-    aType tA,tB,tC; // type of template modif FH mars 2007 
-    typedef typename  CODE::func  func;
-    func f;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { 
-	 if ( args.named_parameter && !args.named_parameter->empty()  ) 
-	     CompileError( " They are used Named parameter ");
-
-	 return  new CODE(f,tA->CastTo(args[0]),tB->CastTo(args[1]),tC->CastTo(args[2]));} 
-    OneOperator3_(func  ff,
-		  aType tt0=map_type[typeid(A).name()],
-		  aType tt1=map_type[typeid(B).name()],
-		  aType tt2=map_type[typeid(C).name()])
-	: OneOperator(map_type[typeid(R).name()],tt0,tt1,tt2),
-      tA(map_type[typeid(A).name()]),
-      tB(map_type[typeid(B).name()]),
-      tC(map_type[typeid(C).name()]),
-      f(ff){}
-};
-
-// <<OneOperatorCode>> utilise [[E_F0]]. la class code doit contenir
-/*
-  class CODE: public E_F0 {
-    typedef  ...  func .. ;
-    typedef .. R;
-     static ArrayOfaType  typeargs(); // the list of type de l'operateur of the args 
-    typedef  ... R;  // return type 
-}
-*/
-
-template<class CODE,int ppref=0>
-class  OneOperatorCode : public OneOperator {
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const  { return CODE::f(args);} 
-    OneOperatorCode():  OneOperator(atype<typename CODE::Result>(),CODE::typeargs()) {pref=ppref;}
-    OneOperatorCode(aType rr,const ArrayOfaType & l):  OneOperator(rr,l)  {pref=ppref;}
-    OneOperatorCode(aType rr,aType a):  OneOperator(rr,a)  {pref=ppref;}
-    OneOperatorCode(aType rr,aType a,aType b):  OneOperator(rr,a,b)  {pref=ppref;}
-    OneOperatorCode(aType rr,aType a,aType b,aType c):  OneOperator(rr,a,b,c)  {pref=ppref;}
-    
-};
-
-template<class A,class B> struct binary_trait{ typedef  A R  ;}; 
-template<>  struct binary_trait<int,double> { typedef  double R;}; 
-template<>  struct binary_trait<long,double> { typedef  double R;}; 
-template<>  struct binary_trait<int,complex<double> > { typedef  complex<double> R;}; 
-template<>  struct binary_trait<long,complex<double> > { typedef  complex<double> R;}; 
-template<>  struct binary_trait<double,complex<double> > { typedef  complex<double> R ;}; 
-template<class A>  struct binary_trait<A,string* > { typedef  string*  R ;}; 
-
-//  1 variable pour les operation de cast 
-class E_F1_funcT_Type: public OneOperator{ public:
-    //  const basicForEachType *r,*a;
-    Function1 f;
-    E_F0 * code(const basicAC_F0 & args) const   { 
-        if ( args.named_parameter && !args.named_parameter->empty()  ) 
-            CompileError( " They are used Named parameter ");
-        
-        return  new  E_F0_Func1(f,args[0]);} 
-    
-    E_F1_funcT_Type(const basicForEachType *rr,const basicForEachType *aa,Function1 ff)
-    : OneOperator(rr,aa), f(ff) {}
-    
-    //: r(rr),a(aa),f(ff) {}
-    //  friend ostream & operator<<(ostream & f,const E_F1_funcT_Type & e) { f << *e.a << " -> " << *e.r ;return f;}
-};
-
-template<class R,class A>
-class E_F1_funcT :public  E_F1_funcT_Type{ public:   
-    E_F1_funcT(Function1 ff) : E_F1_funcT_Type(map_type[typeid(R).name()],map_type[typeid(A).name()],ff){}
-    E_F1_funcT(aType rr,aType a,Function1 ff) : E_F1_funcT_Type(rr,a,ff){}
-};
-
-
-template<class T,class PT> 
- ForEachTypePtr<T,PT>::ForEachTypePtr(): 
-         basicForEachType(typeid(PT),sizeof(PT),
-//         new E_F1_funcT<T,T*>(UnRef<T>),atype<T>(),
-         new E_F1_funcT_Type(atype<T>(),this,UnRef<T,PT>),atype<T>(),
-
-         ::Initialize<T>,::Delete<T>){}
-         
-template<class T,class PT> 
- ForEachTypePtr<T,PT>::ForEachTypePtr(Function1 init,Function1 dl,Function1 onreturn): 
-         basicForEachType(typeid(PT),sizeof(PT),
-//         new E_F1_funcT<T,T*>(UnRef<T>),atype<T>(),
-         new E_F1_funcT_Type(atype<T>(),this,UnRef<T,PT>),atype<T>(),
-			  init,
-			  dl , onreturn ){}
-         
-template<class T,class PT> 
- ForEachTypePtr<T,PT>::ForEachTypePtr(Function1 dl): 
-         basicForEachType(typeid(PT),sizeof(PT),
-         new E_F1_funcT_Type(atype<T>(),this,UnRef<T,PT>),atype<T>(),
-         ::Initialize<T>,dl){}
-         
-
-template<class T> 
- ForEachTypePtr<T*,T**>::ForEachTypePtr(T* unused,Function1 OOnReturn): 
-         basicForEachType(typeid(T**),sizeof(T**),
-//         new E_F1_funcT<T*,T**>(UnRef<T*>),atype<T*>(),
-         new E_F1_funcT_Type(atype<T*>(),this,UnRef<T*>),atype<T*>(),
-
-         ::InitializePtr<T*>,::DestroyPtr<T*>,OOnReturn){}
-      
-template<class T> 
- ForEachTypePtr<T*,T**>::ForEachTypePtr(Function1 init,Function1 dl,Function1 onreturn): 
-         basicForEachType(typeid(T**),sizeof(T**),
-        // new E_F1_funcT<T*,T**>(UnRef<T*>),atype<T*>(),
-         new E_F1_funcT_Type(atype<T*>(),this,UnRef<T*>),atype<T*>(),
-			  init  ,
-			  dl ,
-			  onreturn){}
-        
-template<class T> 
- ForEachTypePtr<T*,T**>::ForEachTypePtr(Function1 dl): 
-         basicForEachType(typeid(T**),sizeof(T**),
-//         new E_F1_funcT<T*,T**>(UnRef<T*>),atype<T*>(),
-         new E_F1_funcT_Type(atype<T*>(),this,UnRef<T*>),atype<T*>(),
-         ::InitializePtr<T*>,dl){}
-         
-/* class  FuncForEachType : public basicForEachType {public:
-  FuncForEachType(const basicForEachType * t);
-  const basicForEachType *  rtype;  
- };        
-*/
-  
-
-
-/*
-inline basicForEachType::basicForEachType(const type_info  & k, const type_info  & kf,
-                                          const size_t s,
-                                          const E_F1_funcT_Type * p,
-                                          basicForEachType *rr,
-                                          Function1 iv,Function1 id) 
-      : ktype(&k),ktypefunc(&kf),
-        size(s),
-        un_ptr(p),
-        un_ptr_type(rr?rr:this), 
-        InitExp(iv),        
-        destroy(id) ,
-        funct_type(new FuncForEachType(this)){} 
-        
-        
-*/
-
-inline C_F0 & operator+=(C_F0 & a,C_F0 &b)
-{
-   C_F0 r = C_F0(TheOperators,"+",a,b);
-   a=r;
-   return a;
-}
-
-
-template<typename T,typename PT>
-void Dcl_TypeandPtr_ (Function1 i,Function1 d,Function1 pi,Function1 pd,Function1 OnReturn=0,Function1 pOnReturn=0)
-   {
-      map_type[typeid(T).name()] = new ForEachType<T>(i,d,OnReturn); 
-      map_type[typeid(PT).name()] = new ForEachTypePtr<T,PT>(pi,pd,pOnReturn); 
-   }
-template<class T>
-void Dcl_TypeandPtr (Function1 i,Function1 d,Function1 pi,Function1 pd,Function1 OnReturn=0,Function1 pOnReturn=0)
-{
-map_type[typeid(T).name()] = new ForEachType<T>(i,d,OnReturn); 
-map_type[typeid(T*).name()] = new ForEachTypePtr<T>(pi,pd,pOnReturn); 
-}
-
-
-template<class T>
-  void Dcl_TypeandPtr (Function1 pi,Function1 pd)
-   {
-      map_type[typeid(T).name()] = new ForEachType<T>(); 
-      map_type[typeid(T*).name()] = new ForEachTypePtr<T>(pi,pd); 
-   }
-   
-template<class T>
-  void Dcl_TypeandPtr (Function1 pd)
-   {
-      map_type[typeid(T).name()] = new ForEachType<T>(); 
-      map_type[typeid(T*).name()] = new ForEachTypePtr<T>(pd); 
-   }
-   
-template<class T>
-  void Dcl_TypeandPtr ()
-   {
-      map_type[typeid(T).name()] = new ForEachType<T>(); 
-      map_type[typeid(T*).name()] = new ForEachTypePtr<T>(); 
-   }
-   
-template<class T>
-  aType Dcl_Type (Function1 iv=0,Function1 id=0,Function1 Onreturn=0)
-   {
-     if (sizeof(T) >sizeof(AnyData)) {
-       cerr << " the type   " << typeid(T).name() << " is too large " << sizeof(AnyData) <<  endl;
-       throwassert(sizeof(T) <=sizeof(AnyData));}
-     return map_type[typeid(T).name()] = new ForEachType<T>(iv,id,Onreturn); 
-    
-   }
-
-template<class T>
-  void Add(const char * k,const char * op,OneOperator *p0,OneOperator *p1=0,
-      OneOperator *p2=0,OneOperator *p3=0,OneOperator *p4=0,
-      OneOperator *p5=0,OneOperator *p6=0)  
-     {atype<T>()->Add(k,op,p0,p1,p2,p3,p4,p5,p6);}     
-
-inline C_F0 operator *(const C_F0 &a,const C_F0 &b)
-{    
-  return a==*pOne ? b : ( b ==*pOne ? a : C_F0(TheOperators,"*",a,b)) ;}
-inline C_F0 operator+(const C_F0 &a,const C_F0 &b){ return C_F0(TheOperators,"+",a,b);}
-inline C_F0 operator-(const C_F0 &a,const C_F0 &b){ return C_F0(TheOperators,"-",a,b);}
-  
-/// <<C_F0_operator_plusequals>>
-inline C_F0 &operator +=(C_F0 &a,const C_F0 &b)
-{  
-   C_F0 r=C_F0(TheOperators,"+",a,b);
-   a=r;
-   return a;}
-   
-//inline  bool CC_F0::Empty() const {return !f || f->Empty();}
-inline  void CC_F0::operator=(const CListOfInst& c) 
-  { C_F0 cc=c;f=cc.f;r=cc.r;}
-inline   CListOfInst &  CListOfInst::operator+=(const CC_F0 & a)
-  { if( !a.Empty()){ f->Add(a);r=a.left();};return *this;} 
-  
-inline Type_Expr basicForEachType::SetParam(const C_F0 & ,const ListOfId * ,size_t & ) const
-     { cerr << " int basicForEachType " << name() << endl; 
-       InternalError("basicForEachType::SetParam non defined");  }//return make_pair<aType,const E_F0  *>(c.left(),c.LeftValue());}
-     
-
-
-/*
-
-//  ---  pour les cast ------
-class  OneOpCast: public OneOperator { 
-    typedef const E_F1_funcT_Type *  CastFunc;
-    CastFunc  f;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const   { return  new  E_F0_Func1(f->f,args[0]);} 
-    OneOpCast(CastFunc  ff): OneOperator(ff->r,ff->a),f(ff){}
-};
-*/
-
-// 
-inline  bool  basicForEachType::CastingFrom(aType t) const  {
-     throwassert(this && t);
-     if ( t == this) return true;
-     else if( t ==  type_C_F0 ) return true; // FH do work .... 09 / 2012 (use of ellispe ...)
-     return casting->FindSameR(ArrayOfaType(t,false));
-  }
-
-inline  void CerrCast(const pair<const basicForEachType*,const E_F1_funcT_Type *> & i)
-{ 
-   cerr << "\t" <<  *i.first << ":" << i.second << endl;
-}
-
-inline 	 C_F0 basicForEachType::CastTo(const C_F0 & e) const 
-{
- throwassert(this);
- aType t = e.left();
- if (this== t) return e;
-  
- 
-  C_F0 ce=e;
-  basicAC_F0 at;
-  at=ce;
-  OneOperator * opcast =casting->FindSameR(ArrayOfaType(t,false));  
-  if ( opcast )  
-    if ( *opcast == at ) // left value
-      return C_F0(opcast->code(at),this);
-    else  { // rigth value 
-     aType tr = e.right();
-     ce = C_F0(e.RightValue(),tr);
-     at = ce;
-     return C_F0(opcast->code(at),this); }
-  else    
-      { cerr << "Impossible to cast " << *e.left() << " in " << *this << endl;
-           if (casting)  casting->Show(cerr)  ;
-           CompileError();} 
- return C_F0();
-}
-inline Expression  basicForEachType::RightValueExpr(Expression f) const 
-{
-  if (un_ptr) return new  E_F0_Func1(un_ptr->f,f);
-   else return f;        
-}
-
-inline void CompileError(string msg,aType r){ 
- string m= r ? msg + "  type: " + r->name() : msg ;
-   lgerror(m.c_str());
- }
- 
- inline void ExecError(string msg){ 
-  // cerr << "Fatal ExecError: " << msg << endl;
-   throw(ErrorExec(msg.c_str(),1));
- }
- 
-const  Function1 NotReturnOfthisType = reinterpret_cast<Function1>(1); 
-
-inline Expression basicForEachType::OnReturn(Expression f) const {
-    if(!DoOnReturn) return f;
-    else if(DoOnReturn== NotReturnOfthisType )
-	CompileError("Problem when returning this type (sorry work in progress FH!) ", this);
-    else return new  E_F0_Func1(DoOnReturn,f);
-    return 0; 
-}
-
-
-inline  void CC_F0::operator=(const AC_F0& a) {  f=new E_Array(a); r= atype<E_Array>();};
-
-inline  UnId::UnId(const char * idd,const C_F0 & ee,aType rr=0,bool reff=false) 
-  :id(idd),r(rr),e(ee),array(0),re(ee.left()) ,ref(reff){}
-
-
-class E_exception : public exception { public:
-  enum CODE_exception { UNKNOWN,e_break,e_continue,e_return} ;
-  CODE_exception code;  
-  AnyType r; // for return 
-  public:
-  E_exception(CODE_exception c,AnyType rr=Nothing) : code(c),r(rr)  {}
-  const int type() {return code;}
-  virtual const char *  what() const throw() { return "E_exception (break,continue or return) "; }
-  ~E_exception() throw() {}
-};
-
-
-class E_throw : public E_F0mps { public:
-   E_exception::CODE_exception kind;    
-   Expression ret; // return value
-   E_throw(E_exception::CODE_exception c,Expression e=0) :kind(c),ret(e) {}
-   AnyType operator()(Stack s)  const { 
-     (ret ? throw(E_exception(kind,(*ret)(s)))
-          : throw(E_exception(kind)));
-       return Nothing; }
-   operator aType () const { return atype<void>();} 
-      
- } ;
-
-class E_block :  public E_F0mps { public:
-  const int n;
-  Expression  * code;
-  int * linenumber;
-  Expression clean;
-   E_block(CListOfInst l,C_F0   c)
-     : n(l.size()),code(l.ptr()),linenumber(l.nlines()),clean(c) {}
-   E_block( C_F0  l,C_F0  c)
-     : n(1),code(new Expression),clean(c) { code[0]=l;}
-   AnyType operator()(Stack s)  const ;
-    operator aType () const { return atype<void>();}         
-   
-};
-
-class Routine;
-class E_Routine :  public E_F0mps { public:
-  Expression code;
-  Expression clean;
-  aType rt;
-  int nbparam;
-  Expression * param;
-  const char * name;
-  E_Routine(const Routine * routine,const basicAC_F0 & args);
-   AnyType operator()(Stack s)  const;
-  ~E_Routine() ;//{ delete [] param;}  modif del for windows
-  private:
-  E_Routine(const E_Routine &);
-  void operator=(const E_Routine &);
-  operator aType ()  const{ return rt;}         
-
-};
-
-/// <<Routine>> used in [[file:../lglib/lg.ypp::YYSTYPE]]
-
-class Routine: public OneOperator{  public:
-   size_t offset;
-   aType tfunc,tret;
-   const char * name;
-   const ListOfId param;
-   Block * currentblock;
-   Expression  ins;   
-   Expression  clean;
-   
-    E_F0 * code(const basicAC_F0 & args) const  ;
-   Routine(aType tf,aType tr,const char * iden,  ListOfId *l,Block * & cb);
-   Block * Set(C_F0   instr) ;
-};
-
-
-class TypeLineFunction: public ForEachType<C_F0> {
-  public:
-  TypeLineFunction() : ForEachType<C_F0>(0,0) {}
-  
-  void SetArgs(const ListOfId *lid) const {
-     if (lid) CompileError("No Argument in line function");
-      } 
-     
-  Type_Expr SetParam(const C_F0 & c,const ListOfId *l,size_t & top) const 
-    {  return Type_Expr(c.left(),c.LeftValue());  } 
-    
-  C_F0 Initialization(const Type_Expr & ) const 
-    {  return C_F0(); }  // nothing to initialize 
-    
-};
-
-
-class E_F0_Optimize : public E_F0 { 
-  deque<pair<Expression,int> > l;
-  // mutable deque<bool> var;
-  MapOfE_F0 m;
-  int NBbitem;
-  int ret;
-public:
-  E_F0_Optimize(deque<pair<Expression,int> > &ll,MapOfE_F0 & mm,int rett) :
-    l(ll),m(mm),NBbitem(1),ret(rett)  {}
-  int sizevar() const {return l.size();}
-  AnyType eval(Stack s,int notinit,bool * unvar)  const {
-    int k= l.size(),kk=0;
-    if(notinit ==0)
-      {
-	//var.resize(k);
-	for (int i=0;i<k;i++)
-	  {  size_t offset = l[i].second;
-	  unvar[i]=true;  
-	  *Stack_offset<AnyType>(s,offset) = l[i].first->eval(s, unvar[i]);
-	  if( unvar[i]) kk++;
-	  }          
-	if (verbosity/100 && verbosity % 10 == 2) 
-	     cout << "E_F0_Optimize  nb MI exp: " << kk << " /  " << k << endl;
-      }
-    else
-      for (int i=0;i<k;i++)
-        {  size_t offset = l[i].second;
-	if(!unvar[i]) 
-	  *Stack_offset<AnyType>(s,offset) = (*l[i].first)(s);
-	//*static_cast<AnyType *>(static_cast<void *>((char*)s+offset))= (*l[i].first)(s); // FH NEWSTACK
-	// cout << " E_F0_Optimize   " << offset << " " <<  *static_cast<double *>(static_cast<void *>((char*)s+offset)) << endl; ;
-        }
-    // return *static_cast<AnyType *>(static_cast<void *>((char*)s+ret));          
-    return *Stack_offset<AnyType>(s,ret); // FH NEWSTACK       
-  }
-  
-  virtual AnyType operator()(Stack s)  const {
-    int k= l.size();
-    for (int i=0;i<k;i++)
-      {  size_t offset = l[i].second;
-      *Stack_offset<AnyType>(s,offset) = (*l[i].first)(s);
-      //*static_cast<AnyType *>(static_cast<void *>((char*)s+offset))= (*l[i].first)(s); // FH NEWSTACK
-      // cout << " E_F0_Optimize   " << offset << " " <<  *static_cast<double *>(static_cast<void *>((char*)s+offset)) << endl; ;
-      }
-    // return *static_cast<AnyType *>(static_cast<void *>((char*)s+ret));          
-    return *Stack_offset<AnyType>(s,ret); // FH NEWSTACK       
-  }
-  virtual bool Empty() const {return l.size(); }
-  // virtual E_F0 * destroy(Stack ) const {return 0;}
-  //  virtual const E_F0 * Parameter(Stack ) const {return this;}
-  virtual size_t nbitem() const {  return NBbitem;}
-  virtual bool EvaluableWithOutStack() const {return false;} // 
-  virtual bool MeshIndependent() const {return false;} // 
-  virtual E_F0 * right_E_F0() const { return 0;}
-  virtual ~E_F0_Optimize() {}
-  // virtual int compare (const E_F0 *t) const { return t-this;} // to give a order in instuction 
-  virtual  operator aType ()  const { return  *(l.back().first);}   // the type of the expression  
-}; 
- 
- 
-inline    int E_F0::find(const MapOfE_F0 & m)  {  //  exp
-       // cout << " ffff :" ;
-        MapOfE_F0::const_iterator i= m.find(this); 
-        if(i != m.end()) {
-            if( (verbosity / 100)% 10 == 1) 
-              {
-                 cout << "\n    find : ";
-                 cout  <<  i->second << " mi=" ;
-                 cout << MeshIndependent() << " " ;
-                 cout << typeid(*this).name()  ;
-                 cout << " cmp = " << compare(i->first) ;
-                 cout  << " " << i->first->compare(this) << " ";
-                 dump(cout);
-               }
-             assert( compare(i->first) == 0);
-           }     
-        return i == m.end() ? 0 : i->second ;
-    }
- inline   int E_F0::insert(Expression  opt,deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) 
-    {
-     int rr=align8(n);
-     pair<Expression,int> p(this,rr);
-     if( (verbosity / 100)% 10 == 1) 
-       cout << "  --  insert opt " << n << " " << *this << endl;     
-       n += sizeof(AnyType);         
-       l.push_back(make_pair<Expression,int>((Expression)opt,(int)rr)); 
-       m.insert(p); 
-       return rr;
-     }
-
-<<<<<<< HEAD
-extern queue<pair<const E_Routine*,int> > * debugstack;
-=======
-extern queue<pair<const E_Routine*,int> > debugstack;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-struct NothingType {  // a type to do nothing 
- NothingType() {};
-};
-
-extern basicForEachType *  typevarreal,  * typevarcomplex;  //  type of real and complex variable
-  
-void initArrayOperators();   
-void  initArrayDCL();
-
-void ClearMem(); 
-
-// <<OneOperator_code2>>
-inline C_F0  OneOperator::code2(const basicAC_F0 &a) const  {return C_F0(code(a),r);}	
-
-template<class R>
-class  OneOperator0 : public OneOperator {public:
-    class E_F0_F :public  E_F0 { public:
-	typedef  R (*func)( ) ; 
-	func f;
-	E_F0_F(func ff)  : f(ff) {}
-	AnyType operator()(Stack )  const  {return SetAny<R>( f()) ;}  
-	operator aType () const { return atype<R>();} 
-	
-    };
-    
-    //  aType r; //  return type
-    typedef  R (*func)() ; 
-    func  f;
-public: 
-	E_F0 * code(const basicAC_F0 & args) const 
-    { 
-	if ( args.named_parameter && !args.named_parameter->empty()  ) 
-	    CompileError( " They are used Named parameter ");
-
-	return  new E_F0_F(f);} 
-    OneOperator0(func  ff): OneOperator(map_type[typeid(R).name()]),f(ff){}
-};
-
-template<class R >
-Type_Expr CVariable(R  (*ff)() )
-{
-    throwassert(map_type[typeid(R).name()]);
-    return make_pair(map_type[typeid(R).name()],new  typename OneOperator0<R>::E_F0_F(ff));
-}
-
-#endif
-
-
diff --git a/src/fflib/AFunction2.cpp b/src/fflib/AFunction2.cpp
index 75e166d..5aebc32 100644
--- a/src/fflib/AFunction2.cpp
+++ b/src/fflib/AFunction2.cpp
@@ -265,7 +265,7 @@ C_F0::C_F0(const Polymorphic * pop,const char *op,const  C_F0 & a,const  C_F0 &
  OneOperator::~OneOperator(){ 
        OneOperator * d=next;
        next=0; 
-       if(! CodeAlloc::cleanning) // hash FH (pour les fuite de m�moire)
+       if(! CodeAlloc::cleanning) // hash FH (pour les fuite de m�moire)
          while(d) 
         { 
          OneOperator * dd=d->next;
diff --git a/src/fflib/AFunction2.cpp.orig b/src/fflib/AFunction2.cpp.orig
deleted file mode 100644
index 9658a8e..0000000
--- a/src/fflib/AFunction2.cpp.orig
+++ /dev/null
@@ -1,1017 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-//#pragma dont_inline on
-//#pragma inline_depth(1)
-
-#include "config-wrapper.h"
-
-#include <complex>
-#include "AFunction.hpp"
-#include <cstdarg>
-#include <cstring>
-#include "error.hpp"
-#include "lex.hpp"
-
-#include "RNM.hpp"
-
-#include "Operator.hpp"
-// for exec routine 
-#include "rgraph.hpp"
-#include "InitFunct.hpp"
-
-<<<<<<< HEAD
-queue<pair<const E_Routine*,int> > *debugstack=0;
-=======
-queue<pair<const E_Routine*,int> > debugstack;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-
-class vectorOfInst : public  E_F0mps { public:
-    int n;
-    Expression * v;
-    vectorOfInst(int k): n(k),v(new Expression[k]) {ffassert(v);
-      for(int i=0;i<n;++i) v[i]=0; }
-    ~vectorOfInst(){ delete [] v;}
-    bool empty() const {return n;}
-
-   AnyType operator()(Stack s)  const {
-     for (int i=0;i<n;++i)
-      {
-       ffassert(v[i]);
-       (*(v[i]))(s);
-      }
-      return Nothing;
-   }
-  private: 
-  vectorOfInst(const vectorOfInst &);
-  void operator=(const vectorOfInst &);  
-};
-
-double  VersionNumber(); 
-
-OneOperator::pair_find OneOperator::Find(const ArrayOfaType & at)const
- { 
-      const OneOperator *w=0,*oo;
-      int nn=0,p=-10000;
- /*     for (oo=this;oo;oo=oo->next)
-        if (oo->pref>=p && oo->WithOutCast(at)) 
-          {
-           if(p<oo->pref) {nn=0;p=oo->pref;}
-           nn++;
-           w=oo;}
-      if (nn) return make_pair(w,nn);*/
-      for (int ncast=0;ncast<=n;ncast++) // loop on the number of cast 
-       {
-         p=-10000;
-         for (oo=this;oo;oo=oo->next)
-          if (oo->pref>=p && oo->WithCast(at,ncast)) 
-          { 
-           if(p<oo->pref) {nn=0;p=oo->pref;}
-            nn++;
-            w=oo;}
-         if (nn) return make_pair(w,nn);
-       }
-      for (oo=this;oo;oo=oo->next)
-        if (oo->WithCast(at)) 
-          {nn++;
-           w=oo;}
-       return make_pair(w,nn);       
-}
-
-OneOperator::pair_find OneOperator::FindWithOutCast(const ArrayOfaType & at)const
- { 
-      const OneOperator *w=0,*oo;
-      int n=0;
-      for (oo=this;oo;oo=oo->next)
-        if (oo->WithOutCast(at)) 
-          {n++;
-           w=oo;}
-      return make_pair(w,n);
-}
-
-OneOperator* OneOperator::FindSameR(const ArrayOfaType & at)
- { 
-     if (!this) return 0;
-      OneOperator *oo,*r;
-      int n=0;
-      for (oo=this;oo;oo=oo->next)
-        { 
-        //if (oo->WithOutCast(at)) 
-        if  (at==*oo)  n++,r=oo;        
-        else if (oo->WithOutCast(at)) n++,r=oo;
-      //  if (n) cout << " \t " << oo << " " << *oo  << " <-----> " << at << " n =" << n << endl;
-        }
-     // if (n>1) cout << "FindSameR " << n << endl;
-     // if (n)       cout << *r << " <-----> " << at << " n =" << n << endl;
-      return n==1 ? r : 0;
-}
-      
-void OneOperator::Show(ostream &f) const
-{         
-   const OneOperator *oo;
-   for (oo=this;oo;oo=oo->next)
-     f << "\t (" <<  *oo << ")\n";
- }   
-
-void OneOperator::Show(const ArrayOfaType & at,ostream &f) const
-{         
-         const OneOperator *oo;
-         int n=0,np=0;
-         for (oo=this;oo;oo=oo->next)
-           if (oo->WithOutCast(at)) {n++;f << "\t (" <<  *oo << ")\n";}
-         if(n==0) 
-          for (oo=this;oo;oo=oo->next)
-           if (oo->WithCast(at)) {
-              n++;
-              if (oo->pref) np++;
-              if (oo->pref) 
-                f <<   " c(" << oo->pref << ") \t (" <<  *oo << ")\n" ;
-                else f <<  " \t c(" <<  *oo << ")\n";
-              }
-         if (n==0) 
-          {
-           f << " List of choices "<< endl;
-           Show(f);            
-          }
-         else if (np != 1) 
-           f << " We have ambiguity " << n << endl; 
- }   
-       
-const  OneOperator * Polymorphic::Find(const char *op, const  ArrayOfaType &at) const
-  {
-    const_iterator i=m.find(op);
-    if (i!=m.end())  
-      { 
-       OneOperator::pair_find r=i->second->Find(at);
-       if (r.second==1) return r.first;
-       }    
-    return 0;
-  }
-const  OneOperator * Polymorphic::FindWithOutCast(const char *op, const  ArrayOfaType &at) const
-  {
-    const_iterator i=m.find(op);
-    if (i!=m.end())  
-      { 
-       OneOperator::pair_find r=i->second->FindWithOutCast(at);
-       if (r.second==1) return r.first;
-       }    
-    return 0;
-  }
- 
-  
-void Polymorphic::Show(const char *op,const ArrayOfaType & at,ostream &f)  const
-    {
-    const_iterator i=m.find(op);
-    if (i==m.end()) f << " unknow " << op << " operator " << endl;
-    else i->second->Show(at,f);
-  }
-
-// <<C_F0_constructor_pop_char_basicAC_F0_impl>> cf [[file:AFunction.hpp::C_F0_constructor_pop_char_basicAC_F0_decl]]
-C_F0::C_F0(const Polymorphic * poly,const char *op,const basicAC_F0 & p)
-{
-    ArrayOfaType at(p); 
-    if (poly) { // a Polymorphic => polymorphisme
-	const  OneOperator *  ff=poly->Find(op,at);
-	if (ff) { 
-	    /* cout << endl;
-	     poly->Show(op,at,cout);
-	     cout << op << ": (in " << at << ") => " << " " << *ff<< "\n\n";*/
-
-	  // [[file:AFunction.hpp::OneOperator_code2]]
-	  *this= ff->code2(p);
-	}
-	else
-	  { if(mpirank==0)
-	    {
-		cerr << " error operator " << op << " " << at << endl;
-		poly->Show(op,at,cerr);
-		// const  OneOperator *  ff=
-		poly->Find(op,at);
-	    }
-	      CompileError();
-	  }
-    }
-    else { 
-	//  no polymorphisme
-	if(mpirank==0){
-	    cerr << " const Polymorphic * poly,const char *op,const basicAC_F0 & p)   " << endl;
-	    cerr  << op << " " << at << endl;
-	}
-	    CompileError();          
-	}
-    }
-       
-
-
-
-//  operator without parameter
-C_F0::C_F0(const Polymorphic * pop,const char *op) 
-{
-  basicAC_F0  p;
-  p=0;
-  *this= C_F0(pop,op,p);
-}
-//  operator unaire
-C_F0::C_F0(const Polymorphic * pop,const char *op,const C_F0 & aa) 
-{
-  basicAC_F0  p;
-  C_F0 a(aa);
-  p=a;
-  *this= C_F0(pop,op,p);
-}
-
-// <<C_F0_constructor_binary_operator>> operator binaire
-C_F0::C_F0(const Polymorphic * pop,const char *op,const  C_F0 & a,const  C_F0 & b) 
-{
-  C_F0 tab[2]={a,b};
-  basicAC_F0 p;
-  p=make_pair<int,C_F0*>(2,tab);
-
-  // [[file:AFunction.hpp::C_F0_constructor_pop_char_basicAC_F0_decl]]
-  *this=C_F0(pop,op,p);
-}
-
-//  operator trinaire
-C_F0::C_F0(const Polymorphic * pop,const char *op,const  C_F0 & a,const  C_F0 & b,const  C_F0 & c) 
-{
-  C_F0 tab[3]={a,b,c};
-  basicAC_F0  p;
-  p=make_pair<int,C_F0*>(3,tab);
-  *this= C_F0(pop,op,p);
-}
-
-
- OneOperator::~OneOperator(){ 
-       OneOperator * d=next;
-       next=0; 
-       if(! CodeAlloc::cleanning) // hash FH (pour les fuite de m�moire)
-         while(d) 
-        { 
-         OneOperator * dd=d->next;
-         d->next=0;
-         delete d;
-         d=dd;
-        }
-  }
-
-    OneOperator::OneOperator(aType rr) 
-      : ArrayOfaType(),r(rr),next(0),pref(0) {throwassert(r);}
-    OneOperator::OneOperator(aType rr,aType  a) 
-      : ArrayOfaType(a,false),r(rr),next(0),pref(0) {throwassert(rr && a );}
-    OneOperator::OneOperator(aType rr,aType  a,aType  b)
-      : ArrayOfaType(a,b,false),r(rr),next(0),pref(0) {
-     throwassert(rr && a && b);} 
-    OneOperator::OneOperator(aType rr,aType  a,aType  b,aType c) 
-      : ArrayOfaType(a,b,c,false),r(rr),next(0),pref(0)
-        {throwassert(rr && a && b && c);} 
-    OneOperator::OneOperator(aType rr,aType  a,aType  b,aType c,aType d)
-      : ArrayOfaType(a,b,c,d,false),r(rr),next(0),pref(0) 
-      {throwassert(rr && a && b && c);} 
-    
-    OneOperator::OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e) 
-      : ArrayOfaType(a,b,c,d,e,false),r(rr),next(0),pref(0)
-       {throwassert(rr && a && b && c && d);} // Added by Fabian Dortu (5 parameters)
-    OneOperator::OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f) 
-      : ArrayOfaType(a,b,c,d,e,f,false),r(rr),next(0),pref(0) 
-      {throwassert(rr && a && b && c && d && e && f);} // Added by Fabian Dortu (6 parameters) 
-    OneOperator::OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f, aType g) 
-      : ArrayOfaType(a,b,c,d,e,f,g,false),r(rr),next(0),pref(0) 
-       {throwassert(rr && a && b && c && d && e && f && g);} // Added by Fabian Dortu (7 parameters) 
-    OneOperator::OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f, aType g, aType h) 
-     : ArrayOfaType(a,b,c,d,e,f,g,h,false),r(rr),next(0),pref(0) 
-       {throwassert(rr && a && b && c && d && e && f && g && h);} // Added by Fabian Dortu (8 parameters) 
-    OneOperator::OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f, aType g, aType h, aType i) 
-      : ArrayOfaType(a,b,c,d,e,f,g,h,i,false),r(rr),next(0),pref(0) 
-      {throwassert(rr && a && b && c && d && e && f && g && h && i);} // Added by Fabian Dortu (9 parameters) 
-    OneOperator::OneOperator(aType rr,aType  a,aType  b,aType c,aType d,aType e,aType f, aType g, aType h, aType i, aType j) 
-      : ArrayOfaType(a,b,c,d,e,f,g,h,i,j,false),r(rr),next(0),pref(0) 
-     {throwassert(rr && a && b && c && d && e && f && g && h && i && j);} // Added by Fabian Dortu (10 parameters) 
-    
-    
-    
-    OneOperator::OneOperator(aType rr,const ArrayOfaType &ta) 
-      : ArrayOfaType(ta),r(rr),next(0),pref(0) 
-       {throwassert(rr);} 
-    OneOperator::OneOperator(aType rr,bool ellipse) 
-      : ArrayOfaType(ellipse),r(rr),next(0),pref(0) 
-        {throwassert(rr );} 
-    OneOperator::OneOperator(aType rr,const ListOfId *l) 
-      : ArrayOfaType(l),r(rr),next(0),pref(0) 
-      {throwassert(rr );} 
-
-void Polymorphic::Addp(const char * op,Value pp,...) const 
-{
-  pair<iterator,bool>  p=m.insert(pair<const Key,Value>(op,pp));
-  Value f= p.first->second;	
-  if (!p.second)  // not insert => old 
-    *f += *pp;
-  va_list ap;
-  va_start(ap,pp);
-  for(pp=va_arg(ap,OneOperator * );pp;pp=va_arg(ap,OneOperator * ))
-    *f += *pp;
-/*  if ( ! strlen(op) )  
-   { // no polymorphisme
-     if(m.size() !=1 ||  !f->Simple()) {
-       cerr << " no polymorphisme and polymorphisme are mixed " << endl;
-    //   for_each(m.begin,m.end(),ShowOn_cerr);
-       CompileError();       
-     }   
-   } */
-}
-
-void Polymorphic::Add(const char * op,Value *pp) const
-{
-  if (*pp)
-   {
-    pair<iterator,bool>  p=m.insert(pair<const Key,Value>(op,*pp));
-    Value f= p.first->second;	
-    if (!p.second)  // not insert => old 
-      *f += **pp;
-    pp++;
-    for(;*pp;pp++)
-     *f += **pp;
-   /*if ( ! strlen(op) )  
-     { // no polymorphisme
-      if(m.size() !=1 ||  !f->Simple()) {
-       cerr << " no polymorphisme and polymorphisme are mixed " << endl;
-      //   for_each(m.begin,m.end(),ShowOn_cerr);
-       CompileError();       
-     }  } */ }
-     
-}
-
-
- int  FindType(const char * name)  
-   {
-   C_F0 r;
-
-     ListOfTOfId::const_iterator i=tables_of_identifier.begin();
-      for(;i!=tables_of_identifier.end();++i)
-      { 
-      TableOfIdentifier * ti=*i;     
-      r = ti->Find(name);
-      if (r.NotNull()) return r.TYPEOFID();
-    }
-     return 0;
-   } 
-
-/// <<Find>> uses [[file:global.cpp::tables_of_identifier]]
-
-C_F0 Find(const char * name)   
-{
-   C_F0 r;
-   ListOfTOfId::const_iterator i=tables_of_identifier.begin();
-   for(;i!=tables_of_identifier.end();++i)
-    { 
-      TableOfIdentifier * ti=*i;     
-      r = ti->Find(name);
-      if (r.NotNull()) return r;
-    }
-    if(mpirank==0)
-    cerr << " The Identifier " << name << " does not exist " << endl;
-    CompileError();
-    return r;
-}
-
-C_F0 TableOfIdentifier::destroy()
-{
- int k=0;
-// cout << "\n\t List of destroy variables " << m.size() << " : " ; 
- for (pKV * i=listofvar;i;i=i->second.next)
-   {
-     if  (i->second.del && i->second.first->ExistDestroy() )
-    // cout  << i->first << ", " ;
-     assert(i->second.first);
-     if (i->second.del && i->second.first->ExistDestroy() ) k++;
-   }
-// cout << endl;
-/*  old code 
- ListOfInst *l=new ListOfInst(k);
- for (pKV * i=listofvar;i;i=i->second.next)
-     if (i->second.del && i->second.first->ExistDestroy()) 
-       l->Add(i->second.first->Destroy(i->second) );
-*/
-// new code 
-  vectorOfInst * l= new vectorOfInst(k);
-  int j=0;
- for (pKV * i=listofvar;i;i=i->second.next)
-     if (i->second.del && i->second.first->ExistDestroy()) 
-       l->v[j++]=i->second.first->Destroy(i->second) ;
-  ffassert(j==k);
- return C_F0(l);     
-}
-
-   void TableOfIdentifier::clear()
-   {
-     for (iterator i=m.begin();i!=m.end();++i)
-       {
-        
-   //     delete i->first;
-        }
-     m.clear();
-   } 
-
-Expression basicForEachType::Destroy(const C_F0 & e) const 
-{
-    return destroy ? NewExpression(destroy,e) : (Expression)  e;
-} 
-
-basicForEachType::~basicForEachType()
-  {
-   if(casting) delete casting;
-   ti.clear();
-  }
-
-basicForEachType::basicForEachType(const type_info  & k,
-                                          const size_t s,
-                                          const E_F1_funcT_Type * p,
-                                          basicForEachType *rr,
-                                          Function1 iv,Function1 id, Function1  dreturn) 
-      : ktype(&k),//ktypefunc(0),
-        size(s),
-        un_ptr_type(rr?rr:this), 
-        casting(0), // no casting to 
-        un_ptr(p),
-        InitExp(iv),
-        DoOnReturn(dreturn),
-        //funct_type(0),
-        destroy(id) {} 
- void basicForEachType::SetArgs(const ListOfId *lid) const
-{ SHOWVERB(cout << "SetArgs::\n ") ;ffassert(lid==0 || lid->size()==0);}
-
-
-
- TableOfIdentifier::TableOfIdentifier() : listofvar(0) {}
- TableOfIdentifier:: ~TableOfIdentifier() {}
-
-
-Block::Block(Block * f):fatherblock(f),top(f?f->top:BeginOffset*sizeof(void*)),topmax(top)
-    {     
-      itabl=tables_of_identifier.insert(tables_of_identifier.begin(),&table);
-    }
-Block::~Block(){} 
-
- CC_F0  Block::close(Block *& c) {
-     tables_of_identifier.erase(itabl);      
-     c=fatherblock;
-     if (fatherblock) {fatherblock->topmax=topmax;
-                       fatherblock->top=top;}
-        
-     CC_F0 r;
-     r = table.destroy();
-     delete this;
-     return r;}
- 
-   Block * Block::open(Block *& cb)
-   {
-     return  cb = new Block(cb); 
-   }
-  
-    
-const  Type_Expr &   TableOfIdentifier::New(Key k,const Type_Expr & v,bool del)
-  {
-    if( this != &Global) {
-	if ( Global.m.find(k) != Global.m.end() )
-	  {
-	    if(mpirank==0) 
-	      cerr << "\n *** Warning  The identifier " << k << " hide a Global identifier  \n";
-	    
-	  }
-    }
-      pair<iterator,bool>  p=m.insert(pKV(k,Value(v,listofvar,del)));
-      listofvar = &*m.find(k);
-      if (!p.second) 
-	{
-	    if(mpirank==0) {
-		cerr << " The identifier " << k << " exists \n";
-		cerr << " \t  the existing type is " << *p.first->second.first << endl;
-		cerr << " \t  the new  type is " << *v.first << endl;
-	    }
-	    CompileError();
-	}
-      return v;
-  }
- void  TableOfIdentifier::Add(Key k,Key op,OneOperator *p0,OneOperator *p1,
-      OneOperator *p2,OneOperator *p3,OneOperator *p4,OneOperator *p5,OneOperator *p6)
-  {
-      iterator i= m.find(k);
-      if (i==m.end()) // new
-	{
-	    Value poly0=Value(atype<Polymorphic*>(),new Polymorphic(),listofvar);     
-	    i=m.insert(pair<const Key,Value>(k,poly0)).first;
-	    listofvar= &*i;
-	}
-      const Polymorphic * p= dynamic_cast<const Polymorphic *>(i->second.second);
-      if ( !p) { 
-	  if(mpirank==0)
-	      cerr << k << " is not a Polymorphic id " << endl;
-	  CompileError();
-      }
-      p->Add(op,p0,p1,p2,p3,p4,p5,p6);
-  }
-
- ArrayOfaType::ArrayOfaType(const ListOfId * l)
-  : n(l->size()),t(new aType[n]),ellipse(false)
- {
-    for (int i=0;i<n;i++) 
-      {
-      t[i]=(*l)[i].r;  
-       if ( ! t[i])
-        {
-	   if(mpirank==0) 
-           cerr << " Argument " << i << " '"<< (*l)[i].id << "' without type\n";
-           CompileError("DCL routine: Argument without type ");
-         }
-      }
- }
-
-bool ArrayOfaType::WithOutCast( const ArrayOfaType & a) const 
- {
-   if ( ( !ellipse && (a.n != n))  || (ellipse && n > a.n) ) return false;
-   for (int i=0;i<n;i++)
-       if (! a.t[i]->SametypeRight(t[i])) 
-        return false;       
- // cerr << " TRUE " << endl;    
-   return true;
- }
-
-  
-bool ArrayOfaType::WithCast( const ArrayOfaType & a,int nbcast) const 
- {  
-   if (  ( !ellipse && (a.n != n))  || (ellipse && n > a.n) ) return false;
-   for (int i=0;i<n;i++)
-     if ( a.t[i]->SametypeRight(t[i])) ;
-     else if (! t[i]->CastingFrom(a.t[i])) return false; 
-     else if ( --nbcast <0) return false;
-   return true;
- }    
- 
-void basicForEachType::AddCast(CastFunc f1,CastFunc f2,CastFunc f3,CastFunc f4,
-  CastFunc f5,CastFunc f6,CastFunc f7,CastFunc f8)
-  {
-      CastFunc ff[]={f1,f2,f3,f4,f5,f6,f7,f8,0};
-      for (int i=0;ff[i];i++)
-	{
-	    ffassert(this == *ff[i] );
-	    if (casting->FindSameR(*ff[i]))
-	      {
-		  if(mpirank==0)
-		    {
-			cerr << " The casting to " << *ff[i] << " exists " << endl;
-			cerr << " List of cast " << endl;
-			casting->Show(cerr);
-		    }
-		  CompileError();
-	      }
-	    if (casting)  *casting += *ff[i];
-	    else casting = ff[i];
-	    /*      
-	     if( ! mapofcast.insert(make_pair<const aType,CastFunc>(ff[i]->a,ff[i])).second) 
-	     {
-	     cerr << " The casting to "<< *this << " from " << ff[i]->a << " exists " << endl;
-	     cerr << " List of cast " << endl;
-	     for_each(mapofcast.begin(),mapofcast.end(),CerrCast);
-	     CompileError();
-	     } */
-	}
-  }
-
- ostream & operator<<(ostream & f,const OneOperator & a)     
-{
-//   for(const OneOperator * tt=&a;tt;tt=tt->next)
-     f << "\t  " << * (a.r) << " :  "  <<(const ArrayOfaType &) a;
-   return f;   
-}
-
- ostream & operator<<(ostream & f,const Polymorphic & a)
-{
-  Polymorphic::const_iterator i;
-  if(!&a) return f << "Null " << endl;
-  for (i=a.m.begin();i!=a.m.end();i++)
-   {
-    f << "   operator" << i->first << " : " << endl;
-    i->second->Show(f);
-   }
-  return f;
-}  
- ostream & operator<<(ostream & f,const ArrayOfaType & a)
-   { 
-     for (int i=0;i<a.n;i++) 
-       f <<  (i ? ", " : " ") << *a.t[i];
-       if (a.ellipse ) f << "... ";
-       else            f << " "; 
-      return f;}
-    ostream & operator<<(ostream & f,const TableOfIdentifier & t )
- {
-   TableOfIdentifier::const_iterator i;
-   for(i=t.m.begin();i!=t.m.end();i++)
-    {
-      TableOfIdentifier::Value v=i->second;
-      f << i->first << ":  " << *v.first << " <- " ; 
-      const Polymorphic * p=dynamic_cast<const Polymorphic *>(v.second);
-      if(p) f << "Polymorphic " << *p << endl;
-      else  f << " Simple @" <<  v.second << endl;
-    }
-    return f;
- }
- 
-Expression NewExpression(Function1 f,Expression a)
-{
-  ffassert(f);
-  return new E_F0_Func1(f,a);
-}
-Expression NewExpression(Function2 f,Expression a,Expression b)
-{
-  ffassert(f);
-  return new E_F0_Func2(f,a,b);
- 
-}
- 
- void ShowType(ostream & f)
- {
- 
-   map<const string,basicForEachType *>::const_iterator i;
-   for(i=map_type.begin();i!=map_type.end();i++)
-     {
-       f << " --"<< i->first <<" = " ; 
-       i->second->Show(f) ;
-       f << endl;
-     }
-
- }
-
- void basicForEachType::Show(ostream & f) const {
-       f << " " <<* this << endl;
-       if (casting) casting->Show(f) ;
-       if (ti.m.size())
-        { 
-          TableOfIdentifier::const_iterator mc=ti.m.begin();
-          TableOfIdentifier::const_iterator end=ti.m.end();
-          for (;mc != end;mc++)
-          {
-            f  << "    " << mc->first << ",  type :" <<  *mc->second.first << endl;
-            const Polymorphic * op =dynamic_cast<const Polymorphic *>(mc->second.second) ;
-            if ( op )  f << *op << endl;
-          }
-        }
-   }
- 
-
-
-
-
-E_Routine::E_Routine(const Routine * routine,const basicAC_F0 & args)
-  :    code(routine->ins),
-       clean(routine->clean),
-       rt(routine->tret),      
-       nbparam(args.size()),
-       param(new Expression[nbparam]),
-       name(routine->name)
-{    
-   assert(routine->ins); 
-   for (int i=0;i<args.size();i++)  //  bug pb copie des string   dec 2007  FH  ???????????????
-   {
-      // cout << "E_Routine " << *routine->param[i].r << " <- " << *args[i].left() << endl;
-        param[i]=routine->param[i].r->CastTo(args[i]);
-   }
-};
-
-E_Routine::~E_Routine() { delete [] param;}
-
-struct CleanE_Routine {
-  const E_Routine * er; 
-    Stack s;
-    AnyType * l;
-    CleanE_Routine(const  E_Routine * r,Stack ss,AnyType *ll): er(r),s(ss),l(ll) {}
-    ~CleanE_Routine() {
-   // cout << " Clean E_routine " << er <<endl;	
-    (*er->clean)(s);
-    delete [] l; 
-    }
-};
-
-AnyType E_Routine::operator()(Stack s)  const  {
-<<<<<<< HEAD
-   debugstack->push(pair<const E_Routine*,int>(this,TheCurrentLine));
-=======
-   debugstack.push(pair<const E_Routine*,int>(this,TheCurrentLine));
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-   const int lgsave=BeginOffset*sizeof(void*);
-   char  save[lgsave];
-   AnyType ret=Nothing;
-   memcpy(save,s,lgsave); // save  
-    AnyType *listparam;
- //  Add2StackOfPtr2Free(s,new CleanE_Routine(this,s,listparam=new AnyType[nbparam]));
-    Add2StackOfPtr2FreeA(s,listparam=new AnyType[nbparam]);
-    
-    //   AnyType *listparam =Add2StackOfPtr2FreeA(s,new AnyType[nbparam]);
-   // 
- //  WhereStackOfPtr2Free(s)->Add2StackOfPtr2Free(s,listparam);
-//  to day the memory gestion of the local variable are static,   
-   for (int i=0;i<nbparam;i++)
-     listparam[i]= (*param[i])(s); // set of the parameter 
-   Stack_Ptr<AnyType>(s,ParamPtrOffset) = listparam;
-   WhereStackOfPtr2Free(s)=new StackOfPtr2Free(s);// FH mars 2006 
- 
-   try {  
-      ret=(*code)(s);  }
-   catch( E_exception & e) { 
-          // cout << " catch " << e.what() << " clean & throw " << endl;
-<<<<<<< HEAD
-            if (e.type() == E_exception::e_return)
-=======
-           if (e.type() == E_exception::e_return)  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-              ret = e.r;
-           else 
-              ErrorExec("E_exception: break or contine not in loop ",1);
-  }
-  catch(...) { // clean and rethrow the exception 
-      //::delete [] listparam; 
-       (*clean)(s); 
-      WhereStackOfPtr2Free(s)->clean(); // FH mars 2005 
-      memcpy(s,save,lgsave);  // restore 
-<<<<<<< HEAD
-      TheCurrentLine=debugstack->front().second;
-      debugstack->pop();
-=======
-      TheCurrentLine=debugstack.front().second;
-      debugstack.pop();
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      throw ;             
-     }
-  
-    (*clean)(s); //  the clean is done in CleanE_Routine delete .         
-   //  delete [] listparam; after return 
-    memcpy(s,save,lgsave);  // restore 
-<<<<<<< HEAD
-    TheCurrentLine=debugstack->front().second;
-    debugstack->pop();
-=======
-    TheCurrentLine=debugstack.front().second;
-    debugstack.pop();
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-   // il faudrait que les variable locale soit detruire apres le return 
-   // cf routine clean, pour le cas ou l'on retourne un tableau local.
-   // plus safe ?????  FH.  (fait 2008)
-   // mais pb si   a = f()+g()   OK les pointeurs des instruction sont detruit
-    //  en fin d'instruction programme de l'appelant  FH 2007 
-   // ... ou alors changer le return ???? qui doit copie le resultat.. (voir)
-   return ret;
-}
-
-void ListOfInst::Add(const C_F0 & ins) { 
-       if( (!ins.Empty()) ) {
-      if (n%nx==0){ 
-                Expression   *  l = new Expression [n+nx];
-                int * ln =  new int [n+nx];
-      			for (int i=0;i<n;i++) {
-      			  l[i]=list[i];
-      			  ln[i]=linenumber[i];}
-      			delete [] list;
-      			delete [] linenumber;
-      			list =l;
-      			linenumber=ln;
-      		    }
-      throwassert(list);
-      linenumber[n]= TheCurrentLine;		    
-      list[n++] = ins;
-      }}
-      
-/// <<ListOfInst::operator()>> Iteratively calls each item in the local array #list of type #Expression
-
-AnyType ListOfInst::operator()(Stack s) const {     
-    AnyType r; 
-    double s0=CPUtime(),s1=s0,ss0=s0;
-    StackOfPtr2Free * sptr = WhereStackOfPtr2Free(s);
-    try { // modif FH oct 2006 
-	for (int i=0;i<n;i++) 
-	{
-	    TheCurrentLine=linenumber[i];
-	    r=(*list[i])(s);
-	    sptr->clean(); // modif FH mars 2006  clean Ptr
-	    s1=CPUtime();
-	    if (showCPU)  
-		cout << " CPU: "<< i << " " << s1-s0 << "s" << " " << s1-ss0 << "s" << endl;
-	    s0=CPUtime();
-	}
-    }
-    catch( E_exception & e) 	
-    {
-	if (e.type() != E_exception::e_return)  
-	    sptr->clean(); // pour ne pas detruire la valeur retourne  ...  FH  jan 2007
-	throw; // rethow  
-    }
-    catch(...)
-    {
-	sptr->clean();
-	throw; 
-    }
-    return r;}
-
-AnyType E_block::operator()(Stack s)  const {
-    StackOfPtr2Free * sptr = WhereStackOfPtr2Free(s);
-    if (clean) 
-    {
-	try { 
-	    for (int i=0;i<n;i++) {
-		TheCurrentLine=linenumber[i];
-		(*code[i])(s); 
-		sptr->clean();
-		
-            }}
-	catch( E_exception & e) { 
-	    (*clean)(s); 
-	    if (e.type() != E_exception::e_return)  
-		sptr->clean();
-	    throw; // rethow  
-	}
-	catch(/* E_exception & e*/...) { // catch all for cleanning 
-	    (*clean)(s); 
-	    sptr->clean();
-	    // if(verbosity>50)
-	    //  cout << " catch " << e.what() << " clean & throw " << endl;
-	    // throw(e);
-            throw; // rethow 
-	}
-	
-	(*clean)(s); 
-	sptr->clean();
-	
-    }
-    else  // not catch  exception if no clean (optimization} 
-	for (int i=0;i<n;i++) 
-	{
-	    (*code[i])(s); 
-	    sptr->clean(); // mars 2006 FH clean Ptr
-	}
-	    return Nothing;
-   }
-
-
-void ShowDebugStack()
- {
-   if (mpisize)
-   cerr << "  current line = " << TheCurrentLine  
-        << " mpirank " << mpirank << " / " << mpisize <<endl; 
-   else
-<<<<<<< HEAD
-   cerr << "  current line = " << TheCurrentLine  << endl;
-  if(debugstack)
-   while ( debugstack->size() )
-     {
-        
-        cerr << " call " << debugstack->front().first->name<< "  at  line "
-             <<debugstack->front().second << endl;
-        debugstack->pop();
-=======
-   cerr << "  current line = " << TheCurrentLine  << endl; 
-   while ( debugstack.size() )
-     {
-        
-        cerr << " call " << debugstack.front().first->name<< "  at  line " 
-             <<debugstack.front().second << endl; 
-        debugstack.pop();     
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-     }
- }
- 
-
-  int  E_F0::Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n)  
-     {
-      int rr = find(m);
-      if (rr) return rr;
-      if( (verbosity / 10)% 10 == 1) 
-      	 cout << "\n new expression : " << n  << " mi=" << MeshIndependent()<< " " << typeid(*this).name()  
-      	      << " :" << *this << endl;        
-       return insert(this,l,m,n);
-     }   
-     
-
-class E_F0para :public E_F0 { public:
-  const int i;
-  AnyType operator()(Stack s)  const  {
-  //  return  (* Stack_Ptr<Expression>(s,ParamPtrOffset)[i])(s);
-    return Stack_Ptr<AnyType>(s,ParamPtrOffset)[i];
-  }
-   E_F0para(int ii) : i(ii){}
-};        
-     
-Routine::Routine(aType tf,aType tr,const char * iden,  ListOfId *l,Block * & cb)
-    : OneOperator(tr,l),offset(cb->OffSet(sizeof(void*))),
-     tfunc(tf),tret(tr),name(iden),param(*l),
-      currentblock(new Block(cb)),ins(0),clean(0) 
-     {
-       delete l;  // add  FH 24032005 (trap ) 
-       cb = currentblock; 
-	// cout <<"Routine: tf = " << *tf << "  " <<  *tr << endl;
-       for (size_t i=0;i<param.size();i++)
-       {
-	//   cout << "Routine " << i << " ref=  " << param[i].ref << " " << *param[i].r << " " << *param[i].r->right() << endl;
-           currentblock->NewID(param[i].r,param[i].id,C_F0(new E_F0para(i),// modif FH 2007 
-							   param[i].r), 
-							  // (param[i].ref ? param[i].r :  param[i].r->right() ),
-							   !param[i].ref);
-       }
-     }
-   Block * Routine::Set(C_F0 instrs) 
-       { 
-         ins=instrs;
-         clean = (C_F0) currentblock->close(currentblock);
-         return    currentblock;} 
-         
- 
-E_F0 * Routine::code(const basicAC_F0 & args) const 
-{
-   
-   return new E_Routine(this,args);
-}
-
-void basicAC_F0::SetNameParam(int n,name_and_type *l , Expression * e) const 
-{
- int k=0;
- if ( !n && !named_parameter)  return;
- 
-  for (int i=0;i<n;i++)
-  {
-     C_F0  ce=find(l[i].name) ;
-     if (ce.LeftValue()==0)
-       e[i]=0;
-     else  {
-       if(!map_type[l[i].type->name()] )
-	 {
-	     if(mpirank==0)
-	       {
-		   cerr << " missing ff type: '" <<l[i].type->name() << "'   "<< map_type.size()  <<  "\n";
-		   cerr << "i= " << i << "\n";
-	       }
-	   InternalError(" missing type ");
-	   assert(map_type[l[i].type->name()]);
-	 }
-       e[i]= map_type[l[i].type->name()]->CastTo(ce);
-       k++;
-       }
-  }
-  
- if (!named_parameter) return;
-  
-  if ((size_t) k!=  named_parameter->size()) 
-   {
-      cout << " Sorry some name parameter are not used!  found" <<  k << " == " << named_parameter->size() <<endl;
-      for(const_iterator ii=named_parameter->begin(); ii != named_parameter->end();ii++)
-       {
-        for (int i=0;i<n;i++)
-          if (!strcmp(l[i].name,ii->first)) 
-            goto L1;
-         cout << "\t the parameter is '" << ii->first << "' is unused " << endl;
-        L1:;
-       }
-    if ( n && mpirank==0) {
-    cerr << " The named parameter can be " << endl;
-    for (int i=0;i<n;i++)
-       cerr << "\t" << l[i].name << " =  <" << l[i].type->name() << ">\n";
-    }
-    CompileError("Unused named parameter");  
-   }
-}
-
-
-//  change FH to bluid .dll 
-
-void lgerror (const char* s) 
-  {
-      if(mpirank==0)
-	{
-	    cerr << endl;
-	    cerr <<" Error line number " << zzzfff->lineno() << ", in file " << zzzfff->filename() 
-	    <<", before  token " <<zzzfff->YYText() << endl
-	    << s << endl;
-	}
-      throw(ErrorCompile(s,zzzfff->lineno(),zzzfff->YYText() ));
-  }
-
diff --git a/src/fflib/InitFunct.hpp.orig b/src/fflib/InitFunct.hpp.orig
deleted file mode 100644
index 7d2f6a7..0000000
--- a/src/fflib/InitFunct.hpp.orig
+++ /dev/null
@@ -1,84 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef INITSFUNCT_HPP_
-#define INITSFUNCT_HPP_
-#include "ffapi.hpp"
- 
-void  addInitFunct(int i,void  (* f)(),const char *name) ;
-void  callInitsFunct() ;
-
-class  addingInitFunct {  public:
-  addingInitFunct(int i,void  (* f)(),const char *name="") { addInitFunct(i,f,name);}
-} ;
-
-//
-#if WIN32
-#define LOADINITIO {					\
-    streambuf * so =ffapi::cout()->rdbuf() ;		\
-    streambuf * si =ffapi::cin()->rdbuf() ;		\
-    streambuf * se =ffapi::cerr()->rdbuf() ;		\
-    if( so &&  cout.rdbuf() != so ) cout.rdbuf(so);	\
-    if( si &&  cin.rdbuf() != si ) cin.rdbuf(si);	\
-    if( se &&  cerr.rdbuf() != se ) cerr.rdbuf(se);	\
-} 
-#else
-#define LOADINITIO {					\
-    streambuf * so =ffapi::cout()->rdbuf() ;		\
-    streambuf * si =ffapi::cin()->rdbuf() ;		\
-    streambuf * se =ffapi::cerr()->rdbuf() ;		\
-    if( so &&  cout.rdbuf() != so ) cout.rdbuf(so);	\
-    if( si &&  cin.rdbuf() != si ) cin.rdbuf(si);	\
-    if( se &&  cerr.rdbuf() != se ) cerr.rdbuf(se);	\
-    stdout = ffapi::ffstdout();\
-    stderr = ffapi::ffstderr();\
-    stdin = ffapi::ffstdin();\
-} 
-#endif
-
-  
-#define LOADINITNM(EXEC,NM)						\
-  static  void  AutoLoadInit() { LOADINITIO ;				\
-    if(verbosity>9) cout << "\n loadfile " NM  "\n" ;			\
-    EXEC; }								\
-  int DoLoadInit() {							\
-    if(verbosity>9)							\
-      cout << " ****  " << NM  <<  " ****\n" ;				\
-    addInitFunct(10000,&AutoLoadInit,NM);				\
-    return 2;}								\
-									\
-  static int callDoLoadInit=DoLoadInit();				
-
-<<<<<<< HEAD
-#define LOADINIT(TI) LOADINITNM(TI init obsolete,__FILE__)			     
-=======
-#define LOADINIT(TI) LOADINITNM(TI init,__FILE__)			     
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-#define LOADFUNC(FC) LOADINITNM(FC() ,__FILE__)			     
-
-
-#endif
diff --git a/src/fflib/Makefile.am.orig b/src/fflib/Makefile.am.orig
deleted file mode 100644
index 1695523..0000000
--- a/src/fflib/Makefile.am.orig
+++ /dev/null
@@ -1,75 +0,0 @@
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-
-noinst_LIBRARIES=libff.a
-
-# FFCS - 28/11/11 - ffapi.cpp cannot be part of libff.a because it
-# needs to be compiled with different options depending on the
-# executable it is included in (eg with/without MPI)
-
-libff_a_SOURCES2=  UMFPack_Solver.cpp \
-AFunction.cpp AFunction2.cpp  \
- array_long.cpp          array_real.cpp        array_complex.cpp \
-lex.cpp lgmesh.cpp	lgmesh3.cpp 	\
-CodeAlloc.cpp lgmat.cpp global.cpp 					\
-../femlib/Drawing.cpp ../femlib/gibbs.cpp				\
-../femlib/CheckPtr.cpp ../femlib/fem.cpp				\
-../femlib/QuadratureFormular.cpp ../femlib/FESpace.cpp			\
-../femlib/Element_RT.cpp ../femlib/mshptg.cpp ../femlib/FQuadTree.cpp	\
-../bamglib/QuadTree.cpp ../bamglib/R2.cpp ../bamglib/Meshio.cpp		\
-../bamglib/Mesh2.cpp ../bamglib/Metric.cpp ../femlib/BamgFreeFem.cpp	\
-../bamglib/MeshDraw.cpp ../bamglib/MeshGeom.cpp				\
-../bamglib/MeshQuad.cpp ../bamglib/SetOfE4.cpp ../bamglib/MeshRead.cpp	\
-<<<<<<< HEAD
-../bamglib/write_hdf5.cpp ../bamglib/write_hdf5.hpp ../bamglib/write_xdmf.cpp \
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-../bamglib/MeshWrite.cpp problem.cpp mt19937ar.cpp \
-../Graphics/DefColor.cpp \
- InitFunct.cpp ../Algo/lgalgo.cpp			\
-../femlib/Element_P2h.cpp load.cpp lgfem.cpp AFunction.hpp AnyType.hpp	\
-error.hpp ../femlib/gmres.hpp InitFunct.hpp lex.hpp lgfem.hpp lgmesh3.hpp \
-lgmesh.hpp lgsolver.hpp	\
-Operator.hpp problem.hpp Serialize.hpp showverb.hpp String.hpp		\
-throwassert.hpp versionnumber.hpp  CodeAlloc.hpp \
-array_init.hpp  array_tlp.hpp array_resize.hpp \
-strversionnumber.hpp ffstack.hpp AddNewFE.h \
-environment.cpp environment.hpp string_def.cpp \
-../femlib/FESpacen.cpp \
-../femlib/P012_1d.cpp \
-../femlib/P012_2d.cpp \
-../femlib/P012_3d.cpp \
-../femlib/Mesh1dn.cpp \
-../femlib/Mesh2dn.cpp \
-../femlib/Mesh3dn.cpp \
-../femlib/GQuadTree.cpp \
-../femlib/libmesh5.c \
-glumesh2D.cpp \
-PlotStream.hpp \
-endian.hpp \
-ff++.hpp \
-../Eigen/arpackff.hpp \
-../femlib/splitsimplex.cpp AFunction_ext.hpp \
-ffapi.hpp P1IsoValue.cpp	P1IsoValue.hpp
-
-libff_a_SOURCES=$(libff_a_SOURCES2)  strversionnumber.cpp 
-
-# eigenvalue.cpp is optional (see configure.ac)
-EXTRA_libff_a_SOURCES=../Eigen/eigenvalue.cpp
-libff_a_LIBADD=@EIGENOBJ@
-libff_a_DEPENDENCIES=@EIGENOBJ@
-
-<<<<<<< HEAD
-AM_CPPFLAGS=-I$(srcdir)/../lglib -I$(srcdir)/../bamglib -I$(srcdir)/../Graphics -I$(srcdir)/../femlib $(HDF5_CPPFLAGS)
-=======
-AM_CPPFLAGS=-I$(srcdir)/../lglib -I$(srcdir)/../bamglib -I$(srcdir)/../Graphics -I$(srcdir)/../femlib
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-# -I$(top_srcdir)/arpack/arpack++/include
-
-# Build date changes at every change
-EXTRA_DIST=strversionnumber.m4
-BUILT_SOURCES=strversionnumber.cpp
-strversionnumber.cpp: $(libff_a_SOURCES2) ../../configure
-	m4 -DVersionFreeFemDate="`date`" strversionnumber.m4 > $@
-FORCE:
diff --git a/src/fflib/Makefile.in b/src/fflib/Makefile.in
deleted file mode 100644
index b2fce5e..0000000
--- a/src/fflib/Makefile.in
+++ /dev/null
@@ -1,1399 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/fflib
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AM_V_AR = $(am__v_AR_ at AM_V@)
-am__v_AR_ = $(am__v_AR_ at AM_DEFAULT_V@)
-am__v_AR_0 = @echo "  AR      " $@;
-am__v_AR_1 = 
-libff_a_AR = $(AR) $(ARFLAGS)
-am__objects_1 = UMFPack_Solver.$(OBJEXT) AFunction.$(OBJEXT) \
-	AFunction2.$(OBJEXT) array_long.$(OBJEXT) array_real.$(OBJEXT) \
-	array_complex.$(OBJEXT) lex.$(OBJEXT) lgmesh.$(OBJEXT) \
-	lgmesh3.$(OBJEXT) CodeAlloc.$(OBJEXT) lgmat.$(OBJEXT) \
-	global.$(OBJEXT) Drawing.$(OBJEXT) gibbs.$(OBJEXT) \
-	CheckPtr.$(OBJEXT) fem.$(OBJEXT) QuadratureFormular.$(OBJEXT) \
-	FESpace.$(OBJEXT) Element_RT.$(OBJEXT) mshptg.$(OBJEXT) \
-	FQuadTree.$(OBJEXT) QuadTree.$(OBJEXT) R2.$(OBJEXT) \
-	Meshio.$(OBJEXT) Mesh2.$(OBJEXT) Metric.$(OBJEXT) \
-	BamgFreeFem.$(OBJEXT) MeshDraw.$(OBJEXT) MeshGeom.$(OBJEXT) \
-	MeshQuad.$(OBJEXT) SetOfE4.$(OBJEXT) MeshRead.$(OBJEXT) \
-	write_hdf5.$(OBJEXT) write_xdmf.$(OBJEXT) MeshWrite.$(OBJEXT) \
-	problem.$(OBJEXT) mt19937ar.$(OBJEXT) DefColor.$(OBJEXT) \
-	InitFunct.$(OBJEXT) lgalgo.$(OBJEXT) Element_P2h.$(OBJEXT) \
-	load.$(OBJEXT) lgfem.$(OBJEXT) environment.$(OBJEXT) \
-	string_def.$(OBJEXT) FESpacen.$(OBJEXT) P012_1d.$(OBJEXT) \
-	P012_2d.$(OBJEXT) P012_3d.$(OBJEXT) Mesh1dn.$(OBJEXT) \
-	Mesh2dn.$(OBJEXT) Mesh3dn.$(OBJEXT) GQuadTree.$(OBJEXT) \
-	libmesh5.$(OBJEXT) glumesh2D.$(OBJEXT) splitsimplex.$(OBJEXT) \
-	P1IsoValue.$(OBJEXT)
-am_libff_a_OBJECTS = $(am__objects_1) strversionnumber.$(OBJEXT)
-libff_a_OBJECTS = $(am_libff_a_OBJECTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-SOURCES = $(libff_a_SOURCES) $(EXTRA_libff_a_SOURCES)
-DIST_SOURCES = $(libff_a_SOURCES) $(EXTRA_libff_a_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-noinst_LIBRARIES = libff.a
-
-# FFCS - 28/11/11 - ffapi.cpp cannot be part of libff.a because it
-# needs to be compiled with different options depending on the
-# executable it is included in (eg with/without MPI)
-libff_a_SOURCES2 = UMFPack_Solver.cpp \
-AFunction.cpp AFunction2.cpp  \
- array_long.cpp          array_real.cpp        array_complex.cpp \
-lex.cpp lgmesh.cpp	lgmesh3.cpp 	\
-CodeAlloc.cpp lgmat.cpp global.cpp 					\
-../femlib/Drawing.cpp ../femlib/gibbs.cpp				\
-../femlib/CheckPtr.cpp ../femlib/fem.cpp				\
-../femlib/QuadratureFormular.cpp ../femlib/FESpace.cpp			\
-../femlib/Element_RT.cpp ../femlib/mshptg.cpp ../femlib/FQuadTree.cpp	\
-../bamglib/QuadTree.cpp ../bamglib/R2.cpp ../bamglib/Meshio.cpp		\
-../bamglib/Mesh2.cpp ../bamglib/Metric.cpp ../femlib/BamgFreeFem.cpp	\
-../bamglib/MeshDraw.cpp ../bamglib/MeshGeom.cpp				\
-../bamglib/MeshQuad.cpp ../bamglib/SetOfE4.cpp ../bamglib/MeshRead.cpp	\
-../bamglib/write_hdf5.cpp ../bamglib/write_hdf5.hpp ../bamglib/write_xdmf.cpp \
-../bamglib/MeshWrite.cpp problem.cpp mt19937ar.cpp \
-../Graphics/DefColor.cpp \
- InitFunct.cpp ../Algo/lgalgo.cpp			\
-../femlib/Element_P2h.cpp load.cpp lgfem.cpp AFunction.hpp AnyType.hpp	\
-error.hpp ../femlib/gmres.hpp InitFunct.hpp lex.hpp lgfem.hpp lgmesh3.hpp \
-lgmesh.hpp lgsolver.hpp	\
-Operator.hpp problem.hpp Serialize.hpp showverb.hpp String.hpp		\
-throwassert.hpp versionnumber.hpp  CodeAlloc.hpp \
-array_init.hpp  array_tlp.hpp array_resize.hpp \
-strversionnumber.hpp ffstack.hpp AddNewFE.h \
-environment.cpp environment.hpp string_def.cpp \
-../femlib/FESpacen.cpp \
-../femlib/P012_1d.cpp \
-../femlib/P012_2d.cpp \
-../femlib/P012_3d.cpp \
-../femlib/Mesh1dn.cpp \
-../femlib/Mesh2dn.cpp \
-../femlib/Mesh3dn.cpp \
-../femlib/GQuadTree.cpp \
-../femlib/libmesh5.c \
-glumesh2D.cpp \
-PlotStream.hpp \
-endian.hpp \
-ff++.hpp \
-../Eigen/arpackff.hpp \
-../femlib/splitsimplex.cpp AFunction_ext.hpp \
-ffapi.hpp P1IsoValue.cpp	P1IsoValue.hpp
-
-libff_a_SOURCES = $(libff_a_SOURCES2)  strversionnumber.cpp 
-
-# eigenvalue.cpp is optional (see configure.ac)
-EXTRA_libff_a_SOURCES = ../Eigen/eigenvalue.cpp
-libff_a_LIBADD = @EIGENOBJ@
-libff_a_DEPENDENCIES = @EIGENOBJ@
-AM_CPPFLAGS = -I$(srcdir)/../lglib -I$(srcdir)/../bamglib -I$(srcdir)/../Graphics -I$(srcdir)/../femlib $(HDF5_CPPFLAGS)
-# -I$(top_srcdir)/arpack/arpack++/include
-
-# Build date changes at every change
-EXTRA_DIST = strversionnumber.m4
-BUILT_SOURCES = strversionnumber.cpp
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .cpp .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/fflib/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/fflib/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-libff.a: $(libff_a_OBJECTS) $(libff_a_DEPENDENCIES) $(EXTRA_libff_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libff.a
-	$(AM_V_AR)$(libff_a_AR) libff.a $(libff_a_OBJECTS) $(libff_a_LIBADD)
-	$(AM_V_at)$(RANLIB) libff.a
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/AFunction.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/AFunction2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/BamgFreeFem.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/CheckPtr.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/CodeAlloc.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/DefColor.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Drawing.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Element_P2h.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Element_RT.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/FESpace.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/FESpacen.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/FQuadTree.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GQuadTree.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/InitFunct.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Mesh1dn.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Mesh2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Mesh2dn.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Mesh3dn.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MeshDraw.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MeshGeom.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MeshQuad.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MeshRead.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MeshWrite.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Meshio.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Metric.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/P012_1d.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/P012_2d.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/P012_3d.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/P1IsoValue.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/QuadTree.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/QuadratureFormular.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/R2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SetOfE4.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/UMFPack_Solver.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/array_complex.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/array_long.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/array_real.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/eigenvalue.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/environment.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fem.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gibbs.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/global.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/glumesh2D.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lex.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lgalgo.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lgfem.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lgmat.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lgmesh.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lgmesh3.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmesh5.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/load.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mshptg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mt19937ar.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/problem.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/splitsimplex.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/string_def.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strversionnumber.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/write_hdf5.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/write_xdmf.Po at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-libmesh5.o: ../femlib/libmesh5.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmesh5.o -MD -MP -MF $(DEPDIR)/libmesh5.Tpo -c -o libmesh5.o `test -f '../femlib/libmesh5.c' || echo '$(srcdir)/'`../femlib/libmesh5.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmesh5.Tpo $(DEPDIR)/libmesh5.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../femlib/libmesh5.c' object='libmesh5.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmesh5.o `test -f '../femlib/libmesh5.c' || echo '$(srcdir)/'`../femlib/libmesh5.c
-
-libmesh5.obj: ../femlib/libmesh5.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmesh5.obj -MD -MP -MF $(DEPDIR)/libmesh5.Tpo -c -o libmesh5.obj `if test -f '../femlib/libmesh5.c'; then $(CYGPATH_W) '../femlib/libmesh5.c'; else $(CYGPATH_W) '$(srcdir)/../femlib/libmesh5.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmesh5.Tpo $(DEPDIR)/libmesh5.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../femlib/libmesh5.c' object='libmesh5.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmesh5.obj `if test -f '../femlib/libmesh5.c'; then $(CYGPATH_W) '../femlib/libmesh5.c'; else $(CYGPATH_W) '$(srcdir)/../femlib/libmesh5.c'; fi`
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-Drawing.o: ../femlib/Drawing.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Drawing.o -MD -MP -MF $(DEPDIR)/Drawing.Tpo -c -o Drawing.o `test -f '../femlib/Drawing.cpp' || echo '$(srcdir)/'`../femlib/Drawing.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Drawing.Tpo $(DEPDIR)/Drawing.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Drawing.cpp' object='Drawing.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Drawing.o `test -f '../femlib/Drawing.cpp' || echo '$(srcdir)/'`../femlib/Drawing.cpp
-
-Drawing.obj: ../femlib/Drawing.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Drawing.obj -MD -MP -MF $(DEPDIR)/Drawing.Tpo -c -o Drawing.obj `if test -f '../femlib/Drawing.cpp'; then $(CYGPATH_W) '../femlib/Drawing.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Drawing.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Drawing.Tpo $(DEPDIR)/Drawing.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Drawing.cpp' object='Drawing.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Drawing.obj `if test -f '../femlib/Drawing.cpp'; then $(CYGPATH_W) '../femlib/Drawing.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Drawing.cpp'; fi`
-
-gibbs.o: ../femlib/gibbs.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gibbs.o -MD -MP -MF $(DEPDIR)/gibbs.Tpo -c -o gibbs.o `test -f '../femlib/gibbs.cpp' || echo '$(srcdir)/'`../femlib/gibbs.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gibbs.Tpo $(DEPDIR)/gibbs.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/gibbs.cpp' object='gibbs.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gibbs.o `test -f '../femlib/gibbs.cpp' || echo '$(srcdir)/'`../femlib/gibbs.cpp
-
-gibbs.obj: ../femlib/gibbs.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gibbs.obj -MD -MP -MF $(DEPDIR)/gibbs.Tpo -c -o gibbs.obj `if test -f '../femlib/gibbs.cpp'; then $(CYGPATH_W) '../femlib/gibbs.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/gibbs.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gibbs.Tpo $(DEPDIR)/gibbs.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/gibbs.cpp' object='gibbs.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gibbs.obj `if test -f '../femlib/gibbs.cpp'; then $(CYGPATH_W) '../femlib/gibbs.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/gibbs.cpp'; fi`
-
-CheckPtr.o: ../femlib/CheckPtr.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CheckPtr.o -MD -MP -MF $(DEPDIR)/CheckPtr.Tpo -c -o CheckPtr.o `test -f '../femlib/CheckPtr.cpp' || echo '$(srcdir)/'`../femlib/CheckPtr.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/CheckPtr.Tpo $(DEPDIR)/CheckPtr.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/CheckPtr.cpp' object='CheckPtr.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CheckPtr.o `test -f '../femlib/CheckPtr.cpp' || echo '$(srcdir)/'`../femlib/CheckPtr.cpp
-
-CheckPtr.obj: ../femlib/CheckPtr.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CheckPtr.obj -MD -MP -MF $(DEPDIR)/CheckPtr.Tpo -c -o CheckPtr.obj `if test -f '../femlib/CheckPtr.cpp'; then $(CYGPATH_W) '../femlib/CheckPtr.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/CheckPtr.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/CheckPtr.Tpo $(DEPDIR)/CheckPtr.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/CheckPtr.cpp' object='CheckPtr.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CheckPtr.obj `if test -f '../femlib/CheckPtr.cpp'; then $(CYGPATH_W) '../femlib/CheckPtr.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/CheckPtr.cpp'; fi`
-
-fem.o: ../femlib/fem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fem.o -MD -MP -MF $(DEPDIR)/fem.Tpo -c -o fem.o `test -f '../femlib/fem.cpp' || echo '$(srcdir)/'`../femlib/fem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fem.Tpo $(DEPDIR)/fem.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/fem.cpp' object='fem.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fem.o `test -f '../femlib/fem.cpp' || echo '$(srcdir)/'`../femlib/fem.cpp
-
-fem.obj: ../femlib/fem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fem.obj -MD -MP -MF $(DEPDIR)/fem.Tpo -c -o fem.obj `if test -f '../femlib/fem.cpp'; then $(CYGPATH_W) '../femlib/fem.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/fem.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fem.Tpo $(DEPDIR)/fem.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/fem.cpp' object='fem.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fem.obj `if test -f '../femlib/fem.cpp'; then $(CYGPATH_W) '../femlib/fem.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/fem.cpp'; fi`
-
-QuadratureFormular.o: ../femlib/QuadratureFormular.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QuadratureFormular.o -MD -MP -MF $(DEPDIR)/QuadratureFormular.Tpo -c -o QuadratureFormular.o `test -f '../femlib/QuadratureFormular.cpp' || echo '$(srcdir)/'`../femlib/QuadratureFormular.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/QuadratureFormular.Tpo $(DEPDIR)/QuadratureFormular.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/QuadratureFormular.cpp' object='QuadratureFormular.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QuadratureFormular.o `test -f '../femlib/QuadratureFormular.cpp' || echo '$(srcdir)/'`../femlib/QuadratureFormular.cpp
-
-QuadratureFormular.obj: ../femlib/QuadratureFormular.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QuadratureFormular.obj -MD -MP -MF $(DEPDIR)/QuadratureFormular.Tpo -c -o QuadratureFormular.obj `if test -f '../femlib/QuadratureFormular.cpp'; then $(CYGPATH_W) '../femlib/QuadratureFormular.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/QuadratureFormular.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/QuadratureFormular.Tpo $(DEPDIR)/QuadratureFormular.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/QuadratureFormular.cpp' object='QuadratureFormular.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QuadratureFormular.obj `if test -f '../femlib/QuadratureFormular.cpp'; then $(CYGPATH_W) '../femlib/QuadratureFormular.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/QuadratureFormular.cpp'; fi`
-
-FESpace.o: ../femlib/FESpace.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FESpace.o -MD -MP -MF $(DEPDIR)/FESpace.Tpo -c -o FESpace.o `test -f '../femlib/FESpace.cpp' || echo '$(srcdir)/'`../femlib/FESpace.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/FESpace.Tpo $(DEPDIR)/FESpace.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/FESpace.cpp' object='FESpace.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FESpace.o `test -f '../femlib/FESpace.cpp' || echo '$(srcdir)/'`../femlib/FESpace.cpp
-
-FESpace.obj: ../femlib/FESpace.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FESpace.obj -MD -MP -MF $(DEPDIR)/FESpace.Tpo -c -o FESpace.obj `if test -f '../femlib/FESpace.cpp'; then $(CYGPATH_W) '../femlib/FESpace.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/FESpace.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/FESpace.Tpo $(DEPDIR)/FESpace.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/FESpace.cpp' object='FESpace.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FESpace.obj `if test -f '../femlib/FESpace.cpp'; then $(CYGPATH_W) '../femlib/FESpace.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/FESpace.cpp'; fi`
-
-Element_RT.o: ../femlib/Element_RT.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Element_RT.o -MD -MP -MF $(DEPDIR)/Element_RT.Tpo -c -o Element_RT.o `test -f '../femlib/Element_RT.cpp' || echo '$(srcdir)/'`../femlib/Element_RT.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Element_RT.Tpo $(DEPDIR)/Element_RT.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Element_RT.cpp' object='Element_RT.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Element_RT.o `test -f '../femlib/Element_RT.cpp' || echo '$(srcdir)/'`../femlib/Element_RT.cpp
-
-Element_RT.obj: ../femlib/Element_RT.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Element_RT.obj -MD -MP -MF $(DEPDIR)/Element_RT.Tpo -c -o Element_RT.obj `if test -f '../femlib/Element_RT.cpp'; then $(CYGPATH_W) '../femlib/Element_RT.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Element_RT.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Element_RT.Tpo $(DEPDIR)/Element_RT.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Element_RT.cpp' object='Element_RT.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Element_RT.obj `if test -f '../femlib/Element_RT.cpp'; then $(CYGPATH_W) '../femlib/Element_RT.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Element_RT.cpp'; fi`
-
-mshptg.o: ../femlib/mshptg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mshptg.o -MD -MP -MF $(DEPDIR)/mshptg.Tpo -c -o mshptg.o `test -f '../femlib/mshptg.cpp' || echo '$(srcdir)/'`../femlib/mshptg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mshptg.Tpo $(DEPDIR)/mshptg.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/mshptg.cpp' object='mshptg.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mshptg.o `test -f '../femlib/mshptg.cpp' || echo '$(srcdir)/'`../femlib/mshptg.cpp
-
-mshptg.obj: ../femlib/mshptg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mshptg.obj -MD -MP -MF $(DEPDIR)/mshptg.Tpo -c -o mshptg.obj `if test -f '../femlib/mshptg.cpp'; then $(CYGPATH_W) '../femlib/mshptg.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/mshptg.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mshptg.Tpo $(DEPDIR)/mshptg.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/mshptg.cpp' object='mshptg.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mshptg.obj `if test -f '../femlib/mshptg.cpp'; then $(CYGPATH_W) '../femlib/mshptg.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/mshptg.cpp'; fi`
-
-FQuadTree.o: ../femlib/FQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FQuadTree.o -MD -MP -MF $(DEPDIR)/FQuadTree.Tpo -c -o FQuadTree.o `test -f '../femlib/FQuadTree.cpp' || echo '$(srcdir)/'`../femlib/FQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/FQuadTree.Tpo $(DEPDIR)/FQuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/FQuadTree.cpp' object='FQuadTree.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FQuadTree.o `test -f '../femlib/FQuadTree.cpp' || echo '$(srcdir)/'`../femlib/FQuadTree.cpp
-
-FQuadTree.obj: ../femlib/FQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FQuadTree.obj -MD -MP -MF $(DEPDIR)/FQuadTree.Tpo -c -o FQuadTree.obj `if test -f '../femlib/FQuadTree.cpp'; then $(CYGPATH_W) '../femlib/FQuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/FQuadTree.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/FQuadTree.Tpo $(DEPDIR)/FQuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/FQuadTree.cpp' object='FQuadTree.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FQuadTree.obj `if test -f '../femlib/FQuadTree.cpp'; then $(CYGPATH_W) '../femlib/FQuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/FQuadTree.cpp'; fi`
-
-QuadTree.o: ../bamglib/QuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QuadTree.o -MD -MP -MF $(DEPDIR)/QuadTree.Tpo -c -o QuadTree.o `test -f '../bamglib/QuadTree.cpp' || echo '$(srcdir)/'`../bamglib/QuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/QuadTree.Tpo $(DEPDIR)/QuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/QuadTree.cpp' object='QuadTree.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QuadTree.o `test -f '../bamglib/QuadTree.cpp' || echo '$(srcdir)/'`../bamglib/QuadTree.cpp
-
-QuadTree.obj: ../bamglib/QuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QuadTree.obj -MD -MP -MF $(DEPDIR)/QuadTree.Tpo -c -o QuadTree.obj `if test -f '../bamglib/QuadTree.cpp'; then $(CYGPATH_W) '../bamglib/QuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/QuadTree.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/QuadTree.Tpo $(DEPDIR)/QuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/QuadTree.cpp' object='QuadTree.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QuadTree.obj `if test -f '../bamglib/QuadTree.cpp'; then $(CYGPATH_W) '../bamglib/QuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/QuadTree.cpp'; fi`
-
-R2.o: ../bamglib/R2.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT R2.o -MD -MP -MF $(DEPDIR)/R2.Tpo -c -o R2.o `test -f '../bamglib/R2.cpp' || echo '$(srcdir)/'`../bamglib/R2.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/R2.Tpo $(DEPDIR)/R2.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/R2.cpp' object='R2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o R2.o `test -f '../bamglib/R2.cpp' || echo '$(srcdir)/'`../bamglib/R2.cpp
-
-R2.obj: ../bamglib/R2.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT R2.obj -MD -MP -MF $(DEPDIR)/R2.Tpo -c -o R2.obj `if test -f '../bamglib/R2.cpp'; then $(CYGPATH_W) '../bamglib/R2.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/R2.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/R2.Tpo $(DEPDIR)/R2.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/R2.cpp' object='R2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o R2.obj `if test -f '../bamglib/R2.cpp'; then $(CYGPATH_W) '../bamglib/R2.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/R2.cpp'; fi`
-
-Meshio.o: ../bamglib/Meshio.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Meshio.o -MD -MP -MF $(DEPDIR)/Meshio.Tpo -c -o Meshio.o `test -f '../bamglib/Meshio.cpp' || echo '$(srcdir)/'`../bamglib/Meshio.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Meshio.Tpo $(DEPDIR)/Meshio.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/Meshio.cpp' object='Meshio.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Meshio.o `test -f '../bamglib/Meshio.cpp' || echo '$(srcdir)/'`../bamglib/Meshio.cpp
-
-Meshio.obj: ../bamglib/Meshio.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Meshio.obj -MD -MP -MF $(DEPDIR)/Meshio.Tpo -c -o Meshio.obj `if test -f '../bamglib/Meshio.cpp'; then $(CYGPATH_W) '../bamglib/Meshio.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/Meshio.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Meshio.Tpo $(DEPDIR)/Meshio.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/Meshio.cpp' object='Meshio.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Meshio.obj `if test -f '../bamglib/Meshio.cpp'; then $(CYGPATH_W) '../bamglib/Meshio.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/Meshio.cpp'; fi`
-
-Mesh2.o: ../bamglib/Mesh2.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh2.o -MD -MP -MF $(DEPDIR)/Mesh2.Tpo -c -o Mesh2.o `test -f '../bamglib/Mesh2.cpp' || echo '$(srcdir)/'`../bamglib/Mesh2.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh2.Tpo $(DEPDIR)/Mesh2.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/Mesh2.cpp' object='Mesh2.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh2.o `test -f '../bamglib/Mesh2.cpp' || echo '$(srcdir)/'`../bamglib/Mesh2.cpp
-
-Mesh2.obj: ../bamglib/Mesh2.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh2.obj -MD -MP -MF $(DEPDIR)/Mesh2.Tpo -c -o Mesh2.obj `if test -f '../bamglib/Mesh2.cpp'; then $(CYGPATH_W) '../bamglib/Mesh2.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/Mesh2.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh2.Tpo $(DEPDIR)/Mesh2.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/Mesh2.cpp' object='Mesh2.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh2.obj `if test -f '../bamglib/Mesh2.cpp'; then $(CYGPATH_W) '../bamglib/Mesh2.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/Mesh2.cpp'; fi`
-
-Metric.o: ../bamglib/Metric.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Metric.o -MD -MP -MF $(DEPDIR)/Metric.Tpo -c -o Metric.o `test -f '../bamglib/Metric.cpp' || echo '$(srcdir)/'`../bamglib/Metric.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Metric.Tpo $(DEPDIR)/Metric.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/Metric.cpp' object='Metric.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Metric.o `test -f '../bamglib/Metric.cpp' || echo '$(srcdir)/'`../bamglib/Metric.cpp
-
-Metric.obj: ../bamglib/Metric.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Metric.obj -MD -MP -MF $(DEPDIR)/Metric.Tpo -c -o Metric.obj `if test -f '../bamglib/Metric.cpp'; then $(CYGPATH_W) '../bamglib/Metric.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/Metric.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Metric.Tpo $(DEPDIR)/Metric.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/Metric.cpp' object='Metric.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Metric.obj `if test -f '../bamglib/Metric.cpp'; then $(CYGPATH_W) '../bamglib/Metric.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/Metric.cpp'; fi`
-
-BamgFreeFem.o: ../femlib/BamgFreeFem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BamgFreeFem.o -MD -MP -MF $(DEPDIR)/BamgFreeFem.Tpo -c -o BamgFreeFem.o `test -f '../femlib/BamgFreeFem.cpp' || echo '$(srcdir)/'`../femlib/BamgFreeFem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/BamgFreeFem.Tpo $(DEPDIR)/BamgFreeFem.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/BamgFreeFem.cpp' object='BamgFreeFem.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BamgFreeFem.o `test -f '../femlib/BamgFreeFem.cpp' || echo '$(srcdir)/'`../femlib/BamgFreeFem.cpp
-
-BamgFreeFem.obj: ../femlib/BamgFreeFem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BamgFreeFem.obj -MD -MP -MF $(DEPDIR)/BamgFreeFem.Tpo -c -o BamgFreeFem.obj `if test -f '../femlib/BamgFreeFem.cpp'; then $(CYGPATH_W) '../femlib/BamgFreeFem.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/BamgFreeFem.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/BamgFreeFem.Tpo $(DEPDIR)/BamgFreeFem.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/BamgFreeFem.cpp' object='BamgFreeFem.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BamgFreeFem.obj `if test -f '../femlib/BamgFreeFem.cpp'; then $(CYGPATH_W) '../femlib/BamgFreeFem.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/BamgFreeFem.cpp'; fi`
-
-MeshDraw.o: ../bamglib/MeshDraw.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshDraw.o -MD -MP -MF $(DEPDIR)/MeshDraw.Tpo -c -o MeshDraw.o `test -f '../bamglib/MeshDraw.cpp' || echo '$(srcdir)/'`../bamglib/MeshDraw.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshDraw.Tpo $(DEPDIR)/MeshDraw.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshDraw.cpp' object='MeshDraw.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshDraw.o `test -f '../bamglib/MeshDraw.cpp' || echo '$(srcdir)/'`../bamglib/MeshDraw.cpp
-
-MeshDraw.obj: ../bamglib/MeshDraw.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshDraw.obj -MD -MP -MF $(DEPDIR)/MeshDraw.Tpo -c -o MeshDraw.obj `if test -f '../bamglib/MeshDraw.cpp'; then $(CYGPATH_W) '../bamglib/MeshDraw.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshDraw.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshDraw.Tpo $(DEPDIR)/MeshDraw.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshDraw.cpp' object='MeshDraw.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshDraw.obj `if test -f '../bamglib/MeshDraw.cpp'; then $(CYGPATH_W) '../bamglib/MeshDraw.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshDraw.cpp'; fi`
-
-MeshGeom.o: ../bamglib/MeshGeom.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshGeom.o -MD -MP -MF $(DEPDIR)/MeshGeom.Tpo -c -o MeshGeom.o `test -f '../bamglib/MeshGeom.cpp' || echo '$(srcdir)/'`../bamglib/MeshGeom.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshGeom.Tpo $(DEPDIR)/MeshGeom.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshGeom.cpp' object='MeshGeom.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshGeom.o `test -f '../bamglib/MeshGeom.cpp' || echo '$(srcdir)/'`../bamglib/MeshGeom.cpp
-
-MeshGeom.obj: ../bamglib/MeshGeom.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshGeom.obj -MD -MP -MF $(DEPDIR)/MeshGeom.Tpo -c -o MeshGeom.obj `if test -f '../bamglib/MeshGeom.cpp'; then $(CYGPATH_W) '../bamglib/MeshGeom.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshGeom.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshGeom.Tpo $(DEPDIR)/MeshGeom.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshGeom.cpp' object='MeshGeom.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshGeom.obj `if test -f '../bamglib/MeshGeom.cpp'; then $(CYGPATH_W) '../bamglib/MeshGeom.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshGeom.cpp'; fi`
-
-MeshQuad.o: ../bamglib/MeshQuad.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshQuad.o -MD -MP -MF $(DEPDIR)/MeshQuad.Tpo -c -o MeshQuad.o `test -f '../bamglib/MeshQuad.cpp' || echo '$(srcdir)/'`../bamglib/MeshQuad.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshQuad.Tpo $(DEPDIR)/MeshQuad.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshQuad.cpp' object='MeshQuad.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshQuad.o `test -f '../bamglib/MeshQuad.cpp' || echo '$(srcdir)/'`../bamglib/MeshQuad.cpp
-
-MeshQuad.obj: ../bamglib/MeshQuad.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshQuad.obj -MD -MP -MF $(DEPDIR)/MeshQuad.Tpo -c -o MeshQuad.obj `if test -f '../bamglib/MeshQuad.cpp'; then $(CYGPATH_W) '../bamglib/MeshQuad.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshQuad.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshQuad.Tpo $(DEPDIR)/MeshQuad.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshQuad.cpp' object='MeshQuad.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshQuad.obj `if test -f '../bamglib/MeshQuad.cpp'; then $(CYGPATH_W) '../bamglib/MeshQuad.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshQuad.cpp'; fi`
-
-SetOfE4.o: ../bamglib/SetOfE4.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SetOfE4.o -MD -MP -MF $(DEPDIR)/SetOfE4.Tpo -c -o SetOfE4.o `test -f '../bamglib/SetOfE4.cpp' || echo '$(srcdir)/'`../bamglib/SetOfE4.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/SetOfE4.Tpo $(DEPDIR)/SetOfE4.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/SetOfE4.cpp' object='SetOfE4.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SetOfE4.o `test -f '../bamglib/SetOfE4.cpp' || echo '$(srcdir)/'`../bamglib/SetOfE4.cpp
-
-SetOfE4.obj: ../bamglib/SetOfE4.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SetOfE4.obj -MD -MP -MF $(DEPDIR)/SetOfE4.Tpo -c -o SetOfE4.obj `if test -f '../bamglib/SetOfE4.cpp'; then $(CYGPATH_W) '../bamglib/SetOfE4.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/SetOfE4.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/SetOfE4.Tpo $(DEPDIR)/SetOfE4.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/SetOfE4.cpp' object='SetOfE4.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SetOfE4.obj `if test -f '../bamglib/SetOfE4.cpp'; then $(CYGPATH_W) '../bamglib/SetOfE4.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/SetOfE4.cpp'; fi`
-
-MeshRead.o: ../bamglib/MeshRead.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshRead.o -MD -MP -MF $(DEPDIR)/MeshRead.Tpo -c -o MeshRead.o `test -f '../bamglib/MeshRead.cpp' || echo '$(srcdir)/'`../bamglib/MeshRead.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshRead.Tpo $(DEPDIR)/MeshRead.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshRead.cpp' object='MeshRead.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshRead.o `test -f '../bamglib/MeshRead.cpp' || echo '$(srcdir)/'`../bamglib/MeshRead.cpp
-
-MeshRead.obj: ../bamglib/MeshRead.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshRead.obj -MD -MP -MF $(DEPDIR)/MeshRead.Tpo -c -o MeshRead.obj `if test -f '../bamglib/MeshRead.cpp'; then $(CYGPATH_W) '../bamglib/MeshRead.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshRead.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshRead.Tpo $(DEPDIR)/MeshRead.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshRead.cpp' object='MeshRead.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshRead.obj `if test -f '../bamglib/MeshRead.cpp'; then $(CYGPATH_W) '../bamglib/MeshRead.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshRead.cpp'; fi`
-
-write_hdf5.o: ../bamglib/write_hdf5.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT write_hdf5.o -MD -MP -MF $(DEPDIR)/write_hdf5.Tpo -c -o write_hdf5.o `test -f '../bamglib/write_hdf5.cpp' || echo '$(srcdir)/'`../bamglib/write_hdf5.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/write_hdf5.Tpo $(DEPDIR)/write_hdf5.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/write_hdf5.cpp' object='write_hdf5.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o write_hdf5.o `test -f '../bamglib/write_hdf5.cpp' || echo '$(srcdir)/'`../bamglib/write_hdf5.cpp
-
-write_hdf5.obj: ../bamglib/write_hdf5.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT write_hdf5.obj -MD -MP -MF $(DEPDIR)/write_hdf5.Tpo -c -o write_hdf5.obj `if test -f '../bamglib/write_hdf5.cpp'; then $(CYGPATH_W) '../bamglib/write_hdf5.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/write_hdf5.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/write_hdf5.Tpo $(DEPDIR)/write_hdf5.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/write_hdf5.cpp' object='write_hdf5.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o write_hdf5.obj `if test -f '../bamglib/write_hdf5.cpp'; then $(CYGPATH_W) '../bamglib/write_hdf5.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/write_hdf5.cpp'; fi`
-
-write_xdmf.o: ../bamglib/write_xdmf.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT write_xdmf.o -MD -MP -MF $(DEPDIR)/write_xdmf.Tpo -c -o write_xdmf.o `test -f '../bamglib/write_xdmf.cpp' || echo '$(srcdir)/'`../bamglib/write_xdmf.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/write_xdmf.Tpo $(DEPDIR)/write_xdmf.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/write_xdmf.cpp' object='write_xdmf.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o write_xdmf.o `test -f '../bamglib/write_xdmf.cpp' || echo '$(srcdir)/'`../bamglib/write_xdmf.cpp
-
-write_xdmf.obj: ../bamglib/write_xdmf.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT write_xdmf.obj -MD -MP -MF $(DEPDIR)/write_xdmf.Tpo -c -o write_xdmf.obj `if test -f '../bamglib/write_xdmf.cpp'; then $(CYGPATH_W) '../bamglib/write_xdmf.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/write_xdmf.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/write_xdmf.Tpo $(DEPDIR)/write_xdmf.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/write_xdmf.cpp' object='write_xdmf.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o write_xdmf.obj `if test -f '../bamglib/write_xdmf.cpp'; then $(CYGPATH_W) '../bamglib/write_xdmf.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/write_xdmf.cpp'; fi`
-
-MeshWrite.o: ../bamglib/MeshWrite.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshWrite.o -MD -MP -MF $(DEPDIR)/MeshWrite.Tpo -c -o MeshWrite.o `test -f '../bamglib/MeshWrite.cpp' || echo '$(srcdir)/'`../bamglib/MeshWrite.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshWrite.Tpo $(DEPDIR)/MeshWrite.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshWrite.cpp' object='MeshWrite.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshWrite.o `test -f '../bamglib/MeshWrite.cpp' || echo '$(srcdir)/'`../bamglib/MeshWrite.cpp
-
-MeshWrite.obj: ../bamglib/MeshWrite.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MeshWrite.obj -MD -MP -MF $(DEPDIR)/MeshWrite.Tpo -c -o MeshWrite.obj `if test -f '../bamglib/MeshWrite.cpp'; then $(CYGPATH_W) '../bamglib/MeshWrite.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshWrite.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/MeshWrite.Tpo $(DEPDIR)/MeshWrite.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../bamglib/MeshWrite.cpp' object='MeshWrite.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MeshWrite.obj `if test -f '../bamglib/MeshWrite.cpp'; then $(CYGPATH_W) '../bamglib/MeshWrite.cpp'; else $(CYGPATH_W) '$(srcdir)/../bamglib/MeshWrite.cpp'; fi`
-
-DefColor.o: ../Graphics/DefColor.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DefColor.o -MD -MP -MF $(DEPDIR)/DefColor.Tpo -c -o DefColor.o `test -f '../Graphics/DefColor.cpp' || echo '$(srcdir)/'`../Graphics/DefColor.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/DefColor.Tpo $(DEPDIR)/DefColor.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/DefColor.cpp' object='DefColor.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DefColor.o `test -f '../Graphics/DefColor.cpp' || echo '$(srcdir)/'`../Graphics/DefColor.cpp
-
-DefColor.obj: ../Graphics/DefColor.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DefColor.obj -MD -MP -MF $(DEPDIR)/DefColor.Tpo -c -o DefColor.obj `if test -f '../Graphics/DefColor.cpp'; then $(CYGPATH_W) '../Graphics/DefColor.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/DefColor.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/DefColor.Tpo $(DEPDIR)/DefColor.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/DefColor.cpp' object='DefColor.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DefColor.obj `if test -f '../Graphics/DefColor.cpp'; then $(CYGPATH_W) '../Graphics/DefColor.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/DefColor.cpp'; fi`
-
-lgalgo.o: ../Algo/lgalgo.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lgalgo.o -MD -MP -MF $(DEPDIR)/lgalgo.Tpo -c -o lgalgo.o `test -f '../Algo/lgalgo.cpp' || echo '$(srcdir)/'`../Algo/lgalgo.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lgalgo.Tpo $(DEPDIR)/lgalgo.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Algo/lgalgo.cpp' object='lgalgo.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lgalgo.o `test -f '../Algo/lgalgo.cpp' || echo '$(srcdir)/'`../Algo/lgalgo.cpp
-
-lgalgo.obj: ../Algo/lgalgo.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lgalgo.obj -MD -MP -MF $(DEPDIR)/lgalgo.Tpo -c -o lgalgo.obj `if test -f '../Algo/lgalgo.cpp'; then $(CYGPATH_W) '../Algo/lgalgo.cpp'; else $(CYGPATH_W) '$(srcdir)/../Algo/lgalgo.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lgalgo.Tpo $(DEPDIR)/lgalgo.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Algo/lgalgo.cpp' object='lgalgo.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lgalgo.obj `if test -f '../Algo/lgalgo.cpp'; then $(CYGPATH_W) '../Algo/lgalgo.cpp'; else $(CYGPATH_W) '$(srcdir)/../Algo/lgalgo.cpp'; fi`
-
-Element_P2h.o: ../femlib/Element_P2h.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Element_P2h.o -MD -MP -MF $(DEPDIR)/Element_P2h.Tpo -c -o Element_P2h.o `test -f '../femlib/Element_P2h.cpp' || echo '$(srcdir)/'`../femlib/Element_P2h.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Element_P2h.Tpo $(DEPDIR)/Element_P2h.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Element_P2h.cpp' object='Element_P2h.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Element_P2h.o `test -f '../femlib/Element_P2h.cpp' || echo '$(srcdir)/'`../femlib/Element_P2h.cpp
-
-Element_P2h.obj: ../femlib/Element_P2h.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Element_P2h.obj -MD -MP -MF $(DEPDIR)/Element_P2h.Tpo -c -o Element_P2h.obj `if test -f '../femlib/Element_P2h.cpp'; then $(CYGPATH_W) '../femlib/Element_P2h.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Element_P2h.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Element_P2h.Tpo $(DEPDIR)/Element_P2h.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Element_P2h.cpp' object='Element_P2h.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Element_P2h.obj `if test -f '../femlib/Element_P2h.cpp'; then $(CYGPATH_W) '../femlib/Element_P2h.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Element_P2h.cpp'; fi`
-
-FESpacen.o: ../femlib/FESpacen.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FESpacen.o -MD -MP -MF $(DEPDIR)/FESpacen.Tpo -c -o FESpacen.o `test -f '../femlib/FESpacen.cpp' || echo '$(srcdir)/'`../femlib/FESpacen.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/FESpacen.Tpo $(DEPDIR)/FESpacen.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/FESpacen.cpp' object='FESpacen.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FESpacen.o `test -f '../femlib/FESpacen.cpp' || echo '$(srcdir)/'`../femlib/FESpacen.cpp
-
-FESpacen.obj: ../femlib/FESpacen.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FESpacen.obj -MD -MP -MF $(DEPDIR)/FESpacen.Tpo -c -o FESpacen.obj `if test -f '../femlib/FESpacen.cpp'; then $(CYGPATH_W) '../femlib/FESpacen.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/FESpacen.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/FESpacen.Tpo $(DEPDIR)/FESpacen.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/FESpacen.cpp' object='FESpacen.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FESpacen.obj `if test -f '../femlib/FESpacen.cpp'; then $(CYGPATH_W) '../femlib/FESpacen.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/FESpacen.cpp'; fi`
-
-P012_1d.o: ../femlib/P012_1d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT P012_1d.o -MD -MP -MF $(DEPDIR)/P012_1d.Tpo -c -o P012_1d.o `test -f '../femlib/P012_1d.cpp' || echo '$(srcdir)/'`../femlib/P012_1d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/P012_1d.Tpo $(DEPDIR)/P012_1d.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/P012_1d.cpp' object='P012_1d.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o P012_1d.o `test -f '../femlib/P012_1d.cpp' || echo '$(srcdir)/'`../femlib/P012_1d.cpp
-
-P012_1d.obj: ../femlib/P012_1d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT P012_1d.obj -MD -MP -MF $(DEPDIR)/P012_1d.Tpo -c -o P012_1d.obj `if test -f '../femlib/P012_1d.cpp'; then $(CYGPATH_W) '../femlib/P012_1d.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/P012_1d.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/P012_1d.Tpo $(DEPDIR)/P012_1d.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/P012_1d.cpp' object='P012_1d.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o P012_1d.obj `if test -f '../femlib/P012_1d.cpp'; then $(CYGPATH_W) '../femlib/P012_1d.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/P012_1d.cpp'; fi`
-
-P012_2d.o: ../femlib/P012_2d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT P012_2d.o -MD -MP -MF $(DEPDIR)/P012_2d.Tpo -c -o P012_2d.o `test -f '../femlib/P012_2d.cpp' || echo '$(srcdir)/'`../femlib/P012_2d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/P012_2d.Tpo $(DEPDIR)/P012_2d.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/P012_2d.cpp' object='P012_2d.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o P012_2d.o `test -f '../femlib/P012_2d.cpp' || echo '$(srcdir)/'`../femlib/P012_2d.cpp
-
-P012_2d.obj: ../femlib/P012_2d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT P012_2d.obj -MD -MP -MF $(DEPDIR)/P012_2d.Tpo -c -o P012_2d.obj `if test -f '../femlib/P012_2d.cpp'; then $(CYGPATH_W) '../femlib/P012_2d.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/P012_2d.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/P012_2d.Tpo $(DEPDIR)/P012_2d.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/P012_2d.cpp' object='P012_2d.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o P012_2d.obj `if test -f '../femlib/P012_2d.cpp'; then $(CYGPATH_W) '../femlib/P012_2d.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/P012_2d.cpp'; fi`
-
-P012_3d.o: ../femlib/P012_3d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT P012_3d.o -MD -MP -MF $(DEPDIR)/P012_3d.Tpo -c -o P012_3d.o `test -f '../femlib/P012_3d.cpp' || echo '$(srcdir)/'`../femlib/P012_3d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/P012_3d.Tpo $(DEPDIR)/P012_3d.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/P012_3d.cpp' object='P012_3d.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o P012_3d.o `test -f '../femlib/P012_3d.cpp' || echo '$(srcdir)/'`../femlib/P012_3d.cpp
-
-P012_3d.obj: ../femlib/P012_3d.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT P012_3d.obj -MD -MP -MF $(DEPDIR)/P012_3d.Tpo -c -o P012_3d.obj `if test -f '../femlib/P012_3d.cpp'; then $(CYGPATH_W) '../femlib/P012_3d.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/P012_3d.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/P012_3d.Tpo $(DEPDIR)/P012_3d.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/P012_3d.cpp' object='P012_3d.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o P012_3d.obj `if test -f '../femlib/P012_3d.cpp'; then $(CYGPATH_W) '../femlib/P012_3d.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/P012_3d.cpp'; fi`
-
-Mesh1dn.o: ../femlib/Mesh1dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh1dn.o -MD -MP -MF $(DEPDIR)/Mesh1dn.Tpo -c -o Mesh1dn.o `test -f '../femlib/Mesh1dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh1dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh1dn.Tpo $(DEPDIR)/Mesh1dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh1dn.cpp' object='Mesh1dn.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh1dn.o `test -f '../femlib/Mesh1dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh1dn.cpp
-
-Mesh1dn.obj: ../femlib/Mesh1dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh1dn.obj -MD -MP -MF $(DEPDIR)/Mesh1dn.Tpo -c -o Mesh1dn.obj `if test -f '../femlib/Mesh1dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh1dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh1dn.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh1dn.Tpo $(DEPDIR)/Mesh1dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh1dn.cpp' object='Mesh1dn.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh1dn.obj `if test -f '../femlib/Mesh1dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh1dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh1dn.cpp'; fi`
-
-Mesh2dn.o: ../femlib/Mesh2dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh2dn.o -MD -MP -MF $(DEPDIR)/Mesh2dn.Tpo -c -o Mesh2dn.o `test -f '../femlib/Mesh2dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh2dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh2dn.Tpo $(DEPDIR)/Mesh2dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh2dn.cpp' object='Mesh2dn.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh2dn.o `test -f '../femlib/Mesh2dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh2dn.cpp
-
-Mesh2dn.obj: ../femlib/Mesh2dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh2dn.obj -MD -MP -MF $(DEPDIR)/Mesh2dn.Tpo -c -o Mesh2dn.obj `if test -f '../femlib/Mesh2dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh2dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh2dn.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh2dn.Tpo $(DEPDIR)/Mesh2dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh2dn.cpp' object='Mesh2dn.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh2dn.obj `if test -f '../femlib/Mesh2dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh2dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh2dn.cpp'; fi`
-
-Mesh3dn.o: ../femlib/Mesh3dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh3dn.o -MD -MP -MF $(DEPDIR)/Mesh3dn.Tpo -c -o Mesh3dn.o `test -f '../femlib/Mesh3dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh3dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh3dn.Tpo $(DEPDIR)/Mesh3dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh3dn.cpp' object='Mesh3dn.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh3dn.o `test -f '../femlib/Mesh3dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh3dn.cpp
-
-Mesh3dn.obj: ../femlib/Mesh3dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh3dn.obj -MD -MP -MF $(DEPDIR)/Mesh3dn.Tpo -c -o Mesh3dn.obj `if test -f '../femlib/Mesh3dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh3dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh3dn.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh3dn.Tpo $(DEPDIR)/Mesh3dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh3dn.cpp' object='Mesh3dn.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh3dn.obj `if test -f '../femlib/Mesh3dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh3dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh3dn.cpp'; fi`
-
-GQuadTree.o: ../femlib/GQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GQuadTree.o -MD -MP -MF $(DEPDIR)/GQuadTree.Tpo -c -o GQuadTree.o `test -f '../femlib/GQuadTree.cpp' || echo '$(srcdir)/'`../femlib/GQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/GQuadTree.Tpo $(DEPDIR)/GQuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/GQuadTree.cpp' object='GQuadTree.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GQuadTree.o `test -f '../femlib/GQuadTree.cpp' || echo '$(srcdir)/'`../femlib/GQuadTree.cpp
-
-GQuadTree.obj: ../femlib/GQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GQuadTree.obj -MD -MP -MF $(DEPDIR)/GQuadTree.Tpo -c -o GQuadTree.obj `if test -f '../femlib/GQuadTree.cpp'; then $(CYGPATH_W) '../femlib/GQuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/GQuadTree.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/GQuadTree.Tpo $(DEPDIR)/GQuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/GQuadTree.cpp' object='GQuadTree.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GQuadTree.obj `if test -f '../femlib/GQuadTree.cpp'; then $(CYGPATH_W) '../femlib/GQuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/GQuadTree.cpp'; fi`
-
-splitsimplex.o: ../femlib/splitsimplex.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT splitsimplex.o -MD -MP -MF $(DEPDIR)/splitsimplex.Tpo -c -o splitsimplex.o `test -f '../femlib/splitsimplex.cpp' || echo '$(srcdir)/'`../femlib/splitsimplex.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splitsimplex.Tpo $(DEPDIR)/splitsimplex.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/splitsimplex.cpp' object='splitsimplex.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o splitsimplex.o `test -f '../femlib/splitsimplex.cpp' || echo '$(srcdir)/'`../femlib/splitsimplex.cpp
-
-splitsimplex.obj: ../femlib/splitsimplex.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT splitsimplex.obj -MD -MP -MF $(DEPDIR)/splitsimplex.Tpo -c -o splitsimplex.obj `if test -f '../femlib/splitsimplex.cpp'; then $(CYGPATH_W) '../femlib/splitsimplex.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/splitsimplex.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/splitsimplex.Tpo $(DEPDIR)/splitsimplex.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/splitsimplex.cpp' object='splitsimplex.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o splitsimplex.obj `if test -f '../femlib/splitsimplex.cpp'; then $(CYGPATH_W) '../femlib/splitsimplex.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/splitsimplex.cpp'; fi`
-
-eigenvalue.o: ../Eigen/eigenvalue.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT eigenvalue.o -MD -MP -MF $(DEPDIR)/eigenvalue.Tpo -c -o eigenvalue.o `test -f '../Eigen/eigenvalue.cpp' || echo '$(srcdir)/'`../Eigen/eigenvalue.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/eigenvalue.Tpo $(DEPDIR)/eigenvalue.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Eigen/eigenvalue.cpp' object='eigenvalue.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o eigenvalue.o `test -f '../Eigen/eigenvalue.cpp' || echo '$(srcdir)/'`../Eigen/eigenvalue.cpp
-
-eigenvalue.obj: ../Eigen/eigenvalue.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT eigenvalue.obj -MD -MP -MF $(DEPDIR)/eigenvalue.Tpo -c -o eigenvalue.obj `if test -f '../Eigen/eigenvalue.cpp'; then $(CYGPATH_W) '../Eigen/eigenvalue.cpp'; else $(CYGPATH_W) '$(srcdir)/../Eigen/eigenvalue.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/eigenvalue.Tpo $(DEPDIR)/eigenvalue.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Eigen/eigenvalue.cpp' object='eigenvalue.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o eigenvalue.obj `if test -f '../Eigen/eigenvalue.cpp'; then $(CYGPATH_W) '../Eigen/eigenvalue.cpp'; else $(CYGPATH_W) '$(srcdir)/../Eigen/eigenvalue.cpp'; fi`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
-	distclean-compile distclean-generic distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
-	uninstall-am
-
-strversionnumber.cpp: $(libff_a_SOURCES2) ../../configure
-	m4 -DVersionFreeFemDate="`date`" strversionnumber.m4 > $@
-FORCE:
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/fflib/P1IsoValue.cpp.orig b/src/fflib/P1IsoValue.cpp.orig
deleted file mode 100644
index 8ae3a16..0000000
--- a/src/fflib/P1IsoValue.cpp.orig
+++ /dev/null
@@ -1,469 +0,0 @@
-//
-//  P1IsoValue.cpp
-//  ff
-//
-//  Created by Frédéric Hecht on 07/03/2014.
-//
-//
-#include <cassert>
-#include <cmath>
-using namespace std;
-#include "P1IsoValue.hpp"
-using namespace Fem2D;
-extern long verbosity;
-//typedef double R;
-
-inline R3 bary(const R3 K[4],R f[4],int i0,int i1,R v)
-{
-    R d=f[i0]-f[i1];
-    assert(fabs(d)>1e-20);
-    R l1= (f[i0] - v)/ d;  //  == 1 si v = f[i1]
-    R l0 = 1. -l1;
-    assert(l0 >=-1e-10 && l1 >= -1e-10);
-    return K[i0]*l0 + K[i1]*l1; // == K[i1] si l1 ==1 => v = f[i1]
-}
-
-inline R2 bary(const R2 K[3],R f[3],int i0,int i1,R v)
-{
-    R d=f[i0]-f[i1];
-    assert(fabs(d)>1e-20);
-    R l1= (f[i0] - v)/ d;  //  == 1 si v = f[i1]
-    R l0 = 1. -l1;
-    assert(l0 >=-1e-10 && l1 >= -1e-10);
-    return K[i0]*l0 + K[i1]*l1; // == K[i1] si l1 ==1 => v = f[i1]
-}
-
-static inline int  signep4(int i0,int i1,int i2,int i3)
-{ // calcul du signe dans la permutation
-    int s =1;
-    if(i0>i1) s=-s,Exchange(i0,i1);
-    if(i1>i2) s=-s,Exchange(i1,i2);
-    if(i2>i3) s=-s,Exchange(i2,i3); // i3 max
-    if(i0>i1) s=-s,Exchange(i0,i1);
-    if(i1>i2) s=-s,Exchange(i1,i2); // i2 max < i
-    if(i0>i1) s=-s,Exchange(i0,i1);
-    return s;
-}
-inline int  signe_permutation(int i0,int i1,int i2,int i3)
-{
-    int p=1;
-    if(i0>i1) Exchange(i0,i1), p = -p;
-    if(i0>i2) Exchange(i0,i2), p = -p;
-    if(i0>i3) Exchange(i0,i3), p = -p;
-    if(i1>i2) Exchange(i1,i2), p = -p;
-    if(i1>i3) Exchange(i1,i3), p = -p;
-    if(i2>i3) Exchange(i2,i3), p = -p;
-    return p;
-}
-inline void pen23tet(R3 P[6],R3 Q[3][4])
-{
-  //int d1[3][4]= { {1,6,2,3},    {1,5,2,6},    {1,6,4,5}};
-    int d0[3][4]= { {0,5,1,2},    {0,4,1,5},    {0,5,3,4}};
-   /* the 6 way to spilt  a pent en tet ...
-     DATA PDD /1,0,2,3,4,5,0,6/
-     DATA (MU(I, 1),I=1,12) /1,6,2,3,    1,5,2,6,    1,6,4,5/
-     DATA (MU(I, 2),I=1,12) /1,6,2,3,    1,4,2,6,    2,6,4,5/
-     DATA (MU(I, 3),I=1,12) /1,4,2,3,    2,6,3,4,    2,6,4,5/
-     DATA (MU(I, 4),I=1,12) /1,5,2,3,    1,5,3,6,    1,6,4,5/
-     DATA (MU(I, 5),I=1,12) /1,5,2,3,    1,5,3,4,    3,6,4,5/
-     DATA (MU(I, 6),I=1,12) /1,4,2,3,    2,5,3,4,    3,6,4,5/
-     */
-    for(int k=0; k<3; ++k)
-     for(int i=0; i<4;++i)
-        Q[k][i]=P[d0[k][i]];
-}
-<<<<<<< HEAD
-int UnderIso(double *f,R2 Q[2][3] ,double area2[2],  double eps)
-=======
-int UnderIso(double *f,R2 Q[2][3] ,double area2[2], const double eps)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
- 
-    const R2 *K = R2::KHat;
-    const  int p1[]= {1,2,0};
-    const  int p2[]= {2,0,1};
-    R v=0;
-    //  build  the negative tetra under zero iso value of f ..
-    double fmx=f[0], fmn=f[0];
-    fmx = std::max(fmx,f[1]);
-    fmn = std::min(fmn,f[1]);
-    fmx = std::max(fmx,f[2]);
-    fmn = std::min(fmn,f[2]);
-    if( fmn >= v - eps)
-    {
-        area2[0]=1;
-        return 0; // no intersection ..
-    }
-    if( fmx <= v+ eps)
-    {
-        area2[0]=1;
-        return 1;
-    }; //  full triz ..
-
-    int np[4],nm[4];
-    int km=0,kp=0;
-    
-    int ntria=0;
-    for (int i=0;i<3;++i)
-    {
-        if(f[i]<=v+eps) nm[km++]=i;
-        else np[kp++] = i;
-    }
-    if(km == 0)
-    {
-        area2[0]=0;
-        return 0;
-    }
-    else if( km == 1)
-    { //  1 tet  j, j+1, j+2, j+3
-        int j0=nm[0];
-        int j1=p1[j0], j2=p2[j0];
-        Q[0][0]=K[j0];
-        Q[0][1]=bary(K,f,j0,j1,v);
-        Q[0][2]=bary(K,f,j0,j2,v);
-        ntria=1;
-    }
-    else if( km == 2)
-    {// 1 prisme
-        ntria=2;
-        int j0 = np[0];
-        int j1=p1[j0], j2=p2[j0];
-        R2 Q1=bary(K,f,j0,j1,v);
-        R2 Q2=bary(K,f,j0,j2,v);
-        Q[0][0]=K[j1];
-        Q[0][1]=K[j2];
-        Q[0][2]=Q2;
-        Q[1][0]=K[j1];
-        Q[1][1]=Q2;
-        Q[1][2]=Q1;
-    }
-    else if( km == 3)
-    {
-        area2[0]=1;
-        return 1;
-    }
-    // vol computation
-    for(int k=0; k< ntria; ++k)
-    {
-        area2[k]=det(Q[k][0],Q[k][1],Q[k][2]);
-        //cout <<area2[k] << endl;
-        assert(area2[k] >= - eps);
-    }
-    
-    return ntria;
-   
-}
-<<<<<<< HEAD
-int UnderIso(double *f,R3 Q[3][4] ,double vol6[3],  double eps)
-=======
-int UnderIso(double *f,R3 Q[3][4] ,double vol6[3], const double eps)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-    const R3 *K = R3::KHat;
-    const  int p1[]= {1,2,3,0};
-    const  int p2[]= {2,0,0,2};
-    const  int p3[]= {3,3,1,1};
-    R v=0;
-  //  build  the negative tetra under zero iso value of f ..
-    double fmx=f[0], fmn=f[0];
-    fmx = std::max(fmx,f[1]);
-    fmn = std::min(fmn,f[1]);
-    fmx = std::max(fmx,f[2]);
-    fmn = std::min(fmn,f[2]);
-    fmx = std::max(fmx,f[3]);
-    fmn = std::min(fmn,f[3]);
-    if( fmn >= v - eps)
-    {
-        vol6[0]=1;
-        return 0; // no intersection ..
-    }
-    if( fmx <= v+ eps)
-    {
-        vol6[0]=1;
-        return 1;
-    }; //  full tet ..
-    
-  // hard case ..
-// count number
-    vol6[0]=1;
-   
-    int np[4],nm[4];
-    int km=0,kp=0;
-    
-    int ntet=0;
-    for (int i=0;i<4;++i)
-    {
-        if(f[i]<=v+eps) nm[km++]=i;
-        else np[kp++] = i;
-    }
-    if(km == 0)
-    {
-        vol6[0]=0;
-        return 0;
-    }
-    else if( km == 1)
-    { //  1 tet  j, j+1, j+2, j+3
-        int j0=nm[0];
-        int j1=p1[j0], j2=p2[j0], j3=p3[j0];
-        Q[0][0]=K[j0];
-        Q[0][1]=bary(K,f,j0,j1,v);
-        Q[0][2]=bary(K,f,j0,j2,v);
-        Q[0][3]=bary(K,f,j0,j3,v);
-        ntet=1;
-    }
-    else if( km == 2)
-    {// 1 prisme i0,i1, j0,j1, k0, k0
-        ntet=3;
-        int i0=nm[0];
-        int i1=nm[1];
-        int k0=np[0];
-        int k1=np[1];
-        if(signe_permutation(i0,i1,k0,k1)<0)
-            std::swap(k0,k1);
-            
-        R3 P[6];
-        P[0]=K[i0];
-        P[1]=bary(K,f,i0,k0,v);
-        P[2]=bary(K,f,i0,k1,v);
-        P[3]=K[i1];
-        P[4]=bary(K,f,i1,k0,v);
-        P[5]=bary(K,f,i1,k1,v);
-        pen23tet(P,Q);
-        
-    }
-    else if( km == 3)
-    { // prisme
-        ntet=3;
-        int k0=np[0];
-        int i1=p1[k0];
-        int i2=p2[k0];
-        int i3=p3[k0];
-        assert(signe_permutation(k0,i1,i2,i3)>0);
-        R3 P[6];
-        P[3]=K[i1];
-        P[4]=K[i2];
-        P[5]=K[i3];
-        P[0]=bary(K,f,i1,k0,v);
-        P[1]=bary(K,f,i2,k0,v);
-        P[2]=bary(K,f,i3,k0,v);
-        pen23tet(P,Q);
-        
-
-    }
-    else if( km == 4)
-    {
-      vol6[0]=1;
-      return 1;
-    }
-// vol computation
-    for(int k=0; k< ntet; ++k)
-    {
-        vol6[k]=det(Q[k][0],Q[k][1],Q[k][2],Q[k][3]);
-        assert(vol6[k] >= - eps);
-        if( vol6[k]  <eps && verbosity> 99 )
-            cout <<k << " bizarre " << km << " "
-                 << Q[k][0]<< " "
-                << Q[k][1]<< " "
-                <<Q[k][2]<< " "
-                << Q[k][3]<< endl;
-    }
-
-    return ntet;
-}
-
-<<<<<<< HEAD
-int IsoLineK(double *f,Fem2D::R3 *Q, double eps)
-=======
-int IsoLineK(double *f,Fem2D::R3 *Q,const double eps)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-    
-    static const int  nvfaceTet[4][3]  ={{3,2,1}, {0,2,3},{ 3,1,0},{ 0,1,2}}  ;
-    
-    const R3 *K=R3::KHat;
-    int kv=0,vk[4],tv[4],kf;
-    for(int i=0;i<4;++i)
-    {
-      if( abs(f[i]) <= eps)
-        {
-            tv[kv++]=i;
-            vk[i]=1;
-        }
-        else
-         vk[kf=i]=0;
-    }
-    if(kv==3)
-    {
-        // cout << " full face " << kf << endl;
-        // a face complete kf..
-      //  warning
-        int i1=1,i2=2;
-        if(f[kf] <0) i1=2,i2=1;
-        Q[0]=K[nvfaceTet[kf][0]];
-        Q[1]=K[nvfaceTet[kf][i1]];
-        Q[2]=K[nvfaceTet[kf][i2]];
-        
-        return (f[kf] >0) ? 3:0;// to take one fulL face not to times ...
-    }
-
-    R v=0;
-    int nP=0;
-    int np[4],nm[4],nps[4],nms[4];;
-    int km=0,kp=0,kms=0,kps=0;
-    
-    for (int i=0;i<4;++i)
-    {
-        if(f[i]<=v+eps) nm[km++]=i;
-        if(f[i]>=v-eps) np[kp++]=i;
-        // strict ..
-        if(f[i]<v-eps) nms[kms++]=i;
-        if(f[i]>v+eps) nps[kps++]=i;
-    }
-    
-    //  cout << "IsoLineK: km kp "<< km << " " << kp << endl;
-    int h=-1,b[3];
-    if(kps==1 && km==3)
-    {
-        h = nps[0];
-        b[0]=nvfaceTet[h][0];
-        b[1]=nvfaceTet[h][1];
-        b[2]=nvfaceTet[h][2];
-    }
-    if(kms==1 && kp == 3)
-    {
-        h = nms[0];
-        b[0]=nvfaceTet[h][0];
-        b[2]=nvfaceTet[h][1];
-        b[1]=nvfaceTet[h][2];
-    }
-    if(kp==2 && km==2)
-    {//  cas quad
-        if(signep4(nm[0],nm[1],np[0],np[1]) < 0)
-            Exchange(nm[0],nm[1]);
-        Q[0]=bary(K,f,nm[0],np[0],v);
-        Q[1]=bary(K,f,nm[0],np[1],v);
-        Q[2]=bary(K,f,nm[1],np[1],v);
-        Q[3]=bary(K,f,nm[1],np[0],v);
-        nP=4;
-    }
-    else if (h>=0)
-    { // cas triangle
-        Q[0]=bary(K,f,h,b[0],v);
-        Q[1]=bary(K,f,h,b[1],v);
-        Q[2]=bary(K,f,h,b[2],v);
-        nP=3;
-    }
-    
-    return nP;
-}
-
-<<<<<<< HEAD
-int IsoLineK(double *f,Fem2D::R2 *Q, double eps)
-=======
-int IsoLineK(double *f,Fem2D::R2 *Q,const double eps)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-    int debug=0;
-    R2 P[3]={ R2(0.,0.),R2(1.,0.),R2(0.,1.)};
-    int kv=0,ke=0,e=3;
-    int tv[3],te[3],vk[3],i0[3],i1[3];
-    for(int i=0;i<3;++i)
-    {
-        if( abs(f[i]) <= eps) {
-            e -= tv[kv++]=i;
-            vk[i]=1;
-        }
-        else
-            vk[i]=0;
-    }
-    if(debug) cout << " ** " <<     kv << endl;
-    if(kv>1) //  on 2  vertex on the isoline ....
-    {
-        if(kv==2)
-        {
-            if(f[e] > 0.)
-            {
-                int j0=(e+1)%3;
-                int j1=(e+2)%3;
-                te[ke]=e+3,i0[ke]=j0,i1[ke]=j0,++ke;
-                te[ke]=e,i0[ke]=j1,i1[ke]=j1,++ke;
-                // pb d'unicity, need to see the adj triangle ...
-                //return 10+e ; // edge number + 10
-            }
-            else return 0; // skip edge ...
-            
-        }
-        else return 0; //  const funct...
-    }
-    else // see internal edge ..
-<<<<<<< HEAD
-        for(int ee=0;ee<3;++ee)
-        {
-            int j0=(ee+1)%3;
-            int j1=(ee+2)%3;
-            if( vk[j0]) //  the intial  point on iso line
-            {
-                if(0. < f[j1])
-                    te[ke]=ee,i0[ke]=j0,i1[ke]=j0,++ke;
-                else
-                    te[ke]=ee+3,i0[ke]=j0,i1[ke]=j0,++ke;
-            }
-            else if (vk[j1]); // skip the final point on iso line
-            else if( f[j0] < 0. && 0. < f[j1])  // good  sens
-                te[ke]=ee,i0[ke]=j0,i1[ke]=j1,++ke;
-            else if ( f[j0] > 0. && 0. > f[j1]) // inverse  sens
-                te[ke]=ee+3,i0[ke]=j1,i1[ke]=j0,++ke;
-=======
-        for(int e=0;e<3;++e)
-        {
-            int j0=(e+1)%3;
-            int j1=(e+2)%3;
-            if( vk[j0]) //  the intial  point on iso line
-            {
-                if(0. < f[j1])
-                    te[ke]=e,i0[ke]=j0,i1[ke]=j0,++ke;
-                else
-                    te[ke]=e+3,i0[ke]=j0,i1[ke]=j0,++ke;
-            }
-            else if (vk[j1]); // skip the final point on iso line
-            else if( f[j0] < 0. && 0. < f[j1])  // good  sens
-                te[ke]=e,i0[ke]=j0,i1[ke]=j1,++ke;
-            else if ( f[j0] > 0. && 0. > f[j1]) // inverse  sens
-                te[ke]=e+3,i0[ke]=j1,i1[ke]=j0,++ke;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-        }
-    if( ke==2)
-    {
-        // the  K[i1[0]] , Q[0], Q[1] must be direct ...
-        // the  K[i0[1]] , Q[0], Q[1] must be direct ...
-        // Warning   no trivail case ..  make a plot to see
-        //  with is good
-        // the first edge must be
-        
-        if(te[0]<3)  // oriente the line
-        {
-            assert(te[1] >=3);
-            std::swap(te[0],te[1]);
-            std::swap(i0[0],i0[1]);
-            std::swap(i1[0],i1[1]);
-            if(debug) cout << " swap " << endl;
-        }
-        for(int i=0;i<2;++i)
-        {
-            int j0=i0[i],j1=i1[i];
-            if( j0== j1)
-                Q[i] = P[j0];
-            else
-                Q[i] = (P[j0]*(f[j1]) -  P[j1]*(f[j0]) ) /(f[j1]-f[j0]);
-            if(debug) cout << i << " " << j0 << " " << j1 << " : "
-                << Q[i] << "***" << endl;
-        }
-        if(!vk[i1[0]])
-            assert( det(P[i1[0]],Q[0],Q[1]) > 0);
-        if(!vk[i0[1]])
-            assert( det(P[i0[1]],Q[1],Q[0]) > 0);
-        return 2;
-    }
-    // remark, the left of the line is upper .
-    return 0;
-}
diff --git a/src/fflib/P1IsoValue.hpp.orig b/src/fflib/P1IsoValue.hpp.orig
deleted file mode 100644
index 1feea0a..0000000
--- a/src/fflib/P1IsoValue.hpp.orig
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-//  P1IsoValue.h
-//  ff
-//
-//  Created by Frédéric Hecht on 07/03/2014.
-//
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-
-#ifndef __ff__P1IsoValue__
-#define __ff__P1IsoValue__
-
-#include <cmath>
-#include <cstdlib>
-#include <iostream>
-
-
-#include "ufunction.hpp"
-namespace Fem2D
-{
-#include "R3.hpp"
-}
-<<<<<<< HEAD
-int IsoLineK(double *f,Fem2D::R3 *Q, double eps);
-int IsoLineK(double *f,Fem2D::R2 *Q, double eps);
-int UnderIso(double *f,Fem2D::R3 Q[3][4] ,double vol[3],  double eps);
-int UnderIso(double *f,Fem2D::R2 Q[2][3] ,double area[2],  double eps);
-=======
-int IsoLineK(double *f,Fem2D::R3 *Q,const double eps);
-int IsoLineK(double *f,Fem2D::R2 *Q,const double eps);
-int UnderIso(double *f,Fem2D::R3 Q[3][4] ,double vol[3], const double eps);
-int UnderIso(double *f,Fem2D::R2 Q[2][3] ,double area[2], const double eps);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-
-
-#endif /* defined(__ff__P1IsoValue__) */
diff --git a/src/fflib/array_tlp.hpp.orig b/src/fflib/array_tlp.hpp.orig
deleted file mode 100644
index 811e969..0000000
--- a/src/fflib/array_tlp.hpp.orig
+++ /dev/null
@@ -1,1464 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-//#pragma dont_inline on
-//#pragma inline_depth(1)
-
-#include "config-wrapper.h"
-
-#include <complex>
-#include "AFunction.hpp"
-#include <cstdarg>
-#include <cstring>
-#include "error.hpp"
-#include "lex.hpp"
-
-#include "RNM.hpp"
-
-#include "Operator.hpp"
-// for exec routine 
-#include "rgraph.hpp"
-#include "InitFunct.hpp"
-#include <queue>
-#include "array_resize.hpp"
-#include "HeapSort.hpp"
-
-template <class T>
-struct affectation: binary_function<T, T, T>
-{
-	T& operator()(T& x, const T& y) const {return (x=y);}
-};
-
-template <class T>
-struct affectation_add: binary_function<T, T, T>
-{
-	T& operator()(T& x, const T& y) const {return (x+=y);}// correct FH 25/10/2013
-};
-
-template <class T>
-struct affectation_sub: binary_function<T, T, T>
-{
-	T& operator()(T& x, const T& y) const {return (x-=y);}// correct FH 25/10/2013
-};
-
-
-
-extern Map_type_of_map map_type_of_map ; //  to store te type 
-extern Map_type_of_map map_pair_of_type ; //  to store te type 
-
-extern basicForEachType *  typevarreal,  * typevarcomplex;  //  type of real and complex variable
-
-extern int TheCurrentLine; // unset: by default
-extern long mpisize,mpirank;
-
-template<class T> inline T Max (const T &a,const T & b){return a > b ? a : b;}
-template<class T> inline T Min (const T &a,const T & b){return a < b ? a : b;}
-template<class T> inline T Abs (const T &a){return a <0 ? -a : a;}
-template<class T> inline T Max (const T &a,const T & b,const T & c){return Max(Max(a,b),c);}
-template<class T> inline T Min (const T &a,const T & b,const T & c){return Min(Min(a,b),c);}
-template<class T> inline T Square (const T &a){return a*a;}
-
-
- 
-template<class K> 
-struct Op2_dotproduct: public binary_function<Transpose<KN_<K> >,KN<K> *,K> { 
-  static K f( Transpose<KN_<K> > const & a, KN<K> * const& b)  
-   { return (conj(a.t),*b);} }; 
-
-template<class K> 
-struct Op2_dotproduct_: public binary_function<Transpose<KN_<K> >,KN_<K> ,K> { 
-  static K f( Transpose<KN_<K> > const & a, KN_<K>  const& b)  
-   { return (conj(a.t),b);} }; 
-   
-template<class A,class B>  A Build(B b) {  return A(b);}
-
-template<class T>
-void  HeapSort(T *c,long n,long o)
-{ // trie un tableau c de n valeur avec un decalage de o.
-   //  le tableau: c[i*o] , pour i = 0 a n-1  
-    long l,j,r,i;
-    T crit;
-    c-=o; // on decale de o pour que le tableau commence a o
-    if( n <= 1) return;
-    l = (n/2 + 1)*o;
-    r = n*o;
-    while (1) { // label 2
-	if(l <= o ) { // label 20
-	    crit = c[r];
-	    c[r] = c[o];
-	    r-=o;
-	    if ( r == o ) { c[o]=crit; return;}
-	} else  crit = c[l-=o]; 
-	j=l;
-	while (1) {// label 4
-	    i=j;
-	    j=2*j;
-	    if  (j>r) {c[i]=crit;break;} // L8 -> G2
-	    if ((j<r) && (c[j] < c[j+o])) j+=o; // L5
-	    if (crit < c[j]) c[i]=c[j]; // L6+1 G4
-	    else {c[i]=crit;break;} //L8 -> G2
-	}
-    }
-}
-
-template<class R,class A> A  SortKn(const A  & ca)
-{ 
-    A a(ca);
-    HeapSort<R>(&a[0],a.n,a.step);
-    return a;}
-
-template<class R,class RR,class A,class B> A  SortKn(const A  & ca,const B  & cb)
-{ 
-    cout << "SortKn  " << endl;
-    const A &a(ca);
-    const B &b(cb);
-    ffassert(a.n == b.n);
-    ffassert(a.step == b.step && b.step ==1);
-    HeapSort<R,RR>(&a[0],&b[0],a.n);
-    cout << b << endl;
-return a;}
-
-template<class R,class RR> KN<R> *  SortpKn2( KN<R> * const & pa,KN<RR> * const & pb){ 
-  //  cout << " SortpKn2 " << endl;
-    KN<R> &a(*pa);
-    KN<RR> &b(*pb);
-    ffassert(a.n == b.n);
-    ffassert(a.step == b.step && b.step ==1);
-    HeapSort<R,RR>(&a[0],&b[0],a.n);
-   return pa;}
-
-template<class R> KN<R> *  SortpKn( KN<R> * const & pa){ 
-    KN<R> &a(*pa);
-    HeapSort<R>(&a[0],a.n,a.step);
-    return pa;}
-
-template<class R>
-class QuantileKN:  public KN_<R> { public:
-    QuantileKN(const KN_<R> &a): KN_<R>(a) {}
-    QuantileKN(KN<R>  * p): KN_<R>(*p) {}
-    operator R *() const {return this->KN_<R>::operator R *() ;}    
-};
-
-
-template<class R> R   Quantile(QuantileKN<R>  const & a,const double & q){ 
-    KN<R> b(a); 
-    HeapSort<R>(b,b.n,b.step);
-    long m=lrint(b.n*q);
-    if( m >= b.n) m=b.n-1;
-    if( m < 0) m=0;   
-    R qq=b[m];
-   // cout <<  "Quantile: m = " << m << " " << b <<endl;
-    return qq;}
-
-
-  
-inline void MyAssert(int i,char * ex,char * file,long line)
-{if (i) {
-    cout << "CompileError assertion :  " << ex << " in file " << file << "  line = " << line << endl; 
-     CompileError();}
- }
-
-
-template<class K>
-inline   K * get_element( MyMap<String,K> *  const  &  a,string*  const   & b)
- { K * ret=  &((*a)[*b]); // correction FH feb 2004
-  //  cout << "get_element " << *b << " : " << ret << " = "<< * ret << endl;
-   // delete b;  modif mars 2006 auto del ptr
-    return ret;}
-    
-template<>
-inline   string ** get_element<string*>( MyMap<String,string*> *  const  &  a,string*  const   & b)
- { string** ret=  &((*a)[*b]); // correction FH feb 2004
-    if( *ret ==0) *ret = new string(""); //  string vide ???
-     // cout << "get_element " << *b << " : " << ret << " = "<< * ret << endl;
-    // delete b;  modif mars 2006 auto del ptr
-    return ret;}
-
-inline   string ** get_elements( MyMap<String,String> *  const  &  a,string*  const   & b)
- { String* Sret=  &((*a)[*b]); // correction FH feb 2004
-   //  delete b;  modif mars 2006 auto del ptr
-    return Sret->getap();}
-
-template<class RR,class A,class B>  
-RR * get_element_(const A & a,const B & b){ 
-  if( b<0 || a.N() <= b) 
-   { cerr << " Out of bound  0 <=" << b << " < "  << a.N() << " array type = " << typeid(A).name() << endl;
-     ExecError("Out of bound in operator []");}
-    return  &((a)[b]);}
-    
-
-template<class RR,class A,class B>  
-RR * get_elementp_(const A & a,const B & b){ 
-  if( b<0 || a->N() <= b) 
-   { cerr << " Out of bound  0 <=" << b << " < "  << a->N() << " array type = " << typeid(A).name() << endl;
-     ExecError("Out of bound in operator []");}
-    return  &((*a)[b]);}
-
-template<class K>  
-KN_<K> fSubArray(const KN_<K> & a,const SubArray & b)
- { return a(b);}
-template<class K>  
-KN_<K> fSubArrayp( KN<K>  * const & a,const SubArray & b)
- { return (*a)(b);}
-
-template<class K>  
-KNM_<K> fSubArraybb(const KNM_<K> & a,const SubArray & b,const SubArray & c)
-{ return a(b,c);}
-template<class K>  
-KNM_<K> fSubArraypbb( KNM<K> * const & a,const SubArray & b,const SubArray & c)
-{ return (*a)(b,c);}
-
-template<class K>  
-KN_<K> fSubArrayib(const KNM_<K> & a,const long &i,const SubArray & b)
-{ return a(i,b);}
-template<class K>  
-KN_<K> fSubArraybi(const KNM_<K> & a,const SubArray & b,const long &i)
-{ return a(b,i);}
-
-template<class K>  
-KN_<K> fSubArraypib( KNM<K> *const & a,const long &i,const SubArray & b)
-{ return (*a)(i,b);}
-template<class K>  
-KN_<K> fSubArraypbi( KNM<K> *const & a,const SubArray & b,const long &i)
-{ return (*a)(b,i);}
-
-
-template<class A>  
-A fSubArrayc(const A & a,const char & b)
- { return a;}
- 
-template<class RR,class A,class B,class C>  
-RR * get_elementp2_(const A & a,const B & b,const C & c){ 
-  if( b<0 || a->N() <= b || c<0 || a->M() <= c  ) 
-   { cerr << " Out of bound  0 <=" << b << " < "  << a->N() << " " << c << " < "  << a->M() 
-           << " array type = " << typeid(A).name() << endl;
-     ExecError("Out of bound in operator (,)");}
-    return  &((*a)(b,c));}
-
-template<class RR,class A,class B,class C>  
-RR get_element_is(const A &  a,const B & b,const C & c){ 
- //  cout << b << " .... " << ((*a)(SubArray(1,b),c)) << endl;;
-    return  ((*a)(b,'.')(c));}
-
-template<class RR,class A,class B,class C>  
-RR get_element_si(const A &  a,const B & b,const C & c){ 
- //  cout << c << " .... " << ((*a)(b,SubArray(1,c) )) << endl;;
-     return  ((*a)('.',c)(b));}
-     
-template<class RR,class A,class B,class C>  
-RR get_element_lineorcol(const A &  a,const B & b,const C & c){ 
- //  cout << b << " .... " << ((*a)(SubArray(1,b),c)) << endl;;
-    if(c == ':' && (b<0 || a->N() <= b))
-            ExecError("Out of bound");
-    if(b == ':' && (c<0 || a->M() <= c))
-            ExecError("Out of bound");
-    return  ((*a)(b,c));
-    }
-
-template<class RR,class A,class B,class C>  
-RR get_element_is_(const A &  a,const B & b,const C & c){ 
-    //  cout << b << " .... " << ((*a)(SubArray(1,b),c)) << endl;;
-return  ((a)(b,'.')(c));}
-
-template<class RR,class A,class B,class C>  
-RR get_element_si_(const A &  a,const B & b,const C & c){ 
-    //  cout << c << " .... " << ((*a)(b,SubArray(1,c) )) << endl;;
-return  ((a)('.',c)(b));}
-
-template<class RR,class A,class B,class C>  
-RR get_element_lineorcol_(const A &  a,const B & b,const C & c){ 
-    //  cout << b << " .... " << ((*a)(SubArray(1,b),c)) << endl;;
-return  ((a)(b,c));}
-
-template<class RR,class A,class B,class C>  
-RR * get_elementp2__(const A & a,const B & b,const C & c){ 
-    if( b<0 || a.N() <= b || c<0 || a.M() <= c  ) 
-      { cerr << " Out of bound  0 <=" << b << " < "  << a.N() << " " << c << " < "  << a.M() 
-	  << " array type = " << typeid(A).name() << endl;
-      ExecError("Out of bound in operator (,)");}
-return  &((a)(b,c));}
-
-
-    
-
-template<class RR,bool isinit>
-class  InitArrayfromArray : public OneOperator { 
-public:
-    typedef KN<RR> * A;
-    typedef KN<RR> * R;
-    typedef E_Array B;
-    
-    class CODE : public  E_F0 { public:
-       Expression a0;
-       int N;
-       Expression * tab;
-    int * what;//  0  RR, 1 KN<RR>, 
-       const  bool mi;
-
-    CODE(Expression a,const E_Array & tt)  
-      : a0(a),N(tt.size()),
-	tab(new Expression [N]),
-	what(new int[N])  ,
-	mi(tt.MeshIndependent())
-
-      {
-        assert(&tt);
-	//      int err=0;
-        for (int i=0;i<N;i++)
-	if(atype<RR>()->CastingFrom(tt[i].right() ) ) 
-	  {
-          tab[i]=atype<RR>()->CastTo(tt[i]);
-	    what[i]=0;
-	  }
-	else if(atype<KN_<RR> >()->CastingFrom(tt[i].right() ) ) 
-	  {
-	    tab[i]=atype<KN_<RR> >()->CastTo(tt[i].RightExp());
-	    what[i]=1;
-	  }      
-	else 
-<<<<<<< HEAD
-	  CompileError(" InitArrayfromArray: we are waiting for scalar or vector of scalar");
-=======
-	  CompileError(" we are waiting for scalar or vector of scalar");
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    }
-    
-    AnyType operator()(Stack stack)  const 
-    {
-<<<<<<< HEAD
-	//extern void xxxx();
-	//xxxx();
-=======
-	extern void xxxx();
-	xxxx();
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      A  a=GetAny<A>((*a0)(stack));
-      KN<AnyType> v(N);
-      KN<int>  nn(N+1);
-      for (int i=0;i<N;i++)
-        v[i]= (*(tab[i]))(stack);
-      
-      int n=0;
-      for (int i=0;i<N;i++)
-	{
-	  if (what[i]==0) nn[i]=1;
-	  else if (what[i]==1) nn[i]=GetAny<KN_<RR> >(v[i]).size();
-          n += nn[i];
-	}
-      if (isinit) 
-        a->init(n);
-      else
-	a->resize(n);
-      
-      for (int i=0,j=0 ;i<N; j += nn[i++])
-	
-        if (what[i]==0)
-          (*a)[j]= GetAny<RR>(v[i]);
-        else if (what[i]==1) 
-<<<<<<< HEAD
-          (*a)(SubArray(nn[i],j)) = GetAny<KN_<RR> >((*(tab[i]))(stack));// correct bug nov 2014
-        //  (due to resize=> pointer  change Fh
-=======
-          (*a)(SubArray(nn[i],j)) = GetAny<KN_<RR> >(v[i]);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      return SetAny<R>(a);
-    } 
-    bool MeshIndependent() const     {return  mi;} // 
-    ~CODE() { delete [] tab; delete[] what;}
-    operator aType () const { return atype<R>();}    
-  }; // end sub class CODE
-  
-  
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new CODE(t[0]->CastTo(args[0]),*dynamic_cast<const E_Array*>( t[1]->CastTo(args[1]).LeftValue()));} 
-    InitArrayfromArray():   OneOperator(atype<R>(),atype<A>(),atype<B>())  {}
-  
-};
-
-template<class RR,bool isinit>
-class  InitMatfromAArray : public OneOperator { 
-public:
-    typedef KNM<RR> * A;
-    typedef KNM<RR> * R;
-    typedef E_Array B;
-    
-    class CODE : public  E_F0 { public:
-       Expression a0;
-       int N;
-       int M;
-       Expression ** tab;
-       const  bool mi;
-
-    CODE(Expression a,const E_Array & tt)  
-      : a0(a),N(tt.size()),M(0),
-	tab(new Expression* [N]),
-	mi(tt.MeshIndependent())
-
-      {
-        assert(&tt);
-	//       int err=0;
-        for (int i=0;i<N;i++)
-         {
-          const E_Array  *li =  dynamic_cast<const E_Array *>(tt[i].LeftValue());
-          if (li)
-	  {
-	     const E_Array & lli = *li;
-	     // -- check ---
-	     if( i == 0) { 
-	         M = lli.size(); ffassert( M>0 );
-	        for (int i=0;i<N;i++) tab[i] = new Expression [M];
-	       }
-	     else {  
-	        if ( M != li->size() ) { 
-	        cout << " line " << i << " the size of the column change " << M << " to " << li->size() << endl;
-	        CompileError(" Is not a matrix,  M is not constant" ); } } 
-	        
-	    for (int j=0;j<M;j++)
-              tab[i][j]=atype<RR>()->CastTo(  lli[j]);
-	   }
-	 else  // li == 0 
-	  CompileError(" we are waiting for  vector of scalar [  , , ,  ] ");
-	 }
-	 
-    }
-    
-    AnyType operator()(Stack stack)  const 
-    {
-      A  a=GetAny<A>((*a0)(stack));
-      if (isinit) 
-        a->init(N,M);
-      else
-	a->resize(N,M);
-      
-       for (int i =0;i<N;++i)
-       for (int j =0;j<M;++j)
-          (*a)(i,j)=   GetAny< RR >( (*(tab[i][j]))(stack)) ; 
-      return SetAny<R>(a);
-    } 
-    bool MeshIndependent() const     {return  mi;} // 
-    ~CODE() { for (int i=0;i<N;i++) delete [] tab[i]; delete [] tab; }
-    operator aType () const { return atype<R>();}    
-  }; // end sub class CODE
-  
-  
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new CODE(t[0]->CastTo(args[0]),*dynamic_cast<const E_Array*>( t[1]->CastTo(args[1]).LeftValue()));} 
-    InitMatfromAArray():   OneOperator(atype<R>(),atype<A>(),atype<B>())  {}
-  
-};
-
-template<typename RR>
-class  SetArrayofKNfromKN : public OneOperator { 
-public:
-    typedef KN_<RR>  A; // Warning  B type of  1 parameter 
-    typedef KN_<RR>  R;
-    typedef E_Array B; //   A type of 2 parameter
-    
-    class CODE : public  E_F0 { public:
-       Expression a0;
-       int N;
-       Expression * tab;
-       int * what;//  0  RR, 1 KN<RR>, 
-       const  bool mi;
-
-    CODE(Expression a,const E_Array & tt)  
-      : a0(a),N(tt.size()),
-	tab(new Expression [N]),
-	what(new int[N])  ,
-	mi(tt.MeshIndependent())
-      {
-        assert(&tt);
-	//      int err=0;
-        for (int i=0;i<N;i++)
-	if(atype<RR*>()->CastingFrom(tt[i].left() ) ) 
-	  {
-          tab[i]=atype<RR*>()->CastTo(tt[i]);
-	    what[i]=0;
-	  }
-	else if(atype<KN_<RR> >()->CastingFrom(tt[i].right() ) ) 
-	  {
-	    tab[i]=atype<KN_<RR> >()->CastTo(tt[i].RightExp());
-	    what[i]=1;
-	  }      
-	else 
-	  CompileError(" we are waiting for scalar or vector of scalar");
-    }
-    
-    AnyType operator()(Stack stack)  const 
-    {
-      A  a=GetAny<A>((*a0)(stack));
-      KN<AnyType> v(N);
-      KN<int>  nn(N+1);
-      for (int i=0;i<N;i++)
-        v[i]= (*(tab[i]))(stack);
-      
-      int n=0; 
-      for (int i=0;i<N;i++)
-	{
-	  if (what[i]==0) nn[i]=1;
-	  else if (what[i]==1) nn[i]=GetAny<KN_<RR> >(v[i]).size();
-          n += nn[i];
-	}
-      ffassert(n == a.size()); 
-      for (int i=0,j=0 ;i<N; j += nn[i++])
-	
-        if (what[i]==0)
-         * GetAny<RR*>(v[i]) = a[j];
-        else if (what[i]==1) { // hack FH 
-           KN_<RR> tab(GetAny<KN_<RR> >(v[i])); 
-           tab  =a(SubArray(nn[i],j));
-           }
-      return SetAny<R>(a);
-    } 
-    bool MeshIndependent() const     {return  mi;} // 
-    ~CODE() { delete [] tab; delete[] what;}
-    operator aType () const { return atype<R>();}    
-  }; // end sub class CODE
-  
-  
-    public: // warning hack  A and B 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new CODE(t[1]->CastTo(args[1]),*dynamic_cast<const E_Array*>( t[0]->CastTo(args[0]).RightValue()));} 
-    SetArrayofKNfromKN():   OneOperator(atype<R>(),atype<B>(),atype<A>())  {} // warning with A and B 
-  
-};
-   
-
-
-template<class K> long get_n(KN<K> * p){ return p->N();}
-template<class K> long get_n(KNM<K> * p){ return p->N();}
-template<class K> long get_m(KNM<K> * p){ return p->M();}
-template<class K> K get_max(KN<K> * p){ return p->max();}
-template<class K> K get_min(KN<K> * p){ return p->min();}
-template<class K> long get_imax(KN<K> * p){ long  i =0; for(long k=1;k< p->N(); ++k) if(  (*p)[k]>(*p)[i] ) i=k;  return i ;}
-template<class K> long get_imin(KN<K> * p){ long  i =0; for(long k=1;k< p->N(); ++k) if(  (*p)[k]<(*p)[i] ) i=k;  return i ;}
-
-template<class K> K get_sum(KN<K> * p){ return p->sum();}
-template<class K> double get_l2(KN<K> * p){ return p->l2();}
-template<class K> double get_l1(KN<K> * p){ return p->l1();}
-template<class K> double get_linfty(KN<K> * p){ return p->linfty();}
-
-template<class K> K get_max(KNM<K> * p){ return p->max();}
-template<class K> K get_min(KNM<K> * p){ return p->min();}
-template<class K> K get_sum(KNM<K> * p){ return p->sum();}
-template<class K> double get_l2(KNM<K> * p){ return p->l2();}
-template<class K> double get_l1(KNM<K> * p){ return p->l1();}
-template<class K> double get_linfty(KNM<K> * p){ return p->linfty();}
-
-template<class K,class T > K get_sum0(const T & p){ return p.sum();}
-template<class K,class T > K get_max0(const T &p){ return p.max();}
-template<class K,class T > K get_min0(const T &p){ return p.min();}
-template<class K,class T> K  get_l2_0(const T &p){ return p.l2();}
-template<class K,class T> K  get_l1_0(const T &p){ return p.l1();}
-template<class K,class T> K  get_linfty_0(const T &p){ return p.linfty();}
-
-
- 
- class ostream_precis { public:
- ostream_precis(ostream * ff) :f(ff) {}
-  ostream * f;
-   operator long () const {return f->precision();}
- };
-
-template<class A,class B> B castto(const A & a){ return a;}
-
-/*
-template<class K>
-AnyType ClearReturnpKN(Stack stack, const AnyType & a)
-{
-    KN<K> * m = GetAny<K>(a);
-    Add2StackOfPtr2FreeRC(stack, (K*) (*m) );
-    if(verbosity>1)
-	cout << "AddIncrement:: increment + Add2StackOfPtr2FreeRC " << endl;
-    return new KN<K>(true, *m);
-}*/
-
-template<typename K,typename KK>
-AnyType ClearReturnpKK(Stack stack, const AnyType & a)
-{
-    // a ne faire que pour les variables local au return...
-    //  pour l'instant on copie pour fqire mqrche 
-    // a repense  FH  mqi 2009....
-    KK * m = GetAny<KK * >(a);
-  //   KN<K> *cm=new KN<K>(true, *m); bug quant KN est une variable global
-   // KN<K> *cm=new KN<K>( *m); // on duplique le tableau comme en C++  (dur dur ?????? FH)
-    m->increment();
-    Add2StackOfPtr2FreeRC(stack,m);
-    if(verbosity>400)
-	cout << "ClearReturnpKK:: increment + Add2StackOfPtr2FreeRC nb ref  " <<  -m->next  << endl;
-    return m;
-}
-template<typename K,typename KK,typename KK_>
-AnyType ClearReturnpKK_(Stack stack, const AnyType & a)
-{
-   // il faut faire un copie du tableau 
-    KK_ * m = GetAny<KK_ * >(a);
-    KK *cm=new KK(*m); 
-   
-    Add2StackOfPtr2Free(stack,cm);// detruire la copie 
-    if(verbosity>400)
-	cout << "ClearReturnpKK_:: copie  Add2StackOfPtr2Free "  << endl;
-    return (KK_ *) cm;
-}
-template<typename K,typename KK,typename KK_>
-AnyType ClearReturnKK_(Stack stack, const AnyType & a)
-{
-    // il faut faire un copie du tableau 
-    KK_  m = GetAny<KK_>(a);
-    KK *cm=new KK(m); 
-    
-    Add2StackOfPtr2Free(stack,cm);// detruire la copie 
-    if(verbosity>400)
-	cout << "ClearReturnKK_:: copie  Add2StackOfPtr2Free   "  << endl;
-    return SetAny<KK_>(*cm);
-}
-template<typename K,typename KK_,typename KK>
-AnyType CopieKK_pKK(Stack stack,const AnyType &a) {
-    KK_  m = GetAny<KK_>(a);
-    KK *cm=new KK(m);     
-    if(verbosity>400)
-	cout << "CopieKK_pKK:: copie  Add2StackOfPtr2Free   "<< cm   << endl;
-    Add2StackOfPtr2Free(stack,cm);// detruire la copie 
-return cm;}
-
-
-template<typename KK,typename KK_> 
-AnyType UnRefpKN(Stack,const AnyType &a) {
-    KK_ a_(*PGetAny<KK >(a));
-    return  SetAny<KK_ >(a_);}
-
-template<class A> inline AnyType DestroyKN(Stack,const AnyType &x){
-    KN<A> * a=PGetAny<KN<A> >(x);
-    SHOWVERB(cout << "DESTROY " <<typeid(A).name() << " " << a <<  endl); 
-    for(int i=0;i<a->N(); ++i)
-        (*a)[i].destroy(); 
-    a->destroy(); 
-    return  Nothing;
-}
-
-template<class K>
-void ArrayDCL()
-{
-  //  Dcl_TypeandPtr<KN<K> >(0,0,0,::Destroy<KN<K> >, 0 ,  ::ClearReturnKN<K> );
- 
-    //Dcl_Type<KN<K> *>(0,::Destroy<KN<K> >,   ::ClearReturnpKK<K,KN<K> > );
-    //Dcl_TypeandPtr<KN_<K> >(0,0,0,0,::ClearReturnKK_<K,KN<K>,KN_<K> >,::ClearReturnpKK_<K,KN<K>,KN_<K> >);
-    Dcl_TypeandPtr_<KN_<K> ,KN<K>*  > (0,0,::InitP<KN<K> >,::Destroy<KN<K> >, ::ClearReturnKK_<K,KN<K>,KN_<K> >,::ClearReturnpKK<K,KN<K> >); // add init 0
-    
-    //  Dcl_Type<KN<Complex> *>(0,::Destroy<KN<Complex> >);
-   // Dcl_Type<KN<K> *>(0,::Destroy<KN<K> >); // Modif 17102005 
-   // attention un exp KN<> * right est un KN<> et non un KN<> *
-
-  //  Dcl_Type<KNM<K> *>(0,::Destroy<KNM<K> > ,::ClearReturnpKK<K,KNM<K> >);
-    Dcl_TypeandPtr_<KNM_<K> ,KNM<K>*  > (0,0,0,::Destroy<KNM<K> >, ::ClearReturnKK_<K,KNM<K>,KNM_<K> >,::ClearReturnpKK<K,KNM<K> >);
-    Dcl_Type<  KN<KNM<K> >* >(0,::DestroyKN<KNM<K> >,::ClearReturnpKK<KNM<K>,KN<KNM<K> > >);
-    Dcl_Type<  KN<KN<K> >* >(0,::DestroyKN<KN<K> >,::ClearReturnpKK<KN<K>,KN<KN<K> > >);
-    
-    Dcl_Type< outProduct_KN_<K>* >();
-    Dcl_Type< Transpose<KN_<K> > > ();
-    Dcl_Type< Transpose< KNM<K> *> >();
- 
-    Dcl_Type<Add_KN_<K> >();
-    
-    Dcl_Type<DotStar_KN_<K> >();
-    Dcl_Type<DotSlash_KN_<K> >();
-    Dcl_Type<Sub_KN_<K> >();
-    Dcl_Type<Mulc_KN_<K> >();
-    Dcl_Type<Divc_KN_<K> >();
-    Dcl_Type<Mul_KNM_KN_<K> >();
-    Dcl_Type<Add_Mulc_KN_<K> *>();
-    Dcl_Type<if_arth_KN_<K> *>();
-    // for    B(I) and B(I^-1)
-    Dcl_Type<pair<KN_<K>,Inv_KN_long> *>();
-    Dcl_Type<pair<KN_<K>,KN_<long> > *>();
-    
-    map_type[typeid(KN<K> * ).name()]->AddCast(
-    new E_F1_funcT<KN<K>*,KN_<K> >(CopieKK_pKK<K,KN_<K>,KN<K> > )
-	 );
-// add  august 2009 FH  to see full  matrix as a array
-    map_type[typeid(KN_<K>  ).name()]->AddCast(
-						     new E_F1_funcT<KN_<K>,KNM<K>* >(UnRef<KN_<K>,KNM<K> *> ));					     
-						 
-    
-     map_type[typeid(KN_<K> ).name()]->AddCast(
-    //   new E_F1_funcT<KN_<K>,KN_<K>*>(UnRefpKN_<K> ),
-       new E_F1_funcT<KN_<K>,KN<K>*>(UnRefpKN<KN<K>,KN_<K> >  )
-	//  inutil cas KN<K> est right expression de KN<K>* 
-//       new E_F1_funcT<KN_<K>,KN<K> >(Cast<KN_<K>,KN<K> >)
-       
-       ); 
-    map_type[typeid(KNM_<K> ).name()]->AddCast(
-					      new E_F1_funcT<KNM_<K>,KNM<K>*>(UnRefpKN<KNM<K>,KNM_<K> >  )
-					      ); 
-    
-    //   ,new E_F1_funcT<KN_<K>,K>(ValueToKN_<K>),
-    //   new E_F1_funcT<KN_<K>,K*>(PtrToKN_<K>)       
-/*       
-     // Ajoute FH   
-     map_type[typeid(KN<K> ).name()]->AddCast(
-       new E_F1_funcT<KN<K>,KN<K>*>(UnRef<KN<K> >)
-    //   ,new E_F1_funcT<KN_<K>,K>(ValueToKN_<K>),
-    //   new E_F1_funcT<KN_<K>,K*>(PtrToKN_<K>)       
-       ); */
-    map_type_of_map[make_pair(atype<long>(),atype<K>())]=atype<KN<K>*>(); // vector
-    map_pair_of_type[make_pair(atype<long>(),atype<long>())] =atype<pair<long,long> >();   
-    map_type_of_map[make_pair(atype<pair<long,long> >(),atype<K>())]=atype<KNM<K>*>(); // matrix 
-    map_type_of_map[make_pair(atype<long>(),atype<KN_<K> >())]=atype<KN<KN<K> >*>();// tableau de tableau
-    map_type_of_map[make_pair(atype<long>(),atype<KNM_<K> >())]=atype<KN<KNM<K> >*>();// tableau de matrix 
-
-}
-
-
-
-template<class A,class B> pair<A,B> * pBuild(const A & a,const B & b)
-  { return new pair<A,B>(a,b);}
-
-// add mars 2006
-template<class K,class L,class OP>
-struct set_A_BI: public binary_function<KN_<K>,pair<KN_<K>, KN_<L> > *,KN_<K> > {
-  static KN_<K> f(const KN_<K>   & a, pair<KN_<K>, KN_<L> > * const & b)  {
-    KN_<K> x(a);
-    OP op;
-     const KN_<K> & y(b->first);
-    const KN_<L> & I(b->second);
-    L  N = x.N();
-    L n = y.N();
-    
-    L maxI=I(SubArray(N)).max() ;
-    L minI=I(SubArray(N)).min() ;
-    
-    if( maxI >= n || I.N()  < N) 
-       { cerr << " Out of Bound x=y(I)  :  0 <= " << minI << " < "<< maxI << "< " << n  << endl;
-         cerr << " or I.N() " << I.N() << " > " << N << endl;
-         ExecError("Out of Bound error");
-       }
-       
-    for(int i=0;i<N;i++)
-      if(I[i]>=0) 
-      op(x(i),y(I[i]));
-    delete b;
-    return a;
-  
-  }
-};  
-
-template<class K,class L,class OP>
-struct set_AI_B: public binary_function<pair<KN_<K>, KN_<L> > * ,KN_<K>, NothingType > {
-  static NothingType  f( pair<KN_<K>, KN_<L> > * const & b,const KN_<K>   & a)  {
-    KN_<K> x(a);
-    OP op;
-     const KN_<K> & y(b->first);
-    const KN_<L> & I(b->second);
-    L  N = I.N();
-    L n = y.N();
-    
-    L maxI=I(SubArray(N)).max() ;
-    L minI=I(SubArray(N)).min() ;
-    
-    if(  maxI >= n || x.N()  < N ) 
-       { cerr << " Out of Bound x(I)=y  :  0 <= " << minI << " < "<< maxI << "< " << n  << endl;
-         cerr << " or x.N() " << I.N() << " > " << N << endl;
-         ExecError("Out of Bound error");
-       }
-       
-    for(int i=0;i<N;i++)
-      if(I[i] >=0) 
-      op(y(I[i]),x[i]);
-    delete b;   
-    return  NothingType();
-  
-  }
-};  
-
-template<class K> 
-struct Op3_paac: public ternary_function<KN_<K>,KN_<K>,K,if_arth_KN_<K>*> { 
-static if_arth_KN_<K>* f(Stack s,const KN_<K> & a,const KN_<K> & b,const  K & c )  {
-    //K cc(c);
-    KN_<K> kc(new(NewAllocTmp(s,sizeof(c))) K(c),1,0);
-  return new if_arth_KN_<K>(a,b,kc);}
-};   
-template<class K> 
-struct Op3_paca: public ternary_function<KN_<K>,K,KN_<K>,if_arth_KN_<K>*> { 
-    static if_arth_KN_<K>* f(Stack s,const KN_<K> & a,const  K & b,const KN_<K> & c )  {
-	//K bb(b);
-	KN_<K> kb(new(NewAllocTmp(s,sizeof(b))) K(b),1,0);
-    return new if_arth_KN_<K>(a,kb,c);}
-};   
-
-template<class K> 
-struct Op3_pacc: public ternary_function<KN_<K>,K,K,if_arth_KN_<K>*> { 
-    static if_arth_KN_<K>* f(Stack s,const KN_<K> & a,const K & b,const  K & c )  {
-	K cc(c),bb(b);
-	KN_<K> kc(new(NewAllocTmp(s,sizeof(c))) K(c),1,0),
-	       kb(new(NewAllocTmp(s,sizeof(b))) K(b),1,0);    
-    return new if_arth_KN_<K>(a,kb,kc);}
-};   
-
-template<class K>
-struct SetArray2: public binary_function<K,K,SetArray<K> > { 
-  static SetArray<K> f(const K & a,const K & b)  { 
-    // cout << "SubArray: " << a << " " << b << endl;
-    //     SetArray(long nn,R oo=R(),R sstep=R(1)): o(oo),n(nn),step(sstep) {}
-    long  n= long(abs((b-a)));
-    ffassert(n);
-    K s= (b-a)/K(n);
-    n++;
-    if(verbosity>100)
-      cout << "    SetArray " << n << " " << a << " " << s << endl;
-    return SetArray<K>(n,a,s);} }; 
-
-template<class K>
-struct SetArray3: public ternary_function<K,K,K,SetArray<K> > { 
-  static SetArray<K> f(Stack s,const K & a,const K &b,const K & c)  {  
-    // cout << "SubArray: " << a << " " << b << " " <<  c << endl;
-    long n= long(1+abs((c-a)/b));
-    if(verbosity>100)
-      cout << "    SetArray " << n << " :  "  << " " << a << " " << b << " " << c << endl;	
-    return SetArray<K>(n,a,b);} }; 
-
-template<class R,class A>  R * set_init_array( R* const & a,const A & b){ 
-    SHOWVERB( cout << " set_init " << typeid(R).name() << " " << &b << endl);
-    a->init(b.size());
-    *a=b;
-return a;}
-template<class R,class A>  R * set_array( R* const & a,const A & b){ 
-    SHOWVERB( cout << " set_init " << typeid(R).name() << " " << &b << endl);
-    a->resize(b.size());
-    *a=b;
-return a;}
-// missing FH august 2009 
-template<class R,class A>  R * set_arrayp( R* const & a,const A & b){ 
-    SHOWVERB( cout << " set_init " << typeid(R).name() << " " << &b << endl);
-    a->resize(b->size());
-    *a=*b;
-return a;}
-template<class R,class A>  R  set_array_( R const & a,const A & b){ 
-    SHOWVERB( cout << " set_array_ " << typeid(R).name() << " " << &b << endl);
-    ffassert(a.N()==b.size());
-    R aa=a;
-    aa=b;
-return a;}
-// xxxxxxxxxxx
-template<class K>  KNM<K> * set_initmat_t(KNM<K> * a,Transpose<KNM<K> * > b ){ 
-    ConjKNM_<K>  tb=b.t->t(); ;
-     a->init(tb.N(),tb.M());
-    *a=tb;
-    return a;}
-template<class K>  KNM<K> * set_initmat(KNM<K> * a,KNM<K> *  b ){ 
-    
-    a->init(b->N(),b->M());
-    *a=*b;
-    return a;}
-template<class K>  KNM<K> * set_mat_t(KNM<K> * a,Transpose<KNM<K> * > b ){ 
-    ConjKNM_<K>  tb=b.t->t(); ;
-    a->resize(tb.N(),tb.M());// correction mars 2013 
-    *a=tb;
-    return a;}
-template<class K>  KNM<K> * addto_mat_t(KNM<K> * a,Transpose<KNM<K> * > b ){ 
-    ConjKNM_<K>  tb=b.t->t(); ;
-    *a+=tb;
-    return a;}
-template<class K>  KNM<K> * subto_mat_t(KNM<K> * a,Transpose<KNM<K> * > b ){ 
-    ConjKNM_<K>  tb=b.t->t(); ;
-    *a-=tb;
-    return a;}
-template<class K>  KNM<K> * set_mat(KNM<K> * a,KNM<K> *  b ){ 
-    
-    a->resize(b->N(),b->M());
-    *a=*b;
-    return a;}
-
-template<class K>  
-class  OneOperator_2KN_ : public OneOperator {public:
-    class Op : public E_F0 {
-       public:
-	int N;
-	Expression *tab;
-	
-	Op( const  E_Array &bb) : N(bb.size()), tab(new Expression[N])
-	{
-	  for(int i=0;i<N;++i)	
-	    tab[i]=atype<K>()->CastTo( bb[i]);
-	}
-	AnyType operator()(Stack s)  const { 
-	    K * p = Add2StackOfPtr2FreeA<K>(s,new K[N]); //   mark to be delete .. 
-	    KN<K> A(N, p);
-	    for(int i=0;i<N;++i)
-		A[i]= GetAny<K>( (*tab[i])(s));
-	    return SetAny<KN_<K> >(A);}
-    };
-    E_F0 * code(const basicAC_F0 & a) const 
-    {  const  E_Array * b = dynamic_cast<const E_Array *>(a[0].LeftValue());
-	ffassert(b);
-        return new Op(*b);} 
-    OneOperator_2KN_<K>(): OneOperator(atype<KN_<K> >(),atype<E_Array>()) { pref=-1;}
-};
-
-extern aType aaaa_knlp;
-template<class K,class Z>
-void ArrayOperator()
-{
-    //  juin 2009  remove type KN_< > *
-    // and set  KN<> * 9left expression) qnd KN_<> is the associated expression..
-    // =>  lot of change because  KN<>* and KN_< > can generqte ambuguity.
-    // so remove all to code with KN<>* type. 
-    // the remove cqde are in comment :
-    //  the comment begin //- 
-    // and the if(0) in comment /* */ 
-    
-    
-     Dcl_Type< Resize<KN<K> > > ();
-     Dcl_Type< Resize<KNM<K> > > ();
-     aType knrp = atype<KN<K> *>();
-     aType knr_ = atype<KN_<K> >();
-   //-  typedef KN<Z> ZN;
-      
-    // add  dec 2009.  ne marche pas ( incompatible  avec MatrixBlock) a comprendre ????? FH. 
-    //  //   xxxxxxxxxx  2010 feb.   retest .. FH 
-    //   il y a plusieurs problems
-    //    1)   [1,2,3.] ->  tableau de quel type  int, real , complex ????
-    //
-     //   map_type[typeid(KN_<K>).name()]->AddCast(new OneOperator_2KN_<K>);
-    // fin add 
-    // ----
-     aType knlp=  aaaa_knlp ;
-     
-     atype<KN<K>* >()->Add("[","",new OneOperator2_<K*,KN<K>*,Z >(get_elementp_<K,KN<K>*,Z>));
-     atype<KN<K>* >()->Add("(","",new OneOperator2_<K*,KN<K>*,Z >(get_elementp_<K,KN<K>*,Z>));
-     atype<KN_<K> >()->Add("(","",new OneOperator2_<KN_<K>,KN_<K>,char >(fSubArrayc<KN_<K> >));
-     atype<KN_<K> >()->Add("(","",new OneOperator2_<KN_<K>,KN_<K>,SubArray>(fSubArray<K> ));
-     atype<KN<K>*>()->Add("(","",new OneOperator2_<KN_<K>,KN<K>*,SubArray>(fSubArrayp<K> ));
-     atype<KN<K>* >()->Add("(","",new OneOperator2_<KN<K>*,KN<K>*,char >(fSubArrayc<KN<K>* >));
-// 
-    
-     atype<KNM_<K> >()->Add("(","",new OneOperator3_<KNM_<K>,KNM_<K>,SubArray,SubArray>(fSubArraybb<K> ));
-     atype<KNM<K>* >()->Add("(","",new OneOperator3_<KNM_<K>,KNM<K>*,SubArray,SubArray>(fSubArraypbb<K> ));
-    /*
-     atype<KN_<K> >()->Add("(","",new OneOperator3_<KN_<K>,KNM_<K>,SubArray,long>(fSubArraybi<K> ));
-     atype<KN_<K> >()->Add("(","",new OneOperator3_<KN_<K>,KNM_<K>,long,SubArray>(fSubArrayib<K> ));
-     atype<KN_<K> >()->Add("(","",new OneOperator3_<KN_<K>,KNM<K>*,SubArray,long>(fSubArraypbi<K> ));
-     atype<KN_<K> >()->Add("(","",new OneOperator3_<KN_<K>,KNM<K>*,long,SubArray>(fSubArraypib<K> ));
-     */
-//
-    
-    atype<KN_<K> >()->Add("[","",new OneOperator2_<K*,KN_<K>,Z >(get_element_<K,KN_<K>,Z>));
-    atype<KN_<K> >()->Add("(","",new OneOperator2_<K*,KN_<K>,Z >(get_element_<K,KN_<K>,Z>));
-    
-    
-     atype<KNM<K>* >()->Add("(","",new OneOperator3_<KN_<K>,KNM<K>*,Z,SubArray >(get_element_is<KN_<K>,KNM<K>*,Z,SubArray>));
-     atype<KNM<K>* >()->Add("(","",new OneOperator3_<KN_<K>,KNM<K>*,SubArray,Z >(get_element_si<KN_<K>,KNM<K>*,SubArray,Z>));
-     atype<KNM<K>* >()->Add("(","",new OneOperator3_<KN_<K>,KNM<K>*,Z,char >(get_element_lineorcol<KN_<K>,KNM<K>*,Z,char>));
-     atype<KNM<K>* >()->Add("(","",new OneOperator3_<KN_<K>,KNM<K>*,char,Z >(get_element_lineorcol<KN_<K>,KNM<K>*,char,Z>));
-     atype<KNM<K>* >()->Add("(","",new OneOperator3_<K*,KNM<K>*,Z,Z >(get_elementp2_<K,KNM<K>*,Z,Z>));
-
-    atype<KNM_<K> >()->Add("(","",new OneOperator3_<KN_<K>,KNM_<K>,Z,SubArray >(get_element_is_<KN_<K>,KNM_<K>,Z,SubArray>));
-    atype<KNM_<K> >()->Add("(","",new OneOperator3_<KN_<K>,KNM_<K>,SubArray,Z >(get_element_si_<KN_<K>,KNM_<K>,SubArray,Z>));
-    atype<KNM_<K> >()->Add("(","",new OneOperator3_<KN_<K>,KNM_<K>,Z,char >(get_element_lineorcol_<KN_<K>,KNM_<K>,Z,char>));
-    atype<KNM_<K> >()->Add("(","",new OneOperator3_<KN_<K>,KNM_<K>,char,Z >(get_element_lineorcol_<KN_<K>,KNM_<K>,char,Z>));
-    atype<KNM_<K> >()->Add("(","",new OneOperator3_<K*,KNM_<K>,Z,Z >(get_elementp2__<K,KNM_<K>,Z,Z>));
-    
-    
-     Add<KN<K> *>("sum",".",new OneOperator1<K,KN<K> *>(get_sum));
-     Add<KN<K> *>("min",".",new OneOperator1<K,KN<K> *>(get_min));
-     Add<KN<K> *>("max",".",new OneOperator1<K,KN<K> *>(get_max));
-
-     Add<KN<K> *>("l2",".",new OneOperator1<double,KN<K> *>(get_l2));
-     Add<KN<K> *>("l1",".",new OneOperator1<double,KN<K> *>(get_l1));
-     Add<KN<K> *>("linfty",".",new OneOperator1<double,KN<K> *>(get_linfty));
-// add july 2009 
-    Add<KNM<K> *>("sum",".",new OneOperator1<K,KNM<K> *>(get_sum));
-    Add<KNM<K> *>("min",".",new OneOperator1<K,KNM<K> *>(get_min));
-    Add<KNM<K> *>("max",".",new OneOperator1<K,KNM<K> *>(get_max));
-    Add<KNM<K> *>("l2",".",new OneOperator1<double,KNM<K> *>(get_l2));
-    Add<KNM<K> *>("l1",".",new OneOperator1<double,KNM<K> *>(get_l1));
-    Add<KNM<K> *>("linfty",".",new OneOperator1<double,KNM<K> *>(get_linfty));
-// end add     
-     
-     Add<KN_<K> >("sum",".",new OneOperator1_<K,KN_<K> >(get_sum0<K,KN_<K> >));
-     Add<KN_<K> >("min",".",new OneOperator1_<K,KN_<K> >(get_min0<K,KN_<K> >));
-     Add<KN_<K> >("max",".",new OneOperator1_<K,KN_<K> >(get_max0<K,KN_<K> >));
-     Add<KN_<K> >("l2",".",new OneOperator1_<double,KN_<K> >(get_l2_0<double,KN_<K> >));
-     Add<KN_<K> >("l1",".",new OneOperator1_<double,KN_<K> >(get_l1_0<double,KN_<K> >));
-     Add<KN_<K> >("linfty",".",new OneOperator1_<double,KN_<K> >(get_linfty_0<double,KN_<K> >));
-    
-// add july 2009    
-    Add<KNM_<K> >("sum",".",new OneOperator1_<K,KNM_<K> >(get_sum0<K,KNM_<K> >));
-    Add<KNM_<K> >("min",".",new OneOperator1_<K,KNM_<K> >(get_min0<K,KNM_<K> >));
-    Add<KNM_<K> >("max",".",new OneOperator1_<K,KNM_<K> >(get_max0<K,KNM_<K> >));
-    Add<KNM_<K> >("l2",".",new OneOperator1_<double,KNM_<K> >(get_l2_0<double,KNM_<K> >));
-    Add<KNM_<K> >("l1",".",new OneOperator1_<double,KNM_<K> >(get_l1_0<double,KNM_<K> >));
-    Add<KNM_<K> >("linfty",".",new OneOperator1_<double,KNM_<K> >(get_linfty_0<double,KNM_<K> >));
-// end add     
-    
-    
-/*    
-     Add<KN<K> >("sum",".",   new OneOperator1_<K,KN<K> >(get_sum0<K,KN<K> >));
-     Add<KN<K> >("min",".",   new OneOperator1_<K,KN<K> >(get_min0<K,KN<K> >));
-     Add<KN<K> >("max",".",   new OneOperator1_<K,KN<K> >(get_max0<K,KN<K> >));
-     Add<KN<K> >("l2",".",    new OneOperator1_<double,KN<K> >(get_l2_0<double,KN<K> >));
-     Add<KN<K> >("l1",".",    new OneOperator1_<double,KN<K> >(get_l1_0<double,KN<K> >));
-     Add<KN<K> >("linfty",".",new OneOperator1_<double,KN<K> >(get_linfty_0<double,KN<K> >));
-*/     
-
-     Add<KN<K> *>("resize",".",new OneOperator1< Resize<KN<K> >,KN<K> *>(to_Resize));
-     Add<KNM<K> *>("resize",".",new OneOperator1< Resize<KNM<K> >,KNM<K> *>(to_Resize));
-     
-     Add<Resize<KN<K> > >("(","",new OneOperator2_<KN<K> *,Resize<KN<K> > , Z   >(resize1));
-     Add<Resize<KNM<K> > >("(","",new OneOperator3_<KNM<K> *,Resize<KNM<K> > , Z, Z  >(resize2));
-
-    
-     TheOperators->Add("<-", 
-       new OneOperator2_<KN<K> *,KN<K> *,Z>(&set_init),
-       new InitArrayfromArray<K,true>
-    //   new OneOperator2_<KN<K> *,KN<K> *,KN<K> >(&set_init),
-    //   new OneOperator2_<KN<K> *,KN<K> *,KN_<K> >(&set_init)		????       
-     //  new OneOperator2_<KN<K> *,KN<K> *,KN<K> * >(&set_initp)
-       );
-    TheOperators->Add("<-", 
-                      new OneOperator2_<KN< KN<K> > *,KN< KN<K> > * ,Z  >(&set_init));
-    TheOperators->Add("<-", 
-                      new OneOperator2_<KN< KNM<K> > *,KN< KNM<K> > * ,Z  >(&set_init));
-    
-     TheOperators->Add("<-", 
-        new OneOperator3_<KNM<K> *,KNM<K> *,Z,Z>(&set_init2),
-        new InitMatfromAArray<K,true>
-       );
-       
-     Add<KN<K> *>("<-","(",new OneOperator2_<KN<K> *,KN<K> *,Z>(&set_init));
-   //  Add<KN<K> *>("<-","(",new OneOperator2_<KN<K> *,KN<K> *,KN<K> >(&set_init));
-     //Add<KN<K> *>("<-","(",new OneOperator2_<KN<K> *,KN<K> *,KN_<K> >(&set_init));
-    // Add<KN<K> *>("<-","(",new OneOperator2_<KN<K> *,KN<K> *,KN<K> * >(&set_initp));
-     Add<KNM<K> *>("<-","(",new OneOperator3_<KNM<K> *,KNM<K> *,Z,Z>(&set_init2));
-     TheOperators->Add("<-",new OneOperator2<KNM<K> *,KNM<K> *,Transpose<KNM<K> * > >(&set_initmat_t));// may 2011 FH..
-    TheOperators->Add("=",new OneOperator2<KNM<K> *,KNM<K> *,Transpose<KNM<K> * > >(&set_mat_t));// may 2011 FH..
-    TheOperators->Add("+=",new OneOperator2<KNM<K> *,KNM<K> *,Transpose<KNM<K> * > >(&addto_mat_t));// oct 2011 FH..
-    TheOperators->Add("-=",new OneOperator2<KNM<K> *,KNM<K> *,Transpose<KNM<K> * > >(&subto_mat_t));// oct 2011 FH..
-//     TheOperators->Add("-=",new OneOperator2<KNM<K> *,KNM<K> *,Transpose<KNM<K> * > >(&subto_mat_t<-1>));// oct 2011 FH..
-   //  Add<KNM<K> *>("<-","(",new OneOperator2<KNM<K> *,KNM<K> *,KNM<K> *  >(&set_initmat));// may 2011 FH..
-   //  Add<KNM<K> *>("=","(",new OneOperator2<KNM<K> *,KNM<K> *,Transpose<KNM<K> * > >(&set_mat_t));// may 2011 FH..
-  //   Add<KNM<K> *>("=","(",new OneOperator2<KNM<K> *,KNM<K> *,KNM<K> *  >(&set_mat));// may 2011 FH..
-
-    // Add<KNM<K> *>("=","(",new OneOperator2_<KNM<K> *,KNM<K> *,Transpose<KNM<K> * > >(&set_tt));
-    
-     Add<KN<K> *>("<-","(",new InitArrayfromArray<K,true>);
-     Add<KNM<K> *>("<-","(",new InitMatfromAArray<K,true>);
-     Add<KN<K> *>("n",".",new OneOperator1<Z,KN<K> *>(get_n));
-     Add<KNM<K> *>("n",".",new OneOperator1<Z,KNM<K> *>(get_n));
-     Add<KNM<K> *>("m",".",new OneOperator1<Z,KNM<K> *>(get_m));
- //ajout ars 2012 FH    
-     Add<KN<KN<K> > *>("n",".",new OneOperator1<long,KN<KN<K> > *>(get_n));     
-     Add<KN<KNM<K> > *>("n",".",new OneOperator1<long,KN<KNM<K> > *>(get_n));  
-     atype<KN<KN<K> > * >()->Add("[","",new OneOperator2_<KN<K>*,KN<KN<K> >*,Z >(get_elementp_<KN<K>,KN<KN<K> >*,Z>));
-    atype<KN<KNM<K> > * >()->Add("[","",new OneOperator2_<KNM<K>*,KN<KNM<K> >*,Z >(get_elementp_<KNM<K>,KN<KNM<K> >*,Z>));
-    Dcl_Type< Resize<KN<KN<K> > > > ();
-    Dcl_Type< Resize<KN<KNM<K> > > >();
-    Add<KN<KN<K> > * >("resize",".",new OneOperator1< Resize<KN<KN<K> > >,KN<KN<K> > *>(to_Resize));
-    Add<KN<KNM<K> > * >("resize",".",new OneOperator1< Resize<KN<KNM<K> > >,KN<KNM<K> > *>(to_Resize));
-    Add<Resize<KN<KN<K> > > >("(","",new OneOperator2_<KN<KN<K> >  *,Resize<KN<KN<K> > > , long   >(resize1));
-    Add<Resize<KN<KNM<K> > > >("(","",new OneOperator2_<KN<KNM<K> >  *,Resize<KN<KNM<K> > > , long   >(resize1));
-    
-    
-//     AddOpeqarray<set_eqarray,KN,K>("=");
-
-     TheOperators->Add("=", new InitArrayfromArray<K,false>
-       );
-     TheOperators->Add("=", new InitMatfromAArray<K,false>
-       );
-     TheOperators->Add("=", new SetArrayofKNfromKN<K>
-       );
- if(0) //  a  change il faut regle un PB ambiguite ...  
-     TheOperators->Add("=",
-        new OneBinaryOperator<set_eqarray<KN<K> ,K > > ,
-        new OneBinaryOperator<set_eqarray<KN<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray<KN<K> ,DotStar_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray<KN<K> ,DotSlash_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray<KN<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray<KN<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray<KN<K> ,Divc_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray<KN<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray<KN<K> ,KN_<K> > > , // Add FH juin 2005         
-        new OneBinaryOperator<set_eqarraypd<KN<K> ,Add_Mulc_KN_<K>* > > , // Add FH aug 2005     
-        new OneBinaryOperator<set_eqarraypd<KN<K> ,if_arth_KN_<K>* > > 
-      //  new OneBinaryOperator<set_eqarrayp<KN<K> ,KN<K>* > >   // test aug 2009    
-      );
-  // add august 2007 
-    
-     TheOperators->Add("<-",
-		      // new OneBinaryOperator<set_eqarray<KN<K> ,K > > ,
-		       new OneBinaryOperator<init_eqarray<KN<K> ,Add_KN_<K> > > ,
-		       new OneBinaryOperator<init_eqarray<KN<K> ,DotStar_KN_<K> > > ,
-		       new OneBinaryOperator<init_eqarray<KN<K> ,DotSlash_KN_<K> > > ,
-		       new OneBinaryOperator<init_eqarray<KN<K> ,Sub_KN_<K> > > ,
-		       new OneBinaryOperator<init_eqarray<KN<K> ,Mulc_KN_<K> > > ,
-		       new OneBinaryOperator<init_eqarray<KN<K> ,Divc_KN_<K> > > ,
-		       new OneBinaryOperator<init_eqarray<KN<K> ,Mul_KNM_KN_<K> > > ,
-		       new OneBinaryOperator<init_eqarray<KN<K> ,KN_<K> > > , // Add FH juin 2005         
-		       new OneBinaryOperator<init_eqarraypd<KN<K> ,Add_Mulc_KN_<K>* > > , // Add FH aug 2005     
-		       new OneBinaryOperator<init_eqarraypd<KN<K> ,if_arth_KN_<K>* > > 
-		      // new OneBinaryOperator<init_eqarrayp<KN<K> ,KN<K>* > >       
-		       );
-
-    
-     TheOperators->Add("=",
-        new OneBinaryOperator<set_eqarray<KNM<K>  ,K > > ,
-         new OneBinaryOperator<set_eqarrayp<KNM<K>  , KNM<K> *  > > 
-        
-       );
-  
-     TheOperators->Add("=",
-        new OneBinaryOperator<set_eq_array<KN_<K> ,K > > ,
-        new OneBinaryOperator<set_eq_array<KN_<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array<KN_<K> ,DotStar_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array<KN_<K> ,DotSlash_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array<KN_<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array<KN_<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array<KN_<K> ,Divc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array<KN_<K> ,Mul_KNM_KN_<K> > > ,
-	new OneBinaryOperator<set_eq_arraypd<KN_<K> ,if_arth_KN_<K>* > > ,
-        new OneBinaryOperator<set_eq_arraypd<KN_<K> ,Add_Mulc_KN_<K>* > >  , // Add FH aug 2005    
-	new OneBinaryOperator<set_eq_array<KN_<K> ,KN_<K> > >, // add FH juin 2005		       
-        new OneBinaryOperator<set_eq_arraypd<KN_<K> ,KN<K>* > >
-		       
-      //-  new OneBinaryOperator<set_eq_arrayp<KN_<K> ,KN<K>* > >       
-      );
-//  ajoute mars 2010  FH    
-    TheOperators->Add("<-",
-		      new OneBinaryOperator<init_eqarray<KNM<K> ,KNM_<K> > >        
-		      );
-    
-    TheOperators->Add("=",
-		      new OneBinaryOperator<set_eqarray<KNM<K>  ,KNM_<K> > > 
-
-		    //  new OneBinaryOperator<set_eq_array<KNM_<K> ,K > > ,
-		    //  new OneBinaryOperator<set_eq_array<KNM_<K> ,KNM_<K> > >, 		       
-		    //  new OneBinaryOperator<set_eq_arraypd<KNM_<K> ,KNM<K>* > >
-		      );
- 
-//  end add ...     
-/*if(0)
-     TheOperators->Add("+=",
-        new OneBinaryOperator<set_eqarray_add<KN<K> ,K > > ,
-        new OneBinaryOperator<set_eqarray_add<KN<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_add<KN<K> ,DotStar_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_add<KN<K> ,DotSlash_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_add<KN<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_add<KN<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_add<KN<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarraypd_add<KN<K> ,Add_Mulc_KN_<K>* > > ,
-        new OneBinaryOperator<set_eqarraypd_add<KN<K> ,if_arth_KN_<K>* > > ,
-        new OneBinaryOperator<set_eqarray_add<KN<K> ,KN_<K> > > , // Add FH juin 2005         
-        new OneBinaryOperator<set_eqarrayp_add<KN<K> ,KN<K>* > >  
-              
-      );
-*/    
-     TheOperators->Add("+=",
-        new OneBinaryOperator<set_eq_array_add<KN_<K> ,K > > ,
-        new OneBinaryOperator<set_eq_array_add<KN_<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_add<KN_<K> ,DotStar_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_add<KN_<K> ,DotSlash_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_add<KN_<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_add<KN_<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_add<KN_<K> ,Divc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_add<KN_<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_arraypd_add<KN_<K> ,Add_Mulc_KN_<K>* > > ,
-        new OneBinaryOperator<set_eq_arraypd_add<KN_<K> ,if_arth_KN_<K>* > > ,
-	new OneBinaryOperator<set_eq_array_add<KN_<K> ,KN_<K> > >  // add FH juin 2005
-		       
-       // new OneBinaryOperator<set_eq_arrayp_add<KN_<K> ,KN<K>* > >        
-      );
-/*    if(0)  
-     TheOperators->Add("-=",
-        new OneBinaryOperator<set_eqarray_sub<KN<K> ,K > > ,
-        new OneBinaryOperator<set_eqarray_sub<KN<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_sub<KN<K> ,DotStar_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_sub<KN<K> ,DotSlash_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_sub<KN<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_sub<KN<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_sub<KN<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarraypd_sub<KN<K> ,Add_Mulc_KN_<K>* > > ,
-        new OneBinaryOperator<set_eqarraypd_sub<KN<K> ,if_arth_KN_<K>* > > ,
-        new OneBinaryOperator<set_eqarray_sub<KN<K> ,KN_<K> > > , // Add FH juin 2005                 
-        new OneBinaryOperator<set_eqarrayp_sub<KN<K> ,KN<K>* > >        
-      );*/
-    
-     TheOperators->Add("-=",
-        new OneBinaryOperator<set_eq_array_sub<KN_<K> ,K > > ,
-        new OneBinaryOperator<set_eq_array_sub<KN_<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_sub<KN_<K> ,DotStar_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_sub<KN_<K> ,DotSlash_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_sub<KN_<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_sub<KN_<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_sub<KN_<K> ,Divc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_sub<KN_<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_arraypd_sub<KN_<K> ,Add_Mulc_KN_<K>* > > ,
-        new OneBinaryOperator<set_eq_arraypd_sub<KN_<K> ,if_arth_KN_<K>* > > ,
-       //- new OneBinaryOperator<set_eq_arrayp_sub<KN_<K> ,KN<K>* > >        
-	new OneBinaryOperator<set_eq_array_sub<KN_<K> ,KN_<K> > >   // Add FH juin 2005        
-      );
-      
-/*    if(0)
-    TheOperators->Add("*=",
-        new OneBinaryOperator<set_eqarray_mul<KN<K> ,K > >  ,
-        new OneBinaryOperator<set_eqarray_mul<KN<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_mul<KN<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_mul<KN<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_mul<KN<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarraypd_mul<KN<K> ,Add_Mulc_KN_<K>* > > ,
-        new OneBinaryOperator<set_eqarrayp_mul<KN<K> ,KN<K>* > >       
-      );*/
- 
-      TheOperators->Add("*=",
-                        new OneBinaryOperator<set_eq_array_mul<KN_<K> ,K > >  );
-     TheOperators->Add(".*=",
-        new OneBinaryOperator<set_eq_array_mul<KN_<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_mul<KN_<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_mul<KN_<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_mul<KN_<K> ,Divc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_mul<KN_<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_arraypd_mul<KN_<K> ,Add_Mulc_KN_<K>* > > ,
-       //- new OneBinaryOperator<set_eq_arrayp_mul<KN_<K> ,KN<K>* > >       
-	new OneBinaryOperator<set_eq_array_mul<KN_<K> ,KN_<K> > >       
-      );
-// FH correction  01 nov 2005 FH  copy paste mistake eq_ exchange  ok  v2.0-3 
-/*    if(0)
-     TheOperators->Add("/=",
-        new OneBinaryOperator<set_eqarray_div<KN<K> ,K > > ,
-        new OneBinaryOperator<set_eqarray_div<KN<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_div<KN<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_div<KN<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarray_div<KN<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eqarraypd_div<KN<K> ,Add_Mulc_KN_<K>* > > ,
-        new OneBinaryOperator<set_eqarray_div<KN<K> ,KN_<K> > >        
-     );*/
-
-     TheOperators->Add("/=",
-                       new OneBinaryOperator<set_eq_array_div<KN_<K> ,K > > );
-    TheOperators->Add("./=",
-        new OneBinaryOperator<set_eq_array_div<KN_<K> ,Add_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_div<KN_<K> ,Sub_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_div<KN_<K> ,Mulc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_div<KN_<K> ,Divc_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_array_div<KN_<K> ,Mul_KNM_KN_<K> > > ,
-        new OneBinaryOperator<set_eq_arraypd_div<KN_<K> ,Add_Mulc_KN_<K>* > > ,
-        new OneBinaryOperator<set_eq_array_div<KN_<K> ,KN_<K> > >        
-     );
-// end correction 
-     TheOperators->Add("+",
-       new OneBinaryOperator<Op2_add0<Add_KN_<K>,KN_<K>,KN_<K> > >,
-     //-  new OneBinaryOperator<Op2_add0<Add_KN_<K>,KN_<K>,KN_<K> > >(knrp,knrp),
-       new OneBinaryOperator<Op2_add__n<Add_Mulc_KN_<K>,Mulc_KN_<K>,Mulc_KN_<K> > >,
-       new OneBinaryOperator<Op2_add__n<Add_Mulc_KN_<K>,KN_<K>,Mulc_KN_<K> > >,
-       new OneBinaryOperator<Op2_add__n<Add_Mulc_KN_<K>,Mulc_KN_<K> ,KN_<K> > >
-       );
-
-     TheOperators->Add("-",
-       new OneBinaryOperator<Op2_sub0<Sub_KN_<K>,KN_<K> ,KN_<K> > >,
-     //-  new OneBinaryOperator<Op2_sub0<Sub_KN_<K>,KN_<K> ,KN_<K> > >(knrp,knrp),
-       new OneUnaryOperator<Op1_sub<Mulc_KN_<K>,KN_<K> > >,
-       new OneBinaryOperator<Op2_sub__n<Add_Mulc_KN_<K>,Mulc_KN_<K>,Mulc_KN_<K> > >,
-       new OneBinaryOperator<Op2_sub__n<Add_Mulc_KN_<K>,KN_<K>,Mulc_KN_<K> > >,
-       new OneBinaryOperator<Op2_sub__n<Add_Mulc_KN_<K>,Mulc_KN_<K> ,KN_<K> > >
-       );
-    
-     TheOperators->Add("*",
-     //-  new OneBinaryOperator<Op2_mulpc<Mulc_KN_<K>,KN<K>*,K> >,
-     //-  new OneBinaryOperator<Op2_mulcp<Mulc_KN_<K>,K,KN<K>*> >,
-       new OneBinaryOperator<Op2_mulc<Mulc_KN_<K>,KN_<K>,K> >,
-       new OneBinaryOperator<Op2_mulc<Mulc_KN_<K>,K,KN_<K> > >,
-       new OneBinaryOperator<Op2_mulpcp<Mul_KNM_KN_<K>,KNM<K>*,KN<K>*> >,
-      // new OneBinaryOperator<Op2_mulp<Mul_KNM_KN_<K>,KNM_<K>,KN_<K>> >, // - add #1 mqi 2009 
-      // new OneBinaryOperator<Op2_dotproduct<K> >,
-       new OneBinaryOperator<Op2_dotproduct_<K> > 
-     //-  ,new OneBinaryOperator<Op2_pbuild<outProduct_KN_<K>,KN<K>*,Transpose<KN_<K> > > >
-       ,new OneBinaryOperator<Op2_pbuild<outProduct_KN_<K>,KN_<K>,Transpose<KN_<K> > > > 
-       ,new OneBinaryOperator<Op2_pbuild<outProduct_KN_<K>,Mulc_KN_<K>,Transpose<KN_<K> > > > 
-             
-       );
-
-    TheOperators->Add("/",
-                      new OneBinaryOperator<Op2_divc<Divc_KN_<K>,K,KN_<K> > >,
-                      new OneBinaryOperator<Op2_divc<Mulc_KN_<K>,KN_<K>,K > >
-                      
-                      );
-
-//  nouvel operateur       
-     TheOperators->Add("+=",
-        new OneBinaryOperator<set_eqarraypd_add<KNM<K> ,outProduct_KN_<K>* > > 
-       );
-       
-     TheOperators->Add("-=",
-        new OneBinaryOperator<set_eqarraypd_sub<KNM<K> ,outProduct_KN_<K>* > > 
-       );
-       
-     TheOperators->Add("=",
-        new OneBinaryOperator<set_eqarraypd<KNM<K> ,outProduct_KN_<K>* > > 
-       );
-//   tested ok ...  FH 
-     TheOperators->Add("?:",
-       new OneTernaryOperator3<Op3_p<if_arth_KN_<K>, KN_<K> > > ,
-       new OneTernaryOperator3<Op3_paac<K > > ,      
-       new OneTernaryOperator3<Op3_pacc<K > > ,      
-       new OneTernaryOperator3<Op3_paca<K > >   
-
-       );
-// end ...
-
-// add mars 2006 
-// atype<KN_<K> >()->Add("(","",new OneOperator2_< pair<KN_<K>,KN_<long> > * ,KN_<K>  , KN_<long>  >(pBuild< KN_<K>   , KN_<long>  >));
- atype<KN_<K> >()->Add("(","",new OneOperator2_< pair<KN_<K>,KN_<long> > * ,KN_<K>  , KN_<long>  >(pBuild< KN_<K>   , KN_<long>  >,atype<KN_<K>  >(), atype<KN_<long> >() ));
- atype<KN<K> *>()->Add("(","",new OneOperator2_< pair<KN_<K>,KN_<long> > * ,KN_<K>  , KN_<long>  >(pBuild< KN_<K>   , KN_<long>  >,atype<KN<K> * >(), atype<KN_<long> >() ));
- //atype<KN_<K> >()->Add("(","",new OneOperator2_< pair<KN_<K>,KN_<long> > * ,KN_<K>  , KN_<long>  >(pBuild< KN_<K>   , KN_<long>  >,atype<KN_<K>  >(), knlp ));
- //atype<KN<K> *>()->Add("(","",new OneOperator2_< pair<KN_<K>,KN_<long> > * ,KN_<K>  , KN_<long>  >(pBuild< KN_<K>   , KN_<long>  >,atype<KN<K> * >(), knlp ));
- 
- TheOperators->Add("=",
-        new OneBinaryOperator<set_A_BI< K,Z,affectation<K>  > > ,
-        new OneBinaryOperator<set_AI_B< K,Z,affectation<K>  > > 
- );
- TheOperators->Add("+=",
-        new OneBinaryOperator<set_A_BI< K,Z,affectation_add<K>  > > ,
-        new OneBinaryOperator<set_AI_B< K,Z,affectation_add<K>  > > 
- );
- TheOperators->Add("-=",
-        new OneBinaryOperator<set_A_BI< K,Z,affectation_sub<K>  > > ,
-        new OneBinaryOperator<set_AI_B< K,Z,affectation_sub<K>  > > 
- );
-// fin 
-  TheOperators->Add("\'",       
-      // new OneOperator1<Transpose<KN_<K> >,KN<K> *>(&Build<Transpose<KN_<K> >,KN<K> *>),
-       new OneOperator1<Transpose<KN_<K> >,KN_<K> >(&Build<Transpose<KN_<K> >,KN_<K> >),
-       new OneOperator1<Transpose<KNM<K> * >, KNM<K> * >(&Build<Transpose<KNM<K> * >,KNM<K> * >)            
-  );
-       
-     TheOperators->Add(".*",
-       new OneBinaryOperator<Op2_build<DotStar_KN_<K>,KN_<K>,KN_<K> > > //-,
-     //-  new OneBinaryOperator<Op2_build<DotStar_KN_<K>,KN_<K>,KN_<K> > >(knrp,knrp),
-     //-  new OneBinaryOperator<Op2_build<DotStar_KN_<K>,KN_<K>,KN_<K> > >(knr_,knrp),
-      //- new OneBinaryOperator<Op2_build<DotStar_KN_<K>,KN_<K>,KN_<K> > >(knrp,knr_)
-       
-      );
-
-      
-     TheOperators->Add("./",
-       new OneBinaryOperator<Op2_build<DotSlash_KN_<K>,KN_<K>,KN_<K> > > //-,
-     //- new OneBinaryOperator<Op2_build<DotSlash_KN_<K>,KN_<K>,KN_<K> > >(knrp,knrp),
-     //-  new OneBinaryOperator<Op2_build<DotSlash_KN_<K>,KN_<K>,KN_<K> > >(knr_,knrp),
-     //-  new OneBinaryOperator<Op2_build<DotSlash_KN_<K>,KN_<K>,KN_<K> > >(knrp,knr_)
-      );
-      
-     TheOperators->Add("<<",
-    //   new OneBinaryOperator<PrintPnd<KN<K>*> >,
-       new OneBinaryOperator<Print<KNM_<K> > >,
-       new OneBinaryOperator<Print<KN_<K> > >
-       ); 
-    TheOperators->Add("<<",
-                      new OneBinaryOperator< PrintPnd< KN< KNM<K> >* > >,
-                      new OneBinaryOperator< PrintPnd< KN< KN<K> >* > >
-                      ); 
-    
-       
-     TheOperators->Add(">>",
-        new OneBinaryOperator<Op_ReadKN<K> >
-      );            
-
-     map_type[typeid(MyMap<String,K>*).name()] = new ForEachType<MyMap<String,K>*>(Initialize<MyMap<String,K> >,Delete<MyMap<String,K> >) ;
-         
-     map_type_of_map[make_pair(atype<string*>(),atype<K>())]=atype<MyMap<String,K>*>(); 
-     
-     atype<MyMap<String,K>*>()->Add("[","",new OneOperator2_<K*,MyMap<String,K>*,string*>(get_element<K>));
-    
-    // Add Mai 2009
-    Dcl_Type<SetArray<K> >();
-    TheOperators->Add("::",
-		    
-		      new OneBinaryOperator<SetArray2<K> >,
-		      new OneTernaryOperator3<SetArray3<K> >);
-    TheOperators->Add("<-", 
-		      new OneOperator2_<KN<K> *,KN<K> *,SetArray<K> >(&set_init_array));
- 
-    TheOperators->Add("=", 
-		      new OneOperator2_<KN<K> *,KN<K> *,SetArray<K> >(&set_array),
-		      new OneOperator2_<KN<K> *,KN<K> *,KN<K> * >(&set_arrayp),  //  to reomve ambiguity aug 2009
-		      new OneOperator2_<KN_<K> ,KN_<K> ,SetArray<K> >(-1,&set_array_) // missing aug 2009 a(:)=1:3 less prioritaire
-    );
-    
-
-}
-
-template<class R,class A,class B=A,class BB=B>
-class  OneOperator1F_KN_ : public OneOperator {
-    aType r; //  return type
-    typedef  A (*func)( B ) ; 
-    func  f;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new Op(f,t[0]->CastTo(args[0]));} 
-    OneOperator1F_KN_(func  ff): 
-      OneOperator(map_type[typeid(R).name()],map_type[typeid(BB).name()]),f(ff){}
-
- class Op :public  E_F0 { public:
-  typedef  A (*func)(B ) ; 
-  func f;
-  Expression a;
-  Op(func ff,Expression aa) : f(ff),a(aa) {}
-  AnyType operator()(Stack s)  const  {return SetAny<R>( R(f, GetAny<BB>( (*a)(s)) ) );}  
-   bool EvaluableWithOutStack() const 
-      {return a->EvaluableWithOutStack() ;} // 
-   bool MeshIndependent() const 
-      {return a->MeshIndependent();} // 
-    
-};      
-      
-};
-template<class K,class KK>
-void ArrayOperatorF()
-{
-     Dcl_Type<F_KN_<K,K,KK> >();
-
-
-     Global.Add("exp","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(exp));
-     Global.Add("log","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(log));
-     Global.Add("log10","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(log10));
-     Global.Add("sqrt","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(sqrt));
-     Global.Add("sin","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(sin));
-     Global.Add("cos","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(cos));
-     Global.Add("tan","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(tan));
-     Global.Add("cosh","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(cosh));
-     Global.Add("sinh","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(sinh));
-     Global.Add("tanh","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(tanh));
-    // Global.Add("acos","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(acos));
-    // Global.Add("asin","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(asin));
-    // Global.Add("atan","(",new OneOperator1F_KN_<F_KN_<K,K,KK>,K,KK,KN_<K> >(atan));
-
-     TheOperators->Add("=",new OneBinaryOperator<set_eq_array<KN_<K> ,F_KN_<K,K,KK> > > ); // add FH juin 2005
-     TheOperators->Add("+=",new OneBinaryOperator<set_eq_array_add<KN_<K> ,F_KN_<K,K,KK> > > ); // add FH juin 2005
-     TheOperators->Add("-=",new OneBinaryOperator<set_eq_array_sub<KN_<K> ,F_KN_<K,K,KK> > > ); // add FH juin 2005
-     TheOperators->Add("/=",new OneBinaryOperator<set_eq_array_div<KN_<K> ,F_KN_<K,K,KK> > > ); // add FH juin 2005
-     TheOperators->Add("*=",new OneBinaryOperator<set_eq_array_mul<KN_<K> ,F_KN_<K,K,KK> > > ); // add FH juin 2005
-  
-}
diff --git a/src/fflib/ffapi.cpp.orig b/src/fflib/ffapi.cpp.orig
deleted file mode 100755
index a2407f3..0000000
--- a/src/fflib/ffapi.cpp.orig
+++ /dev/null
@@ -1,323 +0,0 @@
-#ifdef WITH_PETSC
-#include <petsc.h>
-#endif
-
-/// \file
-/// ======================================================================
-/// Written by Antoine Le Hyaric
-/// Laboratoire Jacques-Louis Lions
-/// Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-/// http://www.ljll.math.upmc.fr/lehyaric
-/// ======================================================================
-/// This file is part of Freefem++
-/// 
-/// Freefem++ is free software; you can redistribute it and/or modify
-/// it under the terms of the GNU Lesser General Public License as
-/// published by the Free Software Foundation; either version 2.1 of
-/// the License, or (at your option) any later version.
-/// 
-/// Freefem++  is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-/// GNU Lesser General Public License for more details.
-/// 
-/// You should have received a copy of the GNU Lesser General Public
-/// License along with Freefem++; if not, write to the Free Software
-/// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-/// 02110-1301 USA
-/// ======================================================================
-/// headeralh cpp freefem start=21/01/10 upmc
-
-// Proposed FreeFem++ Application Programming Interface
-// ----------------------------------------------------
-
-// headerfilter
-#include "ffapi.hpp"
-#ifdef FFLANG
-#include "socket.hpp"
-#include "spawn.hpp"
-#include "buffer.hpp"
-#endif
-#include <iostream>
-#include <cstdio>
-#ifndef FFLANG
-#include <cstdio>
-#endif
-#ifdef FFLANG
-#include "options.hpp"
-#include <stdlib.h>
-#endif
-#ifndef FFLANG
-#ifdef WIN32
-#include <fcntl.h>
-#endif
-#endif
-#ifndef FFLANG
-#ifdef PARALLELE
-#include "mpi.h"
-#endif
-#endif
-<<<<<<< HEAD
-// Add dec 2014
-#include <vector>
-typedef void (*AtEnd)();
-vector<AtEnd> AtFFEnd;
-void ff_finalize()
-{
-    for (vector<AtEnd>::const_reverse_iterator i=AtFFEnd.rbegin(); i !=AtFFEnd.rend(); ++ i)
-        (**i)();
-    AtFFEnd.clear(); 
-}
-void ff_atend(AtEnd f)
-{
-    AtFFEnd.push_back(f);
-}
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-// FFCS-specific implementations for the FF API
-// --------------------------------------------
-
-/// FFLANG defined means that FFCS is being compiled. I am fairly confident that FFCS will not be defined while
-/// compiling the original FF.
-
-/// Need to choose a non-zero stream number because FF will check it (as global variable ThePlotStream)
-#define FFAPISTREAM 1
-
-/// if FFCS is around, we need to bufferize all communications to avoid mixing up CMD_FFG and CMD_STDOUT messages
-#ifdef FFLANG
-void bufferwrite(const char *b,const int l){
-  Socket::dialoglock->WAIT(); // need #include "socket.hpp"
-
-  // thank to the buffering, there is only one CMD_FFG tag for multiple visualization data items.
-  onlyffsock()<<CMD_FFG; // need #include "spawn.hpp"
-  onlyffsock()<<l;
-
-  // this call contains the socket MAGIC number
-  onlyffsock().bufferedwrite(static_cast<const char*>(b),l);
-
-  Socket::dialoglock->Free();
-}
-
-Buffer buffer(NULL,bufferwrite); // need #include "buffer.hpp"
-#endif
-
-namespace ffapi{
-
-  // Get a pointer to the local cin/cout (which is distinct from ffcs's stdin/stdout under Windows because each DLL owns
-  // separate cin/cout objects).
-
-  // need #include <iostream>
-  std::istream *cin(){return &std::cin;}
-  std::ostream *cout(){return &std::cout;}
-  std::ostream *cerr(){return &std::cerr;}
-
-  // FFCS - ::stdout not accepted under mingw32
-  // need #include <cstdio>
-  FILE *ffstdout(){return stdout;}
-  FILE *ffstderr(){return stderr;}
-  FILE *ffstdin(){return stdin;}
-
-  void newplot(){}
-
-  FILE *ff_popen(const char *command, const char *type){
-#ifdef FFLANG
-
-    // this happens right at the begining of FF, so the socket
-    // communication must not be started yet (only when actual
-    // visualization data needs to be transfered).
-
-    PROGRESS;
-    return (FILE*)FFAPISTREAM;
-#else
-
-    // need #include <cstdio>
-    return popen(command,type);
-#endif
-  }
-
-  int ff_pclose(FILE *stream){
-#ifdef FFLANG
-    // nothing to close in FFCS
-    return 0;
-#else
-    return pclose(stream);
-#endif
-  }
-
-  size_t fwriteinit(const void *ptr, size_t size, size_t nmemb,FILE *stream){
-
-    // printf() is useful for debug because it is not redirected through
-    // the FFCS socket. But it is asynchronous with cout so it may end up
-    // in the middle of the lines checked by test/compare. So deactivate
-    // it by default.
-#ifdef DEBUG_FFAPI
-#ifdef FFLANG
-    printf("debug: ffapi: using TCP sockets\n");
-#else
-    printf("debug: ffapi: using an anonymous pipe\n");
-#endif // FFLANG
-#endif // DEBUG_FFAPI
-
-#ifdef FFLANG
-
-    // Ask FFCS to analyze the visualization flux header. I could just skip this stage, but it will be useful to check
-    // the coherency between FFCS and FF when FF evolves in the future.
-
-    Socket::dialoglock->WAIT();
-    onlyffsock()<<CMD_FFGINIT;
-    Socket::dialoglock->Free();
-#endif
-    return ff_fwrite(ptr,size,nmemb,stream);
-  }
-
-  size_t ff_fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream){
-#ifdef FFLANG
-
-    // if the ffsock pointer is null here, it means that the pointer exported from the FFCS shared library is not a
-    // valid one (this has been the case with Windows DLLs in the past).
-
-    // we won't make use of the stream, but make sure that the call from
-    // FF is coherent with what we know.
-    assert(stream==(FILE*)FFAPISTREAM);
-
-    buffer.write(static_cast<const char*>(ptr),size*nmemb);
-
-    // stops the server flux at one precise point (point value expressed during a previous crash while reading server
-    // data in the client in visudata.cpp). Use abort() to call the debugger (which can display the call stack and show
-    // where the problematic pipe value came from).
-
-    // need #include "options.hpp"
-    if(options->AbortFFGraphicsDataAt==buffer.getpoint())abort(); // need #include <stdlib.h>
-
-#else
-    fwrite(ptr,size,nmemb,stream);
-#endif
-    return 0;
-  }
-
-  int ff_fflush(FILE *stream){
-#ifdef FFLANG
-    assert(stream==(FILE*)FFAPISTREAM);
-
-    // we need to flush both the buffer and the socket to avoid a separate callback for flush in the buffer
-    buffer.flush();
-
-    // ff_fflush() is used by FF only at the end of a plot, so we can use this location to send a marker for the
-    // sequential java client to deal with one complete plot at a time.
-    Socket::dialoglock->WAIT();
-    onlyffsock()<<CMD_FFGEND;
-    onlyffsock().writeflush();
-    Socket::dialoglock->Free();
-
-#else
-    fflush(stream);
-#endif
-    return 0;
-  }
-
-  int ff_ferror(FILE *stream){
-#ifndef FFLANG
-    return ferror(stream);
-#else
-    return 0;
-#endif
-  }
-
-  int ff_feof(FILE *stream){
-#ifndef FFLANG
-    return feof(stream);
-#else
-    return 0;
-#endif
-  }
-
-  void wintextmode(FILE *f){
-#ifndef FFLANG
-#ifdef WIN32
-    // need #include <fcntl.h>
-    _setmode(fileno(f),O_TEXT);	
-#endif
-#endif
-  }
-
-  void winbinmode(FILE *f){
-#ifndef FFLANG
-#ifdef WIN32
-    _setmode(fileno(f),O_BINARY);	
-#endif
-#endif
-  }
-
-  void mpi_init(int &argc, char** &argv){
-    /// only call MPI_Init() if this has not already been done in ffcs/src/server.cpp
-#ifndef FFLANG
-#ifdef PARALLELE
-    // need #include "mpi.h"
-    int provided;
-    MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided);
-    if(provided < MPI_THREAD_SERIALIZED) {
-        MPI_Comm_rank(MPI_COMM_WORLD, &provided);
-        if(provided == 0)
-            std::cout << "MPI_THREAD_SERIALIZED not supported !" << std::endl;
-    }
-<<<<<<< HEAD
-#ifdef WITH_PETSCxxxxx
-=======
-#ifdef WITH_PETSC
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    PetscInitialize(&argc, &argv, 0, "");
-#endif
-
-#endif
-#endif
-  }
-
-  void mpi_finalize(){
-#ifndef FFLANG
-#ifdef PARALLELE
-<<<<<<< HEAD
-#ifdef WITH_PETSCxxxxxxxx
-=======
-#ifdef WITH_PETSC
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    PetscFinalize();
-#endif
-    MPI_Finalize();
-#endif
-#endif
-  }
-
-  bool protectedservermode(){
-#ifdef FFLANG
-    return !options->LocalClient;
-#else
-    return false;
-#endif
-  }
-
-  void init(){
-    ffapi::fwriteinit;
-    ffapi::winbinmode;
-    ffapi::wintextmode;
-    ffapi::mpi_finalize;
-    ffapi::cin;
-    ffapi::cerr;
-    ffapi::cout;
-    ffapi::ff_feof;
-    ffapi::newplot;
-    ffapi::ff_popen;
-    ffapi::mpi_init;
-    ffapi::ff_ferror;
-    ffapi::ff_fflush;
-    ffapi::ff_fwrite;
-    ffapi::ff_pclose;
-    ffapi::protectedservermode;
-  }
-}
-
-/// Local Variables:
-/// mode:c++
-/// ispell-local-dictionary:"british"
-/// coding:utf-8
-/// End:
diff --git a/src/fflib/ffapi.hpp.orig b/src/fflib/ffapi.hpp.orig
deleted file mode 100755
index 6d3f5a5..0000000
--- a/src/fflib/ffapi.hpp.orig
+++ /dev/null
@@ -1,124 +0,0 @@
-/// \file
-/// ======================================================================
-/// Written by Antoine Le Hyaric
-/// Laboratoire Jacques-Louis Lions
-/// Université Pierre et Marie Curie-Paris6, UMR 7598, Paris, F-75005 France
-/// http://www.ljll.math.upmc.fr/lehyaric
-/// ======================================================================
-/// This file is part of Freefem++
-/// 
-/// Freefem++ is free software; you can redistribute it and/or modify
-/// it under the terms of the GNU Lesser General Public License as
-/// published by the Free Software Foundation; either version 2.1 of
-/// the License, or (at your option) any later version.
-/// 
-/// Freefem++  is distributed in the hope that it will be useful,
-/// but WITHOUT ANY WARRANTY; without even the implied warranty of
-/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-/// GNU Lesser General Public License for more details.
-/// 
-/// You should have received a copy of the GNU Lesser General Public
-/// License along with Freefem++; if not, write to the Free Software
-/// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-/// 02110-1301 USA
-/// ======================================================================
-/// headeralh cpp freefem start=21/01/10 upmc
-
-// Proposed FreeFem++ Application Programming Interface
-// ----------------------------------------------------
-
-// headerfilter
-#ifndef FFAPI_HPP
-#include <iostream>
-#include <sstream>
-#include <cstdio>
-using namespace std;
-#endif //FFAPI_HPP
-
-#ifndef FFAPI_HPP
-#define FFAPI_HPP
-<<<<<<< HEAD
-  void ff_finalize();
-  void ff_atend( void (*atendff)());
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-namespace ffapi{
-
-  // Redirecting the FF data stream
-  // ------------------------------
-
-  // Getting a pointer to FF stdin and stdout enables extra DLLs to use standard IO even when they are redirected (eg
-  // through FFCS).
-<<<<<<< HEAD
-  
-  void init(); 
-=======
-
-  void init(); 
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  // need #include <iostream>
-  // need #include <sstream>
-  // need using namespace std;
-  std::istream *cin();
-  std::ostream *cout();
-  std::ostream *cerr();
-
-  // <<mingw32_stdout>> Cannot name these functions identically to the original file pointers under MingW32 (compile
-  // error). Impacts [[file:InitFunct.hpp::LOADINITIO]]. Changed from stdxxx_ptr() to ffstdxxx() according to the way FF
-  // itself was changed.
-
-  FILE *ffstdout();
-  FILE *ffstderr();
-  FILE *ffstdin();
-
-  /// Initiate graphical pipe output. I need a separate function for this to warn ffcs to check the corresponding ffglut
-  /// magic number
-
-  size_t fwriteinit(const void *ptr, size_t size, size_t nmemb,FILE *stream);
-
-  /// Indicates the begining of a new plot to avoid sending socket control data with each plot item.
-
-  void newplot();
-
-  /// Redefinition of standard system calls
-
-  FILE *ff_popen(const char *command, const char *type);
-  int ff_pclose(FILE *stream);
-  size_t ff_fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
-  int ff_fflush(FILE *stream);
-  int ff_ferror(FILE *stream);
-  int ff_feof(FILE *stream);
-
-  // Windows file mode
-  // -----------------
-
-  /// Changing file mode needs to be disabled when the file is a TCP socket to FFCS. Since the treatment is different in
-  /// FF and in FFLANG executables, they have to be stored in a DLL that changes between these two programs.
-
-  void wintextmode(FILE *f);
-  void winbinmode(FILE *f);
-
-  // Transfer basic MPI control
-  // --------------------------
-
-  void mpi_init(int &argc, char **& argv);
-  void mpi_finalize();
-
-  // Permanent server control
-  // ------------------------
-
-  /// if true, FF is considered to be accessible from remote anonymous connections and some commands (like shell
-  /// commands) are not allowed.
-
-  bool protectedservermode();
-}
-
-#endif // FFAPI_HPP
-
-/// Local Variables:
-/// mode:c++
-/// ispell-local-dictionary:"british"
-/// coding:utf-8
-/// End:
diff --git a/src/fflib/lex.cpp.orig b/src/fflib/lex.cpp.orig
deleted file mode 100644
index 5501241..0000000
--- a/src/fflib/lex.cpp.orig
+++ /dev/null
@@ -1,864 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include  <complex>
-#include  <string>
-#include  <iostream>
-#include  "error.hpp"
-#include  <ctype.h>
-#include  <stdlib.h>
-#include  <map>
-#include "AFunction.hpp"
-//class pfes;
-#include  <iomanip>                                                                                                        
-#include "lg.tab.hpp"
-#include "lex.hpp"
-
-
-extern YYSTYPE *plglval;
-
-//  New version of macro expantion more classical
-//  and more  simple
-// FH Jan. 2005
-
-static const bool debugmacro = false;
-
-/*inline char * newcopy(const char * s)
-{
-  char *r(new char  [strlen(s)+1]);
-  strcpy(r, s);return r;
-}
-*/
-void  mylex::Add(Key k,int i)   
-{
-  Check(!i,k,"mot clef");
-  Add(k,i,0); 
-}
-
-void  mylex::Add(Key k,aType t)   
-{
-  Check(!t,k,"type");
-
-  // TYPE defined at [[file:../lglib/lg.ypp::token type TYPE]]
-  Add(k,TYPE,t);
-}
-
-void  mylex::AddF(Key k,aType t)  
-{
-  Check(!t,k,"FUNCTION");
-  Add(k,FUNCTION,t); 
-}
-void  mylex::AddSpace(Key k,aType t)  
-{
-  Check(!t,k,"FESPACE");
-  Add(k,FESPACE,t); 
-}
-
-bool mylex::InMotClef  (aType & t, int & r) const {
-  const_iterator i= MotClef.find(buf);
-  if (i== MotClef.end()) {
-    t=0;r=ID;
-    return false;}
-  else {
-    r=i->second.first;
-    t=i->second.second;
-    ffassert(r);
-    return true;}}
-
-void  mylex::Add(Key k,int r,aType t){ 
-  iterator ii= MotClef.find(k);
-  ffassert(ii==MotClef.end());
-  MotClef.insert(pair<const Key,Value>(k,Value(r,t))); }
-
-void mylex::dump(ostream & f ) 
-{
-  const_iterator i=MotClef.begin(),e=MotClef.end();
-  for (;i != e;i++)
-    {
-      f << "      " << i->first << " " << i->second.first << " " <<  i->second.second->name() << endl;
-    }
-}   
-
-inline bool isNLCR(istream & f,int c)
-{
-    // eat  CR NL or NL CR paire  
-    int cc= f.peek();
-    bool ret=(c == 10 || c == 13) ;
-    if(ret && ( cc != c) && (cc == 10 || cc == 13) )
-     f.get();
-    return ret;
-}
-
-int mylex::EatCommentAndSpace(string *data)
-{
- // if data is !0 then add reading char in data
- // return the last read char c
- //  --------------------
-  int c,caux,sep=0;
-    const int space=(int) ' ';
-  int incomment =0;
-  do {
-    incomment = 0;
-    c = source().peek();
-    
-    // eat spaces 
-    while (isspace(c) || c == 10 || c == 13 )
-      {sep=space;
-      c = source().get();
-      if(isNLCR(source(),c)) c='\n';
-      if (echo) cout << (char) c;
-      if(c=='\n') { linenumber++; if (echo) cout << setw(5) <<linenumber << " : " ;};             
-       if(data) *data+=char(c);
-       c=source().peek();
-      } 
-     
-    // eat comment  
-    if(c=='/') 
-      { c = source().get();
-        caux=source().peek(); 
-        if(caux =='/') incomment = 1;
-        else if (caux == '*' ) incomment = 2;
-        if(!incomment) source().putback(c);
-      }
-      
-      
-    if(incomment==1) 
-      { sep=space;
-        if (echo) cout << "//" ;source().get();
-        if(data) *data+="//";
-
-        do {c=source().get();            
-        if(isNLCR(source(),c)) c='\n';
-        if (echo) cout << (char) c;
-        if(data) *data+=char(c);
-        if(c=='\n') { linenumber++; if (echo) cout << setw(5) <<linenumber << " : " ;};             
-        }
-      while( (c!= '\n') && (c!= 10)  && (c!= 13)  &&  ( c != EOF) );
-      }
-    else if(incomment==2) 
-      { sep=space;
-        if (echo) cout << "/*" ;
-        if(data) *data+="/*";
-
-        source().get();
-        do {    
-          c=source().get(); 
-          if(isNLCR(source(),c)) c='\n';
-          if (echo) cout << (char) c ;
-          if(data) *data+=char(c);
-          if(c=='\n') { linenumber++; if (echo) cout << setw(5) <<linenumber << " : " ;};             
-          caux = source().peek();
-        } while(c != EOF && !(c=='*' && caux=='/') ) ;
-        
-        if(c != EOF)  
-          {     c = source().get();
-          if (echo) cout << (char) c ;
-          if(data) *data+=char(c);          
-          }
-        else erreur( " Unterminated comment");
-      }
-  } while (incomment);
-    return (c==EOF) ? c : sep;
-}
-int mylex::basescan()
-{
-  //  extern long mpirank;
-   
-  int c;
-  buf[0]=0;
-  buf[1]=0;
-  buf[2]=0;
-  buf[3]=0; //
- debut:
-  TheCurrentLine=linenumber;
-  // modif FH 
-  if (firsttime) 
-  {
-      firsttime=false;
-    if(echo) cout << setw(5) <<linenumber << " : " ; 
-  }
-  EatCommentAndSpace(); 
-  c =source().get(); // the current char 
-  char nc = source().peek(); // next char
-  buf[0]=c;
-  buf[1]=nc;
-  buf[2]=0;
-  int ret = c;
-  if (c == EOF) 
-    { 
-      //if (echo) cout << "ENDOFFILE "<< endl;
-      if (close() )  goto debut; 
-      buf[0]=0;
-      return ENDOFFILE;}
-  else if (isdigit(c) || (c=='.' && isdigit(nc))) {
-    //  a number
-    int i=1;
-    buf[0]=c;
-    bool real= (c=='.');
-    
-    
-    while ( isdigit(nc) && i< 50 ) buf[i++]=source().get(),nc=source().peek();
-    if (!real && (nc == '.')) real=true,buf[i++]=source().get(),nc=source().peek();
-    while ( isdigit(nc) && i< 50 ) buf[i++]=source().get(),nc=source().peek();
-    if (nc =='E' || nc =='e' || nc =='D' || nc =='d') {real=true;
-    buf[i++]=source().get(),nc=source().peek();
-    if (nc =='+' || nc =='-' || isdigit(nc))  buf[i++]=source().get(),nc=source().peek();
-    while ( isdigit(nc) && i< 50 ) buf[i++]=source().get(),nc=source().peek();
-    }
-    if (i>= 50)  erreur("Number to long");
-    
-    buf[i]=0;
-    if (nc=='i' ) 
-      { buf[i++]=source().get(),buf[i]=0,plglval->dnum = atof(buf),ret=CNUM;}
-    else 
-      if (real)
-        plglval->dnum = atof(buf),ret=DNUM;
-      else
-        plglval->lnum = atoi(buf),ret=LNUM;
-    
-    if(lexdebug) cout << " NUM : " << buf  << " "<<endl;
-  }
-  else if (isalpha(c) || c=='\\')
-    {
-      ret =  ID;
-      int i; 
-      for (i = 1; i < 256 && isalnum(source().peek()); i++) 
-        buf[i]=source().get();
-      if (i == 256) 
-        erreur ("Identifyier too long");
-      buf[i] = 0;
-      
-    }
-  else  if (c=='"')
-    {
-      int i;
-      char cc,ccc;
-      for (     i = 0,cc=source().peek(); 
-                i < 256 &&  ( (isprint(cc)|isspace(cc)) && cc !='\n'  && cc !='"');
-                cc=source().peek(),++i
-                ) 
-        {       
-          if ( cc == '\\')  //   escape 
-            {
-              cc= source().get();
-              cc= source().get(); 
-	      ccc= source().peek(); 
-              switch (cc) {
-              case 'n': buf[i]='\n';break;
-              case 'r': buf[i]='\r';break;
-              case 'f': buf[i]='\f';break;
-              case 't': buf[i]='\t';break;
-              case 'a': buf[i]='\a';break;
-              case 10:
-              case 13:
-		cc='\n';
-		if(ccc!=cc && (ccc==10 || ccc==13)) source().get();// NL CR eat ...
-		linenumber++;
-		//if (echo) cout << setw(5) <<linenumber << " : " ;		
-              default : buf[i]=cc  ;break;              
-              }
-            }
-          else 
-            buf[i] = source().get();
-        }
-      if (i == 256) erreur ("String too long");
-      buf[i] = 0;
-      if(source().get() != '"') erreur("End of String could not be found");
-      plglval->str = newcopy(buf);
-      if(lexdebug)  cout << "STRING=" << '"' << buf << '"' << endl;
-      
-      ret= STRING;
-    }
-  else 
-    {
-      ret = c;
-      switch(c) {
-        
-      case '{': 
-      case '%': 
-      case '}': 
-      case '(': 
-      case ')': 
-      case '[': 
-      case ']': 
-      case ',': 
-      case ';': 
-      case '#': 
-        break;
-      case '*': 
-        if (nc == '=') ret=MULEQ;       
-        break;
-      case '/': 
-        if (nc == '=') ret=DIVEQ;
-        break;  
-      case '^': 
-      case '~': 
-      case '\'': 
-      case '_': 
-      case '?':
-        break;
-      case '.': 
-        if (nc == '*') ret = DOTSTAR;
-        else if (nc == '/') ret = DOTSLASH;
-        break;
-      case ':': 
-        if (nc == '=') ret= SET;
-        break;
-      case '&':
-        if (nc == '&') ret= AND;
-        break;
-      case '|':
-        if (nc == '|') ret= OR;
-        break;
-      case '!': 
-        if (nc == '=') ret=NE;
-        break;          
-      case '<':
-        if (nc == '=') ret=LE;
-        if (nc == '<') ret=LTLT;
-        if (nc == '>') ret= NE;
-        break;
-      case '>':
-        if (nc == '=') ret=GE;  
-        if (nc == '>') ret=GTGT;
-        break;  
-      case '=': 
-        if (nc == '=') 
-          ret=EQ;
-        break;
-      case '-': 
-        if (nc == '>') ret=ARROW;       
-        if (nc == '-') ret=MOINSMOINS;  
-        if (nc == '=') ret=MOINSEQ;     
-        break;
-      case '+': 
-        if (nc == '+') ret=PLUSPLUS;    
-        if (nc == '=') ret=PLUSEQ;      
-        break;
-      default: 
-        cerr << "'" << (char) c << (char) nc << "' <=> " << (int) c << " is " ;
-        erreur (" Unexpected character");
-      }
-      if( (ret == DOTSTAR) || (ret==DOTSLASH))
-      {
-          source().get();
-          nc = source().peek();
-          if(nc == '=' )
-          {
-              buf[2]='=';// ad FH 19 april 2012 (bug in macro ) 
-              buf[3]=0; 
-              source().get();
-              ret = (ret == DOTSTAR) ?DOTMULEQ : DOTDIVEQ;
-          }
-      }
-      else if (ret!=c) source().get();
-      else buf[1] = 0;
-      strcpy(plglval->oper,buf);
-      if(lexdebug)  cout << "Special '" <<  plglval->oper << "' " << ret << " ";
-    }
-  typetoken=ret; 
-  return ret;
-}
-
-int mylex::scan1()
-{
-
-  // extern long mpirank;
- // bool echo = mpirank == 0; 
-
-  int ret= basescan();
-  if(debugmacro)  cout << " scan1 " << ret << " " << token() << " " << ID << endl;
-    while ( ret == ID &&SetMacro(ret)); // correction mars 2014 FH
-    while ( ret == ID && CallMacro(ret)) ; // correction mars 2014 FH
-    
-  return ret;
-}    
-
-// <<mylex_scan>>
-int mylex::scan(int lvl)
-{
- 
-  int ret= scan1(); 
-  
-  // ID defined at [[file:../lglib/lg.ypp::token str ID]]
-  if ( ret == ID) {
-    if (! InMotClef(plglval->type,ret))  {
-      int ft = FindType(buf);
-
-      // FESPACE, FESPACE1, FESPACE3 defined at [[file:../lglib/lg.ypp::token str FESPACE]]
-      int feid3[4]  ={ ID,FESPACE1,FESPACE,FESPACE3};
-
-      assert ( ft >= 0 && ft <= 3)  ;
-      ret =  feid3[ft];      
-      plglval->str = newcopy(buf);
-    }}
-  
-  if ( ret =='{') { //cout << " listMacroDef->push_back"<< endl; 
-    listMacroDef->push_back( MapMacroDef() );}
-  else if (ret == '}') {//cout << " listMacroDef->pop_back"<< endl;
-    listMacroDef->pop_back( );}
-  
-  if (! lexdebug && echo && lvl==0 ) print(cout);
-  
-  return ret;
-}
-
-string mylex::token() const
-  {
-   int i=-1;
-   string f;
-    if (typetoken == STRING) 
-      {
-        f += '"';
-        while (buf[++i]) 
-          if (buf[i]=='\n') f +=  "\\n"; 
-          else if (buf[i]=='"') f += "\\\""; 
-          else f +=  buf[i] ;
-        f+= '"';
-      }
-    else 
-      while (buf[++i]) 
-        if (buf[i]=='\n') f += "\\n"; 
-        else f += buf[i] ;
-    return f;
-  }
-  
-  void mylex::print(ostream &f) const
-  {
-   int i=-1;
-   int k=0;
-    if (typetoken == STRING) 
-      {
-	
-        f <<'"';
-        while (buf[++i]) { k++;
-	if (buf[i]=='\n') k++, f << "\\n"; 
-	else if (buf[i]=='"') k++,f << "\\\""; 
-	else f << buf[i] ;
-	if ( k%50==49) f << "\n  ... : ";  
-	}
-        f << '"';
-      }
-    else 
-      while (buf[++i]) 
-        if (buf[i]=='\n') f << "\\n"; 
-        else f << buf[i] ;
-  
-  } 
-
-char * mylex::match(int i) 
-{ if ( i != basescan() ) {// basescan -> scan1 change 2/2/2007  (non pas des substitution de parametres FH)
-  cerr << " we waiting for a '" << char(i) <<"'" << endl;
-  ErrorScan(" err macro ");};
- return buf; }
-
-
-bool mylex::SetMacro(int &ret)
-{ 
-  char endmacro[]="EndMacro";
-  char newmacro[]="NewMacro";
-    
-  bool rt=false;
-  int oldmacro=1;
-  if (strcmp(buf,"macro")==0 || (oldmacro=strcmp(buf,newmacro))==0 )
-    {
-      char *macroname=newcopy(match(ID));
-      int nbparam =0;
-      deque<string> macroparm;
-      int rr=basescan(); 
-      string def;                          
-      if (rr!='(') 
-	def += buf;
-      else
-	{ // a '(' after macro name
-	  rr =  basescan();
-	  
-	  if (rr != ')' ) 
-	    do { 
-	      if (nbparam++>= 100) 
-		{ cerr << "in macro " <<macroname << endl;
-		ErrorScan(" Too much (more than 100) parameters"); }  
-	      
-	      //cout << " \t\t " << ID << " " << rr << " " << buf << endl;
-	      if (rr != ID) {
-		cerr <<" Erreur waiting of an ID: " << buf << " " << rr <<  endl;
-		erreur("in macro def: waiting for a ID"); }
-	      macroparm.push_back(buf);
-	      rr =  basescan(); 
-	      if (rr  == ')') break;          
-	      if ( rr != ',') erreur("in macro def: waiting  , or  ) "); 
-	      rr =  basescan();
-	      
-	    } while(1); 
-	}
-      int kmacro=0;
-      
-
-      do {
-	int lk=0;
-	string item;
-	int i = source().get();
-	if (i == EOF) {  cerr << "in macro " <<macroname <<  endl;
-	ErrorScan(" ENDOFFILE in macro definition. remark:a macro end with // ");}
-	int ii = source().peek();
-	if(isspace(i) && isalpha(ii) ) {
-	    def +=char(i);
-	    i = source().get();
-	    item = "";
-	    while(isalpha(i))
-	      {
-		item += char(i);
-		i = source().get();
-	      }
-	    if( item == newmacro)  kmacro++;
-	    if( item == endmacro)  {
-		if (kmacro==0)  
-		    { source().putback(i); break;}
-		kmacro--;
-	    }
-	    def += item;
-	    item ="";
-	    ii = source().peek();
-	}
-	
-	if(oldmacro)
-	  {
-	    if (i == '/' && ii == '/') { source().putback('/'); break;} 
-	  }
-
-	def +=char(i);        
-      } while(1);
-      macroparm.push_back(def);
-      if(echo) cout << "macro " << macroname  ;
-      for (size_t i=0;i<macroparm.size()-1;i++)
-	if(echo) cout << ( (i == 0) ? '(' : ',') << macroparm[i];
-      if (nbparam)
-	if(echo) cout << " )  " ;
-      for (size_t i=0;i<def.size();i++)
-	if (def[i] == 10 || (def[i] == 13 ) ) 
-	  {
-	    def[i]='\n';         
-	    linenumber++; if(echo) cout << '\n' << setw(5) <<linenumber << " : " ;
-	  }                  
-	else 
-	  if(echo) cout << def[i]   ;
-         // cout << macroparm.back() ;
-      MapMacroDef & MacroDef =listMacroDef->back();
-      MapMacroDef::const_iterator i=MacroDef.find(macroname);
-      if ( i == MacroDef.end() )
-	MacroDef[macroname]=macroparm;
-      else { 
-	cerr << "ERREUR in macro name:" <<macroname << endl;
-	ErrorScan(" The macro already exists, sorry");}
-      rt=true;
-      ret= basescan();
-    }
-  return rt;
-}
-
-
-bool mylex::CallMacro(int &ret)
-{
-  // New Version with direct macro expansion
-  // FH  jan 2005 
-  // -----------------------------------------
-//  add Stringification,FILE, LINE  march 2014 FH..
-  if(strcmp(buf,"Stringification")==0)
-  {
-      if(debugmacro) cout <<"call Stringification : " << buf << endl;
-
-      if(echo) cout << buf << "(" ;
-      string p,cmm;
-      int lvll=0;
-           match('(');
-      
-      int kend=')';
-      while (1) {
-          cmm="";
-          int sep =  EatCommentAndSpace(&cmm);
-          p += cmm;
-          int rr = scan1();// do macro expantion
-          if(lvll && rr==')') lvll--; //   if ( then  we eat next )
-          else if (rr=='(') lvll++ ;  //  eat next
-          else if (lvll<=0)
-              {
-                  if (rr==kend ) break;
-                  else if  (rr==')' || rr==',')  {
-                      cerr << "Error in Stringification  "
-                      << ", we wait for "<< char(kend) << " and we get  " << char(rr)<< endl;
-                      ErrorScan(" Wrong number of parameter in  Stringification call");
-                  }}
-          if(debugmacro)cout << " ..." << rr << " " << token()<< " " << level << endl;
-          if (rr==ENDOFFILE) ErrorScan(" Stringification in macro ");
-          if(echo) cout << token();
-          p += token();
-          //if(echo) cout <<buf;
-      }
-      
-      plglval->str = newcopy(p.c_str());
-      ret = STRING;
-
-      return false;
-  }
-  else if(strcmp(buf,"FILE")==0)
-  {
-      plglval->str = newcopy(filename() );
-      ret = STRING;
-     return false;
-  }
-  else if(strcmp(buf,"LINE")==0)
-  {
-    plglval->lnum = linenumber;
-    ret=LNUM;
-    return false;
-  }
-  else
-  for (list<MapMacroDef>::const_iterator i=listMacroDef->begin(); i != listMacroDef->end(); i++)
-    {
-      MapMacroDef::const_iterator j= i->find(buf);
-      
-      if (j != i->end()) {
-	// int inmacroold=withmacropara;
-	  if(debugmacro) cout <<"call macro : " << buf << endl;
-	  string * macronn= new string(" macro: ");
-	  *macronn+= buf;
-	  
-	const deque<string>  & macroparm= j->second;
-	int nbparam= macroparm.size()-1;
-	MapMacroParam  lp;
-	if (nbparam > 0 ) { 
-	  match('(');
-	    for (int k=0;k<nbparam;k++)
-	      { 
-		  string p;
-		  int kend= ( k+1 == nbparam) ? ')' : ',';
-		  int lvl=0;
-		  int lvll=0;
-		  while (1) {
-		      int sep =  EatCommentAndSpace();
-		      int rr = basescan();// basescan -> scan1 change 2/2/2007  ( not change to pass macro name as a parameter)
-		      if ( (rr=='}') && (--lvll==0) ) 
-			   continue; // remove first {
-		      else if ( (rr=='{') && (++lvll==1) )
-			  continue; // remove last }	
-		      else if(lvll==0) //  count the open close () [] 
-			{  
-			if(lvl && rr==')') lvl--; //   if ( then  we eat next ) 
-			else if(lvl && rr==']') lvl--; //   if ( then  we eat next ) 
-			else if (rr=='(') lvl++ ;  //  eat next 
-			else if (rr=='[') lvl++ ;  //  eat next 
-			else if (lvl<=0) 
-			  {
-			    if (rr==kend ) break;
-			    else if  (rr==')' || rr==',')  {// Correction FH 2/06/2004
-				cerr << "Error in macro expansion "<< j->first
-				<< ", we wait for "<< char(kend) << " and we get  " << char(rr)<< endl;
-				cerr << " number of macro parameter in definition is " << nbparam << endl;
-				ErrorScan(" Wrong number of parameter in  macro call");
-			    }}}
-		      
-		      if (rr==ENDOFFILE) ErrorScan(" ENDOFFILE in macro usage");
-		      if(sep==' ') p+=' ';
-		      p += token(); // Correction FH 2/06/2004 of string parameter
-		      
-		  }
-		  if(debugmacro)
-		cout << "macro arg "<< k << " :" << macroparm[k] << " -> " <<  p << endl;
-	      lp.insert(pair<string,string>(macroparm[k],p));
-	      //lp[macroparm[k]] = p; 
-	    }
-	}
-	if(debugmacro)
-	  cout <<   " input in : -> " << macroparm[nbparam]  << " <-> " << nbparam << endl;
-	input(macroparm[nbparam]);
-	// ici il faut faire la substitution  de parameter 
-	// -----------------------------------------------
-	string expandtxt;
-	bool echosave=echo;
-	while(1) {
-	  int c= EatCommentAndSpace(&expandtxt); // eat comment to save it;
-	  if (c == EOF) break;
-	  ret = basescan();
-          if(debugmacro)  cout << " ret = " << ret << token() << endl;
-	  if(ret== ENDOFFILE) break; 
-	  if (nbparam && ret == ID) 
-	    {  
-	      MapMacroParam::const_iterator j=lp.find(buf);
-	      if ( j !=  lp.end()) 
-		expandtxt+=j->second;
-	      else 
-		expandtxt+=token();
-	    }
-	  else if (ret!='#')  //  macro concatenation operator 
-	    expandtxt+=token();
-	}
-	echo=echosave;
-	if(debugmacro) cout <<" (macro) eadin : " << expandtxt << endl;
-	input(expandtxt,macronn);
-	ret =  scan1(); // Correction FH 6/06/2004 of string parameter
-	return true;        
-      }
-    }
-  return false;
-}
-
-void  mylex::xxxx::open(mylex *lex,const char * ff) 
-{
-  //filename=ff;
-  l=0;
-  nf=f=0;
-  if(lex->ffincludedir.empty()) // if no liste 
-      nf=f= new ifstream(ff,ios_base::binary); //  modif of win32
-  if (!f || !*f)
-   {
-   if ( f)  { delete f; f=0; }
-   for (ICffincludedir k=lex->ffincludedir.begin();
-        k!=lex->ffincludedir.end();
-        ++k)
-   {
-    string dif_ff(*k+ff);
-    if (verbosity>=50) lex->cout  << "  --lex open :" << dif_ff << endl;
-    nf=f= new ifstream(dif_ff.c_str(),ios_base::binary); 
-    if ( f)  {
-      if ( f->good()) {  
-        filename = new string(dif_ff);
-        break;
-      }
-      delete f; f=0;
-     }     
-   } 
-   } 
-   else
-      filename=new  string(ff);
-  if (!f || !*f) {
-    lex->cout << " Error openning file " <<ff<< " in: " <<endl;
-      for (ICffincludedir k=lex->ffincludedir.begin();
-	   k!=lex->ffincludedir.end();
-	   ++k)
-	  lex->cout  << "  -- try  :\"" << *k+ff  << "\"\n";
-
-    lgerror("lex: Error input openning file ");};
-}
-void  mylex::xxxx::readin(mylex *lex,const string & s,const string *name, int macroargs)//,int nbparam,int bstackparam)
-{
-  filename=name;
-  macroarg=macroargs;
-  l=0;
-  nf=f= new istringstream(s.c_str()); 
-  
-  if (!f || !*f) {
-    lex->cout << " Error readin string  :" <<s<< endl;
-    lgerror("lex: Error readin macro ");};
-}
-
-void mylex::xxxx::close() 
-{ 
-  if( nf)  delete nf;
-  if (filename && (macroarg==0) ) delete filename;
-  
-}
-void mylex::input(const char *  filename) 
-{
-  ffassert(level<99 && level >= -1);
-  if (level>=0) 
-    pilesource[level].l =linenumber;
-  
-  pilesource[level+1].open(this,filename);
-  pilesource[level+1].l =0;
-  // cout << "\n ++include " << filename << ";" << level+1 << endl;
-  linenumber = 1;     
-  level++;      
-}
-
-void mylex::input(const string & str,const string * name) 
-{
-  
-  ffassert(level<99 && level >= -1);
-  if (level>=0) 
-    { pilesource[level].l =linenumber;
-    }
-  
-  pilesource[level+1].readin(this,str,name);
-  linenumber = 0;     
-  level++;
-  
-}
-  
-bool mylex::close() { 
-  if(debugmacro )
-    cout << "\n close " << level ;
-  ffassert(level >=0 && level < 100);
-  // cout << "\n-- close " << level << endl;
-  pilesource[level].close(); 
-  // cout << "\n ++   " << level << endl;
-  if (--level<0)
-    return false;
-  linenumber = pilesource[level].l;
-  return true;
-}
-  
- mylex::~mylex()
-{
-  delete listMacroDef;
-  while( ! strdata.empty()) 
-   {  //  commente july 2005 FH ???. a test plus finement. 
-<<<<<<< HEAD
-      delete [] strdata.top(); // bug  ????? FH  25032005 
-=======
-      // delete [] strdata.top(); // bug  ????? FH  25032005 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      strdata.pop();
-   }
-}
-
- mylex::mylex(ostream & out,bool eecho):
-    linenumber(1),
-    charnumber(0),
-    ffincludedir(ffenvironment["includepath"]),
-    firsttime(true),
-    level(-1),
-    echo(eecho && (mpirank == 0) && verbosity),
-    cout(out),
-    listMacroDef(new list<MapMacroDef>),
-    listMacroParam(0)
- {    
-    listMacroDef->push_front(MapMacroDef());
-   };
-   
-mylex * Newlex(  ostream & out,bool eecho)
-  {
-    return new mylex(out,eecho);
-  }
-void Destroylex(mylex * m)
- {
-   delete m;
- }
-ostream & mylex::ShowStack(ostream & f){
-    for (int i=0;i<level;++i)
-	if(  pilesource[i].filename ) f << " \t"<<i<<"\t"<<" in " << *pilesource[i].filename<< " line : " <<  pilesource[i].l << endl;
-    return f;     
-}
diff --git a/src/fflib/lgfem.cpp b/src/fflib/lgfem.cpp
index d343804..371d53d 100644
--- a/src/fflib/lgfem.cpp
+++ b/src/fflib/lgfem.cpp
@@ -1839,7 +1839,7 @@ AnyType set_fe (Stack s,Expression ppfe, Expression e)
   }
 AnyType set_feoX_1 (Stack s,Expression ppfeX_1, Expression e)
   { // inutile 
-    // m�me chose que  v(X1,X2);
+    // m�me chose que  v(X1,X2);
       StackOfPtr2Free * sptr = WhereStackOfPtr2Free(s);
     typedef const interpolate_f_X_1<R>::CODE * code;
     MeshPoint mp= *MeshPointStack(s); 
diff --git a/src/fflib/lgfem.cpp.orig b/src/fflib/lgfem.cpp.orig
deleted file mode 100644
index 32a5cf8..0000000
--- a/src/fflib/lgfem.cpp.orig
+++ /dev/null
@@ -1,6024 +0,0 @@
-/// \file
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifdef __MWERKS__
-#pragma optimization_level 0
-//#pragma inline_depth(0)
-#endif
-
-#include  <cmath>
-#include  <iostream>
-#include <cfloat>
-
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-#include "rgraph.hpp"
-#include <cstdio>
-#include "fem.hpp"
-#include "Mesh3dn.hpp"
-
-
-#include "MatriceCreuse_tpl.hpp"
-
-
-#include "MeshPoint.hpp"
-#include <complex>
-#include "Operator.hpp" 
-
-#include <set>
-#include <map>
-#include <vector>
-
-#include "lex.hpp"
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-#include "CGNL.hpp"
-#include "AddNewFE.h"
-#include "array_resize.hpp"
-#include "PlotStream.hpp"
-
-// add for the gestion of the endianness of the file.
-//PlotStream::fBytes PlotStream::zott; //0123;
-//PlotStream::hBytes PlotStream::zottffss; //012345678;
-// ---- FH
-namespace bamg { class Triangles; }
-namespace Fem2D { void DrawIsoT(const R2 Pt[3],const R ff[3],const RN_ & Viso);
-   extern GTypeOfFE<Mesh3> &P1bLagrange3d;
-   extern GTypeOfFE<Mesh3> &RT03d;
-    extern GTypeOfFE<Mesh3> &Edge03d;
-void  Expandsetoflab(Stack stack,const CDomainOfIntegration & di,set<int> & setoflab,bool &all);
-}
-
-#include "BamgFreeFem.hpp"
-
-static bool TheWait=false;
-bool  NoWait=false;
-extern bool  NoGraphicWindow;
-
-extern long verbosity;
-extern FILE *ThePlotStream; //  Add for new plot. FH oct 2008
-void init_lgmesh() ;
-
-namespace FreeFempp {
-template<class R>
- TypeVarForm<R> * TypeVarForm<R>::Global;
-}
-
-const int nTypeSolveMat=10;
-int kTypeSolveMat;
-TypeSolveMat *dTypeSolveMat[nTypeSolveMat];
-
- AnyType Long2TypeSolveMat(Stack, const AnyType &ll) {
-      long l=GetAny<long>(ll);
-    ffassert( l>=0 && l <kTypeSolveMat);
-    return dTypeSolveMat[l];
-}
- AnyType  TypeSolveMat2Long(Stack,const AnyType  &tt ) {
-     const TypeSolveMat *t = GetAny<TypeSolveMat *>(tt);
-    for(long l=0;  l <kTypeSolveMat; ++l)
-	if( t==dTypeSolveMat[l]) return l;
-    return long (kTypeSolveMat-1); // sparse solver case 
-}
-
-
-basicAC_F0::name_and_type  OpCall_FormBilinear_np::name_param[]= {
-{   "bmat",&typeid(Matrice_Creuse<R>* )},
-     LIST_NAME_PARM_MAT
-/*
-  {   "init", &typeid(bool)},
-  {   "solver", &typeid(TypeSolveMat*)},
-  {   "eps", &typeid(double) } ,
-  {   "precon",&typeid(Polymorphic*)}, 
-  {   "dimKrylov",&typeid(long)},
-  {   "bmat",&typeid(Matrice_Creuse<R>* )},
-  {   "tgv",&typeid(double )},
-  {   "factorize",&typeid(bool)},
-  {   "strategy",&typeid(long )},
-  {   "tolpivot", &typeid(double)},
-  {   "tolpivotsym", &typeid(double) },
-  {   "nbiter", &typeid(long)}, // 12   
-  {   "paramint",&typeid(KN_<long>)}, // Add J. Morice 02/09 
-  {   "paramdouble",&typeid(KN_<double>)},
-  {   "paramstring",&typeid(string*)},
-  {   "permrow",&typeid(KN_<long>)},
-  {   "permcol",&typeid(KN_<long>)},
-  {   "fileparamint",&typeid(string*)}, // Add J. Morice 02/09 
-  {   "fileparamdouble",&typeid(string*)},
-  {   "fileparamstring",&typeid(string* )},
-  {   "filepermrow",&typeid(string*)},
-  {   "filepermcol",&typeid(string*)} //22
- */
-};
-
-
-basicAC_F0::name_and_type  OpCall_FormLinear_np::name_param[]= {
-  "tgv",&typeid(double )
-};
-
-
-/*
-template<class R,class TA0,class TA1,class TA2>
- class E_F_F0F0F0 :public  E_F0 { public:
-   template <class T> struct remove_reference     {typedef T type;};
-   template <class T> struct remove_reference<T&> {typedef T type;};
-   typedef typename remove_reference<TA0>::type A0;
-   typedef typename remove_reference<TA1>::type A1;
-   typedef typename remove_reference<TA2>::type A2;
-   typedef  R (*func)( A0 , A1, A2 ) ;
-    
-  func f;
-  Expression a0,a1,a2;
-  E_F_F0F0F0(func ff,Expression aa0,Expression aa1,Expression aa2) 
-    : f(ff),a0(aa0),a1(aa1),a2(aa2) {}
-  AnyType operator()(Stack s)  const 
-    {return SetAny<R>( f( GetAny<A0>((*a0)(s)) , GetAny<A1>((*a1)(s)),  GetAny<A2>((*a2)(s)) ) );}  
-   bool EvaluableWithOutStack() const 
-      {return a0->EvaluableWithOutStack() && a1->EvaluableWithOutStack() && a2->EvaluableWithOutStack() ;} // 
-   bool MeshIndependent() const 
-      {return a0->MeshIndependent() && a1->MeshIndependent() && a2->MeshIndependent();} // 
-  int compare (const E_F0 *t) const { 
-     int rr;
-    // cout << "cmp " << typeid(*this).name() << " and " << typeid(t).name() << endl;
-     const  E_F_F0F0F0* tt=dynamic_cast<const E_F_F0F0F0 *>(t);
-     if (tt && f == tt->f) rr= clexico(a0->compare(tt->a0),a1->compare(tt->a1),a2->compare(tt->a2));
-     else rr = E_F0::compare(t);
-     return rr;
-     } // to give a order in instuction 
-
-      
-   int Optimize(deque<pair<Expression,int> > &l,MapOfE_F0 & m, size_t & n) const
-    {
-
-       int rr = find(m);
-       if (rr) return rr;
-
-       return insert(new Opt(*this,a0->Optimize(l,m,n),a1->Optimize(l,m,n),a2->Optimize(l,m,n)),l,m,n);
-    }
-     // build optimisation
-
-     class Opt: public E_F_F0F0F0  { public :
-       size_t ia,ib,ic;  
-       Opt(const  E_F_F0F0F0 &t,size_t iaa,size_t ibb,size_t icc) 
-         : E_F_F0F0F0(t) ,
-         ia(iaa),ib(ibb),ic(icc) {}
-      AnyType operator()(Stack s)  const 
-       {
-         //A0 aa =*static_cast<A0 *>(static_cast<void*>(static_cast<char *>(s)+ia));
-         //A1 bb=*static_cast<A1 *>(static_cast<void*>(static_cast<char *>(s)+ib)) ;
-         //cout << ia << " " << ib <<  "f( " << aa << "," << bb  << " )   = "<< f(aa,bb) << endl;
-         return SetAny<R>( f( *static_cast<A0 *>(static_cast<void*>(static_cast<char *>(s)+ia)) , 
-                             *static_cast<A1 *>(static_cast<void*>(static_cast<char *>(s)+ib)) ,
-                             *static_cast<A2 *>(static_cast<void*>(static_cast<char *>(s)+ic)) 
-                             ) );}  
-         
-      };     
-       
-    
-};
-template<class R,class A=R,class B=A,class C=A,class CODE=E_F_F0F0F0<R,A,B,C> >
-class  OneOperator3 : public OneOperator {
-    aType r; //  return type 
-    typedef typename CODE::func func;
-    //typedef  R (*func)(A,B) ;
-    func f;
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new CODE(f,t[0]->CastTo(args[0]),t[1]->CastTo(args[1]),t[2]->CastTo(args[3]));} 
-    OneOperator3(func  ff): 
-      OneOperator(map_type[typeid(R).name()],map_type[typeid(A).name()],map_type[typeid(B).name()],map_type[typeid(C).name()]),
-      f(ff){}
-};
-*/
-const E_Array * Array(const C_F0 & a) { 
-  if (a.left() == atype<E_Array>() )
-    return dynamic_cast<const E_Array *>(a.LeftValue());
-  else 
-    return 0;
-}
-bool Box2(const C_F0 & bb, Expression * box)
-{
-  const E_Array * a= Array(bb);
-  if(a && a->size() == 2)
-   {
-    box[0] = to<double>((*a)[0]);
-    box[1] = to<double>((*a)[1]);
-    return true;
-    }
-  else 
-    return false;
-  
-}
-bool Box2x2(Expression  bb, Expression * box)
-{
-  const E_Array * a= dynamic_cast<const E_Array *>(bb);
-  if(a && a->size() == 2)
-     return Box2((*a)[0],box)  &&  Box2((*a)[1],box+2) ;
-  else 
-    return false;
-}
-void dump_table()
-{
-   cout << " dump the table of the language " << endl;
-   cout << " ------------------------------ " <<endl <<endl;
-	map<const string,basicForEachType *>::const_iterator i; ;
-	       
-	for (i= map_type.begin();i !=map_type.end();i++)
-	  {
-	   cout << " type : " << i->first << endl;
-	   if( i->second )
-	     i->second->ShowTable(cout);
-	   else cout << " Null \n";
-	   cout << "\n\n";     
-	  }
-
-	for (i= map_type.begin();i !=map_type.end();i++)
-	  {
-	   cout << " type : " << i->first << endl;
-	   if( i->second )
-	     i->second->ShowTable(cout);
-	   else cout << " Null \n";
-	   cout << "\n\n";    
-	   
-	  }
-	  
-	 cout << "--------------------- " << endl;
-	 cout << *TheOperators << endl;
-	 cout << "--------------------- " << endl;
-
-}
-/*
- class LocalArrayVariable:public E_F0
- { 
-  size_t offset;
-  aType t; //  type of the variable just for check  
-  Expression  n; // expression of the size 
-  public:
-  AnyType operator()(Stack s) const { 
-    SHOWVERB( cout << "\n\tget var " << offset << " " <<  t->name() << endl);  
-   return PtrtoAny(static_cast<void *>(static_cast<char *>(s)+offset),t);}
-  LocalArrayVariable(size_t o,aType tt,Expression nn):offset(o),t(tt),n(nn) {ffassert(tt);
-    SHOWVERB(cout << "\n--------new var " << offset << " " <<  t->name() << endl);
-    }
-};
-*/
-
-
-
-
-
-
-bool In(long *viso,int n,long v) 
-{
-  int i=0,j=n,k;
-  if  (v <viso[0] || v >viso[j-1]) 
-    return false;  
-  while (i<j-1)    
-   if ( viso[k=(i+j)/2]> v) j=k;
-   else i=k;
-  return (viso[i]=v);
-}
-
-
-
-class  LinkToInterpreter { public:
- Type_Expr   P,N,x,y,z,label,region,nu_triangle,nu_edge,lenEdge,hTriangle,area,inside,volume;
-  LinkToInterpreter() ; 
-};
-
-LinkToInterpreter * l2interpreter;
-
-
-  using namespace Fem2D;
-  using namespace EF23;
-/*
-inline pmesh  ReadMesh( string * const & s) {
-  Mesh * m=new Mesh(*s);
-  R2 Pn,Px;
-  m->BoundingBox(Pn,Px);
-  m->quadtree=new FQuadTree(m,Pn,Px,m->nv);
- //  delete s; modif FH 2006 (stack ptr)
-  return m;
- }
-
-inline pmesh3  ReadMesh3( string * const & s) {
-  Mesh3 * m=new Mesh3(s->c_str());
-  R3 Pn,Px;
-  // m->BoundingBox(Pn,Px);
-  m->gtree=new Mesh3::GTree(m->vertices,m->Pmin,m->Pmax,m->nv);
- //  delete s; modif FH 2006 (stack ptr)
-  return m;
- }
-*/
- 
-
-template<class Result,class A>
-class E_F_A_Ptr_o_R :public  E_F0 { public:
-  typedef Result A::* ptr;
-  Expression a0;
-  ptr p; 
-  E_F_A_Ptr_o_R(Expression aa0,ptr pp) 
-    : a0(aa0),p(pp) {}
-  AnyType operator()(Stack s)  const {
-    return SetAny<Result*>(&(GetAny<A*>((*a0)(s))->*p));}
-  bool MeshIndependent() const {return a0->MeshIndependent();} // 
-  
-};
-//  ----
-//  remarque pas de template, cela ne marche pas encore ......
- class E_P_Stack_P   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<R3*>(&MeshPointStack(s)->P);} 
-    operator aType () const { return atype<R3*>();}         
-    
-}; 
- class E_P_Stack_Px   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<R*>(&MeshPointStack(s)->P.x);} 
-    operator aType () const { return atype<R*>();}         
-    
-}; 
- class E_P_Stack_Py   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const {throwassert(* (long *) s);
-    return SetAny<R*>(&MeshPointStack(s)->P.y);} 
-    operator aType () const { return atype<R*>();}         
-    
-}; 
- class E_P_Stack_Pz   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<R*>(&MeshPointStack(s)->P.z);} 
-    operator aType () const { return atype<R*>();}         
-    
-}; 
-
- class E_P_Stack_N   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<R3*>(&MeshPointStack(s)->N);} 
-        operator aType () const { return atype<R3*>();}         
-
-}; 
- class E_P_Stack_Nx   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<R*>(&MeshPointStack(s)->N.x);} 
-    operator aType () const { return atype<R*>();}         
-    
-}; 
- class E_P_Stack_Ny   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<R*>(&MeshPointStack(s)->N.y);} 
-    operator aType () const { return atype<R*>();}             
-}; 
- class E_P_Stack_Nz   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<R*>(&MeshPointStack(s)->N.z);} 
-    operator aType () const { return atype<R*>();}         
-    
-}; 
-
- class E_P_Stack_Region   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<long*>(&MeshPointStack(s)->region);} 
-    operator aType () const { return atype<long*>();}         
-    
-}; 
- class E_P_Stack_Label   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<long*>(&MeshPointStack(s)->label);} 
-    operator aType () const { return atype<long *>();}         
-    
-}; 
- class E_P_Stack_Mesh   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<pmesh >(const_cast<pmesh>(MeshPointStack(s)->Th));} 
-  operator aType () const { return atype<pmesh>();}         
-
-}; 
- class E_P_Stack_Nu_Triangle   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<long>(MeshPointStack(s)->t);} 
-    operator aType () const { return atype<long>();}         
-    
-}; 
- class E_P_Stack_Nu_Vertex   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<long>(MeshPointStack(s)->v);} 
-    operator aType () const { return atype<long>();}         
-    
-}; 
- class E_P_Stack_Nu_Face   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<long>(MeshPointStack(s)->f);} 
-    operator aType () const { return atype<long>();}         
-    
-}; 
- class E_P_Stack_Nu_Edge   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<long>(MeshPointStack(s)->e);} 
-    operator aType () const { return atype<long>();}         
-    
-}; 
- class E_P_Stack_inside   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    return SetAny<double>(MeshPointStack(s)->outside? 0.0 : 1.0 );} 
-    operator aType () const { return atype<double>();}         
-    
-}; 
-
-class E_P_Stack_lenEdge   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    MeshPoint * mp=MeshPointStack(s);      
-    ffassert(mp->T && mp ->e >=0 && mp->d==2);
-    double l= mp->T->lenEdge(mp->e);
-    return SetAny<double>(l);} 
-    operator aType () const { return atype<double>();}         
-    
-}; 
-
-class E_P_Stack_hTriangle   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    MeshPoint * mp=MeshPointStack(s);
-    assert(mp->T) ;
-    double l= mp->T->h();
-    return SetAny<double>(l);} 
-    operator aType () const  { return atype<double>();}         
-    
-};
-
-class E_P_Stack_nTonEdge   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    MeshPoint * mp=MeshPointStack(s);
-    assert(mp->T && mp->e > -1 && mp->d==2 ) ;
-    long l=mp->Th->nTonEdge(mp->t,mp->e);
-    // cout << " nTonEdge " << l << endl;
-    return SetAny<long>( l) ;} 
-    operator aType () const  { return atype<long>();}         
-    
-}; 
-
-class E_P_Stack_areaTriangle   :public  E_F0mps { public: 
-  AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-    MeshPoint * mp=MeshPointStack(s);
-    assert(mp->T) ;
-      double l=-1; // unset ...
-    if(mp->d==2)	
-      l= mp->T->area;	
-    else if (mp->d==3 && mp->f >=0)
-      {	
-	  R3 NN = mp->T3->N(mp->f);
-	  l= NN.norme()/2.;
-      }
-    else 
-      {
-	  cout << "erreur : E_P_Stack_areaTriangle" << mp->d << " " << mp->f << endl;
-	  ffassert(0); // undef 
-      }
-    return SetAny<double>(l);} 
-    operator aType () const { return atype<double>();}         
-    
-}; 
-
-// add FH
-class E_P_Stack_VolumeTet   :public  E_F0mps { public: 
-    AnyType operator()(Stack s)  const { throwassert(* (long *) s);
-	MeshPoint * mp=MeshPointStack(s);
-	assert(mp->T) ;
-	double l=-1; // unset ...
-	if (mp->d==3 && mp->T3 )
-	  {	
-	      l= mp->T3->mesure();
-	  }
-	else 
-	  {
-	    cout << "erreur : E_P_Stack_VolumeTet" << mp->d << " " << mp->f << endl;
-	    ffassert(0); // undef 
-	  }
-	return SetAny<double>(l);} 
-    operator aType () const { return atype<double>();}         
-    
-}; 
-
-/*
-class New_MeshPoint : public E_F0mps {
-
-};*/
-
-
- 
-
- 
-//inline pfes MakePtr(pmesh * const &  a, TypeOfFE * const & tef){ return pfes(new pfes_tef(a,tef)) ;}
-//inline pfes MakePtr(pmesh * const &  a){ return pfes(new pfes_tef(a,&P1Lagrange)) ;}
-//inline pfes MakePtr(pfes * const &  a,long const & n){ return pfes(new pfes_fes(a,n)) ;}
-/*
-class E_pfes : public E_F0 {
-  const int N;
-  Expression *Th,*tef; 
-  E_pfes(Expression *TTh,*ttef) : Th(TTh),tef(ttef),N(ttef?ttef->nbitem():0) {}
-   virtual AnyType operator()(Stack)  const {
-   return AnyType<pfes*>
-  }
-  
-  virtual size_t nbitem() const {return 1;}  
-};
-  OneOperator_pfes():OneOperator(atype<void>(),atype<E_Array>(),atype<E_Array>()) {}
-    E_F0 * code(const basicAC_F0 & args) const ; 
-  
-};*/
-template<class R>
-class  E_StopGC: public StopGC<R> {
-public:
-    typedef KN<R> Kn;
-    typedef KN_<R> Kn_;
-
-    Stack s;
-    long n;
-    long iter;
-    Kn_ xx,gg;
-    C_F0 citer,cxx,cgg;
-    C_F0 stop;
-    
-    E_StopGC(Stack ss,long nn,const  Polymorphic * op): s(ss),n(nn),iter(-1),
-    xx(0,0),gg(0,0),
-    citer(CConstant<long*>(&iter)),
-    cxx(dCPValue(&xx)),
-    cgg(dCPValue(&gg)),
-    stop(op,"(",citer,cxx,cgg)
-    {
-        
-    }
-    ~E_StopGC()
-    {//  a verifier ???? FH....
-        delete (E_F0 *) cxx; // ???
-        delete (E_F0 *) cgg; // ???
-        delete (E_F0 *) citer; // ???
-        delete (E_F0 *) stop; // ???
-    }
-    // template<class R> class StopGC { public: virtual  bool Stop(int iter, R *, R * ){return false;} };
-    bool Stop(int iterr, R *x, R * g)
-    {
-        // cout << " Stop " << iterr << endl;
-        iter=iterr;
-        xx.set(x,n);
-        gg.set(g,n);
-        return GetAny<bool>(stop.eval(s));
-    }
-};
-
-
-template<class R>
-class LinearCG : public OneOperator
-{ public:
-  typedef KN<R> Kn;
-  typedef KN_<R> Kn_;
-  const int cas;
-
- class MatF_O: VirtualMatrice<R> { public:
-   Stack stack;
-   mutable  Kn x;
-   C_F0 c_x;
-  
-   Expression  mat1,mat;
-   typedef  typename VirtualMatrice<R>::plusAx plusAx;
-   MatF_O(int n,Stack stk,const OneOperator * op) 
-     : VirtualMatrice<R>(n),stack(stk),
-       x(n),c_x(CPValue(x)),
-       mat1(op->code(basicAC_F0_wa(c_x))),
-       mat( CastTo<Kn_>(C_F0(mat1,(aType)*op))) {
-         //ffassert(atype<Kn_ >() ==(aType) *op);
-         // WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005   
-         
-         }
-   ~MatF_O() { 
-     // cout << " del MatF_O mat " << endl;
-     if(mat1 != mat) 
-       delete mat;
-      delete mat1;
-     // cout << " del MatF_Ocx ..." <<  endl;
-      Expression zzz = c_x;
-     // cout << " zzz "<< zzz << endl;
-     delete zzz;
-    // WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-     
-     }
-   void addMatMul(const  Kn_  & xx, Kn_ & Ax) const { 
-      ffassert(xx.N()==Ax.N());
-      x =xx;
-      Ax  += GetAny<Kn_>((*mat)(stack));
-      WhereStackOfPtr2Free(stack)->clean();
-       } 
-    plusAx operator*(const Kn &  x) const {return plusAx(this,x);} 
-  virtual bool ChecknbLine(int n) const { return true;}  
-  virtual bool ChecknbColumn(int m) const { return true;} 
-    
-};  
-
-  class E_LCG: public E_F0mps { public:
-      
-      
-   const int cas;// <0 => Nolinear
-   static const int n_name_param=6;
-
-   static basicAC_F0::name_and_type name_param[] ;
-
-
-  Expression nargs[n_name_param];
-   
-  const OneOperator *A, *C; 
-  Expression X,B;
-
-      
-  E_LCG(const basicAC_F0 & args,int cc) :cas(cc)
-   {
-      args.SetNameParam(n_name_param,name_param,nargs);
-      {  const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-         ffassert(op);
-         A = op->Find("(",ArrayOfaType(atype<Kn* >(),false)); }
-      if (nargs[2]) 
-      {  const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(nargs[2]);
-         ffassert(op); 
-         C = op->Find("(",ArrayOfaType(atype<Kn* >(),false)); }
-       else  C =0;
-      X = to<Kn*>(args[1]);
-      if (args.size()>2)
-        B = to<Kn*>(args[2]);
-      else 
-        B=0;
-   }
-     
-     virtual AnyType operator()(Stack stack)  const {
-       int ret=-1;
-       E_StopGC<R> *stop=0;
-      // WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH mars 2005   
-      try {
-      Kn &x = *GetAny<Kn *>((*X)(stack));
-      int n=x.N();
-      MatF_O AA(n,stack,A);
-      double eps = 1.0e-6;
-	  double *veps=0;
-      int nbitermax=  100;
-      long verb = verbosity;
-      
-      if (nargs[0]) eps= GetAny<double>((*nargs[0])(stack));
-      if (nargs[1]) nbitermax = GetAny<long>((*nargs[1])(stack));
-      if (nargs[3]) veps=GetAny<double*>((*nargs[3])(stack));
-      if (nargs[4]) verb=Abs(GetAny<long>((*nargs[4])(stack)));
-      if (nargs[5]) stop= new E_StopGC<R>(stack,n,dynamic_cast<const  Polymorphic *>(nargs[5]));
-//          cout << " E_LCG: Stop = " << stop << " " << verb << endl;
-      long gcverb=51L-Min(Abs(verb),50L);
-      if(verb==0) gcverb = 1000000000;// no print 
-      if(veps) eps= *veps;
-      KN<R>  bzero(B?1:n); // const array zero
-      bzero=R(); 
-      KN<R> *bb=&bzero; 
-      if (B) {
-        Kn &b = *GetAny<Kn *>((*B)(stack));
-        R p = (b,b);
-       if (p== R()) 
-         {
-          // ExecError("Sorry LinearCG work only with nul right hand side, so put the right hand in the function");
-          }
-         bb = &b;
-      }
-      if (cas<0) {
-       if (C) 
-         { MatF_O CC(n,stack,C);
-           ret = NLCG(AA,CC,x,nbitermax,eps, gcverb,stop );}
-        else 
-           ret = NLCG(AA,MatriceIdentite<R>(n),x,nbitermax,eps, gcverb,stop);
-        }
-      else 
-      if (C) 
-       { MatF_O CC(n,stack,C);
-         ret = ConjuguedGradient2(AA,CC,x,*bb,nbitermax,eps, gcverb, stop );}
-      else 
-         ret = ConjuguedGradient2(AA,MatriceIdentite<R>(n),x,*bb,nbitermax,eps, gcverb, stop );
-      if(veps) *veps = -(eps);
-      }
-      catch(...)
-      {
-       if( stop) delete stop;
-       // WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-        throw;
-      }
-     // WhereStackOfPtr2Free(stack)->clean(); // FH mars 2005 
-     if( stop) delete stop;
-         
-      return SetAny<long>(ret);
-       
-     }  
-    operator aType () const { return atype<long>();}         
-     
-  };
-  
-  E_F0 * code(const basicAC_F0 & args) const {
-    return new E_LCG(args,cas);}
-  LinearCG() :   OneOperator(atype<long>(),
-                             atype<Polymorphic*>(),
-                             atype<KN<R> *>(),atype<KN<R> *>()),cas(2){}
-  LinearCG(int cc) :   OneOperator(atype<long>(),
-                             atype<Polymorphic*>(),
-                             atype<KN<R> *>()),cas(cc){}
-   
-};
-
-
-template<class R>
-basicAC_F0::name_and_type  LinearCG<R>::E_LCG::name_param[]= {
-  {   "eps", &typeid(double)  },
-  {   "nbiter",&typeid(long) },
-  {   "precon",&typeid(Polymorphic*)},
-  {   "veps" ,  &typeid(double*) },
-  {   "verbosity" ,  &typeid(long)},
-  {   "stop" ,  &typeid(Polymorphic*)}
-};
-
-
-template<class R>
-class LinearGMRES : public OneOperator 
-{ public:
-  typedef KN<R> Kn;
-  typedef KN_<R> Kn_;
-  const int cas;
-
- class MatF_O: VirtualMatrice<R> { public:
-   Stack stack;
-   mutable  Kn x;
-   C_F0 c_x;
-   Kn *b;
-   Expression  mat1,mat;
-   typedef  typename VirtualMatrice<R>::plusAx plusAx;
-   MatF_O(int n,Stack stk,const OneOperator * op,Kn *bb) 
-     : VirtualMatrice<R>(n),
-       stack(stk),
-       x(n),c_x(CPValue(x)),b(bb),
-       mat1(op->code(basicAC_F0_wa(c_x))), 
-       mat( CastTo<Kn_>(C_F0(mat1,(aType)*op))  /*op->code(basicAC_F0_wa(c_x))*/) {
-      // ffassert(atype<Kn_ >() ==(aType) *op);
-       }
-     ~MatF_O() { if(mat1!=mat) delete mat; delete mat1; delete c_x.LeftValue();}
-   void addMatMul(const  Kn_  & xx, Kn_ & Ax) const { 
-      ffassert(xx.N()==Ax.N());
-      x =xx;
-      Ax  += GetAny<Kn_>((*mat)(stack));
-      if(b && &Ax!=b) Ax += *b; // Ax -b => add b (not in cas of init. b c.a.d  &Ax == b
-      WhereStackOfPtr2Free(stack)->clean(); //  add dec 2008
-   } 
-    plusAx operator*(const Kn &  x) const {return plusAx(this,x);} 
-  virtual bool ChecknbLine(int n) const { return true;}  
-  virtual bool ChecknbColumn(int m) const { return true;} 
-    
-};  
- 
-
-  class E_LGMRES: public E_F0mps { public:
-   const int cas;// <0 => Nolinear
-   static basicAC_F0::name_and_type name_param[] ;
-   static const int n_name_param =7;
-   Expression nargs[n_name_param];
-  const OneOperator *A, *C; 
-  Expression X,B;
-
-  E_LGMRES(const basicAC_F0 & args,int cc) :cas(cc)
-   {
-      args.SetNameParam(n_name_param,name_param,nargs);
-      {  const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(args[0].LeftValue());
-         ffassert(op);
-         A = op->Find("(",ArrayOfaType(atype<Kn* >(),false)); }
-      if (nargs[2]) 
-      {  const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(nargs[2]);
-         ffassert(op); 
-         C = op->Find("(",ArrayOfaType(atype<Kn* >(),false)); }
-       else  C =0;
-      X = to<Kn*>(args[1]);
-      if (args.size()>2)
-        B = to<Kn*>(args[2]);
-      else 
-        B=0;
-   }
-     
-     virtual AnyType operator()(Stack stack)  const {
-      Kn &x = *GetAny<Kn *>((*X)(stack));
-      Kn b(x.n);
-       E_StopGC<R> *stop=0;
-      if (B)   b = *GetAny<Kn *>((*B)(stack));
-      else     b= R();
-      int n=x.N();
-      int dKrylov=50;
-      double eps = 1.0e-6;
-      int nbitermax=  100;
-      long verb = verbosity;
-      if (nargs[0]) eps= GetAny<double>((*nargs[0])(stack));
-      if (nargs[1]) nbitermax = GetAny<long>((*nargs[1])(stack));
-      if (nargs[3]) eps= *GetAny<double*>((*nargs[3])(stack));
-      if (nargs[4]) dKrylov= GetAny<long>((*nargs[4])(stack));
-      if (nargs[5]) verb=Abs(GetAny<long>((*nargs[5])(stack)));
-      if (nargs[6]) stop= new E_StopGC<R>(stack,n,dynamic_cast<const  Polymorphic *>(nargs[6]));
-
-	 long gcverb=51L-Min(Abs(verb),50L);
-	 
-     
-      int ret;
-      if(verbosity>4)
-        cout << "  ..GMRES: eps= " << eps << " max iter " << nbitermax 
-             << " dim of Krylov space " << dKrylov << endl;
-        KNM<R> H(dKrylov+1,dKrylov+1);
-	int k=dKrylov;//,nn=n;
-       double epsr=eps;
- 
-         KN<R>  bzero(B?1:n); // const array zero
-         bzero=R();
-         KN<R> *bb=&bzero;
-         if (B) {
-             Kn &b = *GetAny<Kn *>((*B)(stack));
-             R p = (b,b);
-             if (p)
-             {
-                 // ExecError("Sorry MPILinearCG work only with nul right hand side, so put the right hand in the function");
-             }
-             bb = &b;
-         }
-         KN<R> * bbgmres =0;
-         if ( !B ) bbgmres=bb; // none zero if gmres without B
-         MatF_O AA(n,stack,A,bbgmres);
-         if(bbgmres ){
-             *bbgmres= AA* *bbgmres; // Ok Ax == b -> not translation of b .
-             *bbgmres = - *bbgmres;
-             if(verbosity>1) cout << "  ** GMRES set b =  -A(0);  : max=" << bbgmres->max() << " " << bbgmres->min()<<endl;
-         }
-
-
-      //cout << " ** GMRES  bb max=" << bb->max() << " " << bb->min()<<endl;
-      if (cas<0) {
-        ErrorExec("NL GMRES:  to do! sorry ",1);
-/*       if (C) 
-         { MatF_O CC(n,stack,C);
-           ret = NLGMRES(AA,CC,x,nbitermax,eps, 51L-Min(Abs(verbosity),50L) );}
-        else 
-           ret = NLGMRES(AA,MatriceIdentite<R>(n),x,nbitermax,eps, 51L-Min(Abs(verbosity),50L));
-         ConjuguedGradient  */
-        }
-      else 
-       {
-       if (C)
-        { MatF_O CC(n,stack,C,0);
-         ret=GMRES(AA,(KN<R> &)x, *bb,CC,H,k,nbitermax,epsr,verb,stop);}
-       else
-         ret=GMRES(AA,(KN<R> &)x, *bb,MatriceIdentite<R>(n),H,k,nbitermax,epsr,verb,stop);
-       }
-      if(verbosity>99)    cout << " Sol GMRES :" << x << endl;
-         if(stop) delete stop;
-      return SetAny<long>(ret);
-       
-     }  
-    operator aType () const { return atype<long>();}         
-     
-  };
-  
-  E_F0 * code(const basicAC_F0 & args) const {
-    return new E_LGMRES(args,cas);}
-  LinearGMRES() :   OneOperator(atype<long>(),
-                             atype<Polymorphic*>(),
-                             atype<KN<R> *>(),atype<KN<R> *>()),cas(2){}
-  LinearGMRES(int cc) :   OneOperator(atype<long>(),
-                             atype<Polymorphic*>(),
-                             atype<KN<R> *>()),cas(cc){}
-   
-};
-
-
-template<class R>
-basicAC_F0::name_and_type  LinearGMRES<R>::E_LGMRES::name_param[]= {
-  {   "eps", &typeid(double)  },
-  {   "nbiter",&typeid(long) },
-  {   "precon",&typeid(Polymorphic*)},
-  {   "veps" ,  &typeid(double*) },
-  {   "dimKrylov", &typeid(long) },
-  {   "verbosity", &typeid(long) },
-  {   "stop" ,  &typeid(Polymorphic*)}
-};
-
-template<typename int2>
-typename map<int,int2>::iterator closeto(map<int,int2> & m, int k)
- {
-  typename map<int,int2>::iterator i=  m.find(k);
-   if (i==m.end()) 
-    {
-     i=  m.find(k+1);
-     if (i==m.end()) 
-      i=  m.find(k-1);
-    }
-   return i;
- }
-
-
-
-template<class T,int N>
-class Smallvect { public: 
- T v[N];
- T & operator[](int i){return v[i];}
- const T & operator[](int i) const {return v[i];}
-};
-template<class T,int N>
-ostream & operator<<(ostream & f,const Smallvect<T,N> & v)
-{
-    for(int i=0;i<N;++i)  f << v[i] << ' ';
-    return f;
-}
-
-template<class T> 
-int numeroteclink(KN_<T> & ndfv) 
-{
-         int nbdfv =0;
-         for (int i=0;i<ndfv.N();i++)
-           if (ndfv[i]>=i)
-           {
-             int j=i,ii,kkk=0;
-             
-             do {
-               ii=ndfv[j];
-		 ffassert(kkk++<10);
-	       assert(nbdfv <= j);
-             //  assert(ii>=nbdfv);
-               ndfv[j]=nbdfv ;
-               j=ii;
-               }             
-             while (j!=nbdfv);
-             if (verbosity > 100) 
-             cout << "    ndf: " <<  j << " " <<  ii  << " <- " << nbdfv << " " <<  kkk <<  endl;
-              nbdfv++;
-           }
-       return nbdfv;
-}
-
-bool  InCircularList(const int *p,int i,int k)
-//  find k in circular list:  i , p[i], p[p[i]], ... 
-{ 
-    int j=i,l=0;    
-    do {
-	if (j==k) return true;
-	ffassert(l++<10);
-        j=p[j];
-    } while (j!=i);    
-    return false;
-}
-
-bool BuildPeriodic( 
-  int nbcperiodic,
-  Expression *periodic,
-  const Mesh &Th,Stack stack,
-  int & nbdfv, KN<int> & ndfv,int & nbdfe, KN<int> & ndfe) { 
-  
-/*
-  build numbering of vertex form 0 to nbdfv-1
-  and build numbering  of  edge form 0 to nbdfe-1
-  we removing common vextex or common edge    
-  --  we suppose one df by vertex 
-      nbdfv number of df on vertex 
-      ndfv[i]  given the numero of the df of the vertex 
-  -- we suppose 1 df
-*/  
-   typedef Smallvect<int,2> int2;    
-    if (nbcperiodic ) {
-      
-   //    KN<int> ndfv(Th.nv);
-    //   KN<int> ndfe(Th.neb);
-       ffassert(ndfv.N()==Th.nv);
-       ffassert(ndfe.N()==Th.neb);
-        
-       MeshPoint *mp=MeshPointStack(stack),smp=*mp;   
-       int n= nbcperiodic;
-       if (verbosity >2)
-         cout << " Nb of pair of periodic conditions: = " << n <<  endl;
-       int * link1=0;
-       int * link2=0;
-       KN<int*> plk1(n),plk2(n);
-       KN<int> nlk1(n),nlk2(n);
-       KN<int> lab1(n),lab2(n);
-#ifndef  HUGE_VAL      
-       const double infty= numeric_limits<double>::infinity();
-#else
-       const double infty= HUGE_VAL;
-#endif       
-       int nblink1, nblink2;
-       int *plink1 , *plink2;
-        for (int step=0;step<2;step++)
-         {
-           nblink1=0,     nblink2=0;
-           plink1=link1,  plink2=link2;
-           for (int ip=0, k=0;ip<n;ip++,k+=4)
-            {
-               int label1=GetAny<long>((*periodic[k+0])(stack));
-               int label2=GetAny<long>((*periodic[k+2])(stack));
-               lab1[ip]=label1;
-               lab2[ip]=label2;
-               
-               int l1=nblink1;
-               int l2=nblink2;
-               plk1[ip]= plink1;
-               plk2[ip]= plink2;
-               
-               for (int ke=0;ke<Th.neb;ke++)
-                {
-                 if (Th.bedges[ke].lab==label1)
-                  {
-                    if (plink1) *plink1++=ke;
-                    nblink1++;
-                  }
-                 else if (Th.bedges[ke].lab==label2)
-                  {
-                    if (plink2) *plink2++=ke;
-                    nblink2++;
-                   }
-                 }
-               nlk1[ip]= nblink1-l1;
-               nlk2[ip]= nblink2-l2;              
-            }
-            if(step) break; // no reallocl 
-            if (verbosity >3)
-            cout << "  Periodic = " << nblink1 << " " << nblink2 << " step=" << step << endl;
-            link1 = new int[nblink1];
-            link2 = new int[nblink2];
-            if(nblink1 != nblink2)
-            {
-             ExecError("Periodic:  the both number of edges is not the same ");
-            }
-         }
-        if ( nblink1 >0) 
-        {
-        for (int ip=0, k=0;ip<n;ip++,k+=4)
-          {
-            map<int,int2> m;
-            const int kk1=1,kk2=3;
-            int label1=lab1[ip],label2=lab2[ip];
-            int n1=nlk1[ip],n2=nlk2[ip];
-            int *pke1=plk1[ip], *pke2=plk2[ip];
-            double xmn=infty,xmx=-infty,hmn=infty;
-            if (verbosity >1)
-            cout << "  --Update: periodic  couple label1= " << label1 << ", n edges= " << n1 << "; "
-                                          << ", label2= " << label2<<  ", n edges= " << n2 <<endl; 
-            if (n1 != n2) ExecError("periodic BC:  the number of edges is not the same");
-            for (int i1=0;i1<n1;i1++)
-             {
-              const BoundaryEdge & e =Th.bedges[pke1[i1]];
-              if (e.lab==label1) 
-                {           
-                 mp->set(e[0].x,e[0].y);
-                 double x0=GetAny<double>((*periodic[k+kk1])(stack));
-                 mp->set(e[1].x,e[1].y);
-                 double x1=GetAny<double>((*periodic[k+kk1])(stack));
-		 if(verbosity>5)
-			cout << "lab1:  e[" << pke1[i1] << "]  v0:   " <<  e[0].x << " " << e[0].y << "  s = " << x0
-			<< "\t v1 " <<  e[0].x << " " << e[0].y << "  s = " << x1 << endl;
-		    xmn=Min(x1,x0,xmn);
-                 xmx=Max(x1,x0,xmx); 
-                 hmn=Min(hmn,Abs(x1-x0));
-               }                                
-             }
-            ffassert(hmn>1.0e-20);
-            double coef = 8/hmn;
-            double x0 = xmn;
-            if (verbosity > 2)
-            cout << "  --Update: periodic " << xmn << " " << xmx << " " << " h=" << hmn << endl;
-            ffassert(coef>1e-10 && (xmx-xmn)*coef < 1.e7 );
-             
-           //  map construction ----
-           for (int i1=0;i1<n1;i1++)
-             {
-              int ie=pke1[i1];
-              const BoundaryEdge & e =Th.bedges[pke1[i1]];
-              if (e.lab==label1)
-                 for (int ne=0;ne<2;ne++)
-                  {
-                   int2 i2;
-                   i2[0]=ie;
-                   i2[1]=-1;
-                   mp->set(e[ne].x,e[ne].y);
-                   double xx=GetAny<double>((*periodic[k+kk1])(stack));
-                   int i0= (int) ((xx-x0)*coef);
-                   map<int,int2>::iterator im=closeto(m,i0);
-                   if (im==m.end())
-                    {
-                     if (verbosity >50)
-                      cout << xx << " " << i0 << " " << ie << endl;
-                     im=m.insert(pair<int,int2>(i0,i2)).first;
-                    }
-                   else {
-                     if (verbosity >50)
-                     cout << xx << " " << i0 << " " << ie << " :  " << im->second[0] << " " << im->second[1] << endl;
-                    assert( (im->second[1] < 0) && (im->second[0] >=0) );
-                    im->second[1]=ie;}
-                   
-               }                                
-             }
-            
-            for (int i2=0;i2<n2;i2++)
-             {
-              int ie2=pke2[i2];
-              const BoundaryEdge & e =Th.bedges[ie2];
-              if (e.lab==label2)
-                {
-		if (verbosity >50)
-                    cout << i2 << " : " <<Th(e[0]) << " " << Th(e[1]) << ":: ";
-                 mp->set(e[0].x,e[0].y);
-                 double xx0=GetAny<double>((*periodic[k+kk2])(stack));
-                 mp->set(e[1].x,e[1].y);
-                 double xx1=GetAny<double>((*periodic[k+kk2])(stack));
-		 if(verbosity>5 && !(verbosity >50))
-		      cout << "lab2:  e[" << pke2[i2] << "]  v0:   " <<  e[0].x << " " << e[0].y << "  s = " << xx0
-		      << "\t v1 " <<  e[0].x << " " << e[0].y << "  s = " << xx1 << endl;
-		    
-                 int i0= int((xx0-x0)*coef);
-                 int i1= int((xx1-x0)*coef);
-                 map<int,int2>::iterator im0=closeto(m,i0);
-                 map<int,int2>::iterator im1=closeto(m,i1);
-                 if(im0 == m.end() || im1 == m.end() )
-                 	{ 
-			
-			  cout << "Abscisse: s0 = "<< xx0 << " <==> s1 " << xx1  <<endl; 
-			  ExecError("periodic: Sorry one vertex of edge is losted "); }
-                  int ie1=-1;
-                 if      (((ie1=im0->second[0])==im1->second[1]) && (ie1>=0)) ;
-                 else if (((ie1=im0->second[0])==im1->second[1]) && (ie1>=0)) ;
-                 else if (((ie1=im0->second[1])==im1->second[1]) && (ie1>=0)) ;
-                 else if (((ie1=im0->second[1])==im1->second[0]) && (ie1>=0)) ;
-                 else if (((ie1=im0->second[0])==im1->second[0]) && (ie1>=0)) ;
-                 else
-                  {
-                   cout << ie2 << " ~ " << im0->second[0] << " " << im0->second[1] << ", " 
-                                        << im1->second[0] << " " << im1->second[1] << endl;
-                   ExecError("periodic: Sorry one egde is losted "); }
-		 if(verbosity>50)
-		   cout << " ( " << im0->second << " , " << im1->second << " ) .. ";
-		 ffassert(ie1>=0 && ie1 < Th.neb );
-                 const BoundaryEdge & ep =Th.bedges[ie1];
-                 mp->set(ep[0].x,ep[0].y);
-                 double yy0=GetAny<double>((*periodic[k+kk1])(stack));
-                 mp->set(ep[1].x,ep[1].y);
-                 double yy1=GetAny<double>((*periodic[k+kk1])(stack));
-		if(verbosity>50)
-			cout << " e0: s  "<< xx0 << " " << xx1 << "e1 s "<< yy0 << " " << yy1  ; 
-                 
-                 pke1[i2]=ie1*2+ ( ( (yy1-yy0) < 0)  == ( (xx1-xx0) < 0) ) ;
-		    
-                 if (verbosity >50)
-                 cout << " \t  edge " << ie1 << " <=> " << ie2 << " " 
-                      << ( ( (yy1-yy0) < 0)  == ( (xx1-xx0) < 0) ) << "; "
-                      << xx0 << " " <<xx1<<" <=> "  << yy0 << " " <<yy1<< 
-                      "  ::  " <<  Th(ep[0]) << " " << Th(ep[1]) << endl ;
-
-                }
-              }
-              
-             
-          }
-          
-        *mp = smp;
-        for (int i=0;i<Th.neb;i++)
-            ndfe[i]=i;// circular link
-        for (int i=0;i<Th.nv;i++)
-          ndfv[i]=i;// circular link
-        for (int i=0;i<nblink1;i++)
-         {
-           int ie1=link1[i]/2;
-           int sens = link1[i]%2;
-           int ie2=link2[i];
-           assert(ie1!=ie2);
-	   if(!InCircularList(ndfe,ie1,ie2))   // merge of two list 
-	      Exchange(ndfe[ie1],ndfe[ie2]);
-	   for (int ke2=0;ke2<2;ke2++)
-             {
-                int ke1=ke2;
-                if(!sens) ke1=1-ke1; 
-                int iv1=Th(Th.bedges[ie1][ke1]);
-                int iv2=Th(Th.bedges[ie2][ke2]);
-                if (!InCircularList(ndfv,iv1,iv2)) {  // merge of two list 
-		   Exchange(ndfv[iv2],ndfv[iv1]);
-                   if (verbosity >50)
-		   { 
-		     cout << "  vertex " << iv1 <<  "<==> " << iv2 << " list : " << iv1;
-		     int i=iv1,k=0;
-		     while ( (i=ndfv[i]) != iv1 && k++<10)
-			 cout << ", "<< i ; 
-		       cout << endl;
-		   }}                  
-             }
-            
-         } 
-         // generation de numero de dlt
-         
-          nbdfv = numeroteclink(ndfv) ; 
-          nbdfe = numeroteclink(ndfe) ; 
-          if (verbosity>2) 
-            cout << "  -- nb df on vertices " << nbdfv << endl;
-        delete [] link1;
-        delete [] link2;
-        return true; //new FESpace(**ppTh,*tef,nbdfv,ndfv,nbdfe,ndfe);
-      }
-   }
-   return false;   
-}
-
-
-bool  v_fes::buildperiodic(Stack stack,int & nbdfv, KN<int> & ndfv,int & nbdfe, KN<int> & ndfe) { 
-  return BuildPeriodic(nbcperiodic,periodic,**ppTh,stack,nbdfv,ndfv,nbdfe,ndfe);
-
-}
-#ifdef ZZZZZZZZ
-FESpace * pfes_tef::update() { 
-   typedef Smallvect<int,2> int2; 
-    
-    if (nbcperiodic ) {
-       const Mesh &Th(**ppTh);
-       KN<int> ndfv(Th.nv);
-       KN<int> ndfe(Th.neb);
-       int nbdfv,nbdfe;
-        return  new FESpace(**ppTh,*tef,nbdfv,ndfv,nbdfe,ndfe);
-      }
-     else 
-       return  new FESpace(**ppTh,*tef);
-}
-#endif
-
-struct OpMake_pfes_np {
-  static const int n_name_param =1;
-  static basicAC_F0::name_and_type name_param[] ;
-};
-
-basicAC_F0::name_and_type  OpMake_pfes_np::name_param[]= {
-  "periodic", &typeid(E_Array) 
-};
-
-map<TypeOfFE *,TypeOfFE3 *> TEF2dto3d;
-AnyType TypeOfFE3to2(Stack,const AnyType &b) { 
-    TypeOfFE3 *t3=0;
-    TypeOfFE  *t2=GetAny<TypeOfFE *>(b);
-    map<TypeOfFE *,TypeOfFE3 *>::const_iterator i=TEF2dto3d.find(t2);
-    if(i != TEF2dto3d.end())
-	t3=i->second;
-    
-    if(t3==0)
-      {
-	  cerr << " sorry no cast to this 3d finite element " <<endl;
-	  ExecError( " sorry no cast to this 3d finite element ");
-      }
-    return t3;
-}
-
-/*
- for (ListOfTFE * i=ListOfTFE::all;i;i=i->next)
- {
- ffassert(i->tfe); // check 
- AddNewFE(i->name,i->tfe);
- // Global.New(i->name, Type_Expr(atype<TypeOfFE*>(),new  EConstantTypeOfFE(i->tfe)));
- }
- 
- */
-TypeOfFE * FindFE2(const char * s)
-{
-    for (ListOfTFE * i=ListOfTFE::all;i;i=i->next)
-	if(strcmp(i->name,s)==0)
-	    return i->tfe;
-    cout << " s =" << s << endl;
-    lgerror("FindFE2 ");
-    return 0;
-}
-
-
-typedef TypeOfFE TypeOfFE2;
-template<class pfes,class Mesh,class TypeOfFE,class pfes_tefk>
-struct OpMake_pfes: public OneOperator , public OpMake_pfes_np { 
-  
-  struct Op: public E_F0mps { 
-  public:
-    
-    Expression eppTh;
-    Expression eppfes;
-    const E_Array & atef;
-    int nb;
-    int nbcperiodic;
-    Expression *periodic;
-    KN<int>  tedim;
-    Op(Expression ppfes,Expression ppTh, const E_Array & aatef,int nbp,Expression * pr,KN<int> &ttedim) 
-      : eppTh(ppTh),eppfes(ppfes),atef(aatef),nbcperiodic(nbp),periodic(pr),tedim(ttedim) {       
-    }
-    ~Op() { if(periodic) delete []periodic;}
-    AnyType operator()(Stack s)  const {  
-      const int d = Mesh::Rd::d;
-      Mesh ** ppTh = GetAny<Mesh  **>( (*eppTh)(s) );
-      AnyType r = (*eppfes)(s) ;
-      const TypeOfFE ** tef= new  const TypeOfFE * [ atef.size()];
-      for (int i=0;i<atef.size();i++)
-	if(tedim[i]==d)
-	  tef[i]= GetAny<TypeOfFE *>(atef[i].eval(s));
-	else if(tedim[i]==2 && d ==3)
-	    tef[i]= GetAny<TypeOfFE *>(TypeOfFE3to2(s,atef[i].eval(s)));
-	else ffassert(0);
-	  
-      pfes * ppfes = GetAny<pfes *>(r);
-      bool same = true;
-      for (int i=1;i<atef.size();i++)
-	same &= atef[i].LeftValue() == atef[1].LeftValue();
-      *ppfes = new pfes_tefk(ppTh,tef,atef.size(),s    ,nbcperiodic,periodic);
-      (**ppfes).decrement();  //07/2008 FH
-	// Add2StackOfPtr2FreeRC(s,*ppfes);  //  bug????  a verifier 06/07/2008
-      //  delete [] tef;
-      return r;}
-  } ;
-  
-  E_F0 * code(const basicAC_F0 & args)  const
-  { 
-    int nbcperiodic=0;
-    Expression *periodic=0;
-    Expression nargs[n_name_param];
-    
-    args.SetNameParam(n_name_param,name_param,nargs);
-      GetPeriodic(Mesh::Rd::d,nargs[0],nbcperiodic,periodic);
-    aType t_tfe= atype<TypeOfFE*>();
-    aType t_tfe2= atype<TypeOfFE2*>();  
-    int d=  TypeOfFE::Rd::d;
-    string sdim= d ?  " 2d : " : " 3d : " ; 
-    const E_Array * a2(dynamic_cast<const E_Array *>(args[2].LeftValue()));
-    ffassert(a2);
-    int N = a2->size(); ;
-    if (!N) CompileError(sdim+" We wait an array of Type of Element ");
-      KN<int> tedim(N);
-    for (int i=0;i< N; i++) 
-      if ((*a2)[i].left() == t_tfe)
-	  tedim[i]=d;
-      else if ((*a2)[i].left() ==t_tfe2)
-	  tedim[i]=2;
-      else
-	    CompileError(sdim+" We wait an array of  Type of Element ");
-    //    ffassert(0);
-    return  new Op(args[0],args[1],*a2,nbcperiodic,periodic,tedim);
-  } 
-  OpMake_pfes() : 
-    OneOperator(atype<pfes*>(),atype<pfes*>(),atype<Mesh **>(),atype<E_Array>()) {}
-};
-
-inline pfes* MakePtr2(pfes * const &p,pmesh * const &  a, TypeOfFE * const & tef)
-{ *p=new pfes_tef(a,tef) ;
-  (**p).decrement();
-  return p;}
-
-inline pfes3* MakePtr3(pfes3 * const &p,pmesh3 * const &  a, TypeOfFE3 * const & tef)
-{ *p=new pfes3_tef(a,tef) ;
-  (**p).decrement();
-  return p;}
-
-
-
-class OP_MakePtr2 { public:
-    class Op : public E_F0mps  { public:
-	//  static int GetPeriodic(Expression  bb, Expression & b,Expression & f);
-	static const int n_name_param =1;
-      static basicAC_F0::name_and_type name_param[] ;
-      Expression nargs[n_name_param];
-      typedef pfes * R;
-      typedef pfes * A;
-      typedef pmesh * B;
-      typedef TypeOfFE * C;
-      Expression a,b,c;
-      int nbcperiodic ;
-      Expression *periodic;
-      Op(const basicAC_F0 & args);
-      
-      AnyType operator()(Stack s) const  {
-	A p= GetAny<A>( (*a)(s) );
-	B th= GetAny<B>( (*b)(s) );
-	C tef= GetAny<C>( (*c)(s) );   
-	//  cout << "  ----------- " << endl;  
-	*p=new pfes_tef(th,tef,s,nbcperiodic,periodic) ;
-	(**p).decrement();
-	return  SetAny<R>(p);
-      } 
-    }; // end Op class 
-  
-  typedef Op::R Result;
-  static  E_F0 * f(const basicAC_F0 & args) { return  new Op(args);}
-  static ArrayOfaType  typeargs() {
-    return ArrayOfaType(       
-			atype<Op::A>(),
-			atype<Op::B>(),
-			atype<Op::C>(),false ) ;}
-};  
-
-
-class OP_MakePtr3 { public:
-    class Op : public E_F0mps  { public:
-	//  static int GetPeriodic(Expression  bb, Expression & b,Expression & f);
-	static const int n_name_param =1;
-      static basicAC_F0::name_and_type name_param[] ;
-      Expression nargs[n_name_param];
-      typedef pfes3 * R;
-      typedef pfes3 * A;
-      typedef pmesh3 * B;
-      typedef TypeOfFE3 * C;
-      Expression a,b,c;
-      int nbcperiodic ;
-      Expression *periodic;
-      Op(const basicAC_F0 & args);
-      
-      AnyType operator()(Stack s) const  {
-	A p= GetAny<A>( (*a)(s) );
-	B th= GetAny<B>( (*b)(s) );
-	C tef= GetAny<C>( (*c)(s) );   
-	//  cout << "  ----------- " << endl;  
-	*p=new pfes3_tef(th,tef,s,nbcperiodic,periodic) ;
-	(**p).decrement();
-	return  SetAny<R>(p);
-      } 
-    }; // end Op class 
-  
-  typedef Op::R Result;
-  static  E_F0 * f(const basicAC_F0 & args) { return  new Op(args);}
-  static ArrayOfaType  typeargs() {
-    return ArrayOfaType(       
-			atype<Op::A>(),
-			atype<Op::B>(),
-			atype<Op::C>(),false ) ;}
-};  
-
-void GetPeriodic(const int d,Expression perio,    int & nbcperiodic ,    Expression * &periodic)
-{
-    ffassert(d==2 || d ==3);
-      if ( perio) 
-       {
-         if( verbosity>1) 
-         cout << "  -- Periodical Condition to do" << endl;
-         const E_Array * a= dynamic_cast<const  E_Array *>(perio);
-         ffassert(a);
-         int n = a->size();
-        nbcperiodic= n/2;
-        if( verbosity>1) 
-        cout << "    the number of periodicBC " << n << endl;
-        if ( 2*nbcperiodic != n ) CompileError(" Sorry the number of periodicBC must by even"); 
-        periodic = new Expression[n*d]; 
-        for (int i=0,j=0;i<n;i++,j+=d)
-	  if(d==2)
-	    { if (GetPeriodic((*a)[i],periodic[j],periodic[j+1])==0)
-            CompileError(" a sub array of periodic BC must be [label, realfunction ]");
-	    }
-	  else if (d==3)
-	    { if (GetPeriodic((*a)[i],periodic[j],periodic[j+1],periodic[j+2])==0)
-		CompileError(" a sub array of periodic BC must be [label, realfunction , realfunction]");
-	    }
-	  else ffassert(0); 
-        }
-
-
-}
-
-    
-OP_MakePtr2::Op::Op(const basicAC_F0 & args)
-  : a(to<A>(args[0])),b(to<B>(args[1])),c(to<C>(args[2]))
-     {
-      nbcperiodic=0;
-      periodic=0;
-      args.SetNameParam(n_name_param,name_param,nargs);
-      GetPeriodic(2,nargs[0],nbcperiodic,periodic);
-     }
-    
-OP_MakePtr3::Op::Op(const basicAC_F0 & args)
-  : a(to<A>(args[0])),b(to<B>(args[1])),c(to<C>(args[2]))
-{
-  nbcperiodic=0;
-  periodic=0;
-  args.SetNameParam(n_name_param,name_param,nargs);
-  GetPeriodic(3,nargs[0],nbcperiodic,periodic);
-}
-
-int GetPeriodic(Expression  bb, Expression & b,Expression & f)
-    {
-      const E_Array * a= dynamic_cast<const E_Array *>(bb);
-      if(a && a->size() == 2)
-	{
-	  b= to<long>((*a)[0]);
-	  f= to<double>((*a)[1]);
-	  return 1;
-	}
-      else 
-	return 0;
-    }
-int GetPeriodic(Expression  bb, Expression & b,Expression & f1,Expression & f2)
-{
-    const E_Array * a= dynamic_cast<const E_Array *>(bb);
-    if(a && a->size() == 3)
-      {
-	  b= to<long>((*a)[0]);
-	  f1= to<double>((*a)[1]);
-	  f2= to<double>((*a)[2]);
-	  return 1;
-      }
-    else 
-	return 0;
-}
-
-basicAC_F0::name_and_type  OP_MakePtr2::Op::name_param[]= {
-  "periodic", &typeid(E_Array) 
-};
-
-basicAC_F0::name_and_type  OP_MakePtr3::Op::name_param[]= {
-  "periodic", &typeid(E_Array) 
-};
-
-inline pfes* MakePtr2(pfes * const &p,pmesh * const &  a){ 
-      *p=new pfes_tef(a,&P1Lagrange);
-      (**p).decrement();
-       return p ;}
-       
-inline pfes* MakePtr2(pfes * const &p,pfes * const &  a,long const & n){
-       *p= new pfes_fes(a,n);
-      (**p).decrement();
-       return p ;}
-       
- long FindTxy(Stack s,pmesh * const &  ppTh,const double & x,const double & y)
-{
-   R2 P(x,y),PHat;
-   bool outside;
-     MeshPoint & mp = *MeshPointStack(s);  
-   const Mesh * pTh= *ppTh;
-   if(pTh == 0) return 0;  
-   const Triangle * K=pTh->Find(mp.P.p2(),PHat,outside);
-   if (!outside)
-     mp.set(*pTh,P,PHat,*K,K->lab);
-   else return 0;
-   return 1;
-}
-
- 
-
-
- 
-
-template<class K>    
-KN<K> * pfer2vect( pair<FEbase<K,v_fes> *,int> p)
- {  
-    KN<K> * x=p.first->x();
-    if ( !x) {  // defined 
-      FESpace * Vh= p.first->newVh();     
-      throwassert( Vh);
-      *p.first = x = new KN<K>(Vh->NbOfDF);
-      *x=K(); 
-    }
-    return x;}
-
-template<class K>        
-long pfer_nbdf(pair<FEbase<K,v_fes> *,int> p)
- {  
-   if (!p.first->Vh) p.first->Vh= p.first->newVh();
-   throwassert( !!p.first->Vh);
-   return p.first->Vh->NbOfDF;
- }
- 
-double pmesh_area(pmesh * p)
- { throwassert(p && *p) ;  return (**p).area ;}
-long pmesh_nt(pmesh * p)
- { throwassert(p && *p) ;  return (**p).nt ;}
-long pmesh_nbe(pmesh * p)
-{ throwassert(p && *p) ;  return (**p).neb ;}
-long pmesh_nv(pmesh * p)
- { throwassert(p && *p) ;  return (**p).nv ;}
-long pVh_ndof(pfes * p)
- { throwassert(p && *p);
-   FESpace *fes=**p; ;  return fes->NbOfDF ;}
-long pVh_nt(pfes * p)
- { throwassert(p && *p);
-   FESpace *fes=**p; ;  return fes->NbOfElements ;}
-long pVh_ndofK(pfes * p)
- { throwassert(p && *p);
-   FESpace *fes=**p;   return (*fes)[0].NbDoF() ;}
-
-long mp_nuTriangle(MeshPoint * p)
- { throwassert(p  && p->Th && p->T);
-   long nu=0;
-   if(p->d==2)
-     nu=(*p->Th)(p->T);
-   else if  (p->d==3)
-     nu=(*p->Th3)(p->T3);
-   else ffassert(0);
-   delete p;
-   return nu ;}
-   
-long mp_region(MeshPoint * p)
- { throwassert(p && p->Th);
-   long  nu(p->region);
-   delete p;
-   return nu ;}
-
-
-class pVh_ndf : public ternary_function<pfes *,long,long,long> { public:
-
-
-  class Op : public E_F0mps { public:
-      Expression a,b,c;
-       Op(Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc) {}       
-       AnyType operator()(Stack s)  const 
-        { 
-           pfes * p(GetAny<pfes *>((*a)(s)));
-           long  k(GetAny<long>((*b)(s)));
-           long  i(GetAny<long>((*c)(s)));
-           throwassert(p && *p);
-           FESpace *fes=**p;
-           throwassert(fes && k >=0 && k < fes->NbOfElements );
-           FElement K=(*fes)[k];
-           throwassert(i>=0 && i <K.NbDoF() );
-           long ret(K(i));
-           return  ret;
-         }
-   
-  };
-};
-//plus
-
-class Op_CopyArray : public OneOperator { public:
-    Op_CopyArray():OneOperator(atype<void>(),atype<E_Array>(),atype<E_Array>()) {}
-    E_F0 * code(const basicAC_F0 & args) const ; 
-};  
-                       
-template<class R,int dd>
-AnyType pfer2R(Stack s,const AnyType &a)
-{
-  pair< FEbase<R,v_fes> *  ,int> ppfe=GetAny<pair< FEbase<R,v_fes> *,int> >(a);
-  FEbase<R,v_fes> & fe( *ppfe.first);
-  int componante=ppfe.second;
-  if ( !fe.x()) {
-   if ( !fe.x()){
-    // CompileError(" Sorry unset fem array ");
-     return   SetAny<R>(0.0);
-    }
-  }
-   
-  const FESpace & Vh(*fe.Vh);
-  const Mesh & Th(Vh.Th);
-  assert(Th.ntet==0 && Th.volume==0 && Th.triangles != 0);
-  MeshPoint & mp = *MeshPointStack(s);
-  const Triangle *K;
-  R2 PHat;
-  bool outside=false;
-  bool qnu=true;
-  if ( mp.Th == &Th && mp.T) 
-   {
-    qnu=false;
-    K=mp.T;
-    PHat=mp.PHat.p2();
-   }
-  else if ( mp.other.Th == & Th && mp.other.P.x == mp.P.x && mp.other.P.y == mp.P.y )
-   {
-    K=mp.other.T;
-    PHat=mp.other.PHat.p2();
-    outside = mp.other.outside;
-   } 
-  else {
-    if (mp.isUnset()) ExecError("Try to get unset x,y, ...");
-    K=Th.Find(mp.P.p2(),PHat,outside);
-    mp.other.set(Th,mp.P.p2(),PHat,*K,0,outside);
-    }
-  // cout << "  ---  " << qnu << "  " << mp.P << " " << mp.outside <<  " " << outside << endl;
-  const FElement KK(Vh[Th(K)]);
-  if (outside && !KK.tfe->NbDfOnVertex && !KK.tfe->NbDfOnEdge) 
-    return   SetAny<R>(0.0); 
-/*  if (!outside) 
-    {
-      if ( Norme2_2( (*K)(PHat) - mp.P ) > 1e-12 )
-        cout << "bug ??  " << Norme2_2( (*K)(PHat) - mp.P ) << " " << mp.P << " " << (*K)(PHat) << endl;
-    } */
-/*  int nbdf=KK.NbDoF();
-  
-  int N= KK.N;
-  KN_<R> U(*fe.x());
-  KNMK<R> fb(nbdf,N,3); //  the value for basic fonction
-  KN<R> fk(nbdf);
-  for (int i=0;i<nbdf;i++) // get the local value
-    fk[i] = U[KK(i)];
-    //  get value of basic function
-  KK.BF(PHat,fb);  
-  
-  R r = (fb('.',componante,dd),fk);  
-*/
-  
- const R rr = KK(PHat,*fe.x(),componante,dd);
-//  cout << " " << rr << endl;
-//  R2 B(mp.P);
-/*   if ( r < 0.08001 &&  Norme2_2(mp.P) > 0.05  && Norme2_2(mp.P) < 0.4*0.4  ) 
-     {
-     int vv=verbosity;
-      cout << " f()  triangle  " << Th(K) << " " << mp.P << " " << PHat << " =  " << r << " " <<outside ;
-      if (outside) {  verbosity = 200;
-         K=Th.Find(mp.P,PHat,outside);
-          cout << Th(K) << " " << outside << endl;}
-       cout << endl; verbosity=vv;
-     } */
-//  if ( qnu )   
- //  cout << " f()  triangle       " << Th(K) << " " << mp.P << " " << PHat << " =  " << r <<  endl;
-  return SetAny<R>(rr);
-}
-
- 
-template<class R>
-AnyType set_fe (Stack s,Expression ppfe, Expression e)
-  { 
-   long kkff = Mesh::kfind,  kkth = Mesh::kthrough;
-      StackOfPtr2Free * sptr = WhereStackOfPtr2Free(s);
-
-   
-    MeshPoint *mps=MeshPointStack(s),mp=*mps;  
-    pair<FEbase<R,v_fes> *,int>  pp=GetAny<pair<FEbase<R,v_fes> *,int> >((*ppfe)(s));
-    FEbase<R,v_fes> & fe(*pp.first);
-    const  FESpace & Vh(*fe.newVh());
-    if(!&Vh ) ExecError("Unset FEspace (Null mesh ? ) on  uh= ");
- 
-    KN<R> gg(Vh.MaximalNbOfDF());
-    const  Mesh & Th(Vh.Th);
- //   R F[100]; // buffer 
-    TabFuncArg tabexp(s,Vh.N);
-    tabexp[0]=e;
-    
-    if(Vh.N!=1)
-    {  cerr << " Try to set a  vectorial  FE function  (nb  componant=" <<  Vh.N << ") with one scalar " << endl;
-       ExecError(" Error interploation (set)  FE function (vectorial) with a scalar");
-    }
-    KN<R> * y=new  KN<R>(Vh.NbOfDF);
-    KN<R> & yy(*y);
-    KN<R> Viso(100);
-    // R2 Ptt[3];
-    for (int i=0;i<Viso.N();i++)
-      Viso[i]=0.01*i; 
-      
-    FElement::aIPJ ipj(Vh[0].Pi_h_ipj()); 
-    FElement::aR2  PtHat(Vh[0].Pi_h_R2()); 
-    KN<double>   Aipj(ipj.N());
-    KN<R>   Vp(PtHat.N());
-    const E_F0 & ff(* (const  E_F0 *) e ) ;
-
-   if (Vh.isFEMesh() )
-    {
-      
-      ffassert(Vh.NbOfDF == Th.nv && Vh.N == 1 );
-      for (int iv=0;iv<Th.nv;iv++)
-       {
-         const Vertex & v(Th(iv));
-         int ik=Th.Contening(&v);
-         const Triangle & K(Th[ik]);
-         int il=-1;
-         if  ( &K[0] == &v) il=0;
-         if  ( &K[1] == &v) il=1;
-         if  ( &K[2] == &v) il=2;
-         assert(il>=0);
-         mps->set(Th,v,TriangleHat[il],K,v.lab);
-         yy[iv] = GetAny<R>( ff(s) );
-          sptr->clean(); // modif FH mars 2006  clean Ptr
-       }
-      
-    }
-   else     
-    
-     for (int t=0;t<Th.nt;t++)
-      {
-         FElement K(Vh[t]);
-         int nbdf=K.NbDoF();
-         gg=R();   
-#ifdef OLDPih    
-// old method          
-         K.Pi_h(gg,F_Pi_h,F,&tabexp);
-#else               
-         K.Pi_h(Aipj);
-         for (int p=0;p<PtHat.N();p++)
-          { 
-            mps->set(K.T(PtHat[p]),PtHat[p],K);
-            Vp[p]=GetAny<R>( ff(s) );
-           }
-         for (int i=0;i<Aipj.N();i++)
-          { 
-           const FElement::IPJ &ipj_i(ipj[i]);
-           assert(ipj_i.j==0); // car  Vh.N=0
-           gg[ipj_i.i] += Aipj[i]*Vp[ipj_i.p];            
-          }
-#endif          
-         for (int df=0;df<nbdf;df++)         
-            (*y)[K(df)] =  gg[df] ;
-           sptr->clean(); // modif FH mars 2006  clean Ptr
-                       
-      }
-    *mps=mp;
-    fe=y;
-     kkff = Mesh::kfind - kkff;
-     kkth = Mesh::kthrough -kkth;
-
-    if(verbosity>1)
-      ShowBound(*y,cout)  
-           << " " << kkth << "/" << kkff << " =  " << double(kkth)/Max<double>(1.,kkff) << endl;
-    return SetAny<FEbase<R,v_fes>*>(&fe); 
-  }
-AnyType set_feoX_1 (Stack s,Expression ppfeX_1, Expression e)
-  { // inutile 
-    // m�me chose que  v(X1,X2);
-      StackOfPtr2Free * sptr = WhereStackOfPtr2Free(s);
-    typedef const interpolate_f_X_1<R>::CODE * code;
-    MeshPoint mp= *MeshPointStack(s); 
-    code ipp = dynamic_cast<code>(ppfeX_1);
-    
-    pair<FEbase<R,v_fes> *,int>  pp=GetAny<pair<FEbase<R,v_fes> *,int> >((*ipp->f)(s));
-    FEbase<R,v_fes> & fe(*pp.first);
-    const  FESpace & Vh(*fe.newVh());
-    KN<R> gg(Vh.MaximalNbOfDF()); 
-    const  Mesh & Th(Vh.Th);
-    R F[100]; // buffer 
-    TabFuncArg tabexp(s,Vh.N+2);
-    tabexp[0]=e;
-    tabexp[1]=ipp->x;
-    tabexp[2]=ipp->y;
-    
-    throwassert(Vh.N==1); 
-    KN<R> * y=new  KN<R>(Vh.NbOfDF); 
-     for (int t=0;t<Th.nt;t++)
-      {
-         FElement K(Vh[t]);
-         int nbdf=K.NbDoF();
-        
-         gg=R();
-         
-         K.Pi_h(gg,FoX_1_Pi_h,F,&tabexp);
-         for (int df=0;df<nbdf;df++)
-          (*y)[K(df)] =  gg[df] ;
-          sptr->clean(); // modif FH mars 2006  clean Ptr          
-      }
-    *MeshPointStack(s)=mp;
-    fe=y;
-    if(verbosity>1)
-    cout << "  -- interpole f= g*X^-1, function's bound:  " << y->min() << " " << y->max() << endl; 
-    return SetAny<FEbase<R,v_fes>*>(&fe); 
-  }
-
-template<class K>
-E_set_fev<K>::E_set_fev(const E_Array * a,Expression pp,int ddim) 
-  :dim(ddim), aa(*a),ppfe(pp),optimize(true),
-   where_in_stack_opt(),optiexp0(),optiexpK() 
-{ 
-  aa.map(to<K>) ;
-  bool kdump=false;
-  if(optimize)
-    { // new code Optimized  -------
-      int n=aa.size();
-      deque<pair<Expression,int> > ll;
-      MapOfE_F0 m;
-      where_in_stack_opt.resize(n);
-      size_t top = currentblock->OffSet(0), topbb=top; // FH. bofbof ??? 
-      for (int i=0; i<n; i++)
-	{
-	  Expression ee= aa[i].LeftValue();
-	  if (kdump)
-	    cout << "Optimize OneOperatorMakePtrFE:  type exp: " << typeid(*ee).name() << " "<<endl;
-	  where_in_stack_opt[i]=ee->Optimize(ll, m, top);
-	  if (kdump)
-	    cout  << "\n\t\t"<< i  << ": " << where_in_stack_opt[i] << endl;
-	}
-      
-      currentblock->OffSet(top-topbb);
-      //  
-      int k=ll.size(),k0=0,k1=0;
-      for (int i=0;i<k;i++)
-	if (ll[i].first->MeshIndependent()) k0++;
-      deque<pair<Expression,int> > l0(k0),l1(k-k0);
-      k0=0,k1=0;
-      for (int i=0;i<k;i++)
-	if (ll[i].first->MeshIndependent()) 
-	  {
-	    if (kdump)
-	      cout << " mi " << ll[i].second << " " << *(ll[i].first) << endl;
-	    l0[k0++]=ll[i];
-	  }
-	else 
-	  {
-	    if (kdump)
-	      cout << " md " << ll[i].second << " " << *(ll[i].first) << endl;
-	    l1[k1++]=ll[i];
-	  }
-      if (k0)      
-	optiexp0 = new E_F0_Optimize(l0,m,0);  // constant part
-      if (k1) 
-	optiexpK = new E_F0_Optimize(l1,m,0);  // none constant part
-      
-    }
-  
-  
-}
-
-
-template<class K>   
-AnyType E_set_fev<K>::operator()(Stack s)  const
-{
-  if(dim== 2)  return  Op2d(s);
-  else if(dim == 3)  return Op3d(s);
-  return Nothing;
-}
-
-
-template<class K>   
-AnyType E_set_fev<K>::Op3d(Stack s)  const
-{
-  //  voir E_set_fev3  ( pb de consitance a revoir FH) 
-  ffassert(0); // a faire   
-}
-template<class K>   
-AnyType E_set_fev<K>::Op2d(Stack s)  const
-{  
-  StackOfPtr2Free * sptr = WhereStackOfPtr2Free(s);     
-  MeshPoint *mps=MeshPointStack(s), mp=*mps;   
-  FEbase<K,v_fes> ** pp=GetAny< FEbase<K,v_fes> **>((*ppfe)(s));
-  FEbase<K,v_fes> & fe(**pp);
-  const  FESpace & Vh(*fe.newVh());
-  KN<K> gg(Vh.MaximalNbOfDF()); 
-  
-  
-  const  Mesh & Th(Vh.Th);
-  const int dim=Vh.N;
-  K ** copt=0;
-  if (optimize)   copt= new K *[dim];
-  if(copt) {
-    assert((size_t) dim== where_in_stack_opt.size());
-    for (int i=0;i<dim;i++)
-      {
-        int offset=where_in_stack_opt[i];
-        assert(offset>10);
-        copt[i]= static_cast<K *>(static_cast<void *>((char*)s+offset));
-        *(copt[i])=0;
-       }
-    if (optiexp0) (*optiexp0)(s); // init 
-  }
-  
-  ffassert(dim<100);
-  //   R F[100]; // buffer 
-  
-  TabFuncArg tabexp(s,Vh.N);
-  //   const E_Array * aa = dynamic_cast<const E_Array *>(e);
-  ffassert( aa.size() == Vh.N);
-  for (int i=0;i<dim;i++)
-    tabexp[i]=aa[i]; 
-  
-  KN<K> * y=new  KN<K>(Vh.NbOfDF);
-  KN<K> & yy(*y);
-  
-  FElement::aIPJ ipj(Vh[0].Pi_h_ipj()); 
-  FElement::aR2  PtHat(Vh[0].Pi_h_R2()); 
-  
-  KN<double>   Aipj(ipj.N());
-  
-  
-  //   KNM<K>  Vp(dim,PtHat.N());// bug 
-  // g++ error: too many initializers for `const __class_type_info_pseudo
-  
-  KN<K>  Vp1(dim*PtHat.N());
-  
-  
-  if (Vh.isFEMesh() )
-    {
-      
-      ffassert(Vh.NbOfDF == Th.nv && dim == 1 );
-      for (int iv=0;iv<Th.nv;iv++)
-	{
-	  const E_F0 & ff(* (const  E_F0 *) aa[0]  ) ;
-	  const Vertex & v(Th(iv));
-	  int ik=Th.Contening(&v);
-	  const Triangle & Kt(Th[ik]);
-	  int il=-1;
-	  if  ( &Kt[0] == &v) il=0;
-	  if  ( &Kt[1] == &v) il=1;
-	  if  ( &Kt[2] == &v) il=2;
-	  assert(il>=0);
-	  mps->set(Th,v,TriangleHat[il],Kt,v.lab);
-	  if (copt) {
-	    if (optiexpK) (*optiexpK)(s); 
-            yy[iv] =  *(copt[0]);
-          }
-          else 
-	    yy[iv] = GetAny<K>( ff(s) );
-	  sptr->clean(); // modif FH mars 2006  clean Ptr
-	}
-      
-    }
-  else
-    for (int t=0;t<Th.nt;t++)
-      {
-	FElement Kt(Vh[t]);
-	int nbdf=Kt.NbDoF();
-        
-	gg=K();
-        
-#ifdef OLDPih    
-	// old method          
-	Kt.Pi_h(gg,F_Pi_h,F,&tabexp);
-#else               
-	Kt.Pi_h(Aipj);
-	
-	for (int p=0;p<PtHat.N();p++)
-          { 
-            mps->set(Kt.T(PtHat[p]),PtHat[p],Kt);
-
-      //      KN_<K> Vpp(Vp('.',p));
-            KN_<K> Vpp(Vp1,SubArray(dim,p*dim)); // a Change FHHHHHHHH
-            if (copt) { // optimize  version 
-             if (optiexpK) (*optiexpK)(s);
-             for (int j=0;j<dim;j++)
-               Vpp[j] = *(copt[j]);
-            }
-            else  // old version 
-            for (int j=0;j<dim;j++)
-             if (tabexp[j]) 
-               Vpp[j]=GetAny<K>( (*tabexp[j])(s) );
-              else Vpp[j]=0;
-              
-           }
-           
-         for (int i=0;i<Aipj.N();i++)
-          { 
-           const FElement::IPJ &ipj_i(ipj[i]);
-         //  gg[ipj_i.i] += Aipj[i]*Vp(ipj_i.j,ipj_i.p);           
-             gg[ipj_i.i] += Aipj[i]*Vp1(ipj_i.j+ipj_i.p*dim); // index a la main  
-            sptr->clean(); // modif FH mars 2006  clean Ptr          
-          } 
-#endif          
-
-         for (int df=0;df<nbdf;df++)         
-           yy[Kt(df)] =  gg[df] ;
-      }
-   //  MeshPointStack(s)->unset();
-    fe=y;
-    if (copt) delete [] copt;
-    *MeshPointStack(s) = mp;
-    if(verbosity>1)
-        ShowBound(*y,cout) << endl ;
-   //HHHH*/       
-    return Nothing;
-  }
-
-
-template<class K>
-inline FEbase<K,v_fes> * MakePtrFE(pfes * const &  a){ 
-  FEbase<K,v_fes> * p=new FEbase<K,v_fes>(a);
-  //cout << "MakePtrFE " << p<< endl; 
-  return p ;}
-  
-template<class K>
-inline FEbase<K,v_fes> ** MakePtrFE2(FEbase<K,v_fes> * * const &  p,pfes * const &  a){ 
-  *p=new FEbase<K,v_fes>(a);
-  //cout << "MakePtrFE2 " << *p<< endl; 
-  return p ;}
-
-template<class K>  
-inline FEbaseArray<K,v_fes> ** MakePtrFE3(FEbaseArray<K,v_fes> * * const &  p,pfes * const &  a,const long & N){ 
-  *p=new FEbaseArray<K,v_fes>(a,N);
-  //cout << "MakePtrFE2 " << *p<< endl; 
-  return p ;}
-  
-/*
-inline pmesharray*  MakePtr(pmesharray*  const &  p,long   const &  a){ 
-  p->first=new pmesh [a];
-  p->second=a;
-  for (int i=0;i<a;i++) 
-     p->first[i]=0; // nuset 
-  return p ;}
-*/  
-template<class K>
-class  OneOperatorMakePtrFE : public OneOperator 
-{
-public:
-  // il faut Optimize 
-  // typedef double K;
-  typedef  FEbase<K,v_fes> ** R;
-  typedef pfes* B;
-  class CODE : public E_F0mps  
-  {
-  public:
-    Expression fer,fes;
-    E_set_fev<K> * e_set_fev;
-    const E_Array * v;
-    CODE(const basicAC_F0 & args) 
-      : 
-      fer(to<R>(args[0])),
-      fes(to<B>(args[1])),
-      e_set_fev(0) 
-    {
-      if (BCastTo<K>(args[2]) )
-	v = new E_Array(basicAC_F0_wa(to<K>(args[2]))); 
-      else 
-	v = dynamic_cast<const E_Array *>( args[2].LeftValue() );
-      if (!v) {
-	cout << "Error: type of arg :" << *args[2].left()  << " in " << typeid(K).name() << " case " << endl;
-	ErrorCompile(" We wait  a double/complex expression or a array expression",1);
-      }
-      //v->map(to<K>);
-      e_set_fev=  new   E_set_fev<K>(v,fer,v_fes::d);
-      
-    }
-    
-    AnyType operator()(Stack stack)  const {
-      R  p = GetAny<R>( (*fer)(stack));
-      B  a = GetAny<B>( (*fes)(stack)); 
-      *p=new FEbase<K,v_fes>(a);
-      (*e_set_fev)(stack); 
-      //  cout << "MakePtrFE: build p " << p << " " << *p << endl;         
-      return SetAny<R>(p);
-    }
-    operator aType () const { return atype<R>();}         
-    
-    
-  };
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { return  new CODE(args);}
-  OneOperatorMakePtrFE(aType tt):  // tt= aType<double>() or aType<E_Array>()  
-    OneOperator(map_type[typeid(R).name()],map_type[typeid(R).name()],map_type[typeid(B).name()],tt)
-  {}
-};
-
-
-// ---  
-
-template<class Result,class A>
-class  OneOperator_Ptr_o_R: public OneOperator {
-  //  aType r; //  return type 
-    typedef Result A::* ptr;
-    ptr p;   
-    public: 
-    E_F0 * code(const basicAC_F0 & args) const 
-     { return  new E_F_A_Ptr_o_R<Result,A>(t[0]->CastTo(args[0]),p);} 
-    OneOperator_Ptr_o_R(ptr pp):
-       OneOperator(atype<Result*>(),atype<A*>()),p(pp) {}     
-};
-
-template<class K>  K  *PAddition(const K * a,const K *  b)  {return  new K(*a+*b);}
-
-
-
-
-
-// 
-class fCLD { public:
-  typedef pair<int,Label> Key;
-  typedef  map<Key,Expression>::iterator iterator;
-  map<Key,Expression> *l;
-  fCLD (){ l=new  map<Key,Expression>;}
-  void operator=(const fCLD & a){ *l=*a.l;}
-  void destroy() { delete l;l=0;}
-  ~fCLD(){ delete l;l=0;}
-  void Add(finconnue *v,int lab,C_F0 f) { 
-    const MGauche *pn= v->simple();
-     Check(pn,"Def CL Dirichet ");
-    
-    Label r(lab);
-    Key k(make_pair(pn->first,r));
-    iterator i=l->find(k);
-    Check( i != l->end() ,"Def CL Dirichet already exists");
-    l->insert(make_pair(k,CastTo<double>(f)));        
-  }
-};
-
-//  pour stocker des expression de compilation 
-
-
-class Convect : public E_F0mps  { public:
-    typedef double  Result; // return type 
-    Expression u,v,w,ff,dt;
-    int d;
-    Convect(const basicAC_F0 & args)  : u(0),v(0),w(0),ff(0),dt(0)
-    {
-      args.SetNameParam(); 
-      const E_Array * a = dynamic_cast<const E_Array *>(args[0].LeftValue());
-            ffassert(a);
-	d= a->size();
-       if (d == 3) 
-	   w= CastTo<double>((*a)[2]);
-       else if (d != 2) 
-          { CompileError("convect vector have only 2 or 3 componant");}
-       u= CastTo<double>((*a)[0]);
-       v= CastTo<double>((*a)[1]);
-       
-       dt=CastTo<double>(args[1]);
-       ff=CastTo<double>(args[2]);
-     }
-    
-    static ArrayOfaType  typeargs() 
-      { return  ArrayOfaType(atype<E_Array>(),atype<double>(),atype<double>());}
-      
-    static  E_F0 * f(const basicAC_F0 & args) { return new Convect(args);} 
-    AnyType operator()(Stack s) const ; 
-    AnyType eval2(Stack s) const ; 
-    AnyType eval3(Stack s) const ; 
-    operator aType () const { return atype<Result>();}         
-    
-};
-
-/// <<Plot>> used for the [[plot_keyword]]
-
-class Plot :  public E_F0mps /* [[file:AFunction.hpp::E_F0mps]] */ {
-public:
-    typedef KN_<R>  tab;
-    typedef pferbase sol;
-    typedef pferbasearray asol;
-    typedef pf3rbase sol3;
-    typedef pf3rbasearray asol3;
-    typedef pfecbase solc;
-    typedef pfecbasearray asolc;
-    typedef pf3cbase solc3;
-    typedef pf3cbasearray asolc3;
-    
-    typedef long  Result;
-    struct ListWhat {
-	int what,i;
-	int cmp[3];
-	int n;	
-	void * v[3];//  for 
-	pmesh th() { assert(v[0] && what==0); return static_cast<pmesh>(v[0]);}
-	pmesh3 th3() { assert(v[0] && what==5); return static_cast<pmesh3>(v[0]);}
-	
-	void Set(int nn=0,void **vv=0,int *c=0) {
-	    cmp[0]=cmp[1]=cmp[2]=-1;
-	    v[0]=v[1]=v[2]=0;
-	    n=nn;
-	    for(int i=0;i<nn;++i)
-	      {   
-		  if(c) cmp[i]=c[i];
-		  if(vv) v[i]=vv[i];
-	      }		   
-	}	
-	
-	ListWhat(int w=-1,int ii=-1 )
-	: what(w),i(ii) {Set();}
-	ListWhat(int what,int ii,int n,void ** f0,int *c)
-	: what(what),i(ii){ Set(n,f0,c);}
-	ListWhat(int what,int ii,void * f0)
-	: what(what),i(ii){ Set(1,&f0,0);}
-	
-	template<typename S>
-	void eval(S *f,int *c)
-	{ for(int i=0;i<3;++i) {
-	    f[i]= static_cast<S>(v[i]);
-	    c[i]= cmp[i]; }
-	}
-	
-	template<typename M>
-	M eval()
-	{ assert(v[0]);
-	    return static_cast<M>(v[0]);	    
-	}
-	void eval(sol & f0,int & cmp0, sol &f1,int &cmp1)
-	{
-	  f0=static_cast<sol>(v[0]);
-	  f1=static_cast<sol>(v[1]);
-	  cmp0=cmp[0];
-	  cmp1=cmp[1];
-	}
-
-    };
-
-  /// <<Expression2>>
-    struct Expression2 
-     {
-	long what; // 0 mesh, 1 iso, 2 vector, 3 curve , 4 border , 5  mesh3, 6 iso 3d, 
-	// 7: vector 3d  ( +10 -> complex visu ???? ) 
-	// 101 array of iso 2d  , 106 array of iso 3d  , 100  array of meshes 
-	bool composant;
-	Expression e[3];
-	Expression2() {e[0]=0;e[1]=0;e[2]=0;composant=false;what=0;}
-	Expression &operator[](int i){return e[i];}
-	
-	template<class S>
-	int EvalandPush(Stack s,int ii,vector<ListWhat> & ll ) const  
-	{ 
-	    int n=-1;
-	    S f[3]={0,0,0};		
-	    int cmp[3]={-1,-1,-1};
-
-	    for(int i=0;i<3;++i)
-		if (e[i]) {
-		    if (!composant) 
-		      { pair<S,int> p= GetAny< pair<S,int> >((*e[i])(s));
-			  n=i;cmp[i]=p.second;
-			  f[i]= p.first;}
-		    else { cmp[i]=0;
-			f[i]=GetAny< S >((*e[i])(s));
-			n=i;}
-		}
-	    ll.push_back(ListWhat(what,ii,n+1,f,cmp));
-	    return n;}
-	
-	template<class A,class S> // ok of mesh too because composant=true; 
- 	int AEvalandPush(Stack s,int ii,vector<ListWhat> & ll ) const  
-	{  typedef pair<A,int> PA;
-	    int nn=-1;
-	    A f[3];
-	    union {
-		S fj[3];
-		void *fv[3];
-	    };
-	    f[0]=f[1]=f[2]=0;		
-	    int cmp[3]={-1,-1,-1};
-	    
-	    for(int i=0;i<3;++i)
-		if (e[i]) 
-		  {
-		    if (!composant) 
-		     { PA p= GetAny< PA >((*e[i])(s)); cmp[i]=p.second;f[i]=p.first; nn=i;}
-	            else 
-		     { f[i]= GetAny< A >((*e[i])(s)); cmp[i]=0; nn=i;}
-		  }
-	    	else break;
-	    nn++;
-	    int n = f[0]->N;
-	    if(verbosity>50) // add 01/2011 FH ????
-	      cout << "add  N = " << n << " " << nn  << " "<< what << endl;
-	    for(int j=0;j<n;++j)
-	      {
-		
-		int m=-1;
-		fj[0]=fj[1]=fj[2]=0;// clean 
-		for (int i=0;i<nn;++i)
-		  {
-		    fj[i]=  *f[i]->operator[](j);
-		    if(fj[i] && fj[i]->x()) m=i;
-		    else break;
-		}
-		if(m>=0)  {
-		    ll.push_back(ListWhat(what%100,ii,m+1,fv,cmp));
-		    if(verbosity>100)
-		    cout << ".";
-		}
-		
-	      }	
-	    if(verbosity>100)
-	    cout << endl;
-	    return nn;
-	}
-     template<class S> 
-       int MEvalandPush(Stack s,int ii,vector<ListWhat> & ll ) const  
-       {  typedef KN<S> * A; 
-	  
-	   A ath;		
-	   
-	   ath= GetAny< A >((*e[0])(s));
-	   int n=0;
-	   if(ath) n = ath->N();
-	    S th;
-	   
-	   for(int j=0;j<n;++j)
-	     {
-	       th= ath->operator[](j);
-	       if(th) 		    
-		ll.push_back(ListWhat(what%100,ii,static_cast<void *>(th)));
-       
-	     }
-	   return n;
-       }
-       
-	sol eval(int i,Stack s,int & cmp) const  {  cmp=-1;
-	    if (e[i]) {
-		if (!composant) {pfer p= GetAny< pfer >((*e[i])(s)); cmp=p.second;return p.first;}
-		else {return GetAny< pferbase >((*e[i])(s));}
-	    }
-	    else return 0;}
-	sol3 eval3(int i,Stack s,int & cmp) const  {  cmp=-1;
-	    if (e[i]) {
-		if (!composant) {pf3r p= GetAny< pf3r >((*e[i])(s)); cmp=p.second;return p.first;}
-		else {return GetAny< pf3rbase >((*e[i])(s));}
-	    }
-	    else return 0;}
-	// add FH Japon 2010 ..	for complex visu ...  to complex ....  try to uniformize ...
-	solc evalc(int i,Stack s,int & cmp) const  {  cmp=-1;
-	    if (e[i]) {
-		if (!composant) {pfec p= GetAny< pfec >((*e[i])(s)); cmp=p.second;return p.first;}
-		else {return GetAny< pfecbase >((*e[i])(s));}
-	    }
-	    else return 0;}
-	solc3 evalc3(int i,Stack s,int & cmp) const  {  cmp=-1;
-	    if (e[i]) {
-		if (!composant) {pf3c p= GetAny< pf3c >((*e[i])(s)); cmp=p.second;return p.first;}
-		else {return GetAny< pf3cbase >((*e[i])(s));}
-	    }
-	    else return 0;}
-	
-	
-	asol evala(int i, Stack s,int & cmp) const  {  cmp=-1;
-	    if (e[i]) 
-	      {pferarray p= GetAny< pferarray >((*e[i])(s)); cmp=p.second;return p.first;}
-	    else return 0;}
-	asol3 evala3(int i, Stack s,int & cmp) const  {  cmp=-1;
-	    if (e[i]) 
-	      {pf3rarray p= GetAny< pf3rarray >((*e[i])(s)); cmp=p.second;return p.first;}
-	    else return 0;}
-	
-	asolc evalca(int i, Stack s,int & cmp) const  {  cmp=-1;
-	    if (e[i]) 
-	      {pfecarray p= GetAny< pfecarray >((*e[i])(s)); cmp=p.second;return p.first;}
-	    else return 0;}
-	asolc3 evalca3(int i, Stack s,int & cmp) const  {  cmp=-1;
-	    if (e[i]) 
-	      {pf3carray p= GetAny< pf3carray >((*e[i])(s)); cmp=p.second;return p.first;}
-	    else return 0;}
-	
-	Mesh & evalm(int i,Stack s) const  { throwassert(e[i]);return  * GetAny< pmesh >((*e[i])(s)) ;}
-	KN<pmesh> * evalma(int i,Stack s) const  { throwassert(e[i]);return   GetAny< KN<pmesh> * >((*e[i])(s)) ;}
-	const Mesh3 & evalm3(int i,Stack s) const  { throwassert(e[i]);return  * GetAny< pmesh3 >((*e[i])(s)) ;}
-	const E_BorderN * evalb(int i,Stack s) const  { throwassert(e[i]);return   GetAny< const E_BorderN *>((*e[i])(s)) ;}
-	tab  evalt(int i,Stack s) const  { throwassert(e[i]);return  GetAny<tab>((*e[i])(s)) ;}
-    };
-
-  // see [[Plot_name_param]]
-  static basicAC_F0::name_and_type name_param[] ;
-
-  /// FFCS: added new parameters for VTK graphics. See [[Plot_name_param]] for new parameter names
-  static const int n_name_param=42;
-
-  Expression bb[4];
-
-  /// see [[Expression2]]
-  vector<Expression2> l;
-
-    Expression nargs[n_name_param];
-    Plot(const basicAC_F0 & args) : l(args.size()) 
-    {
-      
-      args.SetNameParam(n_name_param,name_param,nargs);
-      if ( nargs[8] )
-	  Box2x2( nargs[8] , bb);   
-      
-      for (size_t i=0;i<l.size();i++)
-	  
-	  if (args[i].left()==atype<E_Array>())
-	    {
-	      //cout << "args[i].left()==atype<E_Array>()" << endl;
-	      l[i].composant=false;
-	      const E_Array * a = dynamic_cast<const E_Array *>(args[i].LeftValue());
-	      ffassert(a);
-	      int asizea=a->size();
-	      if(asizea==0) CompileError("plot of vector with 0 of components(!= 2 or 3) ");
-	      bool bpfer=  BCastTo<pfer>((*a)[0]);
-	      bool bpf3r=  BCastTo<pf3r>((*a)[0]);
-	      bool bpfec=  BCastTo<pfec>((*a)[0]);
-	      bool bpf3c=  BCastTo<pf3c>((*a)[0]);
-	      
-	      if ( bpfer && asizea <3) 
-		{
-		  l[i].what=asizea;
-		  for (int j=0;j<a->size();j++)             
-		      l[i][j]= CastTo<pfer>((*a)[j]);
-		}
-	      else if ( bpfec && asizea <3) 
-		{
-		  l[i].what=10+asizea;
-		  for (int j=0;j<a->size();j++)             
-		      l[i][j]= CastTo<pfec>((*a)[j]);
-		}
-	      else if (asizea==2)
-		{
-		  l[i].what=3;
-		  for (int j=0;j<a->size();j++)             
-		      l[i][j]= CastTo<tab>((*a)[j]);
-		}
-	      else if (asizea == 3 && bpf3r ) // 3d vector ...
-		{
-		  l[i].what=7; // new 3d vector 
-		  for (int j=0;j<a->size();j++)             
-		      l[i][j]= CastTo<pf3r>((*a)[j]);
-		  
-		}
-	      else if (asizea == 3 && bpf3c ) // 3d vector ...
-		{
-		  l[i].what=17; // new 3d vector 
-		  for (int j=0;j<a->size();j++)             
-		      l[i][j]= CastTo<pf3c>((*a)[j]);
-		  
-		}
-	      
-	      else { CompileError("plot of array with wrong  number of components (!= 2 or 3) ");}
-	    }
-	  else if (BCastTo<pferbase>(args[i])) {
-	      l[i].what=1; //  iso value 2d
-	      // cout << "BCastTo<pferbase>(args[i])" << endl;
-	      l[i].composant=true;
-	      l[i][0]=CastTo<pferbase>(args[i]); }
-	  else if (BCastTo<pfer>(args[i])) {
-	      // cout << "BCastTo<pfer>(args[i])" << endl;
-	      l[i].composant=false;
-	      l[i].what=1; //  iso value 2d
-	      l[i][0]=CastTo<pfer>(args[i]);}
-	  else if (BCastTo<pfecbase>(args[i])) {
-	      l[i].what=11; //  iso value 2d
-	      // cout << "BCastTo<pferbase>(args[i])" << endl;
-	      l[i].composant=true;
-	      l[i][0]=CastTo<pfecbase>(args[i]); }
-	  else if (BCastTo<pfec>(args[i])) {
-	      // cout << "BCastTo<pfer>(args[i])" << endl;
-	      l[i].composant=false;
-	      l[i].what=11; //  iso value 2d
-	      l[i][0]=CastTo<pfec>(args[i]);}
-	  else if (BCastTo<pf3r>(args[i])) {
-	      // cout << "BCastTo<pfer>(args[i])" << endl;
-	      l[i].composant=false;
-	      l[i].what=6; //  iso value 3d
-	      l[i][0]=CastTo<pf3r>(args[i]);}
-	  else if (BCastTo<pf3c>(args[i])) {
-	      // cout << "BCastTo<pfer>(args[i])" << endl;
-	      l[i].composant=false;
-	      l[i].what=16; //  iso value 3d
-	      l[i][0]=CastTo<pf3c>(args[i]);}
-<<<<<<< HEAD
-          else if (BCastTo<pferarray>(args[i])) {
-              // cout << "BCastTo<pfer>(args[i])" << endl;
-              l[i].composant=false;
-              l[i].what=101; //  iso value array iso value 2d
-              l[i][0]=CastTo<pferarray>(args[i]);}
-          else if (BCastTo<pfecarray>(args[i])) {
-              // cout << "BCastTo<pfer>(args[i])" << endl;
-              l[i].composant=false;
-              l[i].what=111; //  iso value array iso value 2d
-              l[i][0]=CastTo<pfecarray>(args[i]);}
-          else if (BCastTo<pf3rarray>(args[i])) {
-              // cout << "BCastTo<pfer>(args[i])" << endl;
-              l[i].composant=false;
-              l[i].what=106; //arry iso value array iso value 3d
-              l[i][0]=CastTo<pf3rarray>(args[i]);}
-          else if (BCastTo<pf3carray>(args[i])) {
-              // cout << "BCastTo<pfer>(args[i])" << endl;
-              l[i].composant=false;
-              l[i].what=116; //arry iso value array iso value 3d
-              l[i][0]=CastTo<pf3carray>(args[i]);}
-=======
-	  else if (BCastTo<pferarray>(args[i])) {
-	      // cout << "BCastTo<pfer>(args[i])" << endl;
-	      l[i].composant=false;
-	      l[i].what=101; //  iso value array iso value 2d 
-	      l[i][0]=CastTo<pferarray>(args[i]);}
-	  else if (BCastTo<pf3rarray>(args[i])) {
-	      // cout << "BCastTo<pfer>(args[i])" << endl;
-	      l[i].composant=false;
-	      l[i].what=106; //arry iso value array iso value 3d 
-	      l[i][0]=CastTo<pf3rarray>(args[i]);}	
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	  else if (BCastTo<pmesh>(args[i])){
-	      l[i].composant=true;
-	      l[i].what=0; // mesh ... 
-	      l[i][0]=CastTo<pmesh>(args[i]);}
-	  else if (BCastTo<pmesh3>(args[i])){
-	      l[i].composant=true;
-	      l[i].what=5;// 3d mesh ...
-	      l[i][0]=CastTo<pmesh3>(args[i]);}
-	  else if (BCastTo<const E_BorderN *>(args[i])){
-	      // cout << "BCastTo<const E_BorderN*>(args[i])" << endl;
-	      l[i].what=4; // border 2d
-	      l[i].composant=true;
-	      l[i][0]=CastTo<const E_BorderN *>(args[i]);}
-	  else if (BCastTo<KN<pmesh> *>(args[i])){
-	      l[i].composant=true;
-	      // cout << "BCastTo<const E_BorderN*>(args[i])" << endl;
-	      l[i].what=100; //  mesh 2d array 
-	      l[i][0]=CastTo<KN<pmesh> *>(args[i]);}
-	  else {
-	      CompileError("Sorry no way to plot this kind of data");
-	  }
-    }
-    
-  static ArrayOfaType  typeargs() { return  ArrayOfaType(true);}// all type
-
-  /// <<Plot_f>> Creates a Plot object with the list of arguments obtained from the script during the grammatical
-  /// analysis of the script (in lg.ypp)
-
-  static  E_F0 * f(const basicAC_F0 & args) { return new Plot(args);} 
-
-  /// Evaluates the contents of the Plot object during script evaluation. Implemented at [[Plot_operator_brackets]]
-
-  AnyType operator()(Stack s) const ;
-}; 
-
-/// <<Plot_name_param>>
-
-basicAC_F0::name_and_type Plot::name_param[Plot::n_name_param] = {
-  {   "coef", &typeid(double)},
-  {   "cmm", &typeid(string*)},
-  {   "ps", &typeid(string*)  },
-  {   "wait", &typeid(bool) },
-  {   "fill", &typeid(bool) },
-  {   "value", &typeid(bool) },
-  {   "clean", &typeid(bool) },     
-  {   "aspectratio", &typeid(bool)},  
-  {   "bb",&typeid(E_Array) },
-  {   "nbiso", &typeid(long)}, 
-  {   "nbarrow", &typeid(long)}, 
-  {   "viso", &typeid(KN_<double>)},       
-  {   "varrow", &typeid(KN_<double>)},
-  {   "bw",&typeid(bool)},
-  {   "grey", &typeid(bool)},
-  {   "hsv", &typeid(KN_<double>)},
-  {   "boundary", &typeid(bool)}, // 16
-  {   "dim", &typeid(long)}, // 2 or 3 
-  {   "add", &typeid(bool)}, // add to previous plot
-  {   "prev", &typeid(bool)}, // keep previou  view point  
-  {   "ech", &typeid(double)}, // keep previou  view point 
-     
-  // FFCS: more options for VTK graphics (numbers are required for processing)
-
-  {"ZScale",&typeid(double)}, // #1
-  {"WhiteBackground",&typeid(bool)}, // #2
-  {"OpaqueBorders",&typeid(bool)}, // #3
-  {"BorderAsMesh",&typeid(bool)}, // #4
-  {"ShowMeshes",&typeid(bool)}, // #5
-  {"ColorScheme",&typeid(long)}, // #6
-  {"ArrowShape",&typeid(long)}, // #7
-  {"ArrowSize",&typeid(double)}, // #8
-  {"ComplexDisplay",&typeid(long)}, // #9
-  {"LabelColors",&typeid(bool)}, // #10
-  {"ShowAxes",&typeid(bool)}, // #11
-  {"CutPlane",&typeid(bool)}, // #12
-  {"CameraPosition",&typeid(KN_<double>)}, // #13
-  {"CameraFocalPoint",&typeid(KN_<double>)}, // #14
-  {"CameraViewUp",&typeid(KN_<double>)}, // #15
-  {"CameraViewAngle",&typeid(double)}, // #16
-  {"CameraClippingRange",&typeid(KN_<double>)}, // #17
-  {"CutPlaneOrigin",&typeid(KN_<double>)}, // #18
-  {"CutPlaneNormal",&typeid(KN_<double>)}, // #19
-  {"WindowIndex",&typeid(long)}, // #20
-  {"NbColorTicks",&typeid(long)}, // #21
-
-};
-
-
-
-template<class K>
-class pb2mat : public E_F0 { public:
-  typedef Matrice_Creuse<K> *  Result;
-  const Problem * pb;
-  pb2mat(const basicAC_F0 & args) : pb(dynamic_cast<const Problem *>(args[0].left()))  
-  {ffassert(pb);}
-  static ArrayOfaType  typeargs() { return  ArrayOfaType(atype<const Problem *>());}
-  
-  static  E_F0 * f(const basicAC_F0 & args) { return new Plot(args);} 
-  
-  AnyType operator()(Stack s) const 
-  {
-    Problem::Data<FESpace> *data= pb->dataptr(this->stack); 
-    if ( SameType<K,double>::OK )
-      {
-	ffassert( !!data->AR);  
-	return  SetAny<Matrice_Creuse<K> * >(&data->AR) ;
-      }
-    else 
-      {
-	ffassert( !!data->AC);  
-	return SetAny<Matrice_Creuse<K> * >(&data->AC) ;
-      }
-  }
-  
-  
-};  
-
-
-//template<class RR,class A>  void PrintP(RR* a, A  b){  *a <<*b;}
-LinkToInterpreter::LinkToInterpreter()
-{
-   //P,N,x,y,z,label,region,nu_triangle;
-   P=make_Type_Expr(atype<R3*>(),new E_P_Stack_P);
-   x=make_Type_Expr(atype<R*>(),new E_P_Stack_Px);
-   y=make_Type_Expr(atype<R*>(),new E_P_Stack_Py);
-   z=make_Type_Expr(atype<R*>(),new E_P_Stack_Pz);
-   N=make_Type_Expr(atype<R3*>(),new E_P_Stack_N);
-   
-   region=make_Type_Expr(new E_P_Stack_Region,atype<long*>());
-   label=make_Type_Expr(new E_P_Stack_Label,atype<long*>());
-   nu_triangle= make_Type_Expr(atype<long>(),new E_P_Stack_Nu_Triangle);
-   nu_edge= make_Type_Expr(atype<long>(),new E_P_Stack_Nu_Edge);
-   lenEdge    = make_Type_Expr(atype<R>(),new E_P_Stack_lenEdge);
-   hTriangle  = make_Type_Expr(atype<R>(),new E_P_Stack_hTriangle);
-   area       = make_Type_Expr(atype<R>(),new E_P_Stack_areaTriangle);
-   volume       = make_Type_Expr(atype<R>(),new E_P_Stack_VolumeTet);
-   inside     = make_Type_Expr(atype<R>(),new E_P_Stack_inside);
-  Global.New("x",x);
-  Global.New("y",y);
-  Global.New("z",z);
-  Global.New("label",label);
-  Global.New("region",region);
-  Global.New("nuTriangle",nu_triangle);   
-  Global.New("nuEdge",nu_edge);   
-  Global.New("P",P);   
-  Global.New("N",N);   
-  
-  Global.New("lenEdge",lenEdge);   
-  Global.New("area",area);   
-  Global.New("volume",volume);   
-  Global.New("hTriangle",hTriangle);
-  Global.New("inside",inside);   
-  Global.New("nTonEdge",make_Type_Expr(atype<long>(),new E_P_Stack_nTonEdge));   
-  
-}
-
-
-
-
-template<class K>
-struct set_eqmatrice_creuse_fbl: public binary_function<Matrice_Creuse<K>*,const Matrice_Creuse<K>  *,const  C_args * > {
-  static Matrice_Creuse<K>* f(Matrice_Creuse<K>* const  & a,const  C_args * const & b)  {
-  // 1  verif the FESpace 
-  
-  // 2 set = or += 
-    
-    ffassert(0);
-    return a;}
-};
-
-template<class K>
-struct set_eqvect_fl: public binary_function<KN<K>*,const  FormLinear *,KN<K>*> {
-  static KN<K>* f(KN<K>* const  & a,const  FormLinear * const & b)  {
-    ffassert(0);
-    return a;}
-};
-  
- template<class R> 
-  AnyType IntFunction<R>::operator()(Stack stack) const  { 
-  MeshPoint mp=* MeshPointStack(stack);
- R r=0;
- 
- SHOWVERB(cout << " int " << endl);
- const vector<Expression>  & what(di->what);
- const int dim =di->d; 
-
- const GQuadratureFormular<R1>& FIE = di->FIE(stack);
- const GQuadratureFormular<R2> & FIT = di->FIT(stack);
- const GQuadratureFormular<R3> & FIV = di->FIV(stack);
-
- CDomainOfIntegration::typeofkind kind = di->kind;
- set<int> setoflab;
- bool all=true;
-      
-  if (verbosity>3)
-  {
-      if(dim==2)
-      {
-          if (CDomainOfIntegration::int1d==kind) cout << "  -- boundary int border ( nQP: "<< FIE.n << ") levelset: "<< di->islevelset() << " ,"  ;
-          else  if (CDomainOfIntegration::intalledges==kind) cout << "  -- boundary int all edges ( nQP: "<< FIE.n << "),"  ;
-          else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF edges nQP: ("<< FIE.n << ")," ;
-          else cout << "  --  int    (nQP: "<< FIT.n << " ) in "  ;
-      }
-      else if(dim==3)
-      {
-          if (CDomainOfIntegration::int2d==kind) cout << "  -- boundary int border ( nQP: "<< FIT.n << ") ,"  ;
-          else  if (CDomainOfIntegration::intalledges==kind) cout << "  -- boundary int all faces ( nQP: "<< FIT.n << "),"  ;
-          else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF face nQP: ("<< FIT.n << ")," ;
-          else cout << "  --  int    (nQP: "<< FIV.n << " ) in "  ;
-      }
-  }
- /*
-   if ( verbosity>3) 
-   if (kind==CDomainOfIntegration::int1d) cout << "  -- boundary int border " ;
-   else if (kind==CDomainOfIntegration::intalledges) cout << "  -- boundary int all edges " ;
-   else if (kind==CDomainOfIntegration::intallVFedges) cout << "  -- boundary int all VF  edges " ;
-   else cout << "  -- boundary int  " ;*/
-      
- Expandsetoflab(stack,*di, setoflab,all); 
-/*
- for (size_t i=0;i<what.size();i++)
-   {
-     long  lab  = GetAny<long>( (*what[i])(stack));
-     setoflab.insert(lab);
-     if ( verbosity>3) cout << lab << " ";
-     all=false;
-   }
- */
-      
- if(dim==2)
-   {
-     if(di->islevelset() && (CDomainOfIntegration::int1d!=kind) &&  (CDomainOfIntegration::int2d!=kind) ) InternalError("So no levelset integration type  case (10 2d)");
-     const Mesh  & Th = * GetAny<pmesh>( (*di->Th)(stack) );
-     ffassert(&Th);
-     
-     if (verbosity >3) 
-     {
-       if (all) cout << " all " << endl ;
-       else cout << endl;
-     }
-     if (kind==CDomainOfIntegration::int1d)
-       {
-	 const QuadratureFormular1d & FI = FIE;
-           if(di->islevelset())
-           {
-               double llevelset = 0;
-               double uset = HUGE_VAL;
-               R2 Q[3];
-               KN<double> phi(Th.nv);phi=uset;
-               double f[3];
-               for(int t=0; t< Th.nt;++t)
-               {
-                   double umx=-HUGE_VAL,umn=HUGE_VAL;
-                   for(int i=0;i<3;++i)
-                   {
-                       int j= Th(t,i);
-                       if( phi[j]==uset)
-                       {
-                           MeshPointStack(stack)->setP(&Th,t,i);
-                           phi[j]= di->levelset(stack);//zzzz
-                       }
-                       f[i]=phi[j];
-                       umx = std::max(umx,phi[j]);
-                       umn = std::min(umn,phi[j]);
-                       
-                   }
-                   if( umn <=0 && umx >= 0)
-                   {
-                      
-                       int np= IsoLineK(f,Q,1e-10);
-                       if(np==2)
-                       {
-                           const Triangle & K(Th[t]);
-                           R2 PA(K(Q[0])),PB(K(Q[1]));
-                           R2 NAB(PA,PB);
-                           double  lAB=sqrt((NAB,NAB));
-                           NAB = NAB.perp()/lAB;
-                           llevelset += lAB;
-                           for (int npi=0;npi<FI.n;npi++) // loop on the integration point
-                           {
-                               QuadratureFormular1dPoint pi( FI[npi]);
-                               double sa=pi.x,sb=1.-sa;
-                               R2 Pt(Q[0]*sa+Q[1]*sb ); //
-                               MeshPointStack(stack)->set(Th,K(Pt),Pt,K,-1,NAB,-1);
-                               r += lAB*pi.a*GetAny<R>( (*fonc)(stack));
-                           }
-                       }
-                       
-                   }
-               }
-               if(verbosity > 5) cout << " Lenght level set = " << llevelset << endl;
-               
-           }
-
-        else
-	 for( int e=0;e<Th.neb;e++)
-	   {
-	     if (all || setoflab.find(Th.bedges[e].lab) != setoflab.end())   
-	       {     
-		 
-		 int ie,i =Th.BoundaryElement(e,ie);
-		 const Triangle & K(Th[i]);   
-		 R2 E=K.Edge(ie);
-		 double le = sqrt((E,E)); 
-		 R2 PA(TriangleHat[VerticesOfTriangularEdge[ie][0]]),
-		   PB(TriangleHat[VerticesOfTriangularEdge[ie][1]]);
-		 
-		 for (int npi=0;npi<FI.n;npi++) // loop on the integration point
-		   {
-		     QuadratureFormular1dPoint pi( FI[npi]);
-		     double sa=pi.x,sb=1.-sa;
-		     R2 Pt(PA*sa+PB*sb ); //  
-		     MeshPointStack(stack)->set(Th,K(Pt),Pt,K,Th.bedges[e].lab,R2(E.y,-E.x)/le,ie);
-		     r += le*pi.a*GetAny<R>( (*fonc)(stack));
-		   }
-	       }
-	   }
-       }
-     else if (kind==CDomainOfIntegration::int2d)
-     {
-         const QuadratureFormular & FI =FIT;
-
-         if(di->islevelset())
-         { // add FH mars 2014 compute int2d  on phi < 0 ..
-             double llevelset = 0;
-             double uset = HUGE_VAL;
-             R2 Q[3];
-             KN<double> phi(Th.nv);phi=uset;
-             double f[3],umx,umn;
-             for(int t=0; t< Th.nt;++t)
-             {
-                if (all || setoflab.find(Th[t].lab) != setoflab.end())
-                {
-                const Triangle & K(Th[t]);
-
-                 double umx=-HUGE_VAL,umn=HUGE_VAL;
-                 for(int i=0;i<3;++i)
-                 {
-                     int j= Th(t,i);
-                     if( phi[j]==uset)
-                     {
-                         MeshPointStack(stack)->setP(&Th,t,i);
-                         phi[j]= di->levelset(stack);//zzzz
-                     }
-                     f[i]=phi[j];
-                     umx = std::max(umx,phi[j]);
-                     umn = std::min(umn,phi[j]);
-                     
-                 }
-                 double area =K.area;
-                 if( umn >=0 ) continue; //  all positif => nothing
-                 if( umx >0 )
-                    { // coupe ..
-                        int i0 = 0, i1 = 1, i2 =2;
-                        
-                        if( f[i0] > f[i1] ) swap(i0,i1) ;
-                        if( f[i0] > f[i2] ) swap(i0,i2) ;
-                        if( f[i1] > f[i2] ) swap(i1,i2) ;
-                        
-                        double c = (f[i2]-f[i1])/(f[i2]-f[i0]); // coef Up Traing
-                        if( f[i1] < 0 ) {double y=f[i2]/(f[i2]-f[i1]); c *=y*y; }
-                        else {double y=f[i0]/(f[i0]-f[i1]) ; c = 1.- (1.-c)*y*y; };
-                        assert( c > 0 && c < 1);
-                        area *= 1-c;
-                    }
-                 //  warning  quadrature  wrong just ok for constante FH, we must also change the quadaturer points ..
-                 // just order 1  here ???
-                 for (int npi=0; npi<FI.n;npi++)
-                    {
-                        QuadraturePoint pi(FI[npi]);
-                        MeshPointStack(stack)->set(Th,K(pi),pi,K,K.lab);
-                        r += area*pi.a*GetAny<R>( (*fonc)(stack));
-                    }
-                    
-                }
-             }
-             
-         }
-      else
-       for (int i=0;i< Th.nt; i++)
-	 {
-	   const Triangle & K(Th[i]);
-	   if (all || setoflab.find(Th[i].lab) != setoflab.end()) 
-	     for (int npi=0; npi<FI.n;npi++)
-	       {
-		 QuadraturePoint pi(FI[npi]);
-		 MeshPointStack(stack)->set(Th,K(pi),pi,K,K.lab);                       
-		 r += K.area*pi.a*GetAny<R>( (*fonc)(stack)); 
-	       }
-	 }
-     }
-     else   if (kind==CDomainOfIntegration::intalledges)
-       {
-	 const QuadratureFormular1d & FI = FIE;
-	 for (int i=0;i< Th.nt; i++) 
-	   if (all || setoflab.find(Th[i].lab) != setoflab.end()) 
-	     for( int ie=0;ie<3;ie++)
-	       {                                
-		 const Triangle & K(Th[i]);   
-		 R2 E=K.Edge(ie);
-		 double le = sqrt((E,E)); 
-		 R2 PA(TriangleHat[VerticesOfTriangularEdge[ie][0]]),
-		   PB(TriangleHat[VerticesOfTriangularEdge[ie][1]]);
-                 
-		 for (int npi=0;npi<FI.n;npi++) // loop on the integration point
-		   {
-		     QuadratureFormular1dPoint pi( FI[npi]);
-		     double sa=pi.x,sb=1-sa;
-		     R2 Pt(PA*sa+PB*sb ); //  
-		     MeshPointStack(stack)->set(Th,K(Pt),Pt,K,K.lab,R2(E.y,-E.x)/le,ie);// correction FH 6/2/2014 
-		     r += le*pi.a*GetAny<R>( (*fonc)(stack));
-		   }
-	       }
-       }
-     else   if (kind==CDomainOfIntegration::intallVFedges)
-       {
-	 double untier(1./3.);
-	 cerr << " a faire CDomainOfIntegration::intallVFedges " << endl; //%%%%%%%%%
-	 ffassert(0);
-	 const QuadratureFormular1d & FI = FIE;
-	 for (int i=0;i< Th.nt; i++) 
-	   if (all || setoflab.find(Th[i].lab) != setoflab.end()) 
-	     {
-	       const Triangle & K(Th[i]);
-	       const R2 GH(untier,untier);
-	       const R2 G=K(GH);
-	       for( int ie=0;ie<3;ie++)
-		 { 
-		   int ie0=VerticesOfTriangularEdge[ie][0] ;
-		   int ie1=VerticesOfTriangularEdge[ie][1] ;
-		   const R2 MH=(TriangleHat[ie0]+TriangleHat[ie1])*0.5;
-		   const R2 M(K(MH)); 
-		   R2 E(G,M);
-		   double le = sqrt((E,E)); 
-                   
-		   for (int npi=0;npi<FI.n;npi++) // loop on the integration point
-		     {
-		       QuadratureFormular1dPoint pi( FI[npi]);
-		       double sa=pi.x,sb=1-sa;
-		       R2 Pt(GH*sa+MH*sb ); //  
-		       MeshPointStack(stack)->set(Th,K(Pt),Pt,K,Th[ie].lab,R2(E.y,-E.x)/le,ie,1);
-		       r += le*pi.a*GetAny<R>( (*fonc)(stack));
-		     }
-		 }
-	     }
-       }
-     else
-       {
-	 InternalError("CDomainOfIntegration kind unkown");
-       }            
-   }
- else if(dim==3)
-   {
-     if(di->islevelset() &&  (CDomainOfIntegration::int2d!=kind) && (CDomainOfIntegration::int3d!=kind) )
-         InternalError("So no levelset integration type on no int2d / int3d case (10 3d)");
-      
-     const Mesh3  & Th = * GetAny<pmesh3>( (*di->Th)(stack) );
-     ffassert(&Th);
-     
-     if (verbosity >3) 
-       {
-	 if (all) cout << " all " << endl ;
-	 else cout << endl;
-       }
-       if (kind==CDomainOfIntegration::int2d)
-           if(di->islevelset())
-           {
-               const GQuadratureFormular<R2> & FI = FIT;
-               double llevelset = 0;
-               const double uset = std::numeric_limits<double>::max();
-              // cout << " uset ="<<uset << endl;
-               R3 Q[4];
-               KN<double> phi(Th.nv);
-               phi=uset;
-               double f[4];
-               
-               for(int t=0; t< Th.nt;++t)
-               {
-                   double umx=std::numeric_limits<double>::min(),umn=std::numeric_limits<double>::max();
-                   for(int i=0;i<4;++i)
-                   {
-                       int j= Th(t,i);
-                       if( phi[j]==uset)
-                       {
-                           MeshPointStack(stack)->setP(&Th,t,i);
-                           phi[j]= di->levelset(stack);//zzzz
-                       }
-                       f[i]=phi[j];
-                       umx = std::max(umx,f[i]);
-                       umn = std::min(umn,f[i]);
-                       
-                   }
-                   if( umn <=0 && umx >= 0)
-                   {
-                       
-                       int np= IsoLineK(f,Q,1e-10);
-
-                       double l[3];
-                       if(np>2)
-                       {
-                        if(verbosity>999)  cout << t << " int levelset : " << umn << " .. " << umx << " np " << np <<" "
-                         << f[0] << " " << f[1] << " "<< f[2] << " "<< f[3] << " "<<endl;
-                          
-                           const Mesh3::Element & K(Th[t]);
-                           double epsmes3=K.mesure()*K.mesure()*1e-18;
-                           R3 PP[4];
-                           for(int i=0; i< np; ++i)
-                               PP[i]= K(Q[i]);
-                           for( int i =0; i+1 < np; i+=2)
-                           { // 0,1,, a and 2,3,0.
-                               int i0=i,i1=i+1,i2=(i+2)%np;
-                               R3 NN= R3(PP[i0],PP[i1])^R3(PP[i0],PP[i2]);
-                               double mes2 = (NN,NN);
-                               double mes = sqrt(mes2);
-                               if(mes2*mes <epsmes3) continue; //  too small
-                               NN /= mes;
-                               mes *= 0.5; //   warning correct FH 050109
-                             //  cout <<i << " / "  << NN << " / " << mes <<" / "<< i0<< i1<< i2 <<" " << llevelset <<endl;
-                               llevelset += mes;
-                               for (int npi=0;npi<FI.n;npi++) // loop on the integration point
-                               {
-                                   GQuadraturePoint<R2>  pi( FI[npi]);
-                                   pi.toBary(l);
-                                   R3 Pt( l[0]*Q[i0]+l[1]*Q[i1]+l[2]*Q[i2]); //
-                                   MeshPointStack(stack)->set(Th,K(Pt),Pt,K,-1,NN,-1);
-                                   r += mes*pi.a*GetAny<R>( (*fonc)(stack));
-                               }
-                           }
-                       }
-                       
-                   }
-               }
-               if(verbosity > 5) cout << " Area level set = " << llevelset << endl;
-              // if(verbosity > 50) cout << "phi " << phi << endl;
-               
-           }
-       
-         else
-        
-       {
-	 const GQuadratureFormular<R2> & FI = FIT;
-         int lab;
-	 for( int e=0;e<Th.nbe;e++)
-	   {
-	     if (all || setoflab.find(lab=Th.be(e).lab) != setoflab.end())   
-	       {     
-		 
-		 int ie,i =Th.BoundaryElement(e,ie);
-		 const Mesh3::Element & K(Th[i]);   
-		 R3 NN=K.N(ie);
-		 double mes = sqrt((NN,NN)); 
-		 NN /= mes; 
-		 mes *= 0.5; //   warning correct FH 050109
-		 for (int npi=0;npi<FI.n;npi++) // loop on the integration point
-		   {
-		     GQuadraturePoint<R2> pi( FI[npi]);
-		     R3 Pt(K.PBord(ie,pi)); //  
-		     MeshPointStack(stack)->set(Th,K(Pt),Pt,K,lab,NN,ie);
-		     r += mes*pi.a*GetAny<R>( (*fonc)(stack));
-		   }
-	       }
-	   }
-       }
-     else if (kind==CDomainOfIntegration::int3d)
-     {
-       
-         if(di->islevelset())
-         {   // int3d levelset < 0
-             GQuadratureFormular<R3> FI(FIV.n*3);
-             double llevelset = 0;
-             const double uset = std::numeric_limits<double>::max();
-             // cout << " uset ="<<uset << endl;
-             R3 Q[3][4];
-             double vol6[3];
-             KN<double> phi(Th.nv);
-             phi=uset;
-             double f[4];
-             
-             for (int t=0;t< Th.nt; t++)
-             {
-                 
-		 const Mesh3::Element & K(Th[t]);
-		 if (all || setoflab.find(K.lab) != setoflab.end())
-                 {
-                     double umx=std::numeric_limits<double>::min(),umn=std::numeric_limits<double>::max();
-                     for(int i=0;i<4;++i)
-                     {
-                         int j= Th(t,i);
-                         if( phi[j]==uset)
-                         {
-                             MeshPointStack(stack)->setP(&Th,t,i);
-                             phi[j]= di->levelset(stack);//zzzz
-                         }
-                         f[i]=phi[j];
-                     }
-                     int ntets= UnderIso(f,Q, vol6,1e-14);
-                     setQF<R3>(FI,FIV,QuadratureFormular_Tet_1, Q,vol6,ntets);
-                     for (int npi=0; npi<FI.n;npi++)
-                     {
-                         GQuadraturePoint<R3> pi(FI[npi]);
-                         MeshPointStack(stack)->set(Th,K(pi),pi,K,K.lab);
-                         r += K.mesure()*pi.a*GetAny<R>( (*fonc)(stack));
-                     }
-                 }
-             }
-
-            
-         }
-        else
-         {
-       const GQuadratureFormular<R3> & FI =FIV;
-             for (int i=0;i< Th.nt; i++) 
-	       {
-		 const Mesh3::Element & K(Th[i]);
-		 if (all || setoflab.find(K.lab) != setoflab.end()) 
-		   for (int npi=0; npi<FI.n;npi++)
-                     {
-                       GQuadraturePoint<R3> pi(FI[npi]);
-                       MeshPointStack(stack)->set(Th,K(pi),pi,K,K.lab);                       
-                       r += K.mesure()*pi.a*GetAny<R>( (*fonc)(stack)); 
-                     }
-               }
-         }
-     }
-     else   if (kind==CDomainOfIntegration::intalledges)
-       {
-         const GQuadratureFormular<R2> & FI = FIT;
-         int lab;
-	 for (int i=0;i< Th.nt; i++) 
-	   if (all || setoflab.find(Th[i].lab) != setoflab.end()) 
-	     for( int ie=0;ie<3;ie++)
-	       {                                
-		 const Mesh3::Element  & K(Th[i]);   
-		 R3 NN=K.N(ie);
-		 double mes = NN.norme(); 
-		   NN /= mes;
-		   mes*=0.5;//  correction 05/01/09 FH 
-		 for (int npi=0;npi<FI.n;npi++) // loop on the integration point
-		   {
-		     GQuadraturePoint<R2> pi( FI[npi]);
-		     R3 Pt(K.PBord(ie,pi)); //  
-		     MeshPointStack(stack)->set(Th,K(Pt),Pt,K,lab,NN,ie);
-		     r += mes*pi.a*GetAny<R>( (*fonc)(stack));
-		   }
-	       }
-       }
-
-   }
- else {  InternalError("CDomainOfIntegration dim unkown");}
- 
- *MeshPointStack(stack)=mp;
-     return SetAny<R>(r);
-  }
-  
-void Show(const char * s,int k=1)
-{
-  if(k) {
-  couleur(1);
-  float xmin,xmax,ymin,ymax;
-       getcadre(xmin,xmax,ymin,ymax);
-       rmoveto(xmin+(xmax-xmin)/100,ymax-(k)*(ymax-ymin)/30);
-       plotstring(s);
-       //  couleur(1);	
-  }
-}
-template<class K,class v_fes>
-int Send2d(PlotStream & theplot,Plot::ListWhat & lli,map<const typename v_fes::FESpace::Mesh *,long> & mapth)
-{
-    typedef FEbase<K,v_fes> * pfek ;
-    pfek fe[3]={0,0,0};
-    int cmp[3]={-1,-1,-1};
-    int err=1;
-    long what=lli.what;
-    int lg,nsb;
-    lli.eval(fe,cmp);		    
-    if (fe[0]->x() && what %10 ==1) 
-	{		 
-	      err=0;
-	      theplot << what ;
-	      theplot <<mapth[ &(fe[0]->Vh->Th)];// numero du maillage
-	      KN<K> V1=fe[0]->Vh->newSaveDraw(*fe[0]->x(),cmp[0],lg,nsb);
-	      
-	      // construction of the sub division ... 
-	      int nsubT=NbOfSubTriangle(nsb);
-	      int nsubV=NbOfSubInternalVertices(nsb);
-	      KN<R2> Psub(nsubV);
-	      KN<int> Ksub(nsubT*3);
-	      for(int i=0;i<nsubV;++i)
-	      Psub[i]=SubInternalVertex(nsb,i);
-	      //cout << " Psub " << Psub <<endl;
-	      for(int sk=0,p=0;sk<nsubT;++sk)
-	      for(int i=0;i<3;++i,++p)
-	      Ksub[p]=numSubTriangle(nsb,sk,i);
-	      
-	      if(verbosity>9)
-	      cout << " Send plot:what: " << what << " " << nsb << " "<< V1.N() 
-	      << " Max "  << V1.max() << " min " << V1.min() << endl;
-	      theplot << Psub ;
-	      theplot << Ksub ;
-	      theplot << V1;
-	      // theplot << (long) nsb<< V1;
-	      
-	      }
-    else if (fe[0]->x() && fe[1]->x() &&what %10 ==2)   
-      {
-	
-	{
-	  err=0;
-	  theplot << what ;
-	  
-	  
-	  KN<K> V1=fe[0]->Vh->newSaveDraw(*fe[0]->x(),*fe[1]->x(),cmp[0],cmp[1],lg,nsb);
-	  // construction of the sub division ... 
-	  int nsubT=NbOfSubTriangle(nsb);
-	  int nsubV=NbOfSubInternalVertices(nsb);
-	  KN<R2> Psub(nsubV);
-	  KN<int> Ksub(nsubT*3);
-	  for(int i=0;i<nsubV;++i)
-	      Psub[i]=SubInternalVertex(nsb,i);
-	  for(int sk=0,p=0;sk<nsubT;++sk)
-	      for(int i=0;i<3;++i,++p)
-		  Ksub[p]=numSubTriangle(nsb,sk,i);
-	  
-	  theplot <<mapth[ &(fe[0]->Vh->Th)];// numero du maillage
-	  theplot << Psub ;
-	  theplot << Ksub ;
-	  theplot <<  V1;
-	  
-	  // theplot << (long) nsb<< V1;
-	}
-	
-      }
-    return err;
-	      
-}
-
-template<class K,class v_fes>
-int Send3d(PlotStream & theplot,Plot::ListWhat &lli,map<const typename v_fes::FESpace::Mesh *,long> &mapth3)
-{
-    typedef FEbase<K,v_fes> * pfek3 ;
-    pfek3 fe3[3]={0,0,0};
-    int cmp[3]={-1,-1,-1};
-    int err=1;
-    long what=lli.what;
-    int lg,nsb;
-    if (what%10==6)
-    {    
-	int lg,nsb;
-	lli.eval(fe3,cmp);
-	// FFCS is able to display 3d complex data
-	//if(what==6)
-	  {
-	    if (fe3[0]->x()) 
-	      {		 
-		  err=0;
-		  theplot << what ;
-		  theplot <<mapth3[ &(fe3[0]->Vh->Th)];// numero du maillage
-		  // KN<R>  GFESpace<MMesh>::newSaveDraw(const KN_<R> & U,int composante,int & lg,
-		  //   KN<Rd> &Psub,KN<int> &Ksub,int op_U) const
-		  KN<R3> Psub;
-		  KN<int> Ksub;
-		  KN<K> V1=fe3[0]->Vh->newSaveDraw(*fe3[0]->x(),cmp[0],lg,Psub,Ksub,0);
-		  if(verbosity>9)
-		      cout << " Send plot:what: " << what << " " << nsb << " "<< V1.N() 
-		      << " "  << V1.max() << " " << V1.min() << endl;
-		  theplot << Psub ;
-		  theplot << Ksub ;
-		  theplot << V1;
-	      }
-	  }
-    }
-    else  if (what%10==7)
-      {    
-	  int lg,nsb;
-	  lli.eval(fe3,cmp);
-	  // FFCS is able to display 3d complex data
-	  //if(what==7) // ve
-	    {
-	      if (fe3[0]->x()&& fe3[1]->x() && fe3[2]->x()) 
-		{		 
-		    err=0;
-		    theplot << what ;
-		    theplot <<mapth3[ &(fe3[0]->Vh->Th)];// numero du maillage
-		    // KN<R>  GFESpace<MMesh>::newSaveDraw(const KN_<R> & U,int composante,int & lg,
-		    //   KN<Rd> &Psub,KN<int> &Ksub,int op_U) const
-		    KN<R3> Psub1,Psub2,Psub3; // bf Bof ...
-		    KN<int> Ksub1,Ksub2,Ksub3;
-		    KN<K> V1=fe3[0]->Vh->newSaveDraw(*fe3[0]->x(),cmp[0],lg,Psub1,Ksub1,0);
-		    KN<K> V2=fe3[1]->Vh->newSaveDraw(*fe3[1]->x(),cmp[1],lg,Psub2,Ksub2,0);
-		    KN<K> V3=fe3[2]->Vh->newSaveDraw(*fe3[2]->x(),cmp[2],lg,Psub3,Ksub3,0);
-		    if(verbosity>9)
-			cout << " Send plot:what: " << what << " " << nsb << " "<< V1.N() 
-			<< " "  << V1.max() << " " << V1.min() << endl;
-		    theplot << Psub1 ;
-		    theplot << Ksub1 ;
-		    ffassert( V1.N() == V2.N()  &&V1.N() == V3.N()); 
-		    KNM<K> V123(3,V1.N()); // warning fortran numbering ...
-		    V123(0,'.')=V1;
-		    V123(1,'.')=V2;
-		    V123(2,'.')=V3;
-		    // FFCS: should be able to deal with complex as well
-		    theplot << (KN_<K>&) V123;
-		    
-		}
-	    }
-      }
-    return err;
-}
-   
-/// <<Plot_operator_brackets>> from class [[Plot]]
-
-AnyType Plot::operator()(Stack s) const{ 
-    
-   // remap  case 107 and 108 , 109  for array of FE. 
-  vector<ListWhat> ll;
-  ll.reserve(l.size());
-  // generation de la list de plot ...
-    for (size_t i=0;i<l.size();i++)
-      {
-	  //KN<pmesh > * ath;
-	  //pmesh th;
-	  //int cmp0=0,cmp1=1,cmp2=2;
-	  switch (l[i].what) {
-	      case 0:
-	      case 5:  
-	        l[i].EvalandPush<void *>(s,i,ll);		
-		break;
-	      case 1:
-	      case 2:
-	      case 6 :
-	      case 7 :		  
-	      case 11:
-	      case 12:
-	      case 16 :
-	      case 17 :		  
-	       l[i].EvalandPush<void *>(s,i,ll);break;
-			      		  
-	      case  100 : l[i].MEvalandPush< pmesh>(s,i,ll);break;
-	      case  105 : l[i].MEvalandPush< pmesh3>(s,i,ll);break;
-	      case  101 : l[i].AEvalandPush<asol, sol>(s,i,ll);break;
-	      case  106 : l[i].AEvalandPush<asol3, sol3>(s,i,ll);break;
-              case  111:  l[i].AEvalandPush<asolc, solc>(s,i,ll);break;  
-              case  116:  l[i].AEvalandPush<asolc3, solc3>(s,i,ll);break; 
-	        
-
-		  
-	      default:
-		  ffassert(l[i].what<100) ; // missing piece of code FH (jan 2010) ...
-		  ll.push_back(ListWhat(l[i].what,i));
-		  break;
-	  }
-	  
-      }
-    
-  if(ThePlotStream)
-    { 
-	/*
-	 les different item of the plot are given by the number what:
-	 what = 0 -> mesh
-	 what = 1 -> scalar field (FE function  2d) 
-	 what = 2 -> 2d vector field (two FE function  2d) 
-	 what = 3 -> curve def by 2 plot
-	 what = 4 -> border 
-	 what = 5 3d meshes
-	 what = 6  FE function 3d
-	 what = 100,101,106 //  remap ...
-	 what = 7 => 3d vector field (tree FE function  3d) 
-	 what = 8 ???
-	 what = -1 -> error, item empty 
-	 */
-	PlotStream theplot(ThePlotStream);
-	pferbase  fe[3]={0,0,0};
-	pf3rbase  fe3[3]={0,0,0};
-	double echelle=1;
-	int cmp[3]={-1,-1,-1};
-	theplot.SendNewPlot();
-	if (nargs[0]) (theplot<< 0L) <=  GetAny<double>((*nargs[0])(s));
-	if (nargs[1]) (theplot<< 1L) <=  GetAny<string *>((*nargs[1])(s));
-	if (nargs[2]) (theplot<< 2L) <=  GetAny<string*>((*nargs[2])(s));
-	if (nargs[3]) (theplot<< 3L)  <= (bool) (!NoWait &&  GetAny<bool>((*nargs[3])(s)));
-	else (theplot<< 3L)  <=  (bool)  (TheWait&& !NoWait);
-	if (nargs[4]) (theplot<< 4L)  <= GetAny<bool>((*nargs[4])(s));
-	if (nargs[5]) (theplot<< 5L) <=  GetAny<bool>((*nargs[5])(s));
-	if (nargs[6]) (theplot<< 6L) <=  GetAny<bool>((*nargs[6])(s));
-	if (nargs[7]) (theplot<< 7L)  <= GetAny<bool>((*nargs[7])(s));
-	if (nargs[8])  
-	  {  KN<double> bbox(4);
-	      for (int i=0;i<4;i++)
-		  bbox[i]= GetAny<double>((*bb[i])(s));
-	      
-	      (theplot<< 8L) <= bbox ;
-	  }
-	if (nargs[9])  (theplot<< 9L)   <=  GetAny<long>((*nargs[9])(s));
-	if (nargs[10])  (theplot<< 10L) <= GetAny<long>((*nargs[10])(s));
-	if (nargs[11]) { 
-	    KN_<double> v =GetAny<KN_<double> >((*nargs[11])(s)) ;
-	(theplot<< 11L)  <= v   ;}
-	
-	if (nargs[12]) 
-	    (theplot<< 12L) <=  GetAny<KN_<double> >((*nargs[12])(s)) ;
-	
-	
-	
-	if (nargs[13]) (theplot<< 13L)  <= GetAny<bool>((*nargs[13])(s));
-	if (nargs[14]) (theplot<< 14L) <= GetAny<bool>((*nargs[14])(s));
-	if (nargs[15]) 
-	    (theplot<< 15L)  <= GetAny<KN_<double> >((*nargs[15])(s));
-	if (nargs[16]) (theplot<< 16L)  <= GetAny<bool>((*nargs[16])(s));
-	// add frev 2008 FH for 3d plot ...
-	if (nargs[17]) (theplot<< 17L)  <= GetAny<long>((*nargs[17])(s));
-	if (nargs[18]) (theplot<< 18L)  <= GetAny<bool>((*nargs[18])(s));
-	if (nargs[19]) (theplot<< 19L)  <= GetAny<bool>((*nargs[19])(s));
-	if (nargs[20]) (theplot<< 20L)  <= (echelle=GetAny<double>((*nargs[20])(s)));
-
-	// FFCS: extra plot options for VTK (indexed from 1 to keep these lines unchanged even if the number of standard
-	// FF parameters above changes) received in [[file:../../../../src/visudata.cpp::receiving_plot_parameters]]
-
-#define VTK_START 20
-#define SEND_VTK_PARAM(index,type)					\
-	  if(nargs[VTK_START+index])					\
-	    (theplot<<(long)(VTK_START+index))				\
-	      <=GetAny<type>((*nargs[VTK_START+index])(s));
-
-	SEND_VTK_PARAM(1,double); // ZScale
-	SEND_VTK_PARAM(2,bool); // WhiteBackground
-	SEND_VTK_PARAM(3,bool); // OpaqueBorders
-	SEND_VTK_PARAM(4,bool); // BorderAsMesh
-	SEND_VTK_PARAM(5,bool); // ShowMeshes
-	SEND_VTK_PARAM(6,long); // ColorScheme
-	SEND_VTK_PARAM(7,long); // ArrowShape
-	SEND_VTK_PARAM(8,double); // ArrowSize
-	SEND_VTK_PARAM(9,long); // ComplexDisplay
-	SEND_VTK_PARAM(10,bool); // LabelColors
-	SEND_VTK_PARAM(11,bool); // ShowAxes
-	SEND_VTK_PARAM(12,bool); // CutPlane
-	SEND_VTK_PARAM(13,KN_<double>); // CameraPosition
-	SEND_VTK_PARAM(14,KN_<double>); // CameraFocalPoint
-	SEND_VTK_PARAM(15,KN_<double>); // CameraViewUp
-	SEND_VTK_PARAM(16,double); // CameraViewAngle
-	SEND_VTK_PARAM(17,KN_<double>); // CameraClippingRange
-	SEND_VTK_PARAM(18,KN_<double>); // CutPlaneOrigin
-	SEND_VTK_PARAM(19,KN_<double>); // CutPlaneNormal
-	SEND_VTK_PARAM(20,long); // WindowIndex
-	SEND_VTK_PARAM(21,long); // NbColorTicks
-
-	theplot.SendEndArgPlot();
-	map<const Mesh *,long> mapth;
-	map<const Mesh3 *,long> mapth3;
-	long kth=0,kth3=0;
-	//  send all the mesh: 
-	for (size_t ii=0;ii<ll.size();ii++)
-	  {
-	      int i=ll[ii].i;
-	      long what = ll[i].what;
-	      const Mesh *th=0;
-	      const Mesh3 *th3=0;
-	      if(what ==0)
-		  th= ll[ii].th();
-	      if( what ==5 )
-		  th3= & (l[i].evalm3(0,s));	      
-	      else if (what==1 || what==2|| what==11 || what==12)
-		{   
-		    
-		    ll[ii].eval(fe,cmp);		    
-		    if (fe[0]->x()) th=&fe[0]->Vh->Th;
-		    if(fe[1] && fe[1]->x()) {
-			ffassert(th == &fe[1]->Vh->Th);			
-			//    assert(th);
-		    };
-		}
-	      else if (what==6 || what==7|| what==16 || what==17)
-		{   
-		    ll[ii].eval(fe3,cmp);
-		    if (fe3[0]->x()) th3=&fe3[0]->Vh->Th;
-		    if (fe3[1]) ffassert(th3 == &fe3[1]->Vh->Th);
-		    if (fe3[2]) ffassert(th3 == &fe3[2]->Vh->Th);
-		    
-		}
-	      
-	      if(th && mapth.find(th)==mapth.end()) 
-		  mapth[th]=++kth;
-	      
-	      if(th3 && (mapth3.find(th3)==mapth3.end()))
-		  mapth3[th3]=++kth3;
-	      
-	  }
-	theplot.SendMeshes();
-	theplot << kth ;
-	for (map<const Mesh *,long>::const_iterator i=mapth.begin();i != mapth.end(); ++i)
-	  {
-	      theplot << i->second << *  i->first ;
-	  }
-	//  3d meshes 	
-	if(kth3)
-	  {
-	      theplot.SendMeshes3();
-	      theplot << kth3 ;
-	      for (map<const Mesh3 *,long>::const_iterator i=mapth3.begin();i != mapth3.end(); ++i)
-		{
-		    theplot << i->second << *  i->first ;
-		}
-	      
-	  }
-	theplot.SendPlots();	
-	theplot <<(long) ll.size(); 
-	for (size_t ii=0;ii<ll.size();ii++)
-	  {
-	      int i=ll[ii].i;
-	      long what = ll[ii].what;
-	      int err =1;//  by default we are in error
-	      const Mesh *pTh=0;
-	      const Mesh3 *pTh3=0;
-	      // long what = l[i].what;
-	      if(what ==0)
-		{
-		    pTh=ll[ii].th();
-		    if(pTh) {
-			err=0;
-			theplot << what ; 
-			theplot <<mapth[ ll[ii].th() ];// numero du maillage
-		    }
-		}
-	    
-	      else if (what==1 || what==2 )
-		  err = Send2d<R,v_fes>( theplot,ll[ii] ,mapth);
-	      else if (what==11 || what==12 )
-		  err = Send2d<Complex,v_fes>( theplot,ll[ii] ,mapth);
-		  
-		  
-		  /*
-		{    
-		    int lg,nsb;
-		    ll[ii].eval(fe,cmp);		    
-		    if(what==1)
-		      {
-			  if (fe[0]->x()) 
-			    {		 
-				err=0;
-				theplot << what ;
-				theplot <<mapth[ &(fe[0]->Vh->Th)];// numero du maillage
-				KN<double> V1=fe[0]->Vh->newSaveDraw(*fe[0]->x(),cmp[0],lg,nsb);
-				
-				// construction of the sub division ... 
-				int nsubT=NbOfSubTriangle(nsb);
-				int nsubV=NbOfSubInternalVertices(nsb);
-				KN<R2> Psub(nsubV);
-				KN<int> Ksub(nsubT*3);
-				for(int i=0;i<nsubV;++i)
-				    Psub[i]=SubInternalVertex(nsb,i);
-				//cout << " Psub " << Psub <<endl;
-				for(int sk=0,p=0;sk<nsubT;++sk)
-				    for(int i=0;i<3;++i,++p)
-					Ksub[p]=numSubTriangle(nsb,sk,i);
-				
-				if(verbosity>9)
-				    cout << " Send plot:what: " << what << " " << nsb << " "<< V1.N() 
-				    << " "  << V1.max() << " " << V1.min() << endl;
-				theplot << Psub ;
-				theplot << Ksub ;
-				theplot << V1;
-				// theplot << (long) nsb<< V1;
-				
-			    }
-		      }
-		    else
-		      {
-			  if ( fe[0]->x() && fe[1]->x())
-			    {
-				err=0;
-				theplot << what ;
-				
-				
-				KN<double> V1=fe[0]->Vh->newSaveDraw(*fe[0]->x(),*fe[1]->x(),cmp[0],cmp[1],lg,nsb);
-				// construction of the sub division ... 
-				int nsubT=NbOfSubTriangle(nsb);
-				int nsubV=NbOfSubInternalVertices(nsb);
-				KN<R2> Psub(nsubV);
-				KN<int> Ksub(nsubT*3);
-				for(int i=0;i<nsubV;++i)
-				    Psub[i]=SubInternalVertex(nsb,i);
-				for(int sk=0,p=0;sk<nsubT;++sk)
-				    for(int i=0;i<3;++i,++p)
-					Ksub[p]=numSubTriangle(nsb,sk,i);
-				
-				theplot <<mapth[ &(fe[0]->Vh->Th)];// numero du maillage
-				theplot << Psub ;
-				theplot << Ksub ;
-				theplot <<  V1;
-				
-				// theplot << (long) nsb<< V1;
-			    }
-		      }
-		}*/	    
-		  else if (l[i].what==3 )
-		{
-		    tab x=l[i].evalt(0,s);
-		    tab y=l[i].evalt(1,s);
-		    if( x.N() >0 && y.N() == x.N())
-		      {
-			  err=0; // correction dec 2008 FH 
-			  theplot << what ;
-			  theplot << x << y ;
-		      }
-		    else  
-		      {
-			  if(verbosity)
-			      cerr << "Warning:  Plot of array with wrong size (item "<< i + 1 
-			      << ") sizes = " << x.size()<< " , " << y.size()  << endl;
-		      }
-		    
-		}
-	      else if (l[i].what==4 )
-		{
-		    err=0;
-		    theplot << what ;
-		    const  E_BorderN * Bh= l[i].evalb(0,s);
-		    Bh->SavePlot(s,theplot);
-		}
-	      else if(what ==5)
-		{
-		    pTh3=&l[i].evalm3(0,s);
-		    if(pTh3) {
-			err=0;
-			theplot << what ; 
-			theplot <<mapth3[ &l[i].evalm3(0,s)];// numero du maillage
-		    }
-		}
-	      else  if (what==6 ||what==7 ) 
-		  err = Send3d<R,v_fes3>( theplot,ll[ii] ,mapth3);
-	      else if (what==16 || what==17 )
-		  err = Send3d<Complex,v_fes3>( theplot,ll[ii] ,mapth3);
-	    
-		/*
-		{    
-		    int lg,nsb;
-		    ll[ii].eval(fe3,cmp);
-		    if(what==6)
-		      {
-			  if (fe3[0]->x()) 
-			    {		 
-				err=0;
-				theplot << what ;
-				theplot <<mapth3[ &(fe3[0]->Vh->Th)];// numero du maillage
-				// KN<R>  GFESpace<MMesh>::newSaveDraw(const KN_<R> & U,int composante,int & lg,
-				//   KN<Rd> &Psub,KN<int> &Ksub,int op_U) const
-				KN<R3> Psub;
-				KN<int> Ksub;
-				KN<double> V1=fe3[0]->Vh->newSaveDraw(*fe3[0]->x(),cmp[0],lg,Psub,Ksub,0);
-				if(verbosity>9)
-				    cout << " Send plot:what: " << what << " " << nsb << " "<< V1.N() 
-				    << " "  << V1.max() << " " << V1.min() << endl;
-				theplot << Psub ;
-				theplot << Ksub ;
-				theplot << V1;
-			    }
-		      }
-		}
-	      else  if (what==7)
-		{    
-		    int lg,nsb;
-		    ll[ii].eval(fe3,cmp);
-		    if(what==7) // ve
-		      {
-			if (fe3[0]->x()&& fe3[1]->x() && fe3[2]->x()) 
-			  {		 
-			      err=0;
-			      theplot << what ;
-			      theplot <<mapth3[ &(fe3[0]->Vh->Th)];// numero du maillage
-			      // KN<R>  GFESpace<MMesh>::newSaveDraw(const KN_<R> & U,int composante,int & lg,
-			      //   KN<Rd> &Psub,KN<int> &Ksub,int op_U) const
-			      KN<R3> Psub1,Psub2,Psub3; // bf Bof ...
-			      KN<int> Ksub1,Ksub2,Ksub3;
-			      KN<double> V1=fe3[0]->Vh->newSaveDraw(*fe3[0]->x(),cmp[0],lg,Psub1,Ksub1,0);
-			      KN<double> V2=fe3[1]->Vh->newSaveDraw(*fe3[1]->x(),cmp[1],lg,Psub2,Ksub2,0);
-			      KN<double> V3=fe3[2]->Vh->newSaveDraw(*fe3[2]->x(),cmp[2],lg,Psub3,Ksub3,0);
-			      if(verbosity>9)
-				  cout << " Send plot:what: " << what << " " << nsb << " "<< V1.N() 
-				  << " "  << V1.max() << " " << V1.min() << endl;
-			      theplot << Psub1 ;
-			      theplot << Ksub1 ;
-			      ffassert( V1.N() == V2.N()  &&V1.N() == V3.N()); 
-			      KNM<double> V123(3,V1.N()); // warning fortran numbering ...
-			      V123(0,'.')=V1;
-			      V123(1,'.')=V2;
-			      V123(2,'.')=V3;
-			      theplot << (KN_<double>&) V123;
-			     
-			  }
-		      }
-		}*/
-	    
-	      else 
-		  ffassert(0);// erreur type theplot inconnue
-	      if(err==1)
-		{ if(verbosity) 
-		    cerr << "Warning: May be a bug in your script, \n" 
-		    << " a part of the plot is wrong t (mesh or FE function, curve)  => skip the item  " << i+1 
-		    << " in plot command " << endl;
-		    theplot << -1L << (long) i ;
-		}
-	      
-	      
-	  }
-	theplot.SendEndPlot();
-    } 
-  if (!withrgraphique) {initgraphique();withrgraphique=true;}
-  viderbuff();
-  MeshPoint *mps=MeshPointStack(s),mp=*mps ;
-  int nbcolors=0;
-  float *colors=0;
-  bool hsv=true; // hsv  type 
-  R boundingbox[4];
-  double coeff=1;
-  bool wait=TheWait;
-  bool value=false;
-  bool fill=false;
-  bool aspectratio=false;
-  bool clean=true;
-  bool uaspectratio=false;
-  bool pViso=false,pVarrow=false;
-  int Niso=20,Narrow=20;
-    
-  KN<R> Viso,Varrow;
-        
-  bool bw=false;
-  string * psfile=0;
-  string * cm=0;
-  pferbase  fe=0,fe1=0;
-  int cmp0,cmp1;
-  bool grey=getgrey();
-  bool greyo=grey;
-  bool drawborder=true;
-  if (nargs[0]) coeff= GetAny<double>((*nargs[0])(s));
-  if (nargs[1]) cm = GetAny<string *>((*nargs[1])(s));
-  if (nargs[2]) psfile= GetAny<string*>((*nargs[2])(s));
-  if (nargs[3]) wait= GetAny<bool>((*nargs[3])(s));
-  if (nargs[4]) fill= GetAny<bool>((*nargs[4])(s));
-  if (nargs[5]) value= GetAny<bool>((*nargs[5])(s));
-  if (nargs[6]) clean= GetAny<bool>((*nargs[6])(s));
-  if (nargs[7]) uaspectratio=true,uaspectratio= GetAny<bool>((*nargs[7])(s));
-  if (nargs[8])  
-    for (int i=0;i<4;i++)
-      boundingbox[i]= GetAny<double>((*bb[i])(s));
-  if (nargs[9]) Niso=  GetAny<long>((*nargs[9])(s));
-  if (nargs[10]) Narrow=  GetAny<long>((*nargs[10])(s));
-  if (nargs[11]) { 
-    KN_<double> v =GetAny<KN_<double> >((*nargs[11])(s)) ;
-    Niso=v.N();
-    Viso.init(Niso);
-    Viso=v;
-    pViso=true;}
-          
-  if (nargs[12]) {
-    KN_<double> v =GetAny<KN_<double> >((*nargs[12])(s)) ;
-    Niso=v.N();
-    Varrow.init(Niso);
-    Varrow=v;
-    pVarrow=true;
-  }
-                 
-  if (nargs[13]) bw= GetAny<bool>((*nargs[13])(s));
-  if (nargs[14]) grey= GetAny<bool>((*nargs[14])(s));
-  if (nargs[15]) {  
-    KN_<double> cc= GetAny<KN_<double> >((*nargs[15])(s));
-    nbcolors= cc.N()/3;
-    if ( nbcolors > 1&& nbcolors < 100)
-      {
-	colors = new float [nbcolors*3];
-	for (int i=0; i<3*nbcolors; i++) colors[i]=cc[i];
-      }
-    else nbcolors = 0;
-  }
-  if (nargs[16]) drawborder= GetAny<bool>((*nargs[16])(s));
-  int   dimplot=2;
-  if (nargs[17]) dimplot= GetAny<long>((*nargs[17])(s));
-  bool addtoplot=false, keepPV=false;
-  if (nargs[18]) addtoplot= GetAny<bool>((*nargs[18])(s));
-  if (nargs[19]) keepPV= GetAny<bool>((*nargs[19])(s));
-
-  //  for the gestion of the PTR. 
-  WhereStackOfPtr2Free(s)=new StackOfPtr2Free(s);// FH aout 2007 
-	
-  setgrey(grey);
-  if (Viso.unset()) Viso.init(Niso);
-  if (Varrow.unset()) Varrow.init(Narrow);
-    
-  // KN<R> Viso(Niso);
-  // KN<R> Varrow(Narrow);
-  // if (pViso) Viso=*pViso;
-  // if (pVarrow) Varrow=*pVarrow;
-  const Mesh * cTh=0;
-  bool vecvalue=false,isovalue=false;
-  bool ops=psfile;
-  bool drawmeshes=false;
-  if ( clean ) {
-    reffecran(); 
-
-    if (psfile) {
-      openPS(psfile->c_str());
-    }
-    if (bw) NoirEtBlanc(1);
-    R2 Pmin,Pmax;
-    R2 uminmax(1e100,-1e100);
-    R2 Vminmax(1e100,-1e100);
-    bool first=true;
-    for (size_t ii=0;ii<ll.size();ii++)
-	{
-	    int i=ll[ii].i;
-	    long what = ll[ii].what;
-	    R2  P1,P2;
-      if (what==1 || what==2) 
-	{
-         
-	  if( !uaspectratio)   aspectratio= true;
-          ll[ii].eval(fe,cmp0,fe1,cmp1);
-         
-	  if (!fe->x()) continue; 
-         
-	  //int nb=fe->x()->N();
-
-	  fe->Vh->cmesh->BoundingBox(P1,P2);
-          cTh=fe->Vh->cmesh;
-	  if (fe1==0)
-            uminmax = minmax(uminmax,fe->Vh->MinMax(*fe->x(),cmp0));
-	  else
-	    {
-	      if (fe1) 
-		{
-		  if (fe->Vh == fe1->Vh) 
-		    {  
-		      KN_<R> u( *fe->x()),v(*fe1->x());     
-		      Vminmax = minmax(Vminmax,fe->Vh->MinMax(u,v,cmp0,cmp1));
-		    }  
-		  else
-		    cerr << " On ne sait tracer que de vecteur sur un meme type element finite. " << endl;
-		}      
-           
-	    }
-	}
-      else if (l[i].what==0) 
-	{
-	  if( !uaspectratio) aspectratio= true;
-	    const  Mesh & Th= *ll[ii].th();
-	  Th.BoundingBox(P1,P2);
-	  cTh=&Th;
-	}
-      else if (l[i].what==4) 
-	{
-	  if( !uaspectratio) aspectratio= true;
-	  const  E_BorderN * Bh= l[i].evalb(0,s);
-	  Bh->BoundingBox(s,P1.x,P2.x,P1.y,P2.y);
-          
-	}
-      else if (l[i].what==3) 
-	{
-	  tab  ttx=l[i].evalt(0,s);
-	  tab  tty=l[i].evalt(1,s);
-	  tab *tx=&ttx,*ty=&tty;
-	  P1=R2(tx->min(),ty->min());
-	  P2=R2(tx->max(),ty->max());   
-	  if(verbosity>2)  
-	    cout << "Plot: bound  Pmin=" <<  P1 << ",  Pmax=" << P2 << endl;  
-	}
-      else continue;
-      
-      if (first)
-	{first=false; Pmin=P1;Pmax=P2;}
-      else {
-	Pmin.x = Min(Pmin.x,P1.x);
-	Pmin.y = Min(Pmin.y,P1.y);
-	Pmax.x = Max(Pmax.x,P2.x);
-	Pmax.y = Max(Pmax.y,P2.y);
-      }
-       
-      }
-      
-    {
-      R umx=uminmax.y,umn=uminmax.x;
-      if (verbosity>5) 
-        cout << " u bound " <<  uminmax << "  V : " << Vminmax <<endl;
-
-      if (verbosity>1)
-	cout << "Plot bound [x,y] " <<  Pmin << " max [x,y] " << Pmax << endl;  
-      int N=Viso.N();
-      int Na=Varrow.N();
-      R2 O((Pmin+Pmax)/2);
-      R rx(Pmax.x-Pmin.x),ry(Pmax.y-Pmin.y);
-      // bug   version 1.41 correct FH to remove div by zero.
-      rx = Max(rx,1e-30);
-      ry = Max(ry,1e-30);
-      // -- end correction
-      R r =  (Max(rx,ry)*0.55);
-      showgraphic();
-      if (aspectratio)
-	cadreortho((float)O.x,(float)(O.y+r*0.05),(float) r);
-      else 
-	cadre( (float)(O.x-rx*.55),(float)(O.x+rx*0.55),(float)(O.y-ry*.55),(float)(O.y+ry*.55));
-      R d = fill ? (umx-umn)/(N-1)  : (umx-umn)/(N);       
-      R x = fill ? umn-d/2 :umn+d/2;
-      if (!pViso) 
-        for (int i = 0;i < N;i++)
-	  {Viso[i]=x;x +=d; }
-      if (fill && !pViso) {Viso[0]=umn-d;Viso[N-1]=umx+d;}
-      x=0; d= sqrt(Vminmax.y)/(Na-1.001);
-      if (!pVarrow)
-        for (int i = 0;i < Na;i++)
-          {Varrow[i]=x;x +=d; }
-   
-      SetColorTable(Max(N,Na)+4) ;           
-    }
-  }  // clean
-  float xx0,xx1,yy0,yy1;
-  if (nargs[8])
-    {
-      xx0=min(boundingbox[0],boundingbox[2]);
-      xx1=max(boundingbox[0],boundingbox[2]);
-      yy0=min(boundingbox[1],boundingbox[3]);
-      yy1=max(boundingbox[1],boundingbox[3]);
-      if (verbosity>2) 
-	cout << "bb=  xmin =" << xx0 << ", max =" << xx1 << ", ymin = " << yy0 << ", ymax = " << yy1 << endl;
-      if (aspectratio)
-	cadreortho((xx0+xx1)*0.5,(yy0+yy1)*0.5, max(xx1-xx0,yy1-yy0)*0.5);
-      else 
-        cadre(xx0,xx1,yy0,yy1);
-
-     }
-   getcadre(xx0,xx1,yy0,yy1);
-   const R ccoeff=coeff;
-   bool plotting = true;   
-     //  drawing part  ------------------------------
-   while (plotting)
-     {
-	 if(verbosity>99) cout << "plot::operator() Drawing part \n";
-	 plotting = false; 
-	 bool thfill=fill;
-	 for (size_t ii=0;ii<ll.size();ii++)
-	   {
-	       int i=ll[ii].i;
-	       long what = ll[i].what;
-	       
-	       if (l[i].what==0) 
-		   if (fill)
-		       ll[ii].th()->Draw(0,thfill);
-		   else 
-		       ll[ii].th()->Draw(0,thfill);
-		   else  if (what==1 || what==2)
-		     {   
-			 
-			 ll[ii].eval(fe,cmp0,fe1,cmp1);
-			 // fe=  l[i].eval(0,s,cmp0);
-			 // fe1= l[i].eval(1,s,cmp1);;
-			 if (!fe->x()) continue;
-#ifdef VVVVVVV      
-			 cout << "   Min = " << fe->x->min() << " max = " << fe->x->max() ;
-			 if(fe1 && verbosity > 1)
-			     cout << " Min = " << fe1->x->min() << " max = " << fe1->x->max() ;   
-			 cout << endl;   
-#endif
-			 if (fe1) 
-			   {
-			       if (fe->Vh == fe1->Vh)           
-				   vecvalue=true,fe->Vh->Draw(*fe->x(),*fe1->x(),Varrow,coeff,cmp0,cmp1,colors,nbcolors,hsv,drawborder);
-			       else
-				   cerr << " On ne sait tracer que de vecteur sur un meme interpolation " << endl;
-			       if (drawmeshes) fe->Vh->Th.Draw(0,fill);
-			   }      
-			 else 
-			     
-			     
-			     if (fill)
-				 isovalue=true,fe->Vh->Drawfill(*fe->x(),Viso,cmp0,1.,colors,nbcolors,hsv,drawborder);
-			     else 
-				 isovalue=true,fe->Vh->Draw(*fe->x(),Viso,cmp0,colors,nbcolors,hsv,drawborder);
-			 
-			 if (drawmeshes) fe->Vh->Th.Draw(0,fill);
-			 
-		     }
-		   else if (l[i].what==4) 
-		     {
-			 const  E_BorderN * Bh= l[i].evalb(0,s);
-			 Bh->Plot(s);          
-		     }
-	       
-		   else if(l[i].what==3)
-		     {
-			 
-			 tab x=l[i].evalt(0,s);
-			 tab y=l[i].evalt(1,s);
-			 long k= Min(x.N(),y.N());
-			 // cout << " a faire " << endl;
-			 // cout << " plot :\n" << * l[i].evalt(0,s) << endl << * l[i].evalt(1,s) << endl;
-			 rmoveto(x[0],y[0]);
-			 couleur(2+i);
-			 for (int i= 1;i<k;i++)
-			     rlineto(x[i],y[i]);
-		     }
-	       thfill=false;
-	   }
-	 if (value) {
-	     int k=0; 
-	     if (isovalue) {PlotValue(Viso,k,"IsoValue");k+= Viso.N()+3;}
-	     if (vecvalue) {PlotValue(Varrow,k,"Vec Value");k+= Varrow.N()+3;}
-	 } 
-	 // value=false;
-	 
-	 if (cm) {       
-	     couleur(1);
-	     DrawCommentaire(cm->c_str(),0.1,0.97);
-	 }
-	 if (ops ) {
-	     ops=false;
-	     closePS();
-	 }
-	 if (wait && ! NoWait) 
-	   {  
-	   next:
-	       float x,y,x0,y0,x1,y1,dx,dy,coef=1.5;
-	       getcadre(x0,x1,y0,y1);
-	       char c=Getxyc(x,y);
-	       dx=(x1-x0)/2.;dy=(y1-y0)/2.;
-	       
-	       switch (c) 
-	       { 
-		   case '+' :  plotting=true; 
-		       cadre(x-dx/coef,x+dx/coef,y-dy/coef,y+dy/coef);reffecran();
-		       break;
-		   case '-' :  plotting=true; 
-		       cadre(x-dx*coef,x+dx*coef,y-dy*coef,y+dy*coef);;reffecran();
-		       break;
-		   case '=' :  plotting=true; 
-		       coeff=ccoeff;
-		       cadre(xx0,xx1,yy0,yy1);;reffecran();
-		       break;
-		   case 'r' :  plotting=true; 
-		       reffecran();
-		       break;
-		   case 'a' : 
-		   case 'c' : coeff /= 1.5; plotting=true;reffecran(); 
-		       reffecran();
-		       break;
-		   case 'A' : 
-		   case 'C' : coeff *= 1.5;
-		       plotting=true;
-		       reffecran();
-		       break;
-		   case 'b' : bw= !bw;NoirEtBlanc(bw)  ;
-		       plotting=true;
-		       reffecran();
-		       break;
-		   case 'v' : value = !value ; plotting=true;
-		       reffecran();
-		       break;
-		   case 'f' : fill = !fill ; plotting=true;
-		       reffecran();
-		       break;
-		   case 'g' : setgrey(grey=!getgrey()); plotting=true;
-		       reffecran();
-		       break;
-		       
-		   case 'm' : 
-		       reffecran();
-		       drawmeshes= !drawmeshes;
-		       plotting=true;
-		       break;
-		   case 'p' : 
-		       plotting=true;
-		       reffecran();
-		       ops=true;
-		       openPS(0);
-		       plotting=true;
-		       break;
-		   case 'q' :
-		       couleur(8);
-#ifdef DRAWING		      
-		       if (cTh) cTh->quadtree->Draw();
-#endif		       
-		       couleur(1);
-		       goto next;
-		   case 's' :
-		       if(cTh)
-			 {
-			     R2 P(x,y),PF(P),Phat;
-			     bool outside;
-			     const Vertex * v=cTh->quadtree->NearestVertexWithNormal(P);
-			     if (!v)  v=cTh->quadtree->NearestVertex(P);
-			     else {
-				 couleur(2);
-				 const Triangle * t= cTh->Find( PF,  Phat,outside,&(*cTh)[cTh->Contening(v)]) ;
-				 t->Draw(0.8);
-				 couleur(2);
-				 PF=(*t)(Phat);
-				 DrawMark(PF,0.003);
-				 
-			     }
-			     couleur(5);
-			     DrawMark(P,0.0015);
-			     
-			     couleur(1);
-			     if (v)
-				 DrawMark(*v,0.005);
-			     
-			 goto next;}
-		   case '?':
-		       int i=2;
-		       reffecran();               
-		       //Show("Enter a keyboard character in graphic window to do :",i++);
-		       Show("Enter a keyboard character in the FreeFem Graphics window in order to:",i++);
-		       
-		       i+=2;
-		       //Show("+)  zomm around the cursor 3/2 times ",i++);
-		       Show("+)  zoom in around the cursor 3/2 times ",i++);
-		       Show("-)  zoom out around the cursor 3/2 times  ",i++);
-		       //Show("-)  unzomm around the cursor 3/2 times  ",i++)	;
-		       Show("=)  reset zooming  ",i++);
-		       Show("r)  refresh plot ",i++);
-		       Show("ac) increase   the size arrow ",i++);
-		       Show("AC) decrease the size arrow  ",i++);
-		       Show("b)  switch between black and white or color plotting ",i++);
-		       Show("g)  switch between grey or color plotting ",i++);
-		       Show("f)  switch between filling iso or not  ",i++);
-		       Show("v)  switch between show  the numerical value of iso or not",i++);
-		       Show("p)   save  plot in a Postscprit file",i++);
-		       Show("m)  switch between show  meshes or not",i++);
-		       Show("p)  switch between show  quadtree or not (for debuging)",i++);
-		       Show("t)  find  Triangle ",i++);
-		       Show("?)  show this help window",i++);
-		       Show("any other key : continue ",++i);
-		       goto next;
-	       }   
-	       if (!pViso || !pVarrow)
-		 { //  recompute the iso bound
-		     R2 uminmax(1e100,-1e100);
-		     R2 Vminmax(1e100,-1e100);
-		     for (size_t i=0;i<l.size();i++)
-		       { R2  P1,P2;
-			   if (l[i].what==1 || l[i].what==2) 
-			     {
-				 fe   = l[i].eval(0,s,cmp0);
-				 fe1  = l[i].eval(1,s,cmp1);
-				 
-				 if (!fe->x()) continue; 
-				 
-				 // int nb=fe->x()->N();
-				 
-				 
-				 if (fe1==0)
-				     uminmax = minmax(uminmax,fe->Vh->MinMax(*fe->x(),cmp0,false));
-				 else
-				   {
-				       if (fe1) 
-					   if (fe->Vh == fe1->Vh) 
-					     {  
-						 KN_<R> u( *fe->x()),v(*fe1->x());     
-						 Vminmax = minmax(uminmax,fe->Vh->MinMax(u,v,cmp0,cmp1,false));
-					     }  
-				   }
-			     }
-			   else continue;
-			   
-			   
-		       }
-		     if (verbosity>5)   cout << " u bound " <<  uminmax << endl;
-		     R umx=uminmax.y,umn=uminmax.x;
-		     int N=Viso.N();
-		     int Na=Varrow.N();
-		     R d = fill ? (umx-umn)/(N-1)  : (umx-umn)/(N);       
-		     R x = fill ? umn-d/2 :umn+d/2;
-		     if (!pViso) 
-			 for (int i = 0;i < N;i++)
-			   {Viso[i]=x;x +=d; }
-		     if (fill && !pViso) {Viso[0]=umn-d;Viso[N-1]=umx+d;}
-		     x=0; d= sqrt(Vminmax.y)/Na;
-		     if (!pVarrow)
-			 for (int i = 0;i < Na;i++)
-			   {Varrow[i]=x;x +=d; }
-		     
-		     
-		     
-		 }
-	   }  
-	 *mps=mp;
-     } //  end plotting 
-  NoirEtBlanc(0)  ;
-  setgrey(greyo);
-  if (colors) delete[] colors;
-  // modif mars 2006  auto stack ptr
-  // if (cm)        delete cm;
-  // if (psfile)        delete psfile;
-  viderbuff();
-     
-  return 0L;
-}
- 
-AnyType Convect::operator()(Stack s) const 
-{  
-    if(d==2)  return eval2(s);
-    else  return eval3(s);    
-}
-
-AnyType Convect::eval2(Stack s) const
-{
-  MeshPoint* mp(MeshPointStack(s));
-  static MeshPoint mpp,mps;
-  static R ddts;
-  R ddt = GetAny<double>((*dt)(s));
-  if (ddt) 
-    {
-      MeshPoint mpc(*mp);
-      MeshPointStack(s,&mpc);
-      if(*mp==mpp && ddt == ddts) 
-	mpc=mps;
-      else 
-	{
-
-	  const Mesh & Th(*mp->Th);
-	  ffassert(mp->Th && mp->T);
-	  R l[3];
-	  l[1]=mpc.PHat.x;
-	  l[2]=mpc.PHat.y;
-	  l[0]=1-l[1]-l[2];
-
-	  int k=0;
-	  int j; 
-	  int it=Th(mpc.T);
-	  while ( (j=WalkInTriangle(Th,it,l,GetAny<double>((*u)(s)),GetAny<double>((*v)(s)),ddt))>=0) 
-	    { 
-	      ffassert( l[j] == 0);
-	      //int jj  = j;            
-	      R a= l[(j+1)%3], b= l[(j+2)%3];
-	      int itt =  Th.ElementAdj(it,j);
-	      if(itt==it || itt <0)  break; // le bord 
-	      it = itt;
-	      l[j]=0;
-	      l[(j+1)%3] = b;
-	      l[(j+2)%3] = a;
-	      mpc.change(R2(l[1],l[2]),Th[it],0);             
-	      if(k++>1000)
-		{
-		  cerr << "Fatal  error  in Convect (R2) operator: loop  => velocity too high ???? or NaN F. Hecht  " << endl;
-		  ffassert(0);
-		}
-	    }
-
-	  mpc.change(R2(l[1],l[2]),Th[it],0);
-	  mpp=*mp; 
-	  mps=mpc;         
-	}
-    }
-  ddts=ddt;
-  AnyType r= (*ff)(s);
-  MeshPointStack(s,mp);
-  
-  return r;
-}
-
-AnyType Convect::eval3(Stack s) const 
-{
-MeshPoint* mp(MeshPointStack(s));
-static MeshPoint mpp,mps;
-static R ddts;
-R ddt = GetAny<double>((*dt)(s));
-if (ddt) 
-{
-    bool ddd=verbosity>100;
-    MeshPoint mpc(*mp);
-    MeshPointStack(s,&mpc);
-    if(*mp==mpp && ddt == ddts) 
-	mpc=mps;
-	else 
-	  {
-	      
-	      const Mesh3 & Th3(*mp->Th3);
-	      ffassert(mp->Th3 && mp->T3);
-	      R3 PHat=mpc.PHat;
-	      	      
-	      int k=0;
-	      int j; 
-	      int it=Th3(mpc.T3);
-	      if(ddd) cout << " IN: " <<  (*mpc.T3)(PHat) << " ; " << mpc.P <<" : " << ddt << endl;
-	      while ( (j=WalkInTet(Th3,it,PHat,R3(GetAny<double>((*u)(s)),GetAny<double>((*v)(s)),GetAny<double>((*w)(s))),ddt))>=0) 
-		  if(j>3)  { 
-		      it=j-4;
-		  mpc.change(PHat,Th3[it],0);
-	          if(ddd) cout << "   **P= "<< (*mpc.T3)(PHat) << " ,  Ph " << PHat << " : j = " << j  <<  " it:  " << it ;
-		  }
-		else
-                { 
-		  if(ddd) cout << "P= "<< (*mpc.T3)(PHat) << " ,  Ph " << PHat << " : j = " << j  <<  " it:  " << it ;
-#ifdef DEBUG		    
-		    R3  Po=(*mpc.T3)(PHat),Pho=PHat; int ito=it;
-#endif
-                    int itt =  Th3.ElementAdj(it,j,PHat);
-		   if(ddd && itt>=0) cout << "  -> " << itt << " " << j  << "  : Pn " <<  Th3[itt](PHat) << " PHn " << PHat << " , " << ddt << endl;	
-		    if(itt<0) break;
-		    it=itt;
-		    mpc.change(PHat,Th3[it],0);  
-#ifdef DEBUG		    
-		    if(((Po-mpc.P).norme2() > 1e-10))
-		      {   cout << ito << " " << &Th3[ito][0] << " " << &Th3[ito][1] << " " << &Th3[ito][2] << " " << &Th3[ito][3] << " "  << endl;
-			   cout << it << " " <<  &Th3[it][0] << " " <<  &Th3[it][1] << " " <<  &Th3[it][2] << " " <<  &Th3[it][3] << endl;
-			  cout << Pho  << "o Hat " << PHat << endl;
-			  cout << Po << " o != " << mpc.P << " diff= "<< (Po-mpc.P).norme2() <<endl;
-			  assert(0);
-			  
-		      }
-#endif			  
-		   ffassert(k++<2000);
-                }
-	      	      
-	      mpc.change(PHat,Th3[it],0);
-	      mpp=*mp; 
-	      mps=mpc;         
-	  }
-}
-ddts=ddt;
-AnyType r= (*ff)(s);
-MeshPointStack(s,mp);
-
-return r;
-}
-
-
-
-
-
-template<class K>
-class Op3_pfe2K : public ternary_function<pair<FEbase<K,v_fes> *,int>,R,R,K> { public:
-
-
-  class Op : public E_F0mps { public:
-    Expression a,b,c;
-    Op(Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc) {/*cout << "Op3_pfe2K" << endl;*/}       
-    AnyType operator()(Stack s)  const 
-    { 
-      R xx(GetAny<R>((*b)(s)));
-      R yy(GetAny<R>((*c)(s)));
-      MeshPoint & mp = *MeshPointStack(s),mps=mp;
-      mp.set(xx,yy,0.0);
-      AnyType ret = pfer2R<K,0>(s,(*a)(s));
-      mp=mps;
-      return  ret;
-    }
-  };
-};
-
-
-//Add  FH 16032005
-class Op3_Mesh2mp : public ternary_function<pmesh*,R,R,MeshPoint *> { public:
-  class Op : public E_F0mps { public:
-      Expression a,b,c;
-       Op(Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc) {}       
-       AnyType operator()(Stack s)  const 
-        { 
-           R xx(GetAny<R>((*b)(s)));
-           R yy(GetAny<R>((*c)(s)));
-           pmesh *ppTh(GetAny<pmesh*>((*a)(s)));
-           if( !ppTh || !*ppTh) ExecError("Op3_Mesh2mp unset mesh ??");
-           pmesh pTh(*ppTh);
-           MeshPoint * mp = new MeshPoint();
-           mp->set(xx,yy,0.0);
-           R2 PHat;
-           bool outside;
-           const Triangle * K=pTh->Find(mp->P.p2(),PHat,outside);
-           mp->set(*pTh,(R2) mp->P.p2(),PHat,*K,0,outside);
-           return mp;}
-   
-  };
-};
-
-template<class RR,class AA=RR>
-class JumpOp : public E_F0mps  { public:
-  typedef RR  R;
-  typedef AA A; 
-  typedef RR result_type;
-  typedef AA argument_type; 
-
-       Expression a;
-       public:
-       AnyType operator()(Stack stack)  const 
-        { // a faire 
-           A rd,rg;       
-           MeshPoint *mp=MeshPointStack(stack),smp=*mp;              
-           rg = GetAny<A>((*a)(stack));
-           rd = 0. ;// to be compatible with varf def... FH april 2014 ... v 3.31. 
-           if ( mp->SetAdj() )
-             rd = GetAny<A>((*a)(stack));  
-           *mp=smp;         
-           return  SetAny<R>(rd-rg);//  external - internal 
-        }
-       JumpOp(Expression aa) : a(aa) {} 
-    };
-
-template<class RR,class AA=RR>
-class MeanOp : public E_F0mps  { public:
-  typedef RR  R;
-  typedef AA A; 
-  typedef RR result_type;
-  typedef AA argument_type; 
-
-       Expression a;
-       public:
-       AnyType operator()(Stack stack)  const 
-        { // a faire 
-           A rd,rg;       
-           MeshPoint *mp=MeshPointStack(stack),smp=*mp;              
-           rg = GetAny<A>((*a)(stack));
-           rd = rg;
-           if ( mp->SetAdj() )
-             rd = GetAny<A>((*a)(stack));  
-           *mp=smp;         
-           return  SetAny<R>((rg+rd)*0.5);
-        }
-       MeanOp(Expression aa) : a(aa) {} 
-    };
-
-long get_size(pferarray const & a)
-{
-  return a.first->N;
-}
-long get_size(pfecarray const & a)
-{
-    return a.first->N;
-}
-long get_size(pferbasearray *const & a)
-{
-    return (**a).N;
-}
-long get_size(pfecbasearray *const & a)
-{
-    return (**a).N;
-}
-long get_size(pf3rarray const & a)
-{
-  return a.first->N;
-}
-long get_size(pf3rbasearray *const & a)
-{
-    return (**a).N;
-}
-long resize(pferbasearray *const & a, long const & n)
-{
-    (**a).resize(n);
-    return n; 
-}
-
-long resize(pfecbasearray *const & a, long const & n)
-{
-    (**a).resize(n);
-    return n;
-}
-
-pferbase* get_element(pferbasearray *const & a, long const & n)
-{
-  return (**a)[n];
-}
-
-pfer get_element(pferarray const & a, long const & n)
-{
-  return pfer( *(*a.first)[n],a.second);
-}
-
-//  complex case 
-pfecbase* get_element(pfecbasearray *const & a, long const & n)
-{
-  return (**a)[n];
-}
-pfec get_element(pfecarray const & a, long const & n)
-{
-  return pfec( *(*a.first)[n],a.second);
-}
-//  end complex case 
-
-lgElement get_element(pmesh const & a, long const & n)
-{
-  return lgElement(a,n);
-}
-lgElement get_element(pmesh *const & a, long const & n)
-{
-  return lgElement(*a,n);
-}
-
-
-
-lgBoundaryEdge get_belement(lgBoundaryEdge::BE const & a, long const & n)
-{
-    return lgBoundaryEdge(a,n);
-}
-
-lgElement get_adj(lgElement::Adj const & a, long  * const & n)
-{
-    return  a.adj(*n);
-}
-
-lgVertex get_vertex(pmesh const & a, long const & n)
-{
-    return lgVertex(a,n);
-}
-lgVertex get_vertex(pmesh *const & a, long const & n)
-{
-    return lgVertex(*a,n);
-}
-lgVertex get_element(lgElement const & a, long const & n)
-{
-  return a[n];
-}
-lgVertex get_belement(lgBoundaryEdge const & a, long const & n)
-{
-    return a[n];
-}
-
-R getx(lgVertex const & a)
-{
-  return a.x();
-}
-
-R gety(lgVertex const & a)
-{
-  return a.y();
-}
-long getlab(lgVertex const & a)
-{
-  return a.lab();
-}
-long getlab(lgElement const & a)
-{
-  return a.lab();
-}
-long getlab(lgBoundaryEdge const & a)
-{
-    return a.lab();
-}
-
-double getarea(lgElement const & a)
-{
-    return a.area();
-}
-double getlength(lgBoundaryEdge const & a)
-{
-    return a.length();
-}
-lgElement getElement(lgBoundaryEdge const & a)
-{
-    return a.Element();
-}
-long EdgeElement(lgBoundaryEdge const & a)
-{
-    return a.EdgeElement();
-}
-
-/*
-pmesh* get_element(pmesharray *const & a, long const & n)
-{
-  assert(n>=0 && n <=a->second);
-  return a->first +n;
-}
-*/
-template<class A> inline AnyType DestroyKN(Stack,const AnyType &x){
-  KN<A> * a=GetAny<KN<A>*>(x);
-  for (int i=0;i<a->N(); i++)
-    (*a)[i]->destroy();
-  a->destroy(); 
-  return  Nothing;
-}
-template<class RR,class A,class B>  
-RR * get_elementp_(const A & a,const B & b){ 
-  if( b<0 || a->N() <= b) 
-   { cerr << " Out of bound  0 <=" << b << " < "  << a->N() << " array type = " << typeid(A).name() << endl;
-     ExecError("Out of bound in operator []");}
-    return  &((*a)[b]);}
-    
-template<class R>  R * set_initinit( R* const & a,const long & n){ 
- SHOWVERB( cout << " set_init " << typeid(R).name() << " " << n << endl);
-  a->init(n);
-  for (int i=0;i<n;i++)
-    (*a)[i]=0;
-   return a;}
-
-template<class A> inline AnyType DestroyKNmat(Stack,const AnyType &x){
-  KN<A> * a=GetAny<KN<A>*>(x);
-  for (int i=0;i<a->N(); i++)
-    (*a)[i].destroy();
-  a->destroy(); 
-  return  Nothing;
-}
-
-template<class R>  R * set_initmat( R* const & a,const long & n){ 
- SHOWVERB( cout << " set_init " << typeid(R).name() << " " << n << endl);
-  a->init(n);
-  for (int i=0;i<n;i++)
-    (*a)[i].init();
-   return a;}
-    
-void init_mesh_array()
- {
-  Dcl_Type<KN<pmesh> *>(0,::DestroyKN<pmesh> );
-  atype<KN<pmesh>* >()->Add("[","",new OneOperator2_<pmesh*,KN<pmesh>*,long >(get_elementp_<pmesh,KN<pmesh>*,long>));
-    TheOperators->Add("<-", 
-       new OneOperator2_<KN<pmesh> *,KN<pmesh> *,long>(&set_initinit));
-  map_type_of_map[make_pair(atype<long>(),atype<pmesh>())]=atype<KN<pmesh>*>(); // vector
-
-  // resize mars 2006 v2.4-1
-  Dcl_Type< Resize<KN<pmesh> > > ();
-  Add<KN<pmesh>*>("resize",".",new OneOperator1< Resize<KN<pmesh> >,KN<pmesh>*>(to_Resize));
-  Add<Resize<KN<pmesh> > >("(","",new OneOperator2_<KN<pmesh> *,Resize<KN<pmesh> > , long   >(resizeandclean1));
-   
-
- }
-template<class RR,class A,class B>  
-RR  get_elementp(const A & a,const B & b){ 
-  if( b<0 || a->N() <= b) 
-   { cerr << " Out of bound  0 <=" << b << " < "  << a->N() << " array type = " << typeid(A).name() << endl;
-     ExecError("Out of bound in operator []");}
-    return  ((*a)[b]);}
-
-template<class T> T *resizeandclean2(const Resize<T> & t,const long &n)
- {  // resizeandclean1
-  int nn= t.v->N(); // old size 
-  
-  for (int i=n;i<nn;i++)  {(*t.v)[i].destroy();;} // clean
-  t.v->resize(n);
-  for (int i=nn;i<n;i++)  {(*t.v)[i].init();}  
-  return  t.v;
- }
-
-template<class PMat>
-AnyType ClearReturn(Stack stack, const AnyType & a)
-{
-    // a ne faire que pour les variables local au return...
-    //  pour l'instant on copie pour fqire mqrche
-    // a repense  FH  mqi 20014....
-    PMat * m = GetAny<PMat * >(a);
-    //   KN<K> *cm=new KN<K>(true, *m); bug quant KN est une variable global
-    // KN<K> *cm=new KN<K>( *m); // on duplique le tableau comme en C++  (dur dur ?????? FH)
-    m->increment();
-    Add2StackOfPtr2FreeRC(stack,m);
-    return m;
-}
-
-
-template <class R>
-void DclTypeMatrix()
-{
- 
-  Dcl_Type<Matrice_Creuse<R>* >(InitP<Matrice_Creuse<R> >,Destroy<Matrice_Creuse<R> >, ClearReturn<Matrice_Creuse<R> >);
-  Dcl_Type<Matrice_Creuse_Transpose<R> >();      // matrice^t   (A')                             
-  Dcl_Type<Matrice_Creuse_inv<R> >();      // matrice^-1   A^{-1}                          
-  Dcl_Type<typename VirtualMatrice<R>::plusAx >();       // A*x (A'*x)
-  Dcl_Type<typename VirtualMatrice<R>::plusAtx >();       // A^t*x (A'*x)
-  Dcl_Type<typename VirtualMatrice<R>::solveAxeqb >();       // A^t*x (A'*x)
-  Dcl_Type<Matrix_Prod<R,R> >();
-  Dcl_Type<list<triplet<R,MatriceCreuse<R> *,bool> >*>();
-  
-   // resize mars 2006 v2.4-1
- 
-  // array of matrix   matrix[int] A(n);
-  typedef  Matrice_Creuse<R> Mat;
-  typedef  Mat * PMat;
-  typedef  KN<Mat> AMat;
-  Dcl_Type<AMat *>(0,::DestroyKNmat<Mat> );  
-  
-  // init array
-    TheOperators->Add("<-", 
-       new OneOperator2_<AMat *,AMat *,long>(&set_initmat));
-  //  A[i] 
-  atype<AMat* >()->Add("[","",new OneOperator2_<PMat,AMat*,long >(get_elementp_<Mat,AMat*,long>));
-  
-  // resize
-  Dcl_Type< Resize<AMat> > ();
-  Add<AMat*>("resize",".",new OneOperator1< Resize<AMat >,AMat*>(to_Resize));
-  Add<Resize<AMat> >("(","",new OneOperator2_<AMat *,Resize<AMat> , long   >(resizeandclean2));
-   
-  // to declare matrix[int]     
-  map_type_of_map[make_pair(atype<long>(),atype<PMat>())]=atype<AMat*>(); 
-  
-}
-
-
-template<class A,class B> 
-AnyType First(Stack,const AnyType &b) { 
-return   SetAny<A>(GetAny<B>(b).first);}
-
-template<class K>
-AnyType AddIncrement(Stack stack, const AnyType & a)
-{
-    K m = GetAny<K>(a);
-    m->increment();
-    Add2StackOfPtr2FreeRC(stack,m);
-    if(verbosity>1)
-    cout << "AddIncrement:: increment + Add2StackOfPtr2FreeRC " << endl;
-    return a;
-}
-/* 
-class EConstantTypeOfFE3 :public E_F0
-    { public:
-	//  using namespace   Fem2D;
-	typedef Fem2D::TypeOfFE3 * T;
-	T  v;
-    public:
-	AnyType operator()(Stack ) const { ;return SetAny<T>(v);}
-	EConstantTypeOfFE3( T o):v(o) {}
-	size_t nbitem() const { assert(v);
-	cout << " nb item = " << v->N << endl;
-	return v->N ;} 
-	operator aType () const { return atype<T>();} 
-    };
-
-*/ 
-Type_Expr CConstantTFE3(const EConstantTypeOfFE3::T & v)
-{
-    throwassert(map_type[typeid( EConstantTypeOfFE3::T).name()]);
-    return make_pair(map_type[typeid( EConstantTypeOfFE3::T).name()],new EConstantTypeOfFE3(v));
-}
-
-//  end --- call meth be ..
-// 2013 resize of array of fe function..
-template<typename  T> T fepresize(const Resize1<T> & rt,const long &n) {
-    (**(rt.v)).resize(n);
-    return rt.v;}
-template<typename  T> T feresize(const Resize1<T> & rt,const long &n) {
-    rt.v.first->resize(n);
-    return rt.v;}
-
-R3 * set_eqp(R3 *a,R3 *b) { *a=*b; return a;}
-void  init_lgfem() 
-{
- // ThePlotStream = new ofstream("ttttt.plot");
-  if(verbosity&& (mpirank==0)) cout <<"lg_fem ";
-#ifdef HAVE_CADNA
-  cout << "cadna ";
-  cadna_init(-1); // pas de fichier 
-#endif  
-//Dcl_Type<const C_args*>(); // to store compilation expression
- 
- Dcl_Type<MeshPoint*>();
- Dcl_Type<R3*>(::Initialize<R3>);
- Dcl_Type<R2*>(::Initialize<R2>);
-
- map_type[typeid(R3*).name()] = new ForEachType<R3*>(Initialize<R3>);   
-  Dcl_TypeandPtr<pmesh>(0,0, ::InitializePtr<pmesh>,::DestroyPtr<pmesh>,AddIncrement<pmesh>,NotReturnOfthisType); 
-  Dcl_TypeandPtr<pmesh3>(0,0,::InitializePtr<pmesh3>,::DestroyPtr<pmesh3>,AddIncrement<pmesh3>,NotReturnOfthisType); 
-  Dcl_Type<lgVertex>(); 
-  Dcl_Type<lgElement>( ); 
-  Dcl_Type<lgElement::Adj>( ); 
-    
-  Dcl_Type<lgBoundaryEdge::BE >( ); 
-  Dcl_Type<lgBoundaryEdge>( ); 
-
-  atype<long>()->AddCast( 
-    new E_F1_funcT<long,lgVertex>(Cast<long,lgVertex>),
-    new E_F1_funcT<long,lgElement>(Cast<long,lgElement>),
-    new E_F1_funcT<long,lgBoundaryEdge>(Cast<long,lgBoundaryEdge>)
-  );
-
-
- Dcl_Type<TypeOfFE*>(); 
- Dcl_Type<TypeOfFE3*>(); // 3d
-    map_type[typeid(TypeOfFE3*).name()]->AddCast(
-						 new E_F1_funcT<TypeOfFE3*,TypeOfFE*>(TypeOfFE3to2)	);				 
-
- Dcl_Type<TypeSolveMat*>();
- DclTypeMatrix<R>();
- DclTypeMatrix<Complex>();
- 
-//  Dcl_Type<MatriceCreuseDivKN_<double> >();      //  A^(-1)  x
-                                    
-                                    
- Dcl_TypeandPtr<pferbase>(); // il faut le 2 pour pourvoir initialiser 
- Dcl_TypeandPtr<pferbasearray>(); // il faut le 2 pour pourvoir initialiser 
- Dcl_Type< pfer >(); 
- Dcl_Type< pferarray >(); 
- Dcl_Type< pferarray >(); 
-
-
-
-    
-//  pour des Func FE complex   // FH  v 1.43
-    Dcl_TypeandPtr<pfecbase>(); // il faut le 2 pour pourvoir initialiser 
-    Dcl_TypeandPtr<pfecbasearray>(); // il faut le 2 pour pourvoir initialiser 
-    Dcl_Type< pfec >(); 
-    Dcl_Type< pfecarray >(); 
-    //  FH v 1.43
-    // add  mai 2009 FH for 3d eigen value.
-    Dcl_Type<FEbaseArrayKn<double> *>();
-    Dcl_Type<FEbaseArrayKn<Complex> *>();
- 
- 							      							   				 
-    
-    // Dcl_Type< pmesharray *>(); // il faut le 2 pour pourvoir initialiser 
-    
-    map_type[typeid(pfes).name()] = new ForEachType<pfes>(); 
-    map_type[typeid(pfes*).name()] = new ForEachTypePtrfspace<pfes,2>();
-
-
- Dcl_TypeandPtr<pf3rbase>(); // il faut le 2 pour pourvoir initialiser 
- Dcl_TypeandPtr<pf3rbasearray>(); // il faut le 2 pour pourvoir initialiser 
- Dcl_Type< pf3r >(); 
- Dcl_Type< pf3rarray >(); 
-
-//  pour des Func FE complex   // FH  v 1.43
- Dcl_TypeandPtr<pf3cbase>(); // il faut le 2 pour pourvoir initialiser 
- Dcl_TypeandPtr<pf3cbasearray>(); // il faut le 2 pour pourvoir initialiser 
- Dcl_Type< pf3c >(); 
- Dcl_Type< pf3carray >(); 
-
-    
-    //  cast of eigen value  mai 2009 ...
-    map_type[typeid(FEbaseArrayKn<double> *).name()]->AddCast(
-							      new E_F1_funcT<FEbaseArrayKn<double> *,pferbasearray>(Cast<FEbaseArrayKn<double> *,pferbasearray> ),
-							      new E_F1_funcT<FEbaseArrayKn<double> *,pferarray>(First<FEbaseArrayKn<double> *,pferarray> ),
-							      new E_F1_funcT<FEbaseArrayKn<double> *,pf3rbasearray>(Cast<FEbaseArrayKn<double> *,pf3rbasearray> ),
-							      new E_F1_funcT<FEbaseArrayKn<double> *,pf3rarray>(First<FEbaseArrayKn<double> *,pf3rarray> )
-							      
-							      );				 
-    map_type[typeid(FEbaseArrayKn<Complex> *).name()]->AddCast(
-							       new E_F1_funcT<FEbaseArrayKn<Complex> *,pfecbasearray>(Cast<FEbaseArrayKn<Complex> *,pfecbasearray> ),
-							       new E_F1_funcT<FEbaseArrayKn<Complex> *,pfecarray>(First<FEbaseArrayKn<Complex> *,pfecarray> ),
-							       new E_F1_funcT<FEbaseArrayKn<Complex> *,pf3cbasearray>(Cast<FEbaseArrayKn<Complex> *,pf3cbasearray> ),
-							       new E_F1_funcT<FEbaseArrayKn<Complex> *,pf3carray>(First<FEbaseArrayKn<Complex> *,pf3carray> )
-							       
-							       );				 
-    
- map_type[typeid(pfes3).name()] = new ForEachType<pfes3>();  // 3d 
- map_type[typeid(pfes3*).name()] = new ForEachTypePtrfspace<pfes3,3>(); // 3d
-
- //   
- Dcl_Type<const QuadratureFormular *>();
- Dcl_Type<const QuadratureFormular1d *>();
- Dcl_Type<const GQuadratureFormular<R3> *>();
-
-
- Global.New("qf1pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_1));
- Global.New("qf1pTlump",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_1lump));
- Global.New("qf2pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_2));
- Global.New("qf2pT4P1",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_2_4P1));
- Global.New("qf5pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_5));
- 
- Global.New("qf7pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_7));
- Global.New("qf9pT",CConstant<const QuadratureFormular *>(&QuadratureFormular_T_9));
- 
- Global.New("qf1pE",CConstant<const QuadratureFormular1d *>(&QF_GaussLegendre1));
- Global.New("qf2pE",CConstant<const QuadratureFormular1d *>(&QF_GaussLegendre2));
- Global.New("qf3pE",CConstant<const QuadratureFormular1d *>(&QF_GaussLegendre3));
- Global.New("qf4pE",CConstant<const QuadratureFormular1d *>(&QF_GaussLegendre4));
- Global.New("qf5pE",CConstant<const QuadratureFormular1d *>(&QF_GaussLegendre5));
- Global.New("qf1pElump",CConstant<const QuadratureFormular1d *>(&QF_LumpP1_1D));
- 
-  Global.New("qfV1",CConstant<const GQuadratureFormular<R3>  *>(&QuadratureFormular_Tet_1));
-  Global.New("qfV2",CConstant<const GQuadratureFormular<R3>  *>(&QuadratureFormular_Tet_2));
-  Global.New("qfV5",CConstant<const GQuadratureFormular<R3>  *>(&QuadratureFormular_Tet_5));
-  Global.New("qfV1lump",CConstant<const GQuadratureFormular<R3>  *>(&QuadratureFormular_Tet_1lump));
-     
-    
- //  juste du code genere 
- 
- Global.New("wait",CConstant<bool*>(&TheWait));
- Global.New("NoUseOfWait",CConstant<bool*>(&NoWait));
- Global.New("NoGraphicWindow",CConstant<bool*>(&NoGraphicWindow));
-
- Dcl_Type<MeshPoint *>();
- Dcl_Type<finconnue *>();
- Dcl_Type<ftest *>();
- Dcl_Type<foperator *>();
- Dcl_Type<foperator *>();
- Dcl_Type<const BC_set *>();  // a set of boundary condition 
- Dcl_Type<const Call_FormLinear<v_fes> *>();    //   to set Vector
- Dcl_Type<const Call_FormBilinear<v_fes> *>();  // to set Matrix
- Dcl_Type<const Call_FormLinear<v_fes3> *>();    //   to set Vector 3d
- Dcl_Type<const Call_FormBilinear<v_fes3> *>();  // to set Matrix 3d
- Dcl_Type<interpolate_f_X_1<double>::type>();  // to make  interpolation x=f o X^1 ;
- 
- map_type[typeid(const FormBilinear*).name()] = new TypeFormBilinear;
- map_type[typeid(const FormLinear*).name()] = new TypeFormLinear;
- aType t_C_args = map_type[typeid(const C_args*).name()] = new TypeFormOperator;
- map_type[typeid(const Problem*).name()] = new TypeSolve<false,Problem>;
- map_type[typeid(const Solve*).name()] = new TypeSolve<true,Solve>;
- Dcl_Type<const IntFunction<double>*>(); 
- Dcl_Type<const IntFunction<complex<double> >*>(); 
- basicForEachType * t_solve=atype<const  Solve *>();
- basicForEachType * t_problem=atype<const  Problem *>();
- basicForEachType * t_fbilin=atype<const  FormBilinear *>();
- basicForEachType * t_flin=atype<const  FormLinear *>();
- basicForEachType * t_BC=atype<const BC_set *>();
-
- /// Doxygen doc
- basicForEachType * t_form=atype<const C_args*>();
-
-  Dcl_Type<const CDomainOfIntegration *>();
-  
- 
-
- atype<pmesh >()->AddCast( new E_F1_funcT<pmesh,pmesh*>(UnRef<pmesh >)); 
- //  in mesh3  atype<pmesh3>()->AddCast( new E_F1_funcT<pmesh3,pmesh3*>(UnRef<pmesh3 >)); 
- atype<pfes >()->AddCast(  new E_F1_funcT<pfes,pfes*>(UnRef<pfes>));
- 
- atype<pferbase>()->AddCast(  new E_F1_funcT<pferbase,pferbase>(UnRef<pferbase>));
- atype<pfecbase>()->AddCast(  new E_F1_funcT<pfecbase,pfecbase>(UnRef<pfecbase>));
- 
- Add<pfer>("[]",".",new OneOperator1<KN<double> *,pfer>(pfer2vect<R>));
- Add<pfec>("[]",".",new OneOperator1<KN<Complex> *,pfec>(pfer2vect<Complex>));
- Add<pfer>("(","",new OneTernaryOperator<Op3_pfe2K<R>,Op3_pfe2K<R>::Op> );
- Add<pfec>("(","",new OneTernaryOperator<Op3_pfe2K<Complex>,Op3_pfe2K<Complex>::Op> );
- Add<double>("(","",new OneTernaryOperator<Op3_K2R<R>,Op3_K2R<R>::Op> );
-// Add<long>("(","",new OneTernaryOperator<Op3_K2R<long>,Op3_K2R<long>::Op> ); // FH stupide 
- Add<Complex>("(","",new OneTernaryOperator<Op3_K2R<Complex>,Op3_K2R<Complex>::Op> );
- Add<pmesh *>("(","",new OneTernaryOperator<Op3_Mesh2mp,Op3_Mesh2mp::Op> );
- 
- 
- Add<MeshPoint *>("nuTriangle",".",new OneOperator1<long,MeshPoint *>(mp_nuTriangle));
- Add<MeshPoint *>("region",".",new OneOperator1<long,MeshPoint *>(mp_region));
- 
- 
- Add<pfer>("n",".",new OneOperator1<long,pfer>(pfer_nbdf<R>));
- Add<pfec>("n",".",new OneOperator1<long,pfec>(pfer_nbdf<Complex>));
- Add<pmesh*>("area",".",new OneOperator1<double,pmesh*>(pmesh_area));
- Add<pmesh*>("mesure",".",new OneOperator1<double,pmesh*>(pmesh_area));
- Add<pmesh*>("nt",".",new OneOperator1<long,pmesh*>(pmesh_nt));
- Add<pmesh*>("nbe",".",new OneOperator1<long,pmesh*>(pmesh_nbe));
-    
- Add<pmesh*>("nv",".",new OneOperator1<long,pmesh*>(pmesh_nv));
- Add<pfes*>("ndof",".",new OneOperator1<long,pfes*>(pVh_ndof));
- Add<pfes*>("nt",".",new OneOperator1<long,pfes*>(pVh_nt));
- Add<pfes*>("ndofK",".",new OneOperator1<long,pfes*>(pVh_ndofK));
- Add<pfes*>("(","", new OneTernaryOperator<pVh_ndf,pVh_ndf::Op>  );
- //new OneOperator3<long,pfes*,long,long>(pVh_ndf));
- 
- atype<Matrice_Creuse<R> * >()->AddCast(new OneOperatorCode<pb2mat<R> >);
- atype<Matrice_Creuse<Complex> * >()->AddCast(new OneOperatorCode<pb2mat<Complex> >);
-/*
-TheOperators->Add("*", 
-        new OneBinaryOperator<Op2_mulvirtAv<VirtualMatrice<R>::plusAx,Matrice_Creuse<R>*,KN<R>* > >,
-        new OneBinaryOperator<Op2_mulvirtAv<VirtualMatrice<R>::plusAtx,Matrice_Creuse_Transpose<R>,KN<R>* > >,
-        new OneBinaryOperator<Op2_mulvirtAv<VirtualMatrice<R>::solveAxeqb,Matrice_Creuse_inv<R>,KN<R>* > >     
-        );
-TheOperators->Add("^", new OneBinaryOperatorA_inv<R>());
-*/
-//   Add all Finite Element "P0","P1","P2","RT0", ... 
-  for (ListOfTFE * i=ListOfTFE::all;i;i=i->next)
-    {
-     ffassert(i->tfe); // check 
-     AddNewFE(i->name,i->tfe);
-    // Global.New(i->name, Type_Expr(atype<TypeOfFE*>(),new  EConstantTypeOfFE(i->tfe)));
-     }
-// Global.New("P1",CConstant<TypeOfFE*>(&P1Lagrange))
-// Global.New("P2",CConstant<TypeOfFE*>(&P2Lagrange));
- kTypeSolveMat=0; 
- Global.New("LU",CConstant<TypeSolveMat*>(dTypeSolveMat[kTypeSolveMat++]=new TypeSolveMat(TypeSolveMat::LU))); 
- Global.New("CG",CConstant<TypeSolveMat*>(dTypeSolveMat[kTypeSolveMat++]=new TypeSolveMat(TypeSolveMat::GC)));
- Global.New("Crout",CConstant<TypeSolveMat*>(dTypeSolveMat[kTypeSolveMat++]=new TypeSolveMat(TypeSolveMat::CROUT)));
- Global.New("Cholesky",CConstant<TypeSolveMat*>(dTypeSolveMat[kTypeSolveMat++]=new TypeSolveMat(TypeSolveMat::CHOLESKY)));
- Global.New("GMRES",CConstant<TypeSolveMat*>(dTypeSolveMat[kTypeSolveMat++]=new TypeSolveMat(TypeSolveMat::GMRES)));
- Global.New("UMFPACK",CConstant<TypeSolveMat*>(dTypeSolveMat[kTypeSolveMat++]=new TypeSolveMat(TypeSolveMat::SparseSolver)));
- Global.New("sparsesolver",CConstant<TypeSolveMat*>(dTypeSolveMat[kTypeSolveMat++]=new TypeSolveMat(TypeSolveMat::SparseSolver)));
-
- Global.New("sparsesolverSym",CConstant<TypeSolveMat*>(dTypeSolveMat[kTypeSolveMat++]=new TypeSolveMat(TypeSolveMat::SparseSolverSym)));
-
- ffassert(kTypeSolveMat<nTypeSolveMat);
- map_type[typeid(TypeSolveMat*).name()]->AddCast(new E_F1_funcT<TypeSolveMat*,long>(Long2TypeSolveMat) );    
- map_type[typeid(long).name()]->AddCast(  new E_F1_funcT<long,TypeSolveMat*>(TypeSolveMat2Long) );                                     
-    
-//  init pmesh  
-/*
-
- Add<pmesh*>("<-","(",
-             new OneOperator1_<pmesh,string*>(ReadMesh),
-             new OneOperator3_<long,pmesh*,double,double,
-                      E_F_stackF0F0F0_<long,pmesh*,double,double> >(& FindTxy )
-
- );
-
- Add<pmesh3*>("<-","(",
-             new OneOperator1_<pmesh3,string*>(ReadMesh3)
- );
-*/
-/*TheOperators->Add("<-",);
-
- );*/
- 
-//old --   
-//  init FESpace 
- TheOperators->Add("<-",
-		   new OneOperator2_<pfes*,pfes*,pmesh* >(& MakePtr2 ),
-		   // new OneOperator2_<pfes*,pfes*,pmesh3* >(& MakePtr3 ),
-		   //    new OneOperator3_<pfes*,pfes*,pmesh*,long >(& MakePtr2 ),
-		   //    new OneOperator3_<pfes*,pfes*,pmesh*,TypeOfFE* >(& MakePtr2 ),
-		   new OneOperatorCode<OP_MakePtr2>,
-		   new OneOperatorCode<OP_MakePtr3>,
-		   new OpMake_pfes<pfes,Mesh,TypeOfFE,pfes_tefk>,
-		   new OpMake_pfes<pfes3,Mesh3,TypeOfFE3,pfes3_tefk>
-        );
-    TheOperators->Add("=",new OneOperator2<R3*,R3*,R3* >(&set_eqp));
- 
- Add<MeshPoint*>("P",".", new OneOperator_Ptr_o_R<R3,MeshPoint>(  & MeshPoint::P));
- Add<MeshPoint*>("N",".", new OneOperator_Ptr_o_R<R3,MeshPoint>(  & MeshPoint::N));
- Add<R3*>("x",".", new OneOperator_Ptr_o_R<R,R3>(  & R3::x));
- Add<R3*>("y",".", new OneOperator_Ptr_o_R<R,R3>(  & R3::y));
- Add<R3*>("z",".", new OneOperator_Ptr_o_R<R,R3>(  & R3::z));
- Add<R2*>("x",".", new OneOperator_Ptr_o_R<R,R2>(  & R2::x));
- Add<R2*>("y",".", new OneOperator_Ptr_o_R<R,R2>(  & R2::y));
- 
- Add<pmesh>("[","",new OneOperator2_<lgElement,pmesh,long>(get_element));
-    
- Add<pmesh*>("be",".",new OneOperator1_<lgBoundaryEdge::BE,pmesh*>(Build));
- Add<lgElement>("adj",".",new OneOperator1_<lgElement::Adj,lgElement>(Build));
- Add<lgBoundaryEdge::BE>("(","",new OneOperator2_<lgBoundaryEdge,lgBoundaryEdge::BE,long>(get_belement));
- Add<lgElement::Adj>("(","",new OneOperator2_<lgElement,lgElement::Adj,long*>(get_adj));
- TheOperators->Add("==", new OneBinaryOperator<Op2_eq<lgElement,lgElement> >);
- TheOperators->Add("!=", new OneBinaryOperator<Op2_ne<lgElement,lgElement> >);
- TheOperators->Add("<", new OneBinaryOperator<Op2_lt<lgElement,lgElement> >);
- TheOperators->Add("<=", new OneBinaryOperator<Op2_le<lgElement,lgElement> >);
-		      
-    
- Add<pmesh*>("[","",new OneOperator2_<lgElement,pmesh*,long>(get_element));
- Add<pmesh>("(","",new OneOperator2_<lgVertex,pmesh,long>(get_vertex));
- Add<pmesh*>("(","",new OneOperator2_<lgVertex,pmesh*,long>(get_vertex));
-
- Add<lgElement>("[","",new OneOperator2_<lgVertex,lgElement,long>(get_element));
- Add<lgBoundaryEdge>("[","",new OneOperator2_<lgVertex,lgBoundaryEdge,long>(get_belement));
-
- Add<lgVertex>("x",".",new OneOperator1_<R,lgVertex>(getx));
- Add<lgVertex>("y",".",new OneOperator1_<R,lgVertex>(gety));
- Add<lgVertex>("label",".",new OneOperator1_<long,lgVertex>(getlab));
- Add<lgElement>("label",".",new OneOperator1_<long,lgElement>(getlab));
- Add<lgElement>("region",".",new OneOperator1_<long,lgElement>(getlab));
- Add<lgElement>("area",".",new OneOperator1_<double,lgElement>(getarea));
- Add<lgElement>("mesure",".",new OneOperator1_<double,lgElement>(getarea));
- Add<lgBoundaryEdge>("length",".",new OneOperator1_<double,lgBoundaryEdge>(getlength));
- Add<lgBoundaryEdge>("label",".",new OneOperator1_<long,lgBoundaryEdge>(getlab));
- Add<lgBoundaryEdge>("Element",".",new OneOperator1_<lgElement,lgBoundaryEdge>(getElement));
- Add<lgBoundaryEdge>("whoinElement",".",new OneOperator1_<long,lgBoundaryEdge>(EdgeElement));
- 
- 
- // New FF language types. zzzfff is defined at [[file:lex.hpp::zzzfff]] as a pointer to an object of class mylex
- // [[file:lex.hpp::class mylex]]. zzzfff->Add() is at [[file:lex.cpp::void mylex Add Key k aType t]]. The lexer will
- // then be called from the parser via [[file:../lglib/lg.ypp::yylex]]
-
- zzzfff->Add("R3",atype<R3*>());
-
- // <<mesh_keyword>> pmesh is a pointer to Mesh [[file:../femlib/fem.hpp::class Mesh]] defined at
- // [[file:lgfem.hpp::typedef Mesh pmesh]]
-
- zzzfff->Add("mesh",atype<pmesh*>());
-
- // pmesh3 is a pointer to Mesh3 defined at [[file:lgfem.hpp::typedef Mesh3 pmesh3]]
-
- zzzfff->Add("mesh3",atype<pmesh3*>());
-
- zzzfff->Add("element",atype<lgElement>());
- zzzfff->Add("vertex",atype<lgVertex>());
-// zzzfff->Add("fespace",atype<pfes*>());
- zzzfff->Add("matrix",atype<Matrice_Creuse<R> *>());
- zzzfff->Add("Cmatrix",atype<Matrice_Creuse<Complex> *>()); // a voir
-
- 
-
- Global.Add("LinearCG","(",new LinearCG<R>()); // old form  with rhs (must be zer
- Global.Add("LinearGMRES","(",new LinearGMRES<R>()); // old form
- Global.Add("LinearGMRES","(",new LinearGMRES<R>(1)); // old form  without rhs
- Global.Add("AffineGMRES","(",new LinearGMRES<R>(1)); // New  better
- Global.Add("LinearCG","(",new LinearCG<R>(1)); //  without right handsize
- Global.Add("AffineCG","(",new LinearCG<R>(1)); //  without right handsize
- Global.Add("NLCG","(",new LinearCG<R>(-1)); //  without right handsize
-
- //   Global.Add("LinearCG","(",new LinearCG<Complex>()); // old form  with rhs (must be zer
- //   Global.Add("LinearGMRES","(",new LinearGMRES<Complex>()); // old form  with rhs (must be zer
- //   Global.Add("LinearGMRES","(",new LinearGMRES<Complex>(1)); // old form  without rhs 
-//    Global.Add("LinearCG","(",new LinearCG<Complex>(1)); //  without right handsize
-//    Global.Add("NLCG","(",new LinearCG<Complex>(-1)); //  without right handsize
-   
- zzzfff->AddF("varf",t_form);    //  var. form ~  <<varf>>
- zzzfff->AddF("solve",t_solve);
- zzzfff->AddF("problem",t_problem);
- 
-
- Global.Add("jump","(",new OneOperatorCode<Code_VF<Ftest,Code_Jump> >);
- Global.Add("jump","(",new OneOperatorCode<Code_VF<Finconnue,Code_Jump> >);
- Global.Add("average","(",new OneOperatorCode<Code_VF<Ftest,Code_Mean> >);
- Global.Add("average","(",new OneOperatorCode<Code_VF<Finconnue,Code_Mean> >);
- Global.Add("mean","(",new OneOperatorCode<Code_VF<Ftest,Code_Mean> >);
- Global.Add("mean","(",new OneOperatorCode<Code_VF<Finconnue,Code_Mean> >);
- Global.Add("otherside","(",new OneOperatorCode<Code_VF<Ftest,Code_OtherSide> >);
- Global.Add("otherside","(",new OneOperatorCode<Code_VF<Finconnue,Code_OtherSide> >);
-
- Global.Add("conj","(",new OneOperatorCode<CODE_conj<Finconnue> >);
- Global.Add("conj","(",new OneOperatorCode<CODE_conj<Ftest> >);
- Global.Add("conj","(",new OneOperatorCode<CODE_conj<Foperator> >);
- TheOperators->Add("\'", new OneOperatorCode<CODE_conj<Finconnue> >); 
- TheOperators->Add("\'", new OneOperatorCode<CODE_conj<Ftest> >);   
- TheOperators->Add("\'", new OneOperatorCode<CODE_conj<Foperator> >);   
-    
- Global.Add("dx","(",new OneOperatorCode<CODE_Diff<Ftest,op_dx> >);
- Global.Add("dy","(",new OneOperatorCode<CODE_Diff<Ftest,op_dy> >);
- Global.Add("dx","(",new OneOperatorCode<CODE_Diff<Finconnue,op_dx> >);
- Global.Add("dy","(",new OneOperatorCode<CODE_Diff<Finconnue,op_dy> >);
- 
- Global.Add("dxx","(",new OneOperatorCode<CODE_Diff<Ftest,op_dxx> >);
- Global.Add("dxy","(",new OneOperatorCode<CODE_Diff<Ftest,op_dxy> >);
- Global.Add("dyx","(",new OneOperatorCode<CODE_Diff<Ftest,op_dyx> >);
- Global.Add("dyy","(",new OneOperatorCode<CODE_Diff<Ftest,op_dyy> >);
- 
- Global.Add("dxx","(",new OneOperatorCode<CODE_Diff<Finconnue,op_dxx> >);
- Global.Add("dyy","(",new OneOperatorCode<CODE_Diff<Finconnue,op_dyy> >);
- Global.Add("dxy","(",new OneOperatorCode<CODE_Diff<Finconnue,op_dxy> >);
- Global.Add("dyx","(",new OneOperatorCode<CODE_Diff<Finconnue,op_dyx> >);
- 
- Global.Add("on","(",new OneOperatorCode<BC_set > );
-
- /// <<plot_keyword>> uses [[Plot]] and [[file:AFunction.hpp::OneOperatorCode]] and [[file:AFunction.hpp::Global]]
- Global.Add("plot","(",new OneOperatorCode<Plot> );
- Global.Add("convect","(",new OneOperatorCode<Convect> );
-
-
- TheOperators->Add("+",
-    new OneOperatorCode<CODE_L_Add<Foperator> > ,
-    new OneOperatorCode<CODE_L_Add<Ftest> > ,
-    new OneOperatorCode<CODE_L_Add<Finconnue> > ,
-    new OneOperatorCode<C_args>(t_C_args,t_C_args,t_C_args) // ,
-  //  new OperatorIdentity<FormBilinear>(), // add FH 13042005
-  //  new OperatorIdentity<FormLinear>()       // add FH 13042005  + int2d ( ..)
-  );
- TheOperators->Add("-",
-    new OneOperatorCode<CODE_L_Minus<Foperator> > ,
-    new OneOperatorCode<CODE_L_Minus<Ftest> > ,
-    new OneOperatorCode<CODE_L_Minus<Finconnue> >,
-    new OneOperatorCode<CODE_L_Sub<Foperator> > ,    
-    new OneOperatorCode<CODE_L_Sub<Ftest> > ,
-    new OneOperatorCode<CODE_L_Sub<Finconnue> >,
-    new OneOperatorCode<C_args_minus>(t_C_args,t_C_args,t_fbilin) ,       
-    new OneOperatorCode<C_args_minus>(t_C_args,t_C_args,t_flin) ,
-    new OneOperatorCode<Minus_Form<FormBilinear > >,
-    new OneOperatorCode<Minus_Form<FormLinear > > 
-           
-  );
-  
-  
-  atype<const C_args*>()->AddCast( 
-      new OneOperatorCode<C_args>(t_C_args,t_fbilin) ,       
-      new OneOperatorCode<C_args>(t_C_args,t_flin)  ,     
-      new OneOperatorCode<C_args>(t_C_args,t_BC)       
-    );
-    
-  atype<const C_args*>()->AddCast( 
-      new OneOperatorCode<C_args>(t_C_args,atype<DotSlash_KN_<R> >()) ,
-      new OneOperatorCode<C_args>(t_C_args,atype<KN<R>*>())  ,
-      new OneOperatorCode<C_args>(t_C_args,atype<DotStar_KN_<R> >())  ,           
-      new OneOperatorCode<C_args>(t_C_args,atype<Matrice_Creuse<R>*>()) ,
-      new OneOperatorCode<C_args>(t_C_args,atype<VirtualMatrice<R>::plusAx >()),
-      new OneOperatorCode<C_args>(t_C_args,atype<VirtualMatrice<R>::plusAtx >())   
-       
-    );         
-
-  atype<const C_args*>()->AddCast( 
-      new OneOperatorCode<C_args>(t_C_args,atype<DotSlash_KN_<Complex> >()) ,
-      new OneOperatorCode<C_args>(t_C_args,atype<KN<Complex>*>())  ,
-      new OneOperatorCode<C_args>(t_C_args,atype<DotStar_KN_<Complex> >())  ,           
-      new OneOperatorCode<C_args>(t_C_args,atype<Matrice_Creuse<Complex>*>()) ,
-      new OneOperatorCode<C_args>(t_C_args,atype<VirtualMatrice<Complex>::plusAx >()),
-      new OneOperatorCode<C_args>(t_C_args,atype<VirtualMatrice<Complex>::plusAtx >())   
-       
-    );         
-    
- TheOperators->Add("*",  
-    new OneOperatorCode<CODE_L_Mul<Foperator,Ftest,Finconnue> > ,
-    new OneOperatorCode<CODE_L_Mul<Foperator,Finconnue,Ftest> > );
-    
-// Warning just double or complex in following operator 
-// ----------------------------------------------------    
-//   in case of  ambiguity we take the double version  
-//   case    long -> double
-//           long -> complex
- TheOperators->Add("*",      
-    new OneOperatorCode<CODE_L_MulLR<Finconnue,double>, 20> ,
-    new OneOperatorCode<CODE_L_MulLR<Foperator,double>, 20 > ,
-    new OneOperatorCode<CODE_L_MulLR<Ftest,double>, 20 > ,
-    new OneOperatorCode<CODE_L_MulRL<double,Finconnue>, 20 > ,
-    new OneOperatorCode<CODE_L_MulRL<double,Foperator>, 20 > ,
-    new OneOperatorCode<CODE_L_MulRL<double,Ftest>, 20 > 
-  );
- TheOperators->Add("*",       
-    new OneOperatorCode<CODE_L_MulLR<Finconnue,Complex>, 10 > ,
-    new OneOperatorCode<CODE_L_MulLR<Foperator,Complex>, 10 > ,
-    new OneOperatorCode<CODE_L_MulLR<Ftest,Complex>, 10 > ,
-    new OneOperatorCode<CODE_L_MulRL<Complex,Finconnue>, 10 > ,
-    new OneOperatorCode<CODE_L_MulRL<Complex,Foperator>, 10 > ,
-    new OneOperatorCode<CODE_L_MulRL<Complex,Ftest>, 10 > 
-  );
-  
- TheOperators->Add("/",  
-    new OneOperatorCode<CODE_L_DivLR<Finconnue,double>, 20 > ,
-    new OneOperatorCode<CODE_L_DivLR<Foperator,double>, 20 > ,
-    new OneOperatorCode<CODE_L_DivLR<Ftest,double>, 20 > );
-
- TheOperators->Add("/",  
-    new OneOperatorCode<CODE_L_DivLR<Finconnue,Complex>, 10 > ,
-    new OneOperatorCode<CODE_L_DivLR<Foperator,Complex>, 10 > ,
-    new OneOperatorCode<CODE_L_DivLR<Ftest,Complex>, 10 > );
-    
-// Warning just double or complex in previous operator 
-// ----------------------------------------------------    
-  
-// TheOperators->Add("=",new OneOperatorCode<BC_set1<double> >);
-
-  
- TheOperators->Add("=",
-		   new OneOperator2<pmesh*,pmesh*,pmesh >(&set_eqdestroy_incr),
-		//-   new OneBinaryOperator<set_eqarray<KN<double> ,VirtualMatrice<R>::plusAx > > ,       
-		//-   new OneBinaryOperator<set_eqarray<KN<double> ,VirtualMatrice<R>::plusAtx > >  ,      
-		//-   new OneBinaryOperator<set_eqarray<KN<double> ,VirtualMatrice<R>::solveAxeqb > >  ,      
-		   
-		   new OneBinaryOperator<set_eq_array<KN_<double> ,VirtualMatrice<R>::plusAx > > ,       
-		   new OneBinaryOperator<set_eq_array<KN_<double> ,VirtualMatrice<R>::plusAtx > >  ,      
-		   new OneBinaryOperator<set_eq_array<KN_<double> ,VirtualMatrice<R>::solveAxeqb > >  ,      
-		   
-		//-   new OpArraytoLinearForm<double,v_fes>(atype< KN<double>* >(),true,false)  ,
-		   new OpArraytoLinearForm<double,v_fes>(atype< KN_<double> >(),false,false)  ,
-		   new OpMatrixtoBilinearForm<double,v_fes >);
- 
- TheOperators->Add("=",
-		 //-  new OpArraytoLinearForm<double,v_fes3>(atype< KN<double>* >(),true,false)  ,// 3d
-		   new OpArraytoLinearForm<double,v_fes3>(atype< KN_<double> >(),false,false)  ,//3d
-		   new OpMatrixtoBilinearForm<double,v_fes3 >);//3d
-
-
- TheOperators->Add("<-",
-		   new OpArraytoLinearForm<double,v_fes>(atype< KN<double>* >(),true,true) ,
-		   new OpArraytoLinearForm<Complex,v_fes>(atype< KN<Complex>* >(),true,true) , 
-		   new OpArraytoLinearForm<double,v_fes3>(atype< KN<double>* >(),true,true) , //3d
-		   new OpArraytoLinearForm<Complex,v_fes3>(atype< KN<Complex>* >(),true,true) //3d
-        
-        );
-
-
- TheOperators->Add("=",
-		   new OneBinaryOperator<set_eqarray<KN<Complex> ,VirtualMatrice<Complex>::plusAx > > ,       
-		   new OneBinaryOperator<set_eqarray<KN<Complex> ,VirtualMatrice<Complex>::plusAtx > >  ,      
-		   new OneBinaryOperator<set_eqarray<KN<Complex> ,VirtualMatrice<Complex>::solveAxeqb > >  ,  
-		   
-		   //- new OneBinaryOperator<set_eq_array<KN_<Complex> ,VirtualMatrice<Complex>::plusAx > > ,       
-		   //- new OneBinaryOperator<set_eq_array<KN_<Complex> ,VirtualMatrice<Complex>::plusAtx > >  ,      
-		   //- new OneBinaryOperator<set_eq_array<KN_<Complex> ,VirtualMatrice<Complex>::solveAxeqb > >  ,      
-		   
-		   new OpArraytoLinearForm<Complex,v_fes>(atype< KN<Complex>* >(),true,false)  ,
-		   //- new OpArraytoLinearForm<Complex,v_fes>(atype< KN_<Complex> >(),false,false)   ,
-		   new OpMatrixtoBilinearForm<Complex,v_fes >);
- 
- TheOperators->Add("=",
-		  //-  new OpArraytoLinearForm<Complex,v_fes3>(atype< KN<Complex>* >(),true,false)  , // 3d
-		   new OpArraytoLinearForm<Complex,v_fes3>(atype< KN_<Complex> >(),false,false)   , //3d
-		   new OpMatrixtoBilinearForm<Complex,v_fes3 >);// 3d
-
- // add august 2007 
- TheOperators->Add("<-",
-		   new OneBinaryOperator<init_eqarray<KN<double> ,VirtualMatrice<double>::plusAx > > ,       
-		   new OneBinaryOperator<init_eqarray<KN<double> ,VirtualMatrice<double>::plusAtx > >  ,      
-		   new OneBinaryOperator<init_eqarray<KN<double> ,VirtualMatrice<double>::solveAxeqb > >  ,  
-		   
-		   new OneBinaryOperator<init_eqarray<KN<Complex> ,VirtualMatrice<Complex>::plusAx > > ,
-		   new OneBinaryOperator<init_eqarray<KN<Complex> ,VirtualMatrice<Complex>::plusAtx > >  ,      
-		   new OneBinaryOperator<init_eqarray<KN<Complex> ,VirtualMatrice<Complex>::solveAxeqb > >    
-		   
-		);
- 
-     
- TheOperators->Add("+=",
-		 //-   new OneBinaryOperator<set_eqarray_add<KN<double> ,VirtualMatrice<R>::plusAx > > ,       
-		  //-  new OneBinaryOperator<set_eqarray_add<KN<double> ,VirtualMatrice<R>::plusAtx > > ,
-		   
-		   new OneBinaryOperator<set_eq_array_add<KN_<double> ,VirtualMatrice<double>::plusAx > > ,       
-		   new OneBinaryOperator<set_eq_array_add<KN_<double> ,VirtualMatrice<double>::plusAtx > >,        
-		   
-		 //-   new OpArraytoLinearForm<double,v_fes>(atype< KN<double>* >(),true,false,false)  ,
-		   new OpArraytoLinearForm<double,v_fes>(atype< KN_<double> >(),false,false,false)  , 
-		 //-   new OpArraytoLinearForm<double,v_fes3>(atype< KN<double>* >(),true,false,false)  , // 3d
-		   new OpArraytoLinearForm<double,v_fes3>(atype< KN_<double> >(),false,false,false)   // 3d
-		   
-       );
-
- TheOperators->Add("+=",
-		  //-  new OneBinaryOperator<set_eqarray_add<KN<Complex> ,VirtualMatrice<Complex>::plusAx > > ,       
-		  //-  new OneBinaryOperator<set_eqarray_add<KN<Complex> ,VirtualMatrice<Complex>::plusAtx > > ,       
-		   
-		   new OneBinaryOperator<set_eq_array_add<KN_<Complex> ,VirtualMatrice<Complex>::plusAx > > ,       
-		   new OneBinaryOperator<set_eq_array_add<KN_<Complex> ,VirtualMatrice<Complex>::plusAtx > >,
-		   
-		  //-  new OpArraytoLinearForm<Complex,v_fes>(atype< KN<Complex>* >(),true,false,false)  ,
-		   new OpArraytoLinearForm<Complex,v_fes>(atype< KN_<Complex> >(),false,false,false)  , 
-
-		  //-  new OpArraytoLinearForm<Complex,v_fes3>(atype< KN<Complex>* >(),true,false,false)  ,
-		   new OpArraytoLinearForm<Complex,v_fes3>(atype< KN_<Complex> >(),false,false,false)   
-              
-       );
-
-
-       
- TheOperators->Add("<-",new OpMatrixtoBilinearForm<double,v_fes >(1) );
- TheOperators->Add("<-",new OpMatrixtoBilinearForm<Complex,v_fes >(1) );
-
- TheOperators->Add("<-",new OpMatrixtoBilinearForm<double,v_fes3 >(1) ); // 3d
- TheOperators->Add("<-",new OpMatrixtoBilinearForm<Complex,v_fes3 >(1) );// 3d
-       
- Add<const  FormLinear   *>("(","",new OpCall_FormLinear<FormLinear,v_fes> );
- Add<const  FormBilinear *>("(","",new OpCall_FormBilinear<FormBilinear,v_fes> );
- Add<const  FormBilinear *>("(","",new OpCall_FormLinear2<FormBilinear,v_fes> );
- Add<const C_args*>("(","",new OpCall_FormLinear2<C_args,v_fes>);
- Add<const C_args*>("(","",new OpCall_FormBilinear<C_args,v_fes> );
-
- Add<const  FormLinear   *>("(","",new OpCall_FormLinear<FormLinear,v_fes3> );
- Add<const  FormBilinear *>("(","",new OpCall_FormBilinear<FormBilinear,v_fes3> );
- Add<const  FormBilinear *>("(","",new OpCall_FormLinear2<FormBilinear,v_fes3> );
- Add<const C_args*>("(","",new OpCall_FormLinear2<C_args,v_fes3>);
- Add<const C_args*>("(","",new OpCall_FormBilinear<C_args,v_fes3> );
-
-//  correction du bug morale 
-//  Attention il y a moralement un bug
-//  les initialisation   x = y   ( passe par l'operateur binaire <-  dans TheOperators
-//   les initialisation   x(y)   ( passe par l'operateur unaire <-  de typedebase de x (inutile 2007).
-//  x(y1,..,yn) est un operator n+1   (x,y1,..,yn)
-// on passe toujours par x(y) maintenant.
-//   -------
-       
-       
- TheOperators->Add("<-",
-       new OneOperator2_<pferbase*,pferbase*,pfes* >(MakePtrFE2),
-       new OneOperator3_<pferbasearray*,pferbasearray*,pfes*,long >(MakePtrFE3),  
-
-
-       new OneOperator2_<pfecbase*,pfecbase*,pfes* >(MakePtrFE2),
-       new OneOperator3_<pfecbasearray*,pfecbasearray*,pfes*,long >(MakePtrFE3) //,
-     //  new OneOperator2_<pmesharray*,pmesharray*,long >(MakePtr)
-       
-       
-       );
- TheOperators->Add("<-",
-       new OneOperatorMakePtrFE<double>(atype<double>()),  //  scalar case
-       new OneOperatorMakePtrFE<double>(atype<E_Array>()),  //  vect case
-       new OneOperatorMakePtrFE<Complex>(atype<Complex>()),  //  scalar complex  case
-       new OneOperatorMakePtrFE<Complex>(atype<E_Array>())  //  vect complex case
-       );
-//  interpolation   operator 
- TheOperators->Add("=",
-       new OneOperator2_<pfer,pfer,double,E_F_StackF0F0opt2<double> >(set_fe<double>) ,
-       new OneOperator2_<pfec,pfec,Complex,E_F_StackF0F0opt2<Complex> >(set_fe<Complex>) 
-       
-       ) ;     
-     //  new OneOperator2_<pferbase,pferbase,E_Array,E_F_StackF0F0 >(set_fev));
-       
-//  Attention il y a moralement un bug
-//  les initialisation   x = y   ( passe par l'operateur binaire <-  dans TheOperators
-//   les initialisation   x(y)   ( passe par l'operateur unaire <-  de typedebase de x
-//   -------  corrige 
-
-     
- TheOperators->Add("=",
-       new OneOperator2<pfes*,pfes*,pfes>(&set_eqdestroy_incr),
-       new Op_CopyArray()
-       );
-       
- TheOperators->Add("<-",
-       new OneOperator2_<pfes*,pfes*,pfes>(&set_copy_incr));
- 
- TheOperators->Add("<<",
-       new OneBinaryOperator<PrintPnd<R3*>  >,
-       new OneBinaryOperator<PrintPnd<Matrice_Creuse<R>*> >,
-       new OneBinaryOperator<PrintPnd<Matrice_Creuse<Complex>*> >
-
-       );   
-
- TheOperators->Add(">>",
-		   new OneBinaryOperator<Op_Read<Matrice_Creuse<R> > >,
-		   new OneBinaryOperator<Op_Read<Matrice_Creuse<Complex> > >
-		   
-		   );   
- 
- 
- Global.Add("int2d","(",new OneOperatorCode<CDomainOfIntegration>);
- Global.Add("int1d","(",new OneOperatorCode<CDomainOfIntegrationBorder>);
- Global.Add("intalledges","(",new OneOperatorCode<CDomainOfIntegrationAllEdges>);
- Global.Add("intallVFedges","(",new OneOperatorCode<CDomainOfIntegrationVFEdges>);
- Global.Add("jump","(",new OneUnaryOperator<JumpOp<R>,JumpOp<R> >);
- Global.Add("mean","(",new OneUnaryOperator<MeanOp<R>,MeanOp<R> >);
- Global.Add("average","(",new OneUnaryOperator<MeanOp<R>,MeanOp<R> >);
- 
- Global.Add("jump","(",new OneUnaryOperator<JumpOp<Complex>,JumpOp<Complex> >);
- Global.Add("mean","(",new OneUnaryOperator<MeanOp<Complex>,MeanOp<Complex> >);
- Global.Add("average","(",new OneUnaryOperator<MeanOp<Complex>,MeanOp<Complex> >);
-
-  
- Add<const CDomainOfIntegration*>("(","",new OneOperatorCode<FormBilinear> );
- Add<const CDomainOfIntegration *>("(","",new OneOperatorCode<FormLinear> );
- 
- Add<const CDomainOfIntegration *>("(","",new OneOperatorCode<IntFunction<double> >);
- Add<const CDomainOfIntegration *>("(","",new OneOperatorCode<IntFunction<complex<double> > >);
- 
-
-
- map_type[typeid(double).name()]->AddCast(
-   new E_F1_funcT<double,pfer>(pfer2R<R,0>)
-   );
-   
- map_type[typeid(Complex).name()]->AddCast(
-   new E_F1_funcT<Complex,pfec>(pfer2R<Complex,0>)
-   );
- 
-// bof  
- Global.Add("dx","(",new E_F1_funcT<double,pfer>(pfer2R<R,op_dx>));
- Global.Add("dy","(",new E_F1_funcT<double,pfer>(pfer2R<R,op_dy>));
- Global.Add("dxx","(",new E_F1_funcT<double,pfer>(pfer2R<R,op_dxx>));
- Global.Add("dyy","(",new E_F1_funcT<double,pfer>(pfer2R<R,op_dyy>));
- Global.Add("dxy","(",new E_F1_funcT<double,pfer>(pfer2R<R,op_dxy>));
- Global.Add("dyx","(",new E_F1_funcT<double,pfer>(pfer2R<R,op_dyx>));
-
- Global.Add("dx","(",new E_F1_funcT<Complex,pfec>(pfer2R<Complex,op_dx>));
- Global.Add("dy","(",new E_F1_funcT<Complex,pfec>(pfer2R<Complex,op_dy>));
- Global.Add("dxx","(",new E_F1_funcT<Complex,pfec>(pfer2R<Complex,op_dxx>));
- Global.Add("dyy","(",new E_F1_funcT<Complex,pfec>(pfer2R<Complex,op_dyy>));
- Global.Add("dxy","(",new E_F1_funcT<Complex,pfec>(pfer2R<Complex,op_dxy>));
- Global.Add("dyx","(",new E_F1_funcT<Complex,pfec>(pfer2R<Complex,op_dyx>));
-
- 
- // Add<pferbasearray*>("[","",new OneOperator2_FEcomp<double,v_fes>(get_element)); 
-  Add<pfecbasearray*>("[","",new OneOperator2_<pfecbase*,pfecbasearray*,long>(get_element));  // use FH sep. 2009 
-  Add<pferbasearray*>("[","",new OneOperator2_<pferbase*,pferbasearray*,long>(get_element));  //  use ???? FH sep. 2009
-    // bof bof ..
-    // resize of array of Finite element ..  a little hard 2013 FH
-    Dcl_Type< Resize1<pfecbasearray* > > ();
-    Dcl_Type< Resize1<pferbasearray* > > ();
-    Dcl_Type< Resize1<pfecarray > > ();
-    Dcl_Type< Resize1<pferarray > > ();
-    Add<pfecbasearray*>("resize",".",new OneOperator1<Resize1<pfecbasearray* >,pfecbasearray*>(to_Resize1));  //  FH fev 2013
-    Add<pferbasearray*>("resize",".",new OneOperator1<Resize1<pferbasearray* >,pferbasearray*>(to_Resize1));  //   FH fev. 2013
-    Add<pferarray>("resize",".",new OneOperator1<Resize1<pferarray >,pferarray>(to_Resize1));  //  FH fev 2013
-    Add<pfecarray>("resize",".",new OneOperator1<Resize1<pfecarray >,pfecarray>(to_Resize1));  //   FH fev. 2013
-    new OneOperator2_<pferbasearray*,Resize1<pferbasearray* > , long  >(fepresize<pferbasearray*>);
-    Add<Resize1<pferbasearray* > >("(","",new  OneOperator2_<pferbasearray*,Resize1<pferbasearray* > , long  >(fepresize));
-    Add<Resize1<pfecbasearray* > >("(","",new OneOperator2_<pfecbasearray*,Resize1<pfecbasearray* > , long  >(fepresize));
-    Add<Resize1<pferarray > >("(","",new OneOperator2_<pferarray,Resize1<pferarray > , long  >(feresize));
-    Add<Resize1<pfecarray > >("(","",new OneOperator2_<pfecarray,Resize1<pfecarray > , long  >(feresize));
-
-    Dcl_Type< Resize1<pf3rbasearray* > > ();
-    Dcl_Type< Resize1<pf3rarray > > ();
-    Add<pf3rbasearray*>("resize",".",new OneOperator1<Resize1<pf3rbasearray* >,pf3rbasearray*>(to_Resize1));  //   FH fev. 2013
-    Add<pf3rarray>("resize",".",new OneOperator1<Resize1<pf3rarray >,pf3rarray>(to_Resize1));  //  FH fev 2013
-    new OneOperator2_<pf3rbasearray*,Resize1<pf3rbasearray* > , long  >(fepresize<pf3rbasearray*>);
-    Add<Resize1<pf3rbasearray* > >("(","",new  OneOperator2_<pf3rbasearray*,Resize1<pf3rbasearray* > , long  >(fepresize));
-    Add<Resize1<pf3rarray > >("(","",new OneOperator2_<pf3rarray,Resize1<pf3rarray > , long  >(feresize));
-
-// end of resize ...
-   
-  Add<pfecbasearray*>("n",".",new OneOperator1_<long,pfecbasearray*>(get_size));  //  FH fev 2013
-  Add<pferbasearray*>("n",".",new OneOperator1_<long,pferbasearray*>(get_size));  //   FH fev. 2013
-  Add<pferarray>("n",".",new OneOperator1_<long,pferarray>(get_size));  //  FH fev 2013
-  Add<pfecarray>("n",".",new OneOperator1_<long,pfecarray>(get_size));  //   FH fev. 2013
-
-  Add<pf3rbasearray*>("n",".",new OneOperator1_<long,pf3rbasearray*>(get_size));  //   FH fev. 2013
-  Add<pf3rarray>("n",".",new OneOperator1_<long,pf3rarray>(get_size));  //  FH fev 2013
-    
-    
-  Add<pferarray>("[","",new OneOperator2_FE_get_elmnt<double,v_fes>());// new version FH sep 2009
-  Add<pfecarray>("[","",new OneOperator2_FE_get_elmnt<Complex,v_fes>());
-   
-  Add<pf3rarray>("[","",new OneOperator2_FE_get_elmnt<double,v_fes>());// new version FH sep 2009
-
-//    Add<pferarray>("[","",new OneOperator2_<pfer,pferarray,long>(get_element));
-//    Add<pfecarray>("[","",new OneOperator2_<pfec,pfecarray,long>(get_element));
-  
- // Add<pmesharray>("[","",new OneOperator2_<pmesh*,pmesharray*,long>(get_element));
-
-  TheOperators->Add("\'",       
-       new OneOperator1<Matrice_Creuse_Transpose<R>,Matrice_Creuse<R> *>(&Build<Matrice_Creuse_Transpose<R>,Matrice_Creuse<R> *>),
-       new OneOperator1<Matrice_Creuse_Transpose<Complex>,Matrice_Creuse<Complex> *>(&Build<Matrice_Creuse_Transpose<Complex>,Matrice_Creuse<Complex> *>)
-  );
-  
- Add<pfer>("(","",new interpolate_f_X_1<R> ); 
-  TheOperators->Add("=", new OneOperator2_<void,interpolate_f_X_1<R>::type,double,E_F_StackF0F0 >(set_feoX_1) ) ; 
-// init_lgmesh() ;
-  init_lgmat();
-  init_mesh_array();
-
- l2interpreter = new LinkToInterpreter;
- using namespace FreeFempp; 
- FreeFempp::TypeVarForm<double>::Global = new TypeVarForm<double>();       
- FreeFempp::TypeVarForm<Complex>::Global = new TypeVarForm<Complex>();       
-    
- 
- Global.New("P13d",CConstantTFE3(&DataFE<Mesh3>::P1));   
- Global.New("P23d",CConstantTFE3(&DataFE<Mesh3>::P2));   
- Global.New("P03d",CConstantTFE3(&DataFE<Mesh3>::P0)); 
- Global.New("RT03d",CConstantTFE3(&RT03d));   
- Global.New("Edge03d",CConstantTFE3(&Edge03d));   
- Global.New("P1b3d",CConstantTFE3(&P1bLagrange3d));   
-    /*
-     for (ListOfTFE * i=ListOfTFE::all;i;i=i->next)
-     {
-     ffassert(i->tfe); // check 
-     AddNewFE(i->name,i->tfe);
-     // Global.New(i->name, Type_Expr(atype<TypeOfFE*>(),new  EConstantTypeOfFE(i->tfe)));
-     }
-     
-     */
-  TEF2dto3d[FindFE2("P1")]=&DataFE<Mesh3>::P1;
-  TEF2dto3d[FindFE2("P2")]=&DataFE<Mesh3>::P2;
-  TEF2dto3d[FindFE2("P0")]=&DataFE<Mesh3>::P0;
-  TEF2dto3d[FindFE2("P1b")]=&P1bLagrange3d;
-  TEF2dto3d[FindFE2("RT0")]=&RT03d;
- /*
-// add may 2011 F. HEcHt   
-  //    in progress ?????  to set varaible to store FinitELEMEnt type.  
-    zzzfff->Add("FiniteElement",atype<TypeOfFE*>());
-    zzzfff->Add("FiniteElement3",atype<TypeOfFE3*>());
-
-    TheOperators->Add("=",new OneOperator2<TypeOfFE*,TypeOfFE*,TypeOfFE*>(&setFE<1>) );    
-    TheOperators->Add("<-",new OneOperator2_<pfes*,pfes*,pfes>(&setFE<0>));
-  
-  */
-}
-
-/*   in progress ?????  to set varaible to store FinitELEMEnt type.  
-template<int init>
-TypeOfFE* setFE(TypeOfFE* a,TypeOfFE* b) 
-{
-    if(init) 
-    return a;    
-}
-*/
-void clean_lgfem()
-{
-  for (int i=0;i<kTypeSolveMat;++i)
-    delete dTypeSolveMat[i];
-   
-  delete l2interpreter;
-  delete  FreeFempp::TypeVarForm<double>::Global;
-  delete  FreeFempp::TypeVarForm<Complex>::Global;
-}
-template<class K,class v_fes>
-Expression IsFEcomp(const C_F0 &c,int i, Expression & rrr,Expression &iii)
-{
-    Expression r=0;
-    if(!i) rrr=0,iii=0;
-    //  typedef double K;
-    if(atype<typename E_FEcomp<K,v_fes>::Result>() == c.left())
-      {
-	  const E_FEcomp<K,v_fes> * e= dynamic_cast<const E_FEcomp<K,v_fes>*>(c.LeftValue() );
-	  if( !e) 	
-	    { 
-		const E_FEcomp_get_elmnt_array<K,v_fes> * ee= dynamic_cast<const E_FEcomp_get_elmnt_array<K,v_fes>*>(c.LeftValue() );
-		
-		if( !ee) 	
-		  { 
-		      cerr <<" Fatal error Copy array .." << *c.left()<< " composante : " << i << endl;
-		      ffassert(ee);
-		  }
-		else 
-		  { 
-		      if (ee->comp ==i) {
-			  if (i && ee->a00->a0 != rrr) cerr << " error composante arry vect. incompatible " << ee->comp << " "<< ee->a00->a0 << " != " << rrr << endl;
-			  else {
-			   r= ee->a0;
-			    rrr= ee->a00->a0;
-			    iii= ee->a1;
-			  }
-			 
-		      }
-		      else cerr << " erreur composante " << ee->comp << " != " << i << endl; 
-		    
-			
-		  }
-	    } 
-	  else 
-	    {
-	    	
-		if (e->comp ==i) {
-		      if (i && e->a0 != rrr) cerr << " error composante incompatible " << e->comp  << endl;
-		      else  rrr=r=e->a0;
-		}
-	      else cerr << " erreur composante " << e->comp << " != " << endl;		
-	  }
-      }
-    return r;
-}
-
-/*
-Expression IsCFEcomp(const C_F0 &c,int i)
-{
-  typedef Complex K;
-  if(atype<E_FEcomp<K,v_fes>::Result>() == c.left())
-   {
-     const E_FEcomp<K,v_fes> * e= dynamic_cast<const E_FEcomp<K,v_fes>*>(c.LeftValue() );
-     ffassert(e);
-     if (e->comp !=i) return 0;
-     else return e->a0;
-   }
-  else return 0;
-}
-*/
-
-template<class K,class v_fes>
-Expression Op_CopyArrayT(const E_Array & a,const E_Array & b)
-{
-    typedef FEbaseArray<K,v_fes>  FEba;
-
-    //int na=a.size();
-    int nb=b.size();
-    Expression r=0,rr=0,rrr,iii;
-    //  try real voctor value FE interpolation 
-    rr=IsFEcomp<K,v_fes>(a[0],0,rrr,iii) ;
-    if (rr !=0) 
-      {
-          for (int i=1;i<nb;i++)
-	      if (!IsFEcomp<K,v_fes>(a[i],i,rrr,iii))  
-		  CompileError("Copy of Array with incompatible K  vector value FE function () !");;
-	  if(iii) {// ffassert(0); //  moralement il : rrr[iii]
-	      C_F0 aa(rrr,atype<FEba**>()),ii(iii,atype<long>());
-	      C_F0 aa_ii(aa,"[",ii);
-	      rr=aa_ii.LeftValue();
-	  }
-	  if(v_fes::d==2) r=new E_set_fev<K>(&b,rr,2);
-	  else if(v_fes::d==3) r=new  E_set_fev3<K,v_fes3>(&b,rr);
-      }
-    //  try complex vector value FE interpolation 
-    return r;
-}
- 
- E_F0 * Op_CopyArray::code(const basicAC_F0 & args) const  {
-       E_F0 * ret=0;
-      const E_Array & a= *dynamic_cast<const E_Array*>(args[0].LeftValue());
-      const E_Array & b= *dynamic_cast<const E_Array*>(args[1].LeftValue());
-      int na=a.size();
-      int nb=b.size();
-      if (na != nb ) 
-        CompileError("Copy of Array with incompatible size!");
-      if(0)
-	{ // old code !!!!!!! before removing FH sept. 2009 
-       Expression rr=0,rrr,iii;
-       //  try real voctor value FE interpolation 
-       rr=IsFEcomp<double,v_fes>(a[0],0,rrr,iii) ;
-       if (rr !=0) 
-        {
-          for (int i=1;i<nb;i++)
-	    if (!IsFEcomp<double,v_fes>(a[i],i,rrr,iii))  
-                CompileError("Copy of Array with incompatible real vector value FE function () !");;           
-	  return  new E_set_fev<double>(&b,rr,2);
-         }
-       //  try complex vector value FE interpolation 
-
-       rr=IsFEcomp<Complex,v_fes>(a[0],0,rrr,iii) ;
-       if (rr !=0) 
-        {
-          for (int i=1;i<nb;i++)
-	    if (!IsFEcomp<Complex,v_fes>(a[i],i,rrr,iii))  
-	      CompileError("Copy of Array with incompatible complex vector value FE function () !");;           
-	  return  new E_set_fev<Complex>(&b,rr,2);
-	}
-       
-       rr=IsFEcomp<double,v_fes3>(a[0],0,rrr,iii) ;
-       if (rr !=0) 
-        {
-          for (int i=1;i<nb;i++)
-	    if (!IsFEcomp<double,v_fes3>(a[i],i,rrr,iii))  
-                CompileError("Copy of Array with incompatible real vector value FE function () !");;           
-	  return  new E_set_fev3<double,v_fes3>(&b,rr);
-         }
-       //  try complex vector value FE interpolation 
-
-       rr=IsFEcomp<Complex,v_fes3>(a[0],0,rrr,iii) ;
-       if (rr !=0) 
-        {
-          for (int i=1;i<nb;i++)
-	    if (!IsFEcomp<Complex,v_fes3>(a[i],i,rrr,iii))  
-                CompileError("Copy of Array with incompatible complex vector value FE function () !");;           
-	  return  new E_set_fev3<Complex,v_fes3>(&b,rr);
-         }
-	}
-       else
-	 {  Expression r=0; // new code FH sep 2009.
-	     if(!r)  r=Op_CopyArrayT<double,v_fes>(a,b);
-	     if(!r)  r=Op_CopyArrayT<Complex,v_fes>(a,b);
-	     if(!r)  r=Op_CopyArrayT<double,v_fes3>(a,b);
-	     if(!r)  r=Op_CopyArrayT<Complex,v_fes3>(a,b);
-	     if(r) return r;
-	 }
-        CompileError("Internal Error: General Copy of Array : to do ");
-      return ret;}
-
-template<class v_fes,int DIM>
-C_F0 NewFEvariableT(ListOfId * pids,Block *currentblock,C_F0 & fespacetype,CC_F0 init,bool cplx,int dim)
-{
-  ffassert(dim==DIM);
-  //   if (cplx)
-//   cout << "NewFEvariable  cplx=" << cplx << endl;
-  typedef FEbase<double,v_fes> FE;
-  typedef E_FEcomp<R,v_fes> FEi;
-  typedef typename FEi::Result FEiR;
-  
-  typedef FEbase<Complex,v_fes> CFE;
-  typedef E_FEcomp<Complex,v_fes> CFEi;
-  typedef typename  CFEi::Result CFEiR;
-  
-  Expression fes =fespacetype;
-  
-  aType dcltype=atype<FE **>();
-  aType cf0type=atype<C_F0>();
-  aType rtype=atype<FEiR>();
-  
-  if(cplx)
-    {
-      dcltype=atype<CFE **>();
-      rtype=atype<CFEiR>();
-      
-    }
-  ffassert(pids);
-  ListOfId &ids(*pids);
-  
-  string str("[");
-  
-  const int n=ids.size();
-  ffassert(n>0);
-  if ( fes->nbitem() != (size_t) n) {
-    cerr << " the array size must be " << fes->nbitem()  << " not " <<  n << endl;
-    CompileError("Invalide array size  for  vectorial fespace function");
-  }
-  for (int i=0;i<n;i++)
-    { 
-      str += ids[i].id;
-      if(i<n-1) str +=",";
-    }
-  str += "]";
-     bool binit= !init.Empty(); 
-     char * name = strcpy(CodeAllocT<char>::New(str.size()+1),str.c_str());
-     C_F0 ret; 
-     // modif  100109 (add Block::  before NewVar for g++ 3.3.3 on Suse 9)
-    ret= binit ? currentblock->Block::NewVar<LocalVariable>(name,dcltype,basicAC_F0_wa(fespacetype,init)) 
-      : currentblock->Block::NewVar<LocalVariable>(name,dcltype,basicAC_F0_wa(fespacetype));
-     C_F0 base = currentblock->Find(name);
-     if (cplx)
-       for (int i=0;i<n;i++) 
-         currentblock->NewID(cf0type,ids[i].id, C_F0(new CFEi(base,i,n), rtype) ); 
-     else
-       for (int i=0;i<n;i++) 
-         currentblock->NewID(cf0type,ids[i].id, C_F0(new FEi(base,i,n), rtype) ); 
-     delete pids; // add FH 25032005 
-     
-      return ret ; 
-}
-
-
-C_F0 NewFEvariable(ListOfId * pids,Block *currentblock,C_F0 & fespacetype,CC_F0 init,bool cplx,int dim)
-{
-  if(dim==2)
-    return NewFEvariableT<v_fes,2>(pids,currentblock,fespacetype,init,cplx,dim);
-  else if  (dim==3) 
-    return NewFEvariableT<v_fes3,3>(pids,currentblock,fespacetype,init,cplx,dim);
-  else
-    CompileError("Invalide fespace on Rd  ( d != 2 or 3) ");
-    return C_F0();
-}
-C_F0 NewFEvariable(const char * id,Block *currentblock,C_F0 & fespacetype,CC_F0 init,bool cplx,int dim)
-{
-  ListOfId * lid =new ListOfId;
-  lid->push_back(UnId(id));
-  return NewFEvariable(lid,currentblock,fespacetype,init,cplx,dim);
-}
-
-
-size_t dimFESpaceImage(const basicAC_F0 &args) 
-{
-  //aType t_m2= atype<pmesh*>();
-  // aType t_m3= atype<pmesh3*>();
-  aType t_tfe= atype<TypeOfFE*>();
-  aType t_tfe3= atype<TypeOfFE3*>();
-  aType t_a= atype<E_Array>();
-  size_t dim23=0; 
-  
-  for (int i=0;i<args.size();i++)
-    if (args[i].left() == t_tfe || args[i].left() == t_tfe3 )
-      dim23 += args[i].LeftValue()->nbitem();
-    else if (args[i].left() == t_a)
-      {
-	const E_Array & ea= *dynamic_cast<const E_Array *>(args[i].LeftValue());
-	ffassert(&ea);
-	for (int i=0;i<ea.size();i++)
-	  if (ea[i].left() == t_tfe || ea[i].left() == t_tfe3)
-            dim23 += ea[i].nbitem();
-	  else ffassert(0); // bug 
-      }
-  dim23 = dim23 ? dim23 : 1;
-  // cout << "dimFESpaceImage:  FESpace in R^"<< dim << endl;
-  return dim23;
-}
-
-aType  typeFESpace(const basicAC_F0 &args) 
-{
-  
-  aType t_m2= atype<pmesh*>();
-  aType t_m3= atype<pmesh3*>();
-  aType t_tfe= atype<TypeOfFE*>();
-  aType t_tfe3= atype<TypeOfFE3*>();
-  //aType t_a= atype<E_Array>();
-  size_t d=0;
-    // 20 avril 2009 add brak 
-  for (int i=0;i<args.size();i++)
-    
-    if (args[i].left() == t_tfe || args[i].left() == t_m2)
-      {   ffassert(d==0 || d==2) ;d=2;break;}
-    else if (args[i].left() == t_tfe3 || args[i].left() == t_m3)
-      {   ffassert(d==0 || d==3) ;d=3;break;}
-  
-  if(!(d == 2 || d == 3))
-    {
-      cerr << " bug " << d << " != 2 ror 3 \n";
-      ffassert(0);
-    }
- //  cout<< " d= " << d << endl;
-  return d == 2 ? atype<pfes *>() : atype<pfes3 *>();
-}
-
-
-template<class v_fes,int DIM>   
-C_F0 NewFEarrayT(ListOfId * pids,Block *currentblock,C_F0 & fespacetype,CC_F0 sizeofarray,bool cplx,int dim)
-{
-  ffassert(dim==DIM);
-  // ffassert(!cplx);
-  typedef FEbaseArray<double,v_fes>  FE;
-  typedef  E_FEcomp<R,v_fes,FE > FEi;
-   typedef typename FEi::Result FEiR;
-
-   typedef FEbaseArray<Complex,v_fes>  CFE;
-   typedef  E_FEcomp<Complex,v_fes,CFE > CFEi;
-   typedef typename CFEi::Result CFEiR;
-   
-   Expression fes =fespacetype;
-    aType dcltype=atype<FE **>();
-    aType cf0type=atype<C_F0>();
-    aType rtype=atype<FEiR>();
-    ffassert(pids);
-    ListOfId &ids(*pids);
-    if(cplx)
-      {
-        dcltype=atype<CFE **>();
-        rtype=atype<CFEiR>();
-        
-      }
-    
-    string str("[");
-    
-    const int n=ids.size();
-     ffassert(n>0);
-   if ( fes->nbitem() != (size_t) n) {
-      cerr << " the array size must be " << fes->nbitem()  << " not " <<  n << endl;
-      CompileError("Invalid array size  for  vectorial fespace function");
-   }
-   for (int i=0;i<n;i++)
-    { 
-     str += ids[i].id;
-     if(i<n-1) str +=",";
-    }
-     str += "]";
-     char * name = strcpy(CodeAllocT<char>::New(str.size()+1),str.c_str());
-     C_F0 ret=  currentblock->Block::NewVar<LocalVariable>(name,dcltype,basicAC_F0_wa(fespacetype,sizeofarray)); 
-     C_F0 base = currentblock->Find(name);
-     if(cplx)
-      for (int i=0;i<n;i++) 
-         currentblock->NewID(cf0type,ids[i].id, C_F0(new CFEi(base,i,n), rtype) ); 
-     else
-      for (int i=0;i<n;i++) 
-         currentblock->NewID(cf0type,ids[i].id, C_F0(new FEi(base,i,n), rtype) );
-         
-     delete pids ; // add FH 25032005 
-      return ret ; 
-
-}
-
-   
-C_F0 NewFEarray(ListOfId * pids,Block *currentblock,C_F0 & fespacetype,CC_F0 sizeofarray,bool cplx,int dim)
-{
-  if(dim==2)
-    return NewFEarrayT<v_fes,2>(pids,currentblock,fespacetype,sizeofarray,cplx,dim);
-  else if  (dim==3) 
-    return NewFEarrayT<v_fes3,3>(pids,currentblock,fespacetype,sizeofarray,cplx,dim);
-  else
-    CompileError("Invalid vectorial fespace on Rd  ( d != 2 or 3) ");
-    return C_F0();
-}
-C_F0 NewFEarray(const char * id,Block *currentblock,C_F0 & fespacetype,CC_F0 sizeofarray,bool cplx,int dim)
-{ 
-  ListOfId *lid= new ListOfId;
-  lid->push_back(UnId(id));
-  return NewFEarray(lid,currentblock,fespacetype,sizeofarray,cplx,dim);
-}
-
-namespace Fem2D {
-void  Expandsetoflab(Stack stack,const BC_set & bc,set<long> & setoflab)
-{
-    for (size_t i=0;i<bc.on.size();i++)
-        if(bc.onis[i] ==0)
-	    {
-            long  lab  = GetAny<long>( (*bc.on[i])(stack));
-            setoflab.insert(lab);
-            if ( verbosity>99) cout << lab << " ";
-            
-	    }
-        else 
-	    {
-            KN<long>  labs( GetAny<KN_<long> >( (*bc.on[i])(stack)));
-            for (long j=0; j<labs.N(); ++j) {	      
-                setoflab.insert(labs[j]);
-                if ( verbosity>99) cout << labs[j] << " ";
-            }	  
-            
-	    }
-    if(verbosity>99) 
-        cout << endl;
-    
-}
-
-void  Expandsetoflab(Stack stack,const CDomainOfIntegration & di,set<int> & setoflab,bool &all)
-{
-    for (size_t i=0;i<di.what.size();i++)
-        if(di.whatis[i] ==0)
-	    {
-            long  lab  = GetAny<long>( (*di.what[i])(stack));
-            setoflab.insert(lab);
-            if ( verbosity>3) cout << lab << " ";
-            all=false;
-	    }
-        else 
-	    {
-            KN<long>  labs( GetAny<KN_<long> >( (*di.what[i])(stack)));
-            for (long j=0; j<labs.N(); ++j) {	      
-                setoflab.insert(labs[j]);
-                if ( verbosity>3) cout << labs[j] << " ";
-            }	  
-            all=false;	  
-	    }
-    
-}
-}
-
-
-#include "InitFunct.hpp"
-
-
-static addingInitFunct TheaddingInitFunct(-20,init_lgfem);
diff --git a/src/fflib/lgmat.cpp.orig b/src/fflib/lgmat.cpp.orig
deleted file mode 100644
index 423cb2e..0000000
--- a/src/fflib/lgmat.cpp.orig
+++ /dev/null
@@ -1,3180 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifdef __MWERKS__
-#pragma optimization_level 0
-//#pragma inline_depth(0) 
-#endif
-/*
-#include "error.hpp"
-#include "RNM.hpp"
-#include <set>
-#include <vector>
-#include <cstdio>
-#include <cstring>
-#include <complex>
-
-#include  <cmath>
-#include  <iostream>
-using namespace std;
-#include "FESpacen.hpp"
-
-#include "AFunction.hpp"
-#include "rgraph.hpp"
-#include "MatriceCreuse_tpl.hpp"
-
-//#include "fem3.hpp"
-#include "MeshPoint.hpp"
-#include "Operator.hpp" 
-
-#include "lex.hpp"
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-*/
-#include "ff++.hpp" 
-#include "array_resize.hpp" 
-
-#include "CGNL.hpp"
-
-namespace bamg { class Triangles; }
-namespace Fem2D { void DrawIsoT(const R2 Pt[3],const R ff[3],const RN_ & Viso); }
-
-extern const basicForEachType *aatypeknlongp; //// for  compilation error with g++ 3.2.2
-#include "BamgFreeFem.hpp"
-
-
-
-// Debut FH Houston -------- avril 2004 ---------
-//  class for operator on sparse matrix 
-//   ------------------------------------
-//  pour le addition de matrice ----matrice creuse in french)
-//  MatriceCreuse    real class for matrix sparse
-//  Matrice_Creuse   class for matrix sparse +  poiteur on FE space def 
-//         to recompute matrice in case of mesh change
-//  list<triplet<R,MatriceCreuse<R> *,bool> > * is liste of 
-//  \sum_i a_i*A_i  where a_i is a scalare and A_i is a sparse matrix
-//
- 
-
-
-template<class R> 
-list<triplet<R,MatriceCreuse<R> *, bool > > * to(Matrice_Creuse<R> * M)
-{
-  list<triplet<R,MatriceCreuse<R> *,bool> >  * l=new list<triplet<R,MatriceCreuse<R> *,bool> >;
-   l ->push_back(make_triplet<R,MatriceCreuse<R> *,bool>(1,M->A,false));
-  return  l;
-}
-template<class R> 
-list<triplet<R,MatriceCreuse<R> *, bool > > * to(Matrice_Creuse_Transpose<R>  M)
-{
-  list<triplet<R,MatriceCreuse<R> *,bool> >  * l=new list<triplet<R,MatriceCreuse<R> *,bool> >;
-   l ->push_back(make_triplet<R,MatriceCreuse<R> *,bool>(1,M.A->A,true));
-  return  l;
-}
-
-template<class R>
-AnyType M2L3 (Stack , const AnyType & pp)
-{
-    return to(GetAny<Matrice_Creuse<R> *>(pp));
-}
-
-
-template<class R>
-AnyType tM2L3 (Stack , const AnyType & pp)
-{
-    return to(GetAny<Matrice_Creuse_Transpose<R> >(pp));
-}
-
-
-template<class R> 
-struct Op2_ListCM: public binary_function<R,Matrice_Creuse<R> *,list<triplet<R,MatriceCreuse<R> *,bool> > *> 
- { 
-   typedef triplet<R,MatriceCreuse<R> *,bool>  P;
-   typedef list<P> L;
-   typedef L * RR;
-   typedef R  AA;
-   typedef Matrice_Creuse<R> * BB;
-   
- static  RR f(const   AA & a,const   BB & b)  
-  {
-    RR r=  new list<P> ;
-    r ->push_back(make_triplet<R,MatriceCreuse<R> *>(a,b->A,false));
-    return r;}
-};
-
-template<class R> 
-struct Op2_ListMC: public binary_function<Matrice_Creuse<R> *,R,list<triplet<R,MatriceCreuse<R> *,bool> > *> 
- { 
-   typedef triplet<R,MatriceCreuse<R> *,bool>  P;
-   typedef list<P> L;
-   typedef L * RR;
-   typedef R  AA;
-   typedef Matrice_Creuse<R> * BB;
-   
- static  RR f(const   BB & b,const   AA & a)  
-  {
-    RR r=  new list<P> ;
-    r ->push_back(make_triplet<R,MatriceCreuse<R> *>(a,b->A,false));
-    return r;}
-};
-//  ADD FH 16/02/2007
-
-template<class R> 
-struct Op2_ListCMt: public binary_function<R,Matrice_Creuse_Transpose<R> ,list<triplet<R,MatriceCreuse<R> *,bool> > *> 
-{ 
-    typedef triplet<R,MatriceCreuse<R> *,bool>  P;
-    typedef list<P> L;
-    typedef L * RR;
-    typedef R  AA;
-    typedef Matrice_Creuse_Transpose<R>  BB;
-    
-    static  RR f(const   AA & a,const   BB & b)  
-    {
-	RR r=  new list<P> ;
-	r ->push_back(make_triplet<R,MatriceCreuse<R> *>(a,b.A->A,true));
-	return r;}
-};
-
-template<class R> 
-struct Op2_ListMtC: public binary_function<Matrice_Creuse_Transpose<R> ,R,list<triplet<R,MatriceCreuse<R> *,bool> > *> 
-{ 
-    typedef triplet<R,MatriceCreuse<R> *,bool>  P;
-    typedef list<P> L;
-    typedef L * RR;
-    typedef R  AA;
-    typedef Matrice_Creuse_Transpose<R> BB;
-    
-    static  RR f(const   BB & b,const   AA & a)  
-    {
-	RR r=  new list<P> ;
-	r ->push_back(make_triplet<R,MatriceCreuse<R> *>(a,b.A->A,true));
-	return r;}
-};
-// FIN ADD 16/02/2007
-
-
-
-template<class R> 
-struct Op1_LCMd: public unary_function<list<triplet<R,MatriceCreuse<R> *,bool> > *,
-list<triplet<R,MatriceCreuse<R> *,bool> > *  >
-{  //  - ...
-    typedef triplet<R,MatriceCreuse<R> *,bool>  P;
-    typedef list<P> L;
-    typedef L * RR;
-    
-    static   RR f(const RR & l)  
-    { 
-	typedef typename list<triplet<R,MatriceCreuse<R> *,bool> >::iterator lci;
-	for (lci i= l->begin();i !=l->end();++i)
-	    i->first *= R(-1);
-	return l;
-    }    
-    
-};
-
-template<class R> 
-struct Op2_ListCMCMadd: public binary_function<list<triplet<R,MatriceCreuse<R> *,bool> > *,
-                                               list<triplet<R,MatriceCreuse<R> *,bool> > *,
-                                               list<triplet<R,MatriceCreuse<R> *,bool> > *  >
-{  //  ... + ...
-   typedef triplet<R,MatriceCreuse<R> *,bool>  P;
-   typedef list<P> L;
-   typedef L * RR;
-
-  static   RR f(const RR & a,const RR & b)  
-  { 
-    a->insert(a->end(),b->begin(),b->end());
-      
-    delete b;
-    return a;
-  }    
-    
-};
-
-template<class R> 
-struct Op2_ListMCMadd: public binary_function<Matrice_Creuse<R> *,
-                                              list<triplet<R,MatriceCreuse<R> *,bool> > *,                                               
-                                               list<triplet<R,MatriceCreuse<R> *,bool> > *  >
-{  //  M + ....
-   typedef triplet<R,MatriceCreuse<R> *,bool> P;
-   typedef list<P> L;
-   typedef L * RR;
-   typedef Matrice_Creuse<R> * MM;
-
-  static   RR f(const MM & a,const RR & b)  
-  { 
-    
-    b->push_front(make_triplet<R,MatriceCreuse<R> *>(R(1.),a->A,false));
-    return b;
-  }
-    
-    
-};
-
-template<class R> 
-struct Op2_ListCMMadd: public binary_function< list<triplet<R,MatriceCreuse<R> *,bool> > *,                                                                                              
-                                               Matrice_Creuse<R> * ,
-                                               list<triplet<R,MatriceCreuse<R> *,bool> > *>
-{  //   .... + M
-   typedef triplet<R,MatriceCreuse<R> *,bool> P;
-   typedef list<P> L;
-   typedef L * RR;
-   typedef Matrice_Creuse<R> * MM;
-
-  static   RR f(const RR & a,const MM & b)  
-  { 
-    
-    a->push_back(make_triplet<R,MatriceCreuse<R> *,bool>(R(1.),b->A,false));
-    return a;
-  }
-    
-    
-};
-
-template<class R> 
-struct Op2_ListMMadd: public binary_function< Matrice_Creuse<R> *,
-                                              Matrice_Creuse<R> * ,
-                                              list<triplet<R,MatriceCreuse<R> *,bool> > *>
-{  //  M + M
-   typedef triplet<R,MatriceCreuse<R> *,bool> P;
-   typedef list<P> L;
-   typedef L * RR;
-   typedef Matrice_Creuse<R> * MM;
-
-  static   RR f(const MM & a,const MM & b)  
-  { 
-    L * l=to(a);
-    l->push_back(make_triplet<R,MatriceCreuse<R> *>(R(1.),b->A,false));
-    return l;
-  }
-    
-    
-};
-// Fin Add FH Houston --------
-
-// for Jolivet  to build restriction  jan 2014
-// t[int] I= restrict(VCh,VGh,IPG); //  ou
-template<class pfes>
-class RestrictArray : public OneOperator { public:
-    template< typename T > struct Base { typedef  T B; };
-    template< typename T > struct Base< T* >{ typedef T B;};
-
-    typedef  typename Base<pfes>::B::FESpace FESpace;
-    typedef typename FESpace::FElement FElement;
-  //  typedef  FESpace FESpace;
-    
-    class Op : public E_F0info { public:  // passe de l'info ..
-        typedef pfes * A;
-        Expression a,b,c,d;
-        // if c = 0 => a,b FESpace
-        // if c != a FESpace et b,c KN_<double>
-        static const int n_name_param =0;
-     //   static basicAC_F0::name_and_type name_param[] ;
-        Expression nargs[n_name_param];
-        bool arg(int i,Stack stack,bool a) const{ return nargs[i] ? GetAny<bool>( (*nargs[i])(stack) ): a;}
-        long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-        KN_<long>  arg(int i,Stack stack,KN_<long> a ) const{ return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-        
-    public:
-        Op(const basicAC_F0 &  args,Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc),d(0) {
-          args.SetNameParam(n_name_param,0,nargs);
-          
-        }
-        /*
-        AnyType operator()(Stack stack)  const
-          {
-              if( verbosity>9) cout << " -- RestrictArray  "<< endl;
-              pfes * pCUh = GetAny< pfes * >((* a)(stack));
-              pfes * pFVh = GetAny<  pfes * >((* b)(stack));
-              // verif same  FE.
-              KN_<long> ncf=  GetAny<  KN_<long>  >((* c)(stack));
-              FESpace * pVCh = **pCUh;
-              FESpace * pVFh = **pFVh;
-              FESpace  VCh = *pVCh;
-              FESpace  VFh = *pVFh;
-              long neC = VCh.NbOfElements   ;
-              long neF = VFh.NbOfElements   ;
-              long ndfC = VCh.NbOfDF   ;
-              long ndfF = VFh.NbOfDF   ;
-              
-              KN_<long> nc2f= ncf;
-              
-              KN<long> *pnum=new KN<long>(ndfC);
-              KN<long> inj=*pnum;
-              inj = -1; // un set ..
-              if( verbosity>9) cout<< " ne =" << neC << " " << neF << endl;
-              
-              for(int kc=0; kc <VCh.NbOfElements; kc++)
-              {
-                  
-                  int kf = nc2f(kc);
-                  FElement KC(pVCh,kc);
-                  FElement KF(pVFh,kf);
-                  
-                  int ndofKC = KC.NbDoF() ;
-                  int ndofKF =  KF.NbDoF() ;
-                  if( verbosity>99) cout << kc << " " << kf << " : " <<ndofKC << " " << ndofKF << endl;
-                  ffassert(ndofKC== ndofKF );
-                  ffassert( kf >= 0 && kf < neF);
-                  ffassert( kc >= 0 && kc< neC);
- 
-                  for(int df=0; df<ndofKC; df++)
-                  {
-                      int dfC =KC(df), dfF=KF(df);
-                      if( verbosity>99) cout << dfC <<" ->  "<< dfF << endl;
-                      assert(dfC >= 0 && dfC < ndfC);
-                      inj[dfC] = dfF;
-                  }
-                 
-              }
-              
-              if( verbosity>9) cout << " restrict:  Inject= " << inj << endl;
-               ffassert(inj.min() != -1);
-            //Add2StackOfPtr2FreeRC(stack,pnum);
-              
-            return pnum;
-          }
-	*/
-    };
-    RestrictArray() : OneOperator(  atype<const typename RestrictArray<pfes>::Op *>(),//atype<KN<long>* >(),
-                                        atype<pfes *>(),
-                                        atype<pfes *>(),
-                                        atype<KN_<long> >()) {}
-    
-    E_F0 * code(const basicAC_F0 & args) const
-    {
-        if(args.size()!=3)CompileError("Bug in RestrictArray code nb of args !=  3 ????? bizarre" );
-      return  new Op(args,t[0]->CastTo(args[0]),
-                           t[1]->CastTo(args[1]),
-                           t[2]->CastTo(args[2]));
-    }
-};
-// end restrict ...
-template< typename T > struct Base { typedef  T B; };
-template< typename T > struct Base< T* >{ typedef T B;};
-
-template<class pfes, int INIT>
-AnyType SetRestrict(Stack stack,Expression einj,Expression erest)
-{
-    
-    typedef  typename Base<pfes>::B::FESpace FESpace;
-    typedef typename FESpace::FElement FElement;
-
-   KN<long>  * pinj =GetAny<KN<long>*>((*einj)(stack));
-   const typename RestrictArray<pfes>::Op * ar(dynamic_cast<const typename RestrictArray<pfes>::Op *>(erest));
-    ffassert(ar);
-    if( verbosity>9) cout << " -- RestrictArray  "<< endl;
-    pfes * pCUh = GetAny< pfes * >((* ar->a)(stack));
-    pfes * pFVh = GetAny<  pfes * >((* ar->b)(stack));
-    // verif same  FE.
-    KN_<long> ncf=  GetAny<  KN_<long>  >((* ar->c)(stack));
-    FESpace * pVCh = **pCUh;
-    FESpace * pVFh = **pFVh;
-    FESpace & VCh = *pVCh;
-    FESpace & VFh = *pVFh;
-    long neC = VCh.NbOfElements   ;
-    long neF = VFh.NbOfElements   ;
-    long ndfC = VCh.NbOfDF   ;
-    long ndfF = VFh.NbOfDF   ;
-    
-    KN_<long> nc2f= ncf;
-    if(INIT==0)
-        pinj->init(ndfC);
-    else pinj->resize(ndfC);
-  //  KN<long> *pnum= INIT ==0 ? new KN<long>(ndfC): pnum;
-    KN<long> & inj=*pinj;
-    inj = -1; // un set ..
-    if( verbosity>9) cout<< " ne =" << neC << " " << neF << endl;
-    
-    for(int kc=0; kc <VCh.NbOfElements; kc++)
-    {
-        
-        int kf = nc2f(kc);
-        FElement KC(pVCh,kc);
-        FElement KF(pVFh,kf);
-        
-        int ndofKC = KC.NbDoF() ;
-        int ndofKF =  KF.NbDoF() ;
-        if( verbosity>99) cout << kc << " " << kf << " : " <<ndofKC << " " << ndofKF << endl;
-        ffassert(ndofKC== ndofKF );
-        ffassert( kf >= 0 && kf < neF);
-        ffassert( kc >= 0 && kc< neC);
-        
-        for(int df=0; df<ndofKC; df++)
-        {
-            int dfC =KC(df), dfF=KF(df);
-            if( verbosity>99) cout << dfC <<" ->  "<< dfF << endl;
-            assert(dfC >= 0 && dfC < ndfC);
-            inj[dfC] = dfF;
-        }
-        
-    }
-    if( verbosity>9) cout << " restrict:  Inject= " << inj << endl;
-    ffassert(inj.min() != -1);
-   
-  return pinj;
-}
-
-// Fin Add FH Houston --------
-template<class pfes>
-class MatrixInterpolation : public OneOperator { public:
-
-    class Op : public E_F0info { public:
-       typedef pfes * A;
-       Expression a,b,c,d;
-       // if c = 0 => a,b FESpace
-       // if c != a FESpace et b,c KN_<double>
-       static const int n_name_param =5;
-       static basicAC_F0::name_and_type name_param[] ;
-        Expression nargs[n_name_param];
-     bool arg(int i,Stack stack,bool a) const{ return nargs[i] ? GetAny<bool>( (*nargs[i])(stack) ): a;}
-     long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-     KN_<long>  arg(int i,Stack stack,KN_<long> a ) const{ return nargs[i] ? GetAny<KN_<long> >( (*nargs[i])(stack) ): a;}
-
-       public:
-       Op(const basicAC_F0 &  args,Expression aa,Expression bb) : a(aa),b(bb),c(0),d(0) {
-         args.SetNameParam(n_name_param,name_param,nargs);  }
-       Op(const basicAC_F0 &  args,Expression aa,Expression bb,Expression cc) : a(aa),b(bb),c(cc),d(0) {
-         args.SetNameParam(n_name_param,name_param,nargs); } 
-	Op(const basicAC_F0 &  args,Expression aa,Expression bb,Expression cc,Expression dd) : a(aa),b(bb),c(cc),d(dd) {
-	    args.SetNameParam(n_name_param,name_param,nargs); } 
-	
-	
-    };
-    // interpolation(Vh,Vh)
-   MatrixInterpolation() : OneOperator(atype<const typename MatrixInterpolation<pfes>::Op *>(),
-                                       atype<pfes *>(),
-                                       atype<pfes *>()) {}
-   // interpolation(Vh,xx,yy) // 2d 
-   MatrixInterpolation(int bidon) : OneOperator(atype<const typename MatrixInterpolation<pfes>::Op *>(),
-                                                atype<pfes *>(),atype<KN_<double> >(),atype<KN_<double> >()) {}
- 
-    // interpolation(Vh,xx,yy,zz) // 3d 
-    MatrixInterpolation(int bidon,int bidon2) : OneOperator(atype<const typename MatrixInterpolation<pfes>::Op *>(),
-						 atype<pfes *>(),atype<KN_<double> >(),atype<KN_<double> >(),atype<KN_<double> >()) {}
-    
-  
-    E_F0 * code(const basicAC_F0 & args) const 
-     { 
-       if(args.size()==2)
-       return  new Op(args,t[0]->CastTo(args[0]),
-                           t[1]->CastTo(args[1]));
-       else if(args.size()==3)
-       return  new Op(args,t[0]->CastTo(args[0]),
-                           t[1]->CastTo(args[1]),
-                           t[2]->CastTo(args[2]));
-       else if(args.size()==4)
-	   return  new Op(args,t[0]->CastTo(args[0]),
-			  t[1]->CastTo(args[1]),
-			  t[2]->CastTo(args[2]),
-			  t[2]->CastTo(args[3])
-			  );
-       else CompileError("Bug in MatrixInterpolation code nb != 2 or 3 ????? bizarre" );
-       return 0;
-     }
-};
-template<>
-basicAC_F0::name_and_type  MatrixInterpolation<pfes>::Op::name_param[]= {
-   {  "t", &typeid(bool)}, 
-   {  "op", &typeid(long)},
-   {  "inside",&typeid(bool)},
-   {  "composante",&typeid(long)},
-   {  "U2Vc",&typeid(KN_<long>)}
-
-};
-
-template<>
-basicAC_F0::name_and_type  MatrixInterpolation<pfes3>::Op::name_param[]= {
-    {  "t", &typeid(bool)}, 
-    {  "op", &typeid(long)},
-    {  "inside",&typeid(bool)},
-    {  "composante",&typeid(long)},
-    {  "U2Vc",&typeid(KN_<long>)}
-    
-};
-
-
-
-
-template<class R>
-   class SetMatrix_Op : public E_F0mps { public:
-       Expression a; 
-       
-       static  aType btype;
-       static const int n_name_param =NB_NAME_PARM_MAT; //  add nbiter FH 30/01/2007 11 -> 12  //add var MUMPS+autre
-       static basicAC_F0::name_and_type name_param[] ;
-       Expression nargs[n_name_param];
-       const OneOperator * precon;
-       bool arg(int i,Stack stack,bool a) const{ return nargs[i] ? GetAny<bool>( (*nargs[i])(stack) ): a;}
-       long arg(int i,Stack stack,long a) const{ return nargs[i] ? GetAny<long>( (*nargs[i])(stack) ): a;}
-
-       public:
-       SetMatrix_Op(const basicAC_F0 &  args,Expression aa) : a(aa) {
-         args.SetNameParam(n_name_param,name_param,nargs);
-         precon = 0; //  a changer 
-         if ( nargs[3])
-          {
-           const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(nargs[3]);
-           assert(op);
-           precon = op->Find("(",ArrayOfaType(atype<KN<R>* >(),false)); // strange bug in g++ is R become a double
-          }
-         
-       } 
-       AnyType operator()(Stack stack)  const ;
-    };
-
-
-template<class R>
-class SetMatrix : public OneOperator { public:  
-
- 
-  // SetMatrix() : OneOperator(atype<const typename SetMatrix<R>::Op *>(),atype<Matrice_Creuse<R> *>() ) {}
-   SetMatrix() : OneOperator(SetMatrix_Op<R>::btype,atype<Matrice_Creuse<R> *>() ) {}
-  
-    E_F0 * code(const basicAC_F0 & args) const 
-     { 
-       return  new SetMatrix_Op<R>(args,t[0]->CastTo(args[0])); 
-     }
-};
-
-template<class R>
-       aType  SetMatrix_Op<R>::btype=0;
-
-template <class R> 
-basicAC_F0::name_and_type  SetMatrix_Op<R>::name_param[]= {
- LIST_NAME_PARM_MAT
-
-
-
-/*
-   {   "paramint",&typeid(KN<int>)}, // Add J. Morice 02/09 
-   {   "paramdouble",&typeid(KN<double>)},
-
-   {   "paramstring",&typeid(string*)},
-   {   "permrow",&typeid(KN_<long>)},
-   {   "permcol",&typeid(KN_<long>)},
-   {   "fileparamint",&typeid(string*)}, // Add J. Morice 02/09 
-   {   "fileparamdouble",&typeid(string*)},
-   {   "fileparamstring",&typeid(string* )},
-   {   "filepermrow",&typeid(string*)},
-   {   "filepermcol",&typeid(string*)} //22
- */
-};
-
-template<class R>
-AnyType SetMatrix_Op<R>::operator()(Stack stack)  const 
-{
-   Matrice_Creuse<R> *  A= GetAny<Matrice_Creuse<R> *>((*a)(stack));
-   
-    ffassert(A);
-    if( !A->A) A->A.master(new MatriceMorse<R>());//  set to empty matrix .. mars 2014 FH ..
-    Data_Sparse_Solver ds;
-    bool VF=false;
-   // bool factorize=false;
-    ds.factorize=false;
-    /*
-  long NbSpace = 50; 
-  long itmax=0; 
-  double epsilon=1e-6;
-//  bool VF=false;
-//  VF=isVF(op->largs);
- // assert(!VF); 
-  double tgv = 1e30;
-  double tol_pivot=-1;
-  double tol_pivot_sym=-1;
-  
-  KN<int>  param_int;
-  KN<double> param_double; 
-  string *param_char=NULL;
-  KN<int> perm_r; 
-  KN<int> perm_c;
-  string *file_param_int;  // Add J. Morice 02/09 
-  string *file_param_double; 
-  string* file_param_char;
-  string* file_param_perm_r;
-  string* file_param_perm_c;  
-*/
-// type de matrice par default 
-  TypeSolveMat tmat= TypeSolveMat::defaultvalue; 
-  if(   tmat !=  TypeSolveMat::SparseSolver  )    
-    tmat=TypeSolveMat::GMRES;
- ds.typemat=&tmat; 
- SetEnd_Data_Sparse_Solver<R>(stack,ds,nargs,n_name_param);  
-/*     
-  TypeSolveMat    *typemat=&tmat;
-  bool initmat=true;
-  int strategy=0; 
-   
-  if (nargs[0]) ds.initmat= ! GetAny<bool>((*nargs[0])(stack));
-  if (nargs[1]) ds.typemat= GetAny<TypeSolveMat *>((*nargs[1])(stack));
-  if (nargs[2]) ds.epsilon= GetAny<double>((*nargs[2])(stack));
-  // 3 precon 
-  if (nargs[4]) ds.NbSpace= GetAny<long>((*nargs[4])(stack));
-  if (nargs[6]) ds.tgv= GetAny<double>((*nargs[6])(stack));
-  if (nargs[7]) ds.factorize= GetAny<bool>((*nargs[7])(stack));
-  
-  if (nargs[8]) ds.strategy = GetAny<long>((*nargs[8])(stack)); 
-  if (nargs[9]) ds.tol_pivot = GetAny<double>((*nargs[9])(stack)); 
-  if (nargs[10]) ds.tol_pivot_sym = GetAny<double>((*nargs[10])(stack)); 
-  if (nargs[11]) ds.itmax = GetAny<long>((*nargs[11])(stack)); //  frev 2007 OK
-   
-
-  if (nargs[12]) ds.param_int= GetAny< KN<int> >((*nargs[12])(stack));  // Add J. Morice 02/09 
-  if (nargs[13]) ds.param_double= GetAny< KN<double> >((*nargs[13])(stack));
-  if (nargs[14]) ds.param_char= GetAny< string * >((*nargs[14])(stack));  //
-  if (nargs[15]) ds.perm_r = GetAny< KN<int > >((*nargs[15])(stack));
-  if (nargs[16]) ds.perm_c = GetAny< KN<int> >((*nargs[16])(stack));  //
-  if (nargs[17]) ds.file_param_int= GetAny< string* >((*nargs[17])(stack));  // Add J. Morice 02/09 
-  if (nargs[18]) ds.file_param_double= GetAny< string* >((*nargs[18])(stack));
-  if (nargs[19]) ds.file_param_char= GetAny< string* >((*nargs[19])(stack));  //
-  if (nargs[20]) ds.file_param_perm_r = GetAny< string* >((*nargs[20])(stack));
-  if (nargs[21]) ds.file_param_perm_c = GetAny< string* >((*nargs[21])(stack));  //
-*/
-
-
-   if(A->typemat.profile != ds.typemat->profile) 
-   {
-     cerr << " type of matrix " << A->typemat<<endl;
-     cerr << " type of matrix for solver " <<*ds.typemat<<endl;
-     
-     ExecError(" Set incompatibility between solver and type of matrix");
-   }
-  if( ds.factorize ) {
-    MatriceProfile<R> * pf = dynamic_cast<MatriceProfile<R> *>((MatriceCreuse<R> *) A->A);
-    assert(pf);
-    switch (ds.typemat->t) {
-    case TypeSolveMat::LU: pf->LU(Abs(ds.epsilon));break;
-    case TypeSolveMat::CROUT: pf->crout(Abs(ds.epsilon));break;
-    case TypeSolveMat::CHOLESKY: pf->cholesky(Abs(ds.epsilon));break;
-    default: ExecError("Sorry no factorization for this type for matrix"); 
-    }
-    
-  }    
-  SetSolver<R>(stack,VF,*A->A,ds) ;/*stack,*A->A,typemat,VF,epsilon,NbSpace,itmax,precon,strategy,tgv,tol_pivot,tol_pivot_sym, 
-	       param_int, param_double, param_char, perm_r, perm_c, file_param_int, file_param_double, 
-	       file_param_char, file_param_perm_r, file_param_perm_c);*/
-
-  return Nothing; 
-}
-
-
-
-bool SetDefaultSolver()
-{
-
-#ifdef HAVE_LIBUMFPACKXXXXXX
-    if(verbosity>1)
-	cout << " SetDefault sparse solver to UMFPACK" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverUMFPack;
-    DefSparseSolver<Complex>::solver =BuildSolverUMFPack;
-    DefSparseSolverSym<double>::solver  =BuildSolverGMRES<double>;
-    DefSparseSolverSym<Complex>::solver =BuildSolverGMRES<Complex>;
-    
-#else
-    if(verbosity>1)
-	cout << " SetDefault sparse solver to GMRES (no UMFPACK)" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverGMRES<double>;
-    DefSparseSolver<Complex>::solver =BuildSolverGMRES<Complex>;
-    DefSparseSolverSym<double>::solver  =BuildSolverGMRES<double>;
-    DefSparseSolverSym<Complex>::solver =BuildSolverGMRES<Complex>;
-    
-#endif
-    return true;
-
-}
-
-<<<<<<< HEAD
-template<int init>
-AnyType SetMatrixInterpolation(Stack,Expression ,Expression);
-template<int init>
-AnyType SetMatrixInterpolation3(Stack,Expression ,Expression);
-=======
-
-AnyType SetMatrixInterpolation(Stack,Expression ,Expression);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-//------
-
-template<class R>
-void BuildCombMat(map< pair<int,int>, R> & mij,const KNM_<R> & A, int ii00=0,int jj00=0,R coef=R(1.),bool cnj=false)
-{
-  double eps0=numeric_limits<double>::min();
-  int i,j;
-  int n = A.N(),m=A.M();
-  for ( i=0;i<n;i++)
-   for ( j=0;j<m;j++)
-          {
-           R cij=coef*A(i,j);
-           if (cnj)  cij = RNM::conj(cij); 
-           if(Fem2D::norm(cij) >eps0)
-             mij[ij_mat(false,ii00,jj00,i,j)] += cij;
-         
-   }
-
-}
-
-void buildInterpolationMatrix(MatriceMorse<R> * m,const FESpace & Uh,const FESpace & Vh,void *data)
-{  //  Uh = Vh 
-
-  int op=op_id; //  value of the function
-  bool transpose=false;
-  bool inside=false;
-   int * iU2V=0;  
-  if (data)
-   {
-     int * idata=static_cast<int*>(data);
-     transpose=idata[0];
-     op=idata[1];
-     inside=idata[2];
-       iU2V= idata + 5;
-     ffassert(op>=0 && op < 4);
-   }
-  if(verbosity>2) 
-    {
-      cout << "  -- buildInterpolationMatrix   transpose =" << transpose << endl
-           << "              value, dx , dy          op = " << op << endl
-           << "                            just  inside = " << inside << endl;
-    }
-  using namespace Fem2D;
-  int n=Uh.NbOfDF;
-  int mm=Vh.NbOfDF;
-  if(transpose) Exchange(n,mm);
-  m->symetrique = false;
-  m->dummy=false;
-  m->a=0;
-  m->lg=0;
-  m->cl=0;
-  m->nbcoef=0;
-  m->n=n;
-  m->m=mm;
-  int n1=n+1;
-  const  Mesh & ThU =Uh.Th; // line 
-  const  Mesh & ThV =Vh.Th; // colunm
-  bool samemesh =  &Uh.Th == &Vh.Th;  // same Mesh
-  int thecolor =0;
-  //  int nbn_u = Uh.NbOfNodes;
-  //int nbn_v = Vh.NbOfNodes;
-  
-  int nbcoef =0;
-  
-  KN<int> color(ThV.nt);
-  KN<int> mark(n);
-  mark=0;
-  
-  int *lg = new int [n1];
-  int * cl = 0;
-  double *a=0;
-  
-  color=thecolor++;
-  FElement Uh0 = Uh[0];
-  FElement Vh0 = Vh[0];
-  
-  FElement::aIPJ ipjU(Uh0.Pi_h_ipj()); 
-  FElement::aR2  PtHatU(Uh0.Pi_h_R2()); 
-  
-  //  FElement::aIPJ ipjV(Vh0.Pi_h_ipj()); 
-  // FElement::aR2  PtHatV(Vh0.Pi_h_R2()); 
-  
-  int nbdfVK= Vh0.NbDoF();
-  //  int nbdfUK= Uh0.NbDoF();
-  int NVh= Vh0.N;
-  //int NUh= Uh0.N;
-  
-  //ffassert(NVh==NUh); 
-  
-  
-  int nbp= PtHatU.N(); // 
-  //  int nbc= ipjU.N(); // 
-  KN<R2> PV(nbp);   //  the PtHat in ThV mesh
-  KN<int> itV(nbp); // the Triangle number
-  KN<bool> intV(nbp); // ouside or not 
-  KN<R>   AipjU(ipjU.N());
-  
-  KNM<R> aaa(nbp,nbdfVK); 
-
-
-   const R eps = 1.0e-10;
-   const int sfb1=Vh0.N*last_operatortype*Vh0.NbDoF();
-   KN<R> kv(sfb1*nbp);
-   R * v = kv;
-    KN<int> ik(nbp); // the Triangle number
-//   KNMK_<R> fb(v+ik[i],VhV0.NbDoF,VhV0.N,1); //  the value for basic fonction
-
-   bool whatd[last_operatortype];
-   for (int i=0;i<last_operatortype;i++) 
-     whatd[i]=false;
-   whatd[op]=true; // the value of function
-   KN<bool> fait(Uh.NbOfDF);
-   fait=false;
-  map< pair<int,int> , double > sij; 
-  
-  for (int step=0;step<2;step++) 
-   {
-      
-	  for (int it=0;it<ThU.nt;it++)
-	    {
-	      thecolor++; //  change the current color
-	      const Triangle & TU(ThU[it]);
-	      FElement KU(Uh[it]);
-	      KU.Pi_h(AipjU);
-	      int nbkU = 0;
-	      if (samemesh)
-	        {
-	          nbkU = 1; 
-	          PV = PtHatU;
-	          itV = it;
-		  intV= false;// add July 2009 (unset varaible FH)
-	        }
-	      else 
-	       {  
-	          const Triangle *ts=0;
-	          for (int i=0;i<nbp;i++)
-	            {
-	              bool outside;
-	              ts=ThV.Find(TU(PtHatU[i]),PV[i],outside,ts); 
-		      if(outside && verbosity>9 ) 
-		        cout << it << " " << i << " :: " << TU(PtHatU[i]) << "  -- "<< outside << PV[i] << " " << ThV(ts) << " ->  " <<  (*ts)(PV[i]) <<endl;
-	              itV[i]= ThV(ts);
-	              intV[i]=outside && inside; //  ouside and inside flag 
-	            }
-	       }
-	       
-	      
-	      for (int p=0;p<nbp;p++)
-	         { 
-
-	              KNMK_<R> fb(v+p*sfb1,nbdfVK,NVh,last_operatortype); // valeur de fonction de base de Vh 
-	              // ou:   fb(idf,j,0) valeur de la j composante de la fonction idf 
-	              Vh0.tfe->FB(whatd,ThV,ThV[itV[p]],PV[p],fb);  
-	          }
-
-	      for (int i=0;i<ipjU.N();i++) 
-	          { // pour tous le terme 
-	           const FElement::IPJ &ipj_i(ipjU[i]);
-	          // assert(ipj_i.j==0); // car  Vh.N=0
-	           int dfu = KU(ipj_i.i); // le numero de df global 
-	           if(fait[dfu]) continue;
-	           int jU = ipj_i.j; // la composante dans U
-	           int p=ipj_i.p;  //  le points
-	           if (intV[p]) continue; //  ouside and inside flag => next 
-	           R aipj = AipjU[i];
-	           FElement KV(Vh[itV[p]]);
-		      int jV=jU;
-		      if(iU2V) jV=iU2V[jU];
-		    
-		    if(jV>=0 && jV<NVh)
-			{
-			    KNMK_<R> fb(v+p*sfb1,nbdfVK,NVh,last_operatortype); 
-			    KN_<R> fbj(fb('.',jV,op)); 
-			    
-			    for (int idfv=0;idfv<nbdfVK;idfv++) 
-				if (Abs(fbj[idfv])>eps) 
-				  {
-				      int dfv=KV(idfv);
-				      int ii=dfu, jj=dfv;
-				      if(transpose) Exchange(ii,jj);
-				      // le term dfu,dfv existe dans la matrice
-				      R c= fbj[idfv]*aipj;
-				      //  cout << " Mat inter " << i << " , "<< j << " = " << c << " " <<step << " " << it << " " <<  endl; 
-				      if(Abs(c)>eps)
-					  //
-					  sij[make_pair(ii,jj)] += c;// correct du to periodic BC. June 2011
-				      /*   
-				       if(step==0)
-				       sij.insert(make_pair(i,j));
-				       else	                  
-				       (*m)(i,j)=c;
-				       */
-				  }
-			}
-	                      
-	          }
-	          
-	      for (int df=0;df<KU.NbDoF();df++) 
-	          {  
-	           int dfu = KU(df); // le numero de df global 
-	           fait[dfu]=true;
-	           }
-	       
-	       
-	    }
-	    if (step==0)
-	     {
-	         nbcoef = sij.size();
-	         cl = new int[nbcoef];
-	         a = new double[nbcoef];
-	         int k=0;
-	         for(int i=0;i<n1;i++)
-	           lg[i]=0;
-	          
-	         for (map<pair<int,int>, double >::iterator kk=sij.begin();kk!=sij.end();++kk)
-	          { 
-	            int i= kk->first.first;
-	            int j= kk->first.second;
-	           // cout << " Mat inter " << i << " , "<< j  << endl;
-	            cl[k]=j;
-	            a[k]= kk->second;	            
-	            lg[i+1]=++k;
-	          }
-	         assert(k==nbcoef);
-	         //  on bouche les ligne vide   lg[i]=0; 
-	         //  lg est un tableau croissant  =>
-	         for(int i=1;i<n1;i++)
-	              lg[i]=max(lg[i-1],lg[i]) ;
-	         m->lg=lg;
-             m->cl=cl;
-             m->a=a;
-             m->nbcoef=nbcoef;
-             fait=false;
-	     }
-    }
-    sij.clear();
-  //assert(0); // a faire to do
-}
-
-void buildInterpolationMatrix(MatriceMorse<R> * m,const FESpace3 & Uh,const FESpace3 & Vh,void *data)
-{  //  Uh = Vh 
-    typedef FESpace3::Mesh Mesh;
-    typedef FESpace3::FElement  FElement;
-    typedef Mesh::Element  Element;
-    typedef FESpace3::Rd  Rd;
-    typedef Element::RdHat  RdHat;
-    
-    int op=op_id; //  value of the function
-    bool transpose=false;
-    bool inside=false;
-    int * iU2V=0;  
-    if (data)
-      {
-	int * idata=static_cast<int*>(data);
-	transpose=idata[0];
-	op=idata[1];
-	inside=idata[2];
-	iU2V= idata + 5;
-	ffassert(op>=0 && op < 4);
-      }
-    if(verbosity>2) 
-      {
-	cout << "  -- buildInterpolationMatrix   transpose =" << transpose << endl
-	<< "              value, dx , dy          op = " << op << endl
-	<< "                            just  inside = " << inside << endl;
-      }
-    using namespace Fem2D;
-    int n=Uh.NbOfDF;
-    int mm=Vh.NbOfDF;
-    if(transpose) Exchange(n,mm);
-    m->symetrique = false;
-    m->dummy=false;
-    m->a=0;
-    m->lg=0;
-    m->cl=0;
-    m->nbcoef=0;
-    m->n=n;
-    m->m=mm;
-    int n1=n+1;
-    const  Mesh & ThU =Uh.Th; // line 
-    const  Mesh & ThV =Vh.Th; // colunm
-    bool samemesh =  &Uh.Th == &Vh.Th;  // same Mesh
-    int thecolor =0;
-    //  int nbn_u = Uh.NbOfNodes;
-    //int nbn_v = Vh.NbOfNodes;
-    
-    int nbcoef =0;
-    
-    KN<int> color(ThV.nt);
-    KN<int> mark(n);
-    mark=0;
-    
-    int *lg = new int [n1];
-    int * cl = 0;
-    double *a=0;
-    
-    color=thecolor++;
-    FElement Uh0 = Uh[0];
-    FElement Vh0 = Vh[0];
-    
-   // FElement::aIPJ ipjU(Uh0.Pi_h_ipj()); 
-   // FElement::aR2  PtHatU(Uh0.Pi_h_R2()); 
-    
-    //  FElement::aIPJ ipjV(Vh0.Pi_h_ipj()); 
-    // FElement::aR2  PtHatV(Vh0.Pi_h_R2()); 
-    
-    int nbdfVK= Vh0.NbDoF();
-    //  int nbdfUK= Uh0.NbDoF();
-    int NVh= Vh0.N;
-   // int NUh= Uh0.N;
-    
-    //ffassert(NVh==NUh); 
-    
-    InterpolationMatrix<RdHat> ipmat(Uh);    
-  
-    int nbp=ipmat.np; // 
-    //  int nbc= ipjU.N(); // 
-    KN<RdHat> PV(nbp);   //  the PtHat in ThV mesh
-    KN<int> itV(nbp); // the Triangle number
-    KN<bool> intV(nbp); // ouside or not 
-   // KN<R>   AipjU(ipjU.N());
-    
-    KNM<R> aaa(nbp,nbdfVK); 
-    
-    
-    const R eps = 1.0e-10;
-    const int sfb1=Vh0.N*last_operatortype*Vh0.NbDoF();
-    KN<R> kv(sfb1*nbp);
-    R * v = kv;
-    KN<int> ik(nbp); // the Triangle number
-    //   KNMK_<R> fb(v+ik[i],VhV0.NbDoF,VhV0.N,1); //  the value for basic fonction
-    op= op==3 ? op_dz : op; //   renumber op ????  dec 2010 FH. 
-    What_d whatd= 1<< op;
-    KN<bool> fait(Uh.NbOfDF);
-    fait=false;
-    map< pair<int,int> , double > sij; 
-    for (int step=0;step<2;step++) 
-      {
-	
-	for (int it=0;it<ThU.nt;it++)
-	  {
-	    thecolor++; //  change the current color
-	    const Element & TU(ThU[it]);
-	    FElement KU(Uh[it]);
-	    ipmat.set(KU);
-	    //KU.Pi_h(AipjU);
-	    int nbkU = 0;
-	    if (samemesh)
-	      {
-		nbkU = 1; 
-		PV = ipmat.P;
-		itV = it;
-		intV= false;// add July 2009 (unset varaible FH)
-	      }
-	    else 
-	      {  
-	          const Element *ts=0;
-	          for (int i=0;i<nbp;i++)
-	            {
-	              bool outside;
-	              ts=ThV.Find(TU(ipmat.P[i]),PV[i],outside,ts); 
-		      if(outside && verbosity>9 ) 
-			  cout << it << " " << i << " :: " << TU(ipmat.P[i]) << "  -- "<< outside << PV[i] << " " << ThV(ts) << " ->  " <<  (*ts)(PV[i]) <<endl;
-	              itV[i]= ThV(ts);
-	              intV[i]=outside && inside; //  ouside and inside flag 
-	            }
-	      }
-	    
-	    
-	    for (int p=0;p<nbp;p++)
-	      { 
-		  
-		  KNMK_<R> fb(v+p*sfb1,nbdfVK,NVh,last_operatortype); // valeur de fonction de base de Vh 
-		  // ou:   fb(idf,j,0) valeur de la j composante de la fonction idf 
-		  Vh0.tfe->FB(whatd,ThV,ThV[itV[p]],PV[p],fb);  
-	      }
-	    
-	    for (int i=0;i<ipmat.ncoef;i++) 
-	      { // pour tous le terme 
-		  
-	          // assert(ipj_i.j==0); // car  Vh.N=0
-		  int dfu = KU(ipmat.dofe[i]); // le numero de df global 
-		  if(fait[dfu]) continue;
-		  int jU = ipmat.comp[i]; // la composante dans U
-		  int p=ipmat.p[i];  //  le point
-		  if (intV[p]) continue; //  ouside and inside flag => next 
-		  R aipj = ipmat.coef[i];
-		  FElement KV(Vh[itV[p]]);
-		  int jV=jU;
-		  if(iU2V) jV=iU2V[jU];
-		  
-		  if(jV>=0 && jV<NVh)
-		    {
-		      KNMK_<R> fb(v+p*sfb1,nbdfVK,NVh,last_operatortype); 
-		      KN_<R> fbj(fb('.',jV,op)); 
-		      
-		      for (int idfv=0;idfv<nbdfVK;idfv++) 
-			  if (Abs(fbj[idfv])>eps) 
-			    {
-			      int dfv=KV(idfv);
-			      int ii=dfu, jj=dfv;
-			      if(transpose) Exchange(ii,jj);
-			      // le term dfu,dfv existe dans la matrice
-			      R c= fbj[idfv]*aipj;
-			      //  cout << " Mat inter " << i << " , "<< j << " = " << c << " " <<step << " " << it << " " <<  endl; 
-			      if(Abs(c)>eps)
-				  //
-				  sij[make_pair(ii,jj)] += c;// correct du to periodic BC. June 2011
-			      /*   
-			       if(step==0)
-			       sij.insert(make_pair(i,j));
-			       else	                  
-			       (*m)(i,j)=c;
-			       */
-			    }
-		    }
-		  
-	      }
-	    
-	    for (int df=0;df<KU.NbDoF();df++) 
-	      {  
-		  int dfu = KU(df); // le numero de df global 
-		  fait[dfu]=true;
-	      }
-	    
-	    
-	  }
-	if (step==0)
-	  {
-	    nbcoef = sij.size();
-	    cl = new int[nbcoef];
-	    a = new double[nbcoef];
-	    int k=0;
-	    for(int i=0;i<n1;i++)
-		lg[i]=0;
-	    
-	    for (map<pair<int,int>, double >::iterator kk=sij.begin();kk!=sij.end();++kk)
-	      { 
-		  int i= kk->first.first;
-		  int j= kk->first.second;
-		  // cout << " Mat inter " << i << " , "<< j  << endl;
-		  cl[k]=j;
-		  a[k]= kk->second;	            
-		  lg[i+1]=++k;
-	      }
-	    assert(k==nbcoef);
-	    //  on bouche les ligne vide   lg[i]=0; 
-	    //  lg est un tableau croissant  =>
-	    for(int i=1;i<n1;i++)
-		lg[i]=max(lg[i-1],lg[i]) ;
-	    m->lg=lg;
-	    m->cl=cl;
-	    m->a=a;
-	    m->nbcoef=nbcoef;
-	    fait=false;
-	  }
-      }
-    sij.clear();
-    //assert(0); // a faire to do
-}
-
-
-MatriceMorse<R> *  buildInterpolationMatrix1(const FESpace & Uh,const KN_<double> & xx,const KN_<double> & yy ,int *data)
-{  //  Uh = Vh 
-
-  int op=op_id; //  value of the function
-  int icomp=0;
-  bool transpose=false;
-  bool inside=false;
-  if (data)
-   {
-     transpose=data[0];
-     op=data[1];
-     inside=data[2];
-     icomp = data[3];
-     ffassert(op>=0 && op < 4);
-     
-   }
-  if(verbosity>2) 
-    {
-      cout << "  -- buildInterpolationMatrix   transpose =" << transpose << endl
-           << "              value, dx , dy          op = " << op << endl
-           << "              composante                 = " << icomp << endl
-           << "                            just  inside = " << inside << endl;
-    }
-  using namespace Fem2D;
-  int n=Uh.NbOfDF;
-  int mm=xx.N();
-  int nbxx= mm;
-  if(transpose) Exchange(n,mm);
-  const  Mesh & ThU =Uh.Th; // line 
-  
-   
-  FElement Uh0 = Uh[0];
-  
-   
-   
- int nbdfUK= Uh0.NbDoF();
- int NUh= Uh0.N;
- 
- ffassert(icomp < NUh && icomp >=0); 
-    
-
-   const int sfb1=Uh0.N*last_operatortype*Uh0.NbDoF();
-   KN<R> kv(sfb1);
-   R * v = kv;
-   const R eps = 1.0e-10;
-
-   bool whatd[last_operatortype];
-   for (int i=0;i<last_operatortype;i++) 
-     whatd[i]=false;
-   whatd[op]=true; // the value of function
-   KN<bool> fait(Uh.NbOfDF);
-   fait=false;
-   map< pair<int,int> , double > sij; 
-   R2 Phat;
-   bool outside;
-   
-   for(int ii=0;ii<nbxx;ii++)
-   {
-     const Triangle *ts=ThU.Find(R2(xx[ii],yy[ii]),Phat,outside); 
-     if(outside && !inside) continue;
-     int it = ThU(ts); 
-     FElement KU(Uh[it]);
-     KNMK_<R> fb(v,nbdfUK,NUh,last_operatortype);
-     Uh0.tfe->FB(whatd,ThU,ThU[it],Phat,fb);  
-     KN_<R> Fwi(fb('.',icomp,op));
-     for (int idfu=0;idfu<nbdfUK;idfu++) 
-       {
-        int  j = ii;
-        int  i = KU(idfu);
-        if(transpose) Exchange(i,j);
-        R c = Fwi(idfu);
-	if(Abs(c)>eps)
-	  sij[make_pair(i,j)] += c;// correct du to periodic BC. June 2011
-      }
-      }
-  
-   MatriceMorse<R> * m = new MatriceMorse<R>(n,mm,sij,false);
-    sij.clear();
-   return m;
-  //assert(0); // a faire to do
-}
-
-MatriceMorse<R> *  buildInterpolationMatrix1(const FESpace3 & Uh,const KN_<double> & xx,const KN_<double> & yy ,const KN_<double> & zz,int *data)
-{  //  Uh = Vh 
-    typedef FESpace3::Mesh Mesh;
-    typedef FESpace3::FElement  FElement;
-    typedef Mesh::Element  Element;
-    typedef FESpace3::Rd  Rd;
-    
-    
-    int op=op_id; //  value of the function
-    int icomp=0;
-    bool transpose=false;
-    bool inside=false;
-    if (data)
-      {
-	transpose=data[0];
-	op=data[1];
-	inside=data[2];
-	icomp = data[3];
-	ffassert(op>=0 && op < 4);
-	
-      }
-    if(verbosity>2) 
-      {
-	cout << "  -- buildInterpolationMatrix   transpose =" << transpose << endl
-	<< "              value, dx , dy          op = " << op << endl
-	<< "              composante                 = " << icomp << endl
-	<< "                            just  inside = " << inside << endl;
-      }
-    using namespace Fem2D;
-    int n=Uh.NbOfDF;
-    int mm=xx.N();
-    int nbxx= mm;
-    if(transpose) Exchange(n,mm);
-    const  Mesh & ThU =Uh.Th; // line 
-    
-    
-    FElement Uh0 = Uh[0];
-    
-    
-    
-    int nbdfUK= Uh0.NbDoF();
-    int NUh= Uh0.N;
-    
-    ffassert(icomp < NUh && icomp >=0); 
-    
-    
-    const int sfb1=Uh0.N*last_operatortype*Uh0.NbDoF();
-    KN<R> kv(sfb1);
-    R * v = kv;
-    const R eps = 1.0e-10;
-    
-    What_d whatd= 1 <<op;
-    KN<bool> fait(Uh.NbOfDF);
-    fait=false;
-    map< pair<int,int> , double > sij; 
-    Rd Phat;
-    bool outside;
-    
-    for(int ii=0;ii<nbxx;ii++)
-      {
-	const Element *ts=ThU.Find(Rd(xx[ii],yy[ii],zz[ii]),Phat,outside); 
-	if(outside && !inside) continue;
-	int it = ThU(ts); 
-	FElement KU(Uh[it]);
-	KNMK_<R> fb(v,nbdfUK,NUh,last_operatortype);
-	Uh0.tfe->FB(whatd,ThU,ThU[it],Phat,fb);  
-	KN_<R> Fwi(fb('.',icomp,op));
-	for (int idfu=0;idfu<nbdfUK;idfu++) 
-	  {
-	    int  j = ii;
-	    int  i = KU(idfu);
-	    if(transpose) Exchange(i,j);
-	    R c = Fwi(idfu);
-	    if(Abs(c)>eps)
-		sij[make_pair(i,j)] += c;// correct du to periodic BC. June 2011
-	  }
-      }
-    
-    MatriceMorse<R> * m = new MatriceMorse<R>(n,mm,sij,false);
-    sij.clear();
-    return m;
-    //assert(0); // a faire to do
-}
-
-
-<<<<<<< HEAD
-AnyType SetMatrixInterpolation1(Stack stack,Expression emat,Expression einter,int init)
-=======
-AnyType SetMatrixInterpolation(Stack stack,Expression emat,Expression einter)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-  using namespace Fem2D;
-  
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-  const MatrixInterpolation<pfes>::Op * mi(dynamic_cast<const MatrixInterpolation<pfes>::Op *>(einter));
-  ffassert(einter);
-  int data[ MatrixInterpolation<pfes>::Op::n_name_param+100];
-  data[0]=mi->arg(0,stack,false); // transpose not
-  data[1]=mi->arg(1,stack,(long) op_id); ; // get just value
-  data[2]=mi->arg(2,stack,false); ; // get just value
-  data[3]=mi->arg(3,stack,0L); ; // get just value
-  KN<long> U2Vc;
-  U2Vc= mi->arg(4,stack,U2Vc); ;
-  if( mi->c==0)
-  { // old cas 
-  pfes * pUh = GetAny< pfes * >((* mi->a)(stack));
-  pfes * pVh = GetAny<  pfes * >((* mi->b)(stack));
-  FESpace * Uh = **pUh;
-  FESpace * Vh = **pVh;
-  int NVh =Vh->N;
-  int NUh =Uh->N;
-  ffassert(NUh< 100-MatrixInterpolation<pfes>::Op::n_name_param);
-
-      for(int i=0;i<NUh;++i)    
-        data[5+i]=i;// 
-      for(int i=0;i<min(NUh,(int) U2Vc.size());++i)    
-	  data[5+i]= U2Vc[i];//
-  if(verbosity>3)
-	for(int i=0;i<NUh;++i)
-	  {
-	    cout << "The Uh componante " << i << " -> " << data[5+i] << "  Componante of Vh  " <<endl;
-	  }
-	  for(int i=0;i<NUh;++i)    
-	if(data[5+i]>=NVh)
-	  {
-	      cout << "The Uh componante " << i << " -> " << data[5+i] << " >= " << NVh << " number of Vh Componante " <<endl;
-	      ExecError("Interpolation incompability beetween componante ");
-	  }
-      
-  ffassert(Vh);
-  ffassert(Uh);
-  
-  //  sparse_mat->pUh=pUh;
-  //sparse_mat->pVh=pVh;
-<<<<<<< HEAD
-  if(!init) sparse_mat->init();
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-  sparse_mat->A.master(new MatriceMorse<R>(*Uh,*Vh,buildInterpolationMatrix,data));
-  //  sparse_mat->A.master(new MatriceMorse<R>(*Uh,*Vh,buildInterpolationMatrix,data));
-  }
-  else 
-  {  // new cas mars 2006
-  pfes * pUh = GetAny< pfes * >((* mi->a)(stack));
-  KN_<double>  xx = GetAny<  KN_<double>  >((* mi->b)(stack));
-  KN_<double>  yy = GetAny<  KN_<double>  >((* mi->c)(stack));
-  ffassert( xx.N() == yy.N()); 
-  FESpace * Uh = **pUh;
-  ffassert(Uh);
-  
-  //  sparse_mat->pUh=0;
-  //  sparse_mat->pVh=0;
-<<<<<<< HEAD
-  if(!init) sparse_mat->init();
-  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-  sparse_mat->A.master(buildInterpolationMatrix1(*Uh,xx,yy,data));
-  }
-   return sparse_mat; // Warning .. no correct gestion of temp ptr ..
- // return Add2StackOfPtr2Free(stack,sparse_mat);
-}
-
-AnyType SetMatrixInterpolation31(Stack stack,Expression emat,Expression einter,int init)
-=======
-  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-  sparse_mat->A.master(buildInterpolationMatrix1(*Uh,xx,yy,data));
-  }
-  return sparse_mat;
-}
-
-AnyType SetMatrixInterpolation3(Stack stack,Expression emat,Expression einter)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-    using namespace Fem2D;
-    
-    Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-    const MatrixInterpolation<pfes3>::Op * mi(dynamic_cast<const MatrixInterpolation<pfes3>::Op *>(einter));
-    ffassert(einter);
-    int data[ MatrixInterpolation<pfes3>::Op::n_name_param+100];
-    data[0]=mi->arg(0,stack,false); // transpose not
-    data[1]=mi->arg(1,stack,(long) op_id); ; // get just value
-    data[2]=mi->arg(2,stack,false); ; // get just value
-    data[3]=mi->arg(3,stack,0L); ; // get just value
-    KN<long> U2Vc;
-    U2Vc= mi->arg(4,stack,U2Vc); ;
-    if( mi->c==0)
-      { // old cas 
-	  pfes3 * pUh = GetAny< pfes3 * >((* mi->a)(stack));
-	  pfes3 * pVh = GetAny<  pfes3 * >((* mi->b)(stack));
-	  FESpace3 * Uh = **pUh;
-	  FESpace3 * Vh = **pVh;
-	  int NVh =Vh->N;
-	  int NUh =Uh->N;
-	  ffassert(NUh< 100-MatrixInterpolation<pfes3>::Op::n_name_param);
-	  
-	  for(int i=0;i<NUh;++i)    
-	      data[5+i]=i;// 
-	  for(int i=0;i<min(NUh,(int) U2Vc.size());++i)    
-	      data[5+i]= U2Vc[i];//
-	  if(verbosity>3)
-	      for(int i=0;i<NUh;++i)
-		{
-		  cout << "The Uh componante " << i << " -> " << data[5+i] << "  Componante of Vh  " <<endl;
-		}
-	  for(int i=0;i<NUh;++i)    
-	      if(data[5+i]>=NVh)
-		{
-		  cout << "The Uh componante " << i << " -> " << data[5+i] << " >= " << NVh << " number of Vh Componante " <<endl;
-		  ExecError("Interpolation incompability beetween componante ");
-		}
-	  
-	  ffassert(Vh);
-	  ffassert(Uh);
-<<<<<<< HEAD
-	  if(!init) sparse_mat->init();
-=======
-	  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	  //  sparse_mat->pUh=pUh;
-	  //sparse_mat->pVh=pVh;
-	  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-	  sparse_mat->A.master(new MatriceMorse<R>(*Uh,*Vh,buildInterpolationMatrix,data));
-	  //  sparse_mat->A.master(new MatriceMorse<R>(*Uh,*Vh,buildInterpolationMatrix,data));
-      }
-    else 
-      {  // new cas mars 2006
-	  pfes3 * pUh = GetAny< pfes3 * >((* mi->a)(stack));
-	  KN_<double>  xx = GetAny<  KN_<double>  >((* mi->b)(stack));
-	  KN_<double>  yy = GetAny<  KN_<double>  >((* mi->c)(stack));
-	  KN_<double>  zz = GetAny<  KN_<double>  >((* mi->d)(stack));
-	  ffassert( xx.N() == yy.N()); 
-	  ffassert( xx.N() == zz.N()); 
-	  FESpace3 * Uh = **pUh;
-	  ffassert(Uh);
-<<<<<<< HEAD
-	  if(!init) sparse_mat->init();
-=======
-	  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	  //  sparse_mat->pUh=0;
-	  //  sparse_mat->pVh=0;
-	  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-	  sparse_mat->A.master(buildInterpolationMatrix1(*Uh,xx,yy,zz,data));
-      }
-    return sparse_mat;
-}
-
-<<<<<<< HEAD
-template<int init>
-AnyType SetMatrixInterpolation(Stack stack,Expression emat,Expression einter)
-{ return SetMatrixInterpolation1(stack,emat,einter,init);}
-template<int init>
-AnyType SetMatrixInterpolation3(Stack stack,Expression emat,Expression einter)
-{ return SetMatrixInterpolation31(stack,emat,einter,init);}
-
-
-template<class RA,class RB,class RAB,int init>
-=======
-
-template<class RA,class RB,class RAB>
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-AnyType ProdMat(Stack stack,Expression emat,Expression prodmat)
-{
-  using namespace Fem2D;
-  
-  Matrice_Creuse<RAB> * sparse_mat =GetAny<Matrice_Creuse<RA>* >((*emat)(stack));
-  const Matrix_Prod<RA,RB>  AB = GetAny<Matrix_Prod<RA,RB> >((*prodmat)(stack));
-  //  sparse_mat->pUh=AB.A->pUh;
-  //sparse_mat->pVh=AB.B->pVh;
-  MatriceMorse<RA> *mA= AB.A->A->toMatriceMorse(AB.ta);
-  MatriceMorse<RB> *mB= AB.B->A->toMatriceMorse(AB.tb);
-  if( !mA && ! mB) ExecError(" Sorry error: in MatProd,  pb trans in MorseMat");
-  if( mA->m != mB->n) {
-    cerr << "  -- Error dim ProdMat A*B : tA =" << AB.ta << " = tB " << AB.tb << endl;
-    cerr << "  --MatProd " << mA->n<< " "<< mA->m << " x " << mB->n<< " "<< mB->m <<  endl;
-    ExecError(" Wrong mat dim in MatProd");
-  }
-  MatriceMorse<RAB> *mAB=new MatriceMorse<RA>();
-  mA->prod(*mB,*mAB);
-<<<<<<< HEAD
-  if(!init) sparse_mat->init();
-=======
-  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  sparse_mat->typemat=(mA->n == mB->m) ? TypeSolveMat(TypeSolveMat::GMRES) : TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-  sparse_mat->A.master(mAB);
-  delete mA;
-  delete mB;
-  return sparse_mat;
-}
-
-<<<<<<< HEAD
-template<class R,int init>
-=======
-template<class R>
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-AnyType CombMat(Stack stack,Expression emat,Expression combMat)
-{
-  using namespace Fem2D;
-  
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-  list<triplet<R,MatriceCreuse<R> *,bool> > *  lcB = GetAny<list<triplet<R,MatriceCreuse<R> *,bool> >*>((*combMat)(stack));
-  //  sparse_mat->pUh=0;
-<<<<<<< HEAD
-  // sparse_mat->pVh=0;
-   MatriceCreuse<R> * AA=BuildCombMat<R>(*lcB,false,0,0);
-   if(!init) sparse_mat->init();
-=======
-  // sparse_mat->pVh=0; 
-   MatriceCreuse<R> * AA=BuildCombMat<R>(*lcB,false,0,0);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  sparse_mat->A.master(AA);
-  sparse_mat->typemat=(AA->n == AA->m) ? TypeSolveMat(TypeSolveMat::GMRES) : TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-  delete lcB;
-  return sparse_mat;
-}
-
-
-template<class R>
-AnyType MatriceCreuse2map(Stack , const AnyType & mat)
-{
-
-  using namespace Fem2D;
-
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >(mat);
-  ffassert(sparse_mat);
-  int n=sparse_mat->N(),m=sparse_mat->M();
-  map<pair<int,int>,R> *M=new map<pair<int,int>,R>;
-  if (n >0 && m>0 && sparse_mat->A) 
-    {
-      sparse_mat->A->addMatTo(R(1.),*M);
-      // hack 
-      (*M)[make_pair(n-1,m-1)]+=R();
-    }
-  return M;
-}
-
-
-<<<<<<< HEAD
-template<class R,int init>
-=======
-template<class R>
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-AnyType DiagMat(Stack stack,Expression emat,Expression edia)
-{
-  using namespace Fem2D;
-  KN<R> * diag=GetAny<KN<R>* >((*edia)(stack));
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-  //  sparse_mat->pUh=0;
-  // sparse_mat->pVh=0;
-<<<<<<< HEAD
-  if(!init) sparse_mat->init();
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::GC); //  none square matrice (morse)
-  sparse_mat->A.master(new MatriceMorse<R>((int) diag->N(),(const R*) *diag));
-  return sparse_mat;
-}
-
-
-
-template<class Rin,class Rout>
- struct  ChangeMatriceMorse {
- static  MatriceMorse<Rout> *f(MatriceMorse<Rin> *mr)
- {
-    MatriceMorse<Rout>*  mrr=new MatriceMorse<Rout>(*mr);
-    delete mr;
-    return mrr;
- }
- };
-
-template<class R> 
- struct  ChangeMatriceMorse<R,R> {
- static MatriceMorse<R>* f(MatriceMorse<R>* mr)
- {
-   return mr;
- }
- };
-template<class R,class RR,int init>
-AnyType CopyMat_tt(Stack stack,Expression emat,Expression eA,bool transp)
-{
-  using namespace Fem2D;
-  Matrice_Creuse<R> * Mat;
- 
-  if(transp)
-   {
-    Matrice_Creuse_Transpose<R>  tMat=GetAny<Matrice_Creuse_Transpose<R> >((*eA)(stack));
-    Mat=tMat; 
-   }
-  else   Mat =GetAny<Matrice_Creuse<R>*>((*eA)(stack));
-  MatriceMorse<R> * mr=Mat->A->toMatriceMorse(transp,false);
-  MatriceMorse<RR> * mrr = ChangeMatriceMorse<R,RR>::f(mr);
-  
-  Matrice_Creuse<RR> * sparse_mat =GetAny<Matrice_Creuse<RR>* >((*emat)(stack));
-  //  sparse_mat->pUh=Mat->pUh;
-  // sparse_mat->pVh=Mat->pUh;;
-<<<<<<< HEAD
-  //  cout << " CopyMat_tt " << init << " "<<transp << " " << sparse_mat << endl;
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  if(!init) sparse_mat->init() ;
-  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::GC); //  none square matrice (morse)
-  sparse_mat->A.master(mrr);
-  //delete mr;
-  return sparse_mat;
-}
-
-template<class R,class RR,int init>
-AnyType CopyTrans(Stack stack,Expression emat,Expression eA)
-{
- return CopyMat_tt<R,RR,init>(stack,emat,eA,true);
-}
-template<class R,class RR,int init>
-AnyType CopyMat(Stack stack,Expression emat,Expression eA)
-{
- return CopyMat_tt<R,RR,init>(stack,emat,eA,false);
-}
-
-
-<<<<<<< HEAD
-template<class R,int init>
-=======
-template<class R>
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-AnyType MatFull2Sparse(Stack stack,Expression emat,Expression eA)
-{
-  KNM<R> * A=GetAny<KNM<R>* >((*eA)(stack));
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-  //  sparse_mat->pUh=0;
-  // sparse_mat->pVh=0;
-<<<<<<< HEAD
-  if(!init) sparse_mat->init() ;
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::GMRES); //  none square matrice (morse)
-  sparse_mat->A.master(new MatriceMorse<R>((KNM_<R> &)*A,0.0));
-  
- return sparse_mat;
-}
-
-<<<<<<< HEAD
-template<class R,int init>
-=======
-template<class R>
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-AnyType MatMap2Sparse(Stack stack,Expression emat,Expression eA)
-{
-   map< pair<int,int>, R> * A=GetAny< map< pair<int,int>, R> * >((*eA)(stack));
-   int n=0,m=0;
-   // hack:  the last element must exist in the map  to set matrix size 
-
-   typename map< pair<int,int>, R>::const_iterator last= --A->end(); // le last element
-   
-   if( last != A->end() )
-   
-        { 
-                n = last->first.first+1; 
-                m=last->first.second+1;
-        } 
-<<<<<<< HEAD
-    
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-     if(!init) sparse_mat->init() ;
-=======
-        
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  //  sparse_mat->pUh=0;
-  // sparse_mat->pVh=0;
-  sparse_mat->typemat=TypeSolveMat(TypeSolveMat::GMRES); //  none square matrice (morse)  
-  sparse_mat->A.master(new MatriceMorse<R>(n,m,*A,false));
-  delete A; 
- return sparse_mat;
-}
-
-template<class RR,class AA=RR,class BB=AA> 
-struct Op2_pair: public binary_function<AA,BB,RR> { 
-  static RR f(const AA & a,const BB & b)  
-  { return RR( a, b);} 
-};
-
-
-template<class R>
-long get_mat_n(Matrice_Creuse<R> * p)
- { ffassert(p ) ;  return p->A ?p->A->n: 0  ;}
-
-template<class R>
-long get_mat_m(Matrice_Creuse<R> * p)
- { ffassert(p ) ;  return p->A ?p->A->m: 0  ;}
-
-template<class R>
-long get_mat_nbcoef(Matrice_Creuse<R> * p)
- { ffassert(p ) ;  return p->A ?p->A->NbCoef(): 0  ;}
-
-template<class R>
-pair<long,long> get_NM(const list<triplet<R,MatriceCreuse<R> *,bool> > & lM)
-{
-      typedef typename list<triplet<R,MatriceCreuse<R> *,bool> >::const_iterator lconst_iterator;
-    
-    lconst_iterator begin=lM.begin();
-    lconst_iterator end=lM.end();
-    lconst_iterator i;
-    
-    long n=0,m=0;
-    for(i=begin;i!=end;i++++)
-     {
-       ffassert(i->second);
-       MatriceCreuse<R> & M=*i->second;
-       bool t=i->third;
-       int nn= M.n,mm=M.m;
-       if (t) swap(nn,mm);
-       if ( n==0) n =  nn;
-       if ( m==0) m = mm;
-       if (n != 0) ffassert(nn == n);
-       if (m != 0) ffassert(mm == m);
-      }
-   return make_pair(n,m);    
-}
-
-template<class R>
-long get_diag(Matrice_Creuse<R> * p, KN<R> * x)
- { ffassert(p && x ) ;  return p->A ?p->A->getdiag(*x): 0  ;}
-template<class R>
-long set_diag(Matrice_Creuse<R> * p, KN<R> * x)
- { ffassert(p && x ) ;  return p->A ?p->A->setdiag(*x): 0  ;}
-
- 
-template<class R>  
-R * get_elementp2mc(Matrice_Creuse<R> * const  & ac,const long & b,const long & c){ 
-   MatriceCreuse<R> * a= ac ? ac->A:0 ;
-  if(  !a || a->n <= b || c<0 || a->m <= c  ) 
-   { cerr << " Out of bound  0 <=" << b << " < "  << a->n << ",  0 <= " << c << " < "  << a->m
-           << " Matrix type = " << typeid(ac).name() << endl;
-     cerr << ac << " " << a << endl;
-     ExecError("Out of bound in operator Matrice_Creuse<R> (,)");}
-   R *  p =a->pij(b,c);
-   if( !p) { if(verbosity) cerr << "Error: the coef a(" << b << ","   << c << ")  do'nt exist in sparse matrix "
-           << " Matrix  type = " << typeid(ac).name() << endl;
-       ExecError("Use of unexisting coef in sparse matrix operator a(i,j) ");}
-    return  p;}
-
-
-template<class RR,class AA=RR,class BB=AA> 
-struct Op2_mulAv: public binary_function<AA,BB,RR> { 
-  static RR f(const AA & a,const BB & b)  
-  { return (*a->A * *b );} 
-};
-
-template<class RR,class AA=RR,class BB=AA> 
-struct Op2_mulvirtAv: public binary_function<AA,BB,RR> { 
-  static RR f(const AA & a,const BB & b)  
-  { return RR( (*a).A, b );} 
-};
-
-class Matrice_Creuse_C2R  { public:
-    typedef Complex K;  
-    Matrice_Creuse<K> * A;
-    int cas; //  0 re , 1 im 
-    Matrice_Creuse_C2R(Matrice_Creuse<K> * AA,int cass) : A(AA),cas(cass) {assert(A);}
-    operator MatriceCreuse<K> & () const {return *A->A;}
-    operator Matrice_Creuse<K> * () const {return A;}
-};
-
-template<int cas> 
-Matrice_Creuse_C2R Build_Matrice_Creuse_C2R(Matrice_Creuse<Complex> * pAA)
-{
-    
-  return Matrice_Creuse_C2R(pAA,cas);
-}
- 
-template<class K>
-class OneBinaryOperatorA_inv : public OneOperator { public:  
-  OneBinaryOperatorA_inv() : OneOperator(atype<Matrice_Creuse_inv<K> >(),atype<Matrice_Creuse<K> *>(),atype<long>()) {}
-    E_F0 * code(const basicAC_F0 & args) const 
-     { Expression p=args[1];
-       if ( ! p->EvaluableWithOutStack() ) 
-        { 
-          bool bb=p->EvaluableWithOutStack();
-          cout << bb << " " <<  * p <<  endl;
-          CompileError(" A^p, The p must be a constant == -1, sorry");}
-       long pv = GetAny<long>((*p)(NullStack));
-        if (pv !=-1)   
-         { char buf[100];
-           sprintf(buf," A^%ld, The pow must be  == -1, sorry",pv);
-           CompileError(buf);}     
-       return  new E_F_F0<Matrice_Creuse_inv<K>,Matrice_Creuse<K> *>(Build<Matrice_Creuse_inv<K>,Matrice_Creuse<K> *>,t[0]->CastTo(args[0])); 
-    }
-};
-
-
-
-
-template<class K>
-class Psor :  public E_F0 { public:  
- 
-   typedef double  Result;
-   Expression mat;
-   Expression xx,gmn,gmx,oomega;  
-   Psor(const basicAC_F0 & args) 
-    {   
-      args.SetNameParam();
-      mat=to<Matrice_Creuse<K> *>(args[0]); 
-      gmn=to<KN<K>*>(args[1]); 
-      gmx=to<KN<K>*>(args[2]); 
-      xx=to<KN<K>*>(args[3]); 
-      oomega=to<double>(args[4]); 
-      
-   }   
-    static ArrayOfaType  typeargs() { 
-      return  ArrayOfaType( atype<double>(),
-                            atype<Matrice_Creuse<K> *>(),
-                            atype<KN<K>*>(),
-                            atype<KN<K>*>(),
-                            atype<KN<K>*>(),
-                            atype<double>(),false);}
-                            
-    static  E_F0 * f(const basicAC_F0 & args){ return new Psor(args);} 
-    
-    AnyType operator()(Stack s) const {
-      Matrice_Creuse<K>* A= GetAny<Matrice_Creuse<K>* >( (*mat)(s) );
-      KN<K>* gmin = GetAny<KN<K>* >( (*gmn)(s) );
-      KN<K>* gmax = GetAny<KN<K>* >( (*gmx)(s) );
-      KN<K>* x = GetAny<KN<K>* >( (*xx)(s) );
-      double omega = GetAny<double>((*oomega)(s));
-      return A->A->psor(*gmin,*gmax,*x,omega);
-    }
-  
-};
-template <class R>
- struct TheDiagMat {
-  Matrice_Creuse<R> * A; 
-  TheDiagMat(Matrice_Creuse<R> * AA) :A(AA) {ffassert(A);}
-  void   get_mat_daig( KN_<R> & x) { ffassert(A && A->A && x.N() == A->A->n  && A->A->n == A->A->m );
-     A->A->getdiag(x);}
-  void   set_mat_daig(const  KN_<R> & x) { ffassert(A && A->A && x.N() == A->A->n  && A->A->n == A->A->m );
-     A->A->setdiag(x);}
- };
- 
- template <class R>
- struct TheCoefMat {
-  Matrice_Creuse<R> * A; 
-  TheCoefMat(Matrice_Creuse<R> * AA) :A(AA) {ffassert(A);}
-  void   get_mat_coef( KN_<R> & x) { ffassert(A && A->A && x.N() == A->A->NbCoef()  );
-     A->A->getcoef(x);}
-  void   set_mat_coef(const  KN_<R> & x) { ffassert(A && A->A && x.N() == A->A->NbCoef() );
-     A->A->setcoef(x);}
- };
- 
-template<class R>
-TheDiagMat<R> thediag(Matrice_Creuse<R> * p)
- {  return  TheDiagMat<R>(p);}
-
-template<class R>
-TheCoefMat<R> thecoef(Matrice_Creuse<R> * p)
- {  return  TheCoefMat<R>(p);}
- 
-template<class R>
-TheDiagMat<R> set_mat_daig(TheDiagMat<R> dm,KN<R> * x)
-{
-  dm.set_mat_daig(*x);
-  return dm;
-}
-template<class R>
-KN<R> * get_mat_daig(KN<R> * x,TheDiagMat<R> dm)
-{
-  dm.get_mat_daig(*x);
-  return x;
-}
-
-template<class R>
-TheCoefMat<R> set_mat_coef(TheCoefMat<R> dm,KN<R> * x)
-{
-  dm.set_mat_coef(*x);
-  return dm;
-}
-template<class R>
-KN<R> * get_mat_coef(KN<R> * x,TheCoefMat<R> dm)
-{
-  dm.get_mat_coef(*x);
-  return x;
-}
-
-template<class R> 
-bool IsRawMat(const basicAC_F0 & args) 
-{   
-    
-    const E_Array & ee= *dynamic_cast<const E_Array*>((Expression) args[1]);
-    if (!&ee) return 0;
-    
-    int N=ee.size();
-    if (N==1)
-    {
-	C_F0 c0(ee[0]);
-	return 
-	    atype<KN_<R> >()->CastingFrom(ee[0].left());
-	    
-    }
-    else if (N==3)
-    {
-	C_F0 c0(ee[0]),c1(ee[1]),c2(ee[2]);
-	return 
-	    atype<KN_<long> >()->CastingFrom(ee[0].left())
-	    && 	    atype<KN_<long> >()->CastingFrom(ee[1].left())
-	    &&      atype<KN_<R> >()->CastingFrom(ee[2].left());
-	    
-    }
-    return 0;
-}
-
-
-template<typename R>
-<<<<<<< HEAD
-class RawMatrix :  public E_F0 { public:
-    int init;
-    typedef Matrice_Creuse<R> * Result;
-    Expression emat; 
-    Expression coef,col,lig;
-    RawMatrix(const basicAC_F0 & args,int initt) ;
-=======
-class RawMatrix :  public E_F0 { public: 
-    typedef Matrice_Creuse<R> * Result;
-    Expression emat; 
-    Expression coef,col,lig;
-    RawMatrix(const basicAC_F0 & args) ;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    static ArrayOfaType  typeargs() { return  ArrayOfaType(atype<Matrice_Creuse<R>*>(),atype<E_Array>());}
-    AnyType operator()(Stack s) const ;    
-};
-
- template<typename R>
- class BlockMatrix :  public E_F0 { public: 
-   typedef Matrice_Creuse<R> * Result;
-<<<<<<< HEAD
-   int N,M;
-   int init;
-   Expression emat; 
-   Expression ** e_Mij;
-   int ** t_Mij;
-   BlockMatrix(const basicAC_F0 & args,int iinit=0) ;
-=======
-   int N,M; 
-   Expression emat; 
-   Expression ** e_Mij;
-   int ** t_Mij;
-   BlockMatrix(const basicAC_F0 & args) ;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-   ~BlockMatrix() ;
-      
-    static ArrayOfaType  typeargs() { return  ArrayOfaType(atype<Matrice_Creuse<R>*>(),atype<E_Array>());}
-    static  E_F0 * f(const basicAC_F0 & args){
-<<<<<<< HEAD
-	if(IsRawMat<R>(args)) return new RawMatrix<R>(args,0);
-	else return new BlockMatrix(args,0);
-=======
-	if(IsRawMat<R>(args)) return new RawMatrix<R>(args);
-	else return new BlockMatrix(args);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    }  
-    AnyType operator()(Stack s) const ;
-    
-};
-<<<<<<< HEAD
-template<typename R>
-class BlockMatrix1 :  public BlockMatrix<R> { public:
-    BlockMatrix1(const basicAC_F0 & args): BlockMatrix<R>(args,1) {}
-    static  E_F0 * f(const basicAC_F0 & args){
-        if(IsRawMat<R>(args)) return new RawMatrix<R>(args,1);
-        else return new BlockMatrix<R>(args,1);
-    }  
-
-};
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-template<typename R>  
-map< pair<int,int>, R> *Matrixfull2mapIJ_inv (KNM<R>   * const & pa,const Inv_KN_long & iii,const Inv_KN_long & jjj)
-{
-   const  KN_<long> &ii(iii), &jj(jjj);
-   const KNM<R> & a(*pa);
-   int N=a.N(),M=a.M();
-   long n = ii(SubArray(N)).max()+1;
-   long m= jj(SubArray(M)).max()+1;
-   
-/*
-  long minn = ii(SubArray(N)).min()+1;
-  long minm= jj(SubArray(M)).min()+1;
-  if ( !(0 <= minn && 0 <=  minm) ) 
-  {
-  cerr << " Out of Bound  in A(I^-1,J^1) :  "<< minn << " " << minm <<" =>  negative value!! " << endl;
-  ExecError("Out of Bound Error");
-  }
-*/
-   
-  // cout << "  ### n m " << n << " " << m << endl; 
-   map< pair<int,int>, R> *pA= new map< pair<int,int>, R>;
-   map< pair<int,int>, R> & A(*pA);
-   A[make_pair(n-1,m-1)] = R(); // Hack to be sure that the last term existe 
-  
-   for (long i=0;i<N;++i)
-    for (long j=0;j<M;++j)
-     { R aij=a(i,j);
-       //cout << i << " " << j << " :: " << ii[i] << " " << jj[j] << " = " << aij << endl;
-       if(ii[i]>=0 && jj[j]>=0 && Fem2D::norm(aij)>1e-40) 
-         A[make_pair(ii[i],jj[j])] += aij;
-     }
-      
-  return pA;
-}
-
-template<typename R>  
-map< pair<int,int>, R> *Matrixfull2mapIJ (KNM<R>   * const & pa,const KN_<long> & ii,const  KN_<long> & jj)
-{
-   const KNM<R> & a(*pa);
-   int N=a.N(),M=a.M();
-   long n = ii.N();
-   long m= jj.N();
-  // cout << "  ### n m " << n << " " << m << endl; 
-   map< pair<int,int>, R> *pA= new map< pair<int,int>, R>;
-   map< pair<int,int>, R> & A(*pA);
-   A[make_pair(n-1,m-1)] += R(); // Hack to be sure that the last term existe 
-  
-   for (long il=0;il<N;++il)
-    for (long jl=0;jl<M;++jl)
-     { 
-       long i = ii[il];
-       long j = jj[jl];
-       if( i>=0 && j >=0) {
-          if ( !(0 <= i && i < N && 0 <= j && j < M ) )
-            {
-              cerr << " Out of Bound  in A(I,J) : " << i << " " << j << " not in " << "[0,"<<N<<"[x[0," << M << "[ \n";
-              ExecError("Out of Bound Error");
-             }
-       
-          R aij=a(i,j);
-       //cout << i << " " << j << " :: " << ii[i] << " " << jj[j] << " = " << aij << endl;
-	  if (Fem2D::norm(aij)>1e-40) 
-           A[make_pair(il,jl)] += aij;
-       }
-     }
-      
-  return pA;
-}
-
-template<class R>
-AnyType Matrixfull2map (Stack , const AnyType & pp)
-{
-   const KNM<R> & a(*GetAny<KNM<R> *>(pp));
-   int N=a.N(),M=a.M();
-   int n = N;
-   int m= M;
-   map< pair<int,int>, R> *pA= new map< pair<int,int>, R>;
-   map< pair<int,int>, R> & A(*pA);
-   A[make_pair(n-1,m-1)] = R(); // Hack to be sure that the last term existe 
-  
-   for (int i=0;i<N;++i)
-    for (int j=0;j<M;++j)
-     { R aij=a(i,j);
-       if (Fem2D::norm(aij)>1e-40) 
-      A[make_pair(i,j)] += aij;
-     }
-      
-  return pA;
-}
-
-
-template<class R>
-map< pair<int,int>, R> *Matrixoutp2mapIJ_inv (outProduct_KN_<R>   * const & pop,const Inv_KN_long & iii,const Inv_KN_long & jjj)
-{
-   const KN_<long> &ii(iii), &jj(jjj);
-   const outProduct_KN_<R> & op(*pop);
-   long  N=op.a.N(),M=op.b.N();
-   long  n = ii(SubArray(N)).max()+1;
-   long m= jj(SubArray(M)).max()+1;
-/*
-   long minn = ii(SubArray(N)).min()+1;
-   long minm= jj(SubArray(M)).min()+1;
-     if ( !(0 <= minn && 0 <=  minm) ) 
-        {
-            cerr << " Out of Bound  in A(I^-1,J^1) :  "<< minn << " " << minm <<" =>  negative value!! " << endl;
-            ExecError("Out of Bound Error");
-        }
- */
-   map< pair<int,int>, R> *pA= new map< pair<int,int>, R>;
-   map< pair<int,int>, R> & A(*pA);
-   A[make_pair(n-1,m-1)] = R(); // Hack to be sure that the last term existe 
-  
-   for (int i=0;i<N;++i)
-    for (int j=0;j<M;++j)
-     { 
-       R aij=op.a[i]*RNM::conj(op.b[j]);
-       if(ii[i]>=0 && jj[j]>=0 && Fem2D::norm(aij)>1e-40) 
-//       if (norm(aij)>1e-40 &) 
-          A[make_pair(ii[i],jj[j])] += aij;
-     }   
-  delete pop;
-    
-  return pA;
-}
-
-
-template<class R>
-map< pair<int,int>, R> *Matrixmapp2mapIJ1 (map< pair<int,int>, R> *const &  B,const Inv_KN_long & iii,const Inv_KN_long  & jjj)
-{
-    const KN_<long> &ii(iii), &jj(jjj);  
-    typedef typename map< pair<int,int>, R>::const_iterator It;
-    
-    map< pair<int,int>, R> *pA= new map< pair<int,int>, R>;
-    map< pair<int,int>, R> & A(*pA);
-    int n=0,m=0;
-    // hack:  the last element must exist in the map  to set matrix size 
-/*    
-    It lastb= --B->end(); // le last element
-    
-    if( lastb != B->end() )	
-    { 
-	nb = last->first.first+1; 
-	mb=last->first.second+1;
-    } */
-    int N=ii.N(),M=jj.N();
-   // A[make_pair(n-1,m-1)] = R(); // Hack to be sure that the last term existe 
-    
-    for (It k=B->begin();k!=B->end();++k)
-    {
-	int il =  k->first.first;
-	int jl =  k->first.second;
-	if ( !( 0 <= il && il < N && 0 <= jl && jl < M )  )
-	{
-	    cerr << " Out of Bound  in (Map)(I,J) : " << il << " " << jl << " not in " << "[0,"<<N<<"[x[0," << M << "[ \n";
-	    ExecError("Out of Bound Error");
-	}
-	int i=ii(il);
-	int j=jj(jl);
-	n=max(i,n);
-	m=max(j,m);
-	R aij =k->second;
-	if(i >=0 && j>=0) 
-	  A[make_pair(i,j)] += aij;
-    }
-     A[make_pair(n,m)] += R(); // Hack to be sure that the last term existe 
-     delete B;
-    
-    return pA;
-}
-
-template<class R>
-map< pair<int,int>, R> *Matrixmapp2mapIJ (map< pair<int,int>, R> *const &  B,const KN_<long> & ii,const KN_<long>  & jj)
-{
-    
-    typedef typename map< pair<int,int>, R>::const_iterator It;
-    typedef typename multimap< int,int>::iterator  MI;
-    
-    map< pair<int,int>, R> *pA= new map< pair<int,int>, R>;
-    map< pair<int,int>, R> & A(*pA);
-    multimap< int,int > I,J;
-    int N=ii.N(),M=jj.N();
-    for (int i=0;i<N;++i)
-	if(ii[i]>=0)
-	  I.insert(make_pair(ii[i],i));
-    for (int j=0;j<M;++j)
-	if(jj[j]>=0)
-	    J.insert(make_pair(jj[j],j));
-    int n=N-1,m=M-1;// change FH  sep 2009 to have the correct size..
-
-    for (It k=B->begin();k!=B->end();++k)
-    {
-	int il =  k->first.first;
-	int jl =  k->first.second;
-	R aij =k->second;
-	pair<MI,MI> PPi=I.equal_range(il);
-	pair<MI,MI> PPj=J.equal_range(jl);
-	for(MI pi=PPi.first ; pi !=  PPi.second; ++pi)
-	{
-	    int i=pi->second;
-	    for(MI pj=PPj.first ; pj !=  PPj.second; ++pj)
-	    { 
-		int j=pj->second;
-		n=max(i,n);
-	        m=max(j,m);	
-	       if(i >=0 && j>=0) 
-	         A[make_pair(i,j)] += aij;
-	    }
-	}   
-    }
-    A[make_pair(n,m)] += R(); // Hack to be sure that the last term existe 
-    delete B;
-    
-    return pA;
-}
-
-template<class R>
-map< pair<int,int>, R> *Matrixoutp2mapIJ (outProduct_KN_<R>   * const & pop,const KN_<long> & ii,const KN_<long>  & jj)
-{
-   const outProduct_KN_<R> & op(*pop);
-   long N=op.a.N(),M=op.b.N();
-   long n=ii.N(),m=jj.N();
-   
-   map< pair<int,int>, R> *pA= new map< pair<int,int>, R>;
-   map< pair<int,int>, R> & A(*pA);
-   A[make_pair(n-1,m-1)] = R(); // Hack to be sure that the last term existe 
-   
-   for (long il=0;il<n;++il)
-    for (long jl=0;jl<m;++jl)
-     { 
-       long i = ii[il];
-       long j = jj[jl];
-       if(i>=0 && j >=0)
-        {
-               if ( !( 0 <= i && i < N && 0 <= j && j < M )  )
-                {
-                    cerr << " Out of Bound  in (a*b')(I,J) : " << i << " " << j << " not in " << "[0,"<<N<<"[x[0," << M << "[ \n";
-                    ExecError("Out of Bound Error");
-                }
-               R aij=op.a[i]*RNM::conj(op.b[j]);
-               if (Fem2D::norm(aij)>1e-40) 
-                  A[make_pair(il,jl)] += aij;
-               }
-     }   
-  delete pop;
-    
-  return pA;
-}
-
-
-template<class R>
-AnyType Matrixoutp2map (Stack , const AnyType & pp)
-{
-   const outProduct_KN_<R> & op(*GetAny<outProduct_KN_<R> *>(pp));
-   long N=op.a.N(),M=op.b.N();
-   long n = N;
-   long m= M;
-   map< pair<int,int>, R> *pA= new map< pair<int,int>, R>;
-   map< pair<int,int>, R> & A(*pA);
-   A[make_pair(n-1,m-1)] = R(); // Hack to be sure that the last term existe 
-  
-   for (long i=0;i<N;++i)
-    for (long j=0;j<M;++j)
-     { 
-      R aij=op.a[i]*RNM::conj(op.b[j]);
-      if (Fem2D::norm(aij)>1e-40) 
-        A[make_pair(i,j)] += aij;
-     } 
-  delete &op;        
-  return pA;
-}
-
-
-template<typename R>  BlockMatrix<R>::~BlockMatrix() 
-{  
-    if (e_Mij)
-    {  cout << " del Block matrix "<< this << " " << e_Mij <<" N = " << N << " M = " << M << endl;
-	for (int i=0;i<N;i++)
-	{ delete [] e_Mij[i];
-	    delete [] t_Mij[i];
-	}
-	delete [] e_Mij;
-	delete [] t_Mij;
-	N=0;
-	M=0;
-	e_Mij=0;
-	t_Mij=0; }
-}   
-
-<<<<<<< HEAD
-template<typename R>  RawMatrix<R>::RawMatrix(const basicAC_F0 & args,int iinit)
-: init(iinit)
-=======
-template<typename R>  RawMatrix<R>::RawMatrix(const basicAC_F0 & args) 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{
-    args.SetNameParam();
-    emat = args[0];
-    
-    const E_Array & ee= *dynamic_cast<const E_Array*>((Expression) args[1]);
-    
-    int N=ee.size();
-    if (N==1)
-    {
-	C_F0 c0(ee[0]);
-	coef=to<KN_<R> >(ee[0]);
-	lig=0;
-	col=0;
-    }
-    
-    else if (N==3)
-    {
-	C_F0 c0(ee[0]),c1(ee[1]),c2(ee[2]);
-	coef=to<KN_<R> >(ee[2]);
-	lig=to<KN_<long> >(ee[0]);
-	col=to<KN_<long> >(ee[1]);
-	
-    }
-    
-    
-}
-<<<<<<< HEAD
-template<typename R>  BlockMatrix<R>::BlockMatrix(const basicAC_F0 & args,int iinit)
-: init(iinit)
-=======
-template<typename R>  BlockMatrix<R>::BlockMatrix(const basicAC_F0 & args) 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-{   
-    N=0;
-    M=0;
-    args.SetNameParam();
-    emat = args[0];
-    const E_Array & eMij= *dynamic_cast<const E_Array*>((Expression) args[1]);
-    N=eMij.size();
-    int err =0;
-    for (int i=0;i<N;i++)
-    {
-        const E_Array* emi= dynamic_cast<const E_Array*>((Expression)  eMij[i]);
-        if (!emi) err++;
-        else
-        { 
-	    if ( i==0) 
-		M = emi->size();
-	    else
-		if(M != emi->size()) err++;
-        }
-    }
-    if (err) {
-	CompileError(" Block matrix : [[ a, b, c], [ a,b,c ]] or Raw Matrix [a] or [ l, c, a ] ");
-    }
-    assert(N && M);
-    e_Mij = new Expression * [N];
-    t_Mij = new int * [N];
-    for (int i=0;i<N;i++)
-    {
-	const E_Array li= *dynamic_cast<const E_Array*>((Expression)  eMij[i]);
-	
-	e_Mij[i] =  new Expression [M];
-	t_Mij[i] = new int [M]; 
-	for (int j=0; j<M;j++)  
-	{
-	    C_F0 c_Mij(li[j]);
-	    Expression eij=c_Mij.LeftValue();
-	    aType rij = c_Mij.left();
-	    if ( rij == atype<long>() &&  eij->EvaluableWithOutStack() )
-	    {
-		long contm = GetAny<long>((*eij)(NullStack));
-		/*  prev  version
-		if(contm !=0) 
-		CompileError(" Block matrix , Just 0 matrix");
-		e_Mij[i][j]=0;
-		t_Mij[i][j]=0;*/
-		if(contm==0)
-		{
-		    e_Mij[i][j]=0;
-		    t_Mij[i][j]=0;
-		}
-		else if ( atype<R >()->CastingFrom(rij) )
-		{  		  // frev 2007 
-		    e_Mij[i][j]=to<R>(c_Mij);
-		    t_Mij[i][j]=7; //  just un scalaire 
-		}
-		else CompileError(" Block matrix , Just 0 matrix");
-	    }
-	    else if ( rij ==  atype<Matrice_Creuse<R> *>()) 
-	    {
-		e_Mij[i][j]=eij;
-		t_Mij[i][j]=1;
-	    } 
-	    else if ( rij ==  atype<Matrice_Creuse_Transpose<R> >()) 
-	    {
-		e_Mij[i][j]=eij;
-		t_Mij[i][j]=2;
-	    } 
-	    else if ( atype<KNM<R> *  >()->CastingFrom(rij) )
-	      {  //  before KN_ because KNM can be cast in KN_
-		  
-		  e_Mij[i][j]=to<KNM<R> * >(c_Mij);
-		  t_Mij[i][j]=5;
-	      }	    
-	    else if ( atype<KN_<R> >()->CastingFrom(rij) )
-	    {  
-		e_Mij[i][j]=to<KN_<R> >(c_Mij);
-		t_Mij[i][j]=3;
-		
-	    } 
-	    else if ( atype<Transpose<KN_<R> > >()->CastingFrom(rij) )
-	    {  
-		
-		e_Mij[i][j]=to<Transpose<KN_<R> > >(c_Mij);
-		t_Mij[i][j]=4;
-	    } 
-	    else if ( atype<Transpose< KNM<R> * > >()->CastingFrom(rij) )
-	    {  
-		
-		e_Mij[i][j]=to<Transpose<KNM<R> *> >(c_Mij);
-		t_Mij[i][j]=6;
-	    }
-	    else if ( atype<R >()->CastingFrom(rij) )
-	    {  		  // frev 2007 
-		e_Mij[i][j]=to<R>(c_Mij);
-		t_Mij[i][j]=7; //  just un scalaire 
-	    }
-	    
-	    else {  
-		
-		CompileError(" Block matrix ,  bad type in block matrix");
-	    }
-	    /*            else if   ( atype<map< pair<int,int>, R> * >()->CastingFrom(rij) ) 
-	    {
-		e_Mij[i][j]= to<map< pair<int,int>, R> *>(C_F0(eij,rij)).LeftValue();
-		t_Mij[i][j]=10;
-	    }*/
-	}
-	
-    }
-}
-
-template<typename RR>
-class  SetRawMatformMat : public OneOperator { 
-public:
-    typedef Matrice_Creuse<RR> *  A; // Warning  B type of  2 parameter 
-    typedef Matrice_Creuse<RR> *  R;
-    typedef E_Array B; //   A type of 1 parameter
-    
-    class CODE : public  E_F0 { public:
-	Expression Mat;
-	Expression lig;
-	Expression col;
-	Expression coef;
-	bool mi;    
-	    CODE(Expression a,const E_Array & tt)  
-		: Mat(a),
-		 mi(tt.MeshIndependent())
-	    {
-
-		    assert(&tt);
-		    if(tt.size()!=3) 
-			CompileError("Set raw matrix:  [ lg,col, a] = A (size !=3) ");
-		    if (    aatypeknlongp->CastingFrom(tt[0].left() ) //// for  compilation error with g++ 3.2.2 (4 times)
-			&&  aatypeknlongp->CastingFrom(tt[1].left() )
-			&&  atype<KN<RR>* >()->CastingFrom(tt[2].left() ) )
-			    {
-			      lig = aatypeknlongp->CastTo(tt[0]);
-			      col = aatypeknlongp->CastTo(tt[1]);
-			      coef = atype<KN<RR>* >()->CastTo(tt[2]);
-			    }      
-			    else 
-				CompileError(" we are waiting for [ lg,col,a] = A");
-    }
-	    
-	    AnyType operator()(Stack stack)  const 
-	    {
-		A  a=GetAny<A>((*Mat)(stack));
-		KN<long> *lg,*cl;
-		KN<RR> *cc;
-		lg = GetAny<KN<long>*>((*lig)(stack));
-		cl = GetAny<KN<long>*>((*col)(stack));
-		cc = GetAny<KN<RR>*>((*coef)(stack));
-		int n=a->N(),m=a->M();
-		map<pair<int,int>,RR> *M=new map<pair<int,int>,RR>;
-		if (n >0 && m>0 && a->A) 
-		{
-		    a->A->addMatTo(RR(1.),*M);
-		    // hack 
-		    (*M)[make_pair(n-1,m-1)]+=RR();
-		}
-		int kk = M->size();
-		lg->resize(kk);
-		cc->resize(kk);
-		cl->resize(kk);
-		int k=0;
-		typename map<pair<int,int>,RR>::const_iterator i;
-		//if (!a->sym)
-		 for (i=M->begin(); i != M->end();++i,++k)
-		  {  
-		    (*lg)[k]= i->first.first;
-		    (*cl)[k]= i->first.second;
-		    (*cc)[k]= i->second;
-		  }
-		    
-		delete M;
-		return SetAny<R>(a);
-	    } 
-	    bool MeshIndependent() const     {return  mi;} // 
-	    ~CODE() {}
-	    operator aType () const { return atype<R>();}    
-    }; // end sub class CODE
-    
-    
-public: // warning hack  A and B 
-	E_F0 * code(const basicAC_F0 & args) const 
-    { return  new CODE(t[1]->CastTo(args[1]),*dynamic_cast<const E_Array*>( t[0]->CastTo(args[0]).RightValue()));} 
-    SetRawMatformMat():   OneOperator(atype<R>(),atype<B>(),atype<A>())  {} // warning with A and B 
-    
-};
-
-
-R realC(Complex c) {return c.real();}
-R imagC(Complex c) {return c.imag();}
-template<int init>
-AnyType CopyMatC2R(Stack stack,Expression emat,Expression CR2eA)
-{
-    typedef Complex C; 
-    typedef double R; 
-    using namespace Fem2D;
-    Matrice_Creuse_C2R   CRMat =GetAny<Matrice_Creuse_C2R>((*CR2eA)(stack));
-    Matrice_Creuse<C> *Mat=CRMat; 
-    int cas = CRMat.cas; 
-    Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-    MatriceMorse<C> * mr=Mat->A->toMatriceMorse(false,false);
-    MatriceMorse<R> * mrr = 0;
-<<<<<<< HEAD
-   // cout << " CopyMatC2R:  " << init << " " <<  sparse_mat <<endl;
-=======
-   
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    if(cas==0) 
-        mrr = new MatriceMorse<R>(*mr,realC);
-    else if(cas==1) 
-        mrr = new MatriceMorse<R>(*mr,imagC);
-    else {
-         cout << " cas = " << cas <<endl;
-        ffassert(0); 
-    }
-    delete mr;
-    if(!init) sparse_mat->init() ; // ???? 
-    sparse_mat->A.master(mrr);
-    //ffassert(0);// a faire 
-    return sparse_mat;
-}
-
-template<typename R>  AnyType RawMatrix<R>::operator()(Stack stack) const
-{
-    MatriceMorse<R> * amorse =0; 
-    KN_<R> cc(GetAny< KN_<R>  >((*coef)(stack)));
-    int k= cc.N();
-    int n= k;
-    int m=n;
-    map< pair<int,int>, R> Aij;
-    bool sym=false;
-    if( lig && col)
-    {
-	KN_<long> lg(GetAny< KN_<long>  >((*lig)(stack)));
-	KN_<long> cl=(GetAny< KN_<long>  >((*col)(stack)));
-	n = lg.max()+1;
-	m = cl.max()+1;
-	ffassert( lg.N()==k && cl.N()==k && lg.min()>=0 && lg.max()>=0);
-	sym=false;
-	for(int i=0;i<k;++i)
-	    Aij[make_pair<int,int>(lg[i],cl[i])]+=cc[i];	
-    }
-    else
-    {
-	sym=true;
-	for(int i=0;i<n;++i)
-	    Aij[make_pair(i,i)]=cc[i];
-    }
-    //cout <<  " nxm  =" <<n<< "x" << m <<endl; 
-    amorse=  new MatriceMorse<R>(n,m,Aij,sym); 
-    if(verbosity)
-	cout << "  -- Raw Matrix    nxm  =" <<n<< "x" << m << " nb  none zero coef. " << amorse->nbcoef << endl;
-    
-<<<<<<< HEAD
-    Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));
-    if( !init) sparse_mat->init();
-=======
-    Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(stack));       
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-    // sparse_mat->pUh=0;
-    // sparse_mat->pVh=0; 
-    sparse_mat->A.master(amorse);
-    sparse_mat->typemat=(amorse->n == amorse->m) ? TypeSolveMat(TypeSolveMat::GMRES) : TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-    
-    if(verbosity>3) { cout << "  End Raw Matrix : " << endl;}
-    
-    return sparse_mat;   
-}
-template<typename R>  AnyType BlockMatrix<R>::operator()(Stack s) const
-{
-  typedef list<triplet<R,MatriceCreuse<R> *,bool> > * L;
-   KNM<L> Bij(N,M);
-   KNM<KNM_<R> * > Fij(N,M); 
-   KNM<bool> cnjij(N,M); 
-   KNM<R> Rij(N,M); //  to sto
-  
-   cnjij = false; 
-   KN<long> Oi(N+1), Oj(M+1);
-   if(verbosity>3) { cout << " Build Block Matrix : " << N << " x " << M << endl;}
-   Bij = (L) 0;
-   Oi = (long) 0;
-   Oj = (long)0;
-  for (int i=0;i<N;++i)
-   for (int j=0;j<M;++j)
-    {
-      Fij(i,j)=0;
-      Expression eij = e_Mij[i][j];
-      int tij=t_Mij[i][j];
-      if (eij) 
-      {
-        cnjij(i,j) = tij%2 == 0; 
-        AnyType e=(*eij)(s);
-        if (tij==1) Bij(i,j) = to( GetAny< Matrice_Creuse<R>* >( e)) ;
-        else if  (tij==2) Bij(i,j) = to( GetAny<Matrice_Creuse_Transpose<R> >(e));
-        else if (tij==3)  { KN_<R> x=GetAny< KN_<R>  >( e);  Fij(i,j) = new KNM_<R>(x,x.N(),1);}
-        else if (tij==4)  { KN_<R> x=GetAny< Transpose< KN_<R> >   >( e).t ;  Fij(i,j) = new KNM_<R>(x,1,x.N());}
-        else if (tij==5)  { KNM<R> * m= GetAny< KNM<R>*  >( e);  Fij(i,j) = new KNM_<R>(*m);}
-        else if (tij==6)  { KNM<R> * m= GetAny< Transpose< KNM<R>* >  >( e).t;  Fij(i,j) = new KNM_<R>(m->t()); }
-	else if (tij==7)   { Rij(i,j)=GetAny< R  >( e);  Fij(i,j) = new KNM_<R>(&(Rij(i,j)),1,1);}
-        
-   //     else if  (tij==3) {}
-        else {
-         cout << " Bug " << tij << endl;
-         ExecError(" Type sub matrix block unknown ");
-        }
-      }
-     }
-     //  compute size of matrix
-     int err=0;
-    for (int i=0;i<N;++i)
-     for (int j=0;j<M;++j) 
-       {
-        pair<long,long> nm(0,0);
-        
-       if (Bij(i,j)) 
-         nm = get_NM( *Bij(i,j));
-       else if(Fij(i,j)) 
-         nm = make_pair<long,long>(Fij(i,j)->N(), Fij(i,j)->M());
-          
-        if (( nm.first || nm.second)  && verbosity>3)
-          cout << " Block [ " << i << "," << j << " ]      =     " << nm.first << " x " << nm.second << " cnj = " << cnjij(i,j) << endl;
-        if (nm.first)
-          {
-          if ( Oi(i+1) ==0 )  Oi(i+1)=nm.first;
-          else  if(Oi(i+1) != nm.first)
-            { 
-                 err++;
-                 cerr <<"Error Block Matrix,  size sub matrix" << i << ","<< j << " n (old) "  << Oi(i+1) 
-                       << " n (new) " << nm.first << endl;
-
-            }
-          }
-          if(nm.second) 
-          {  
-          if   ( Oj(j+1) ==0) Oj(j+1)=nm.second;
-          else   if(Oj(j+1) != nm.second) 
-            { 
-              cerr <<"Error Block Matrix,  size sub matrix" << i << ","<< j << " m (old) "  << Oj(j+1) 
-                   << " m (new) " << nm.second << endl;
-              err++;}
-          }
-        }
-
-    if (err)    ExecError("Error Block Matrix,  size sub matrix");
-    //  gestion of zero block ????
-    
-    for (int j=0;j<M;++j)
-    {  if(verbosity>9) cout << j << " colum size" << Oj(j+1) << endl;
-        if   ( Oj(j+1) ==0) {
-            Oj(j+1)=1;
-            if( Oj(j+1) !=1)  err++;}
-    }
-    for (int i=0;i<N;++i)
-    {
-        if(verbosity>9) cout << i << " row size" << Oi(i+1) << endl;
-        if   ( Oi(i+1) ==0) {
-               Oi(i+1)=1;
-               if( Oi(i+1) !=1)  err++;}
-    }
-    if (err)    ExecError("Error Block Matrix with  0 line or  0 colomn..");
-   
-
-   
-    
-
-//  cout << "Oi = " <<  Oi << endl;
-//  cout << "Oj = " <<  Oj << endl;
-
-    for (int i=0;i<N;++i)
-      Oi(i+1) += Oi(i);
-    for (int j=0;j<M;++j) // correct 10/01/2007 FH 
-      Oj(j+1) += Oj(j);// correct 07/03/2010 FH
-  long n=Oi(N),m=Oj(M);
-  if(verbosity>3)
-   {
-     cout << "     Oi = " <<  Oi << endl;
-     cout << "     Oj = " <<  Oj << endl;
-  }
-  MatriceMorse<R> * amorse =0; 
-{
-   map< pair<int,int>, R> Aij;
-    for (int i=0;i<N;++i)
-     for (int j=0;j<M;++j) 
-       if (Bij(i,j)) 
-         {
-           if(verbosity>3)
-             cout << "  Add  Block S " << i << "," << j << " =  at " << Oi(i) << " x " << Oj(j) << " conj = " << cnjij(i,j) << endl;
-           BuildCombMat(Aij,*Bij(i,j),false,Oi(i),Oj(j),cnjij(i,j));
-         }
-       else if (Fij(i,j))
-        {
-           if(verbosity>3)
-             cout << "  Add  Block F " << i << "," << j << " =  at " << Oi(i) << " x " << Oj(j) << endl;
-           BuildCombMat(Aij,*Fij(i,j),Oi(i),Oj(j),R(1.),cnjij(i,j));// BuildCombMat
-        }
-        
-           
-  amorse=  new MatriceMorse<R>(n,m,Aij,false); 
-  }
-  if(verbosity)
-     cout << "  -- Block Matrix NxM = " << N << "x" << M << "    nxm  =" <<n<< "x" << m << " nb  none zero coef. " << amorse->nbcoef << endl;
-<<<<<<< HEAD
- 
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(s));
-  if(!init) sparse_mat->init();
-=======
-  
-  Matrice_Creuse<R> * sparse_mat =GetAny<Matrice_Creuse<R>* >((*emat)(s));       
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  //sparse_mat->pUh=0;
-  // sparse_mat->pVh=0; 
-  sparse_mat->A.master(amorse);
-  sparse_mat->typemat=(amorse->n == amorse->m) ? TypeSolveMat(TypeSolveMat::GMRES) : TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-                
-     
-  // cleanning    
-  for (int i=0;i<N;++i)
-   for (int j=0;j<M;++j)
-    if(Bij(i,j)) delete Bij(i,j);
-    else if(Fij(i,j))  delete Fij(i,j);  
-   if(verbosity>3) { cout << "  End Build Blok Matrix : " << endl;}
-   
- return sparse_mat;  
-
-}
-
-template<class R>
-class minusMat { public:
-    list<triplet<R,MatriceCreuse<R> *,bool> >  *l;
-    minusMat(list<triplet<R,MatriceCreuse<R> *,bool> > *ll):
-	l(new list<triplet<R,MatriceCreuse<R> *,bool> >(*ll) )
-      {
-	    typedef typename list<triplet<R,MatriceCreuse<R> *,bool> >::iterator lci;
-	    for (lci i= l->begin();i !=l->end();++i)
-		i->first*= R(-1);
-      }
-};
-
-template<class R>
-AnyType mM2L3 (Stack , const AnyType & pp)
-{
-    minusMat<R> mpp(to(GetAny<Matrice_Creuse<R> *>(pp)));
-    return SetAny<minusMat<R> >(mpp);
-}
-/* template<class R>
-AnyType mmM2L3 (Stack , const AnyType & pp)
-{
-    minusMat<R> &  p(GetAny<minusMat<R> >(pp));
-    minusMat<R> mpp(p.l);
-    delete  p.l;
-    return mpp.l;
-}
-
-template<class R>
-AnyType mmM2L3c (Stack , const AnyType & pp)
-{
-    list<triplet<R,MatriceCreuse<R> *,bool> >  *  p(GetAny<minusMat<R> >(pp))
-    minusMat<R> mpp(p.l);
-    delete  p.l;
-    return mpp.l;
-}
-*/
-template <class R>
-void AddSparseMat()
-{
-// aType tkrp = atype<KN<R> *>(); 
- SetMatrix_Op<R>::btype = Dcl_Type<const  SetMatrix_Op<R> * >();
- Dcl_Type<TheDiagMat<R> >();
- Dcl_Type<TheCoefMat<R> >(); // Add FH oct 2005
- Dcl_Type< map< pair<int,int>, R> * >(); // Add FH mars 2005 
- Dcl_Type<  minusMat<R>  >(); // Add FJH mars 2007
- 
- basicForEachType * t_MC=atype<  Matrice_Creuse<R>* >();
-// basicForEachType * t_MCt=atype<  Matrice_Creuse_Transpose<R> >();
-// basicForEachType * t_lM=atype< list<triplet<R,MatriceCreuse<R> *,bool> > * >();
-// basicForEachType * t_nM=atype<  minusMat<R> >();
- 
- basicForEachType * t_MM=atype<map< pair<int,int>, R> * >();
- 
-TheOperators->Add("*", 
-        new OneBinaryOperator<Op2_mulvirtAv<typename VirtualMatrice<R>::plusAx,Matrice_Creuse<R>*,KN_<R> > >,
-        new OneBinaryOperator<Op2_mulvirtAv<typename VirtualMatrice<R>::plusAtx,Matrice_Creuse_Transpose<R>,KN_<R> > >,
-        new OneBinaryOperator<Op2_mulvirtAv<typename VirtualMatrice<R>::solveAxeqb,Matrice_Creuse_inv<R>,KN_<R> > >     
-        );
-
-/*if(0)
-TheOperators->Add("*", 
-        new OneBinaryOperator<Op2_mulvirtAv<typename VirtualMatrice<R>::plusAx,Matrice_Creuse<R>*,KN_<R> > >( 0  ,tkrp),
-        new OneBinaryOperator<Op2_mulvirtAv<typename VirtualMatrice<R>::plusAtx,Matrice_Creuse_Transpose<R>,KN_<R> > >( 0 ,tkrp),
-        new OneBinaryOperator<Op2_mulvirtAv<typename VirtualMatrice<R>::solveAxeqb,Matrice_Creuse_inv<R>,KN_<R> > >( 0 ,tkrp)     
-        );
-*/        
-TheOperators->Add("^", new OneBinaryOperatorA_inv<R>());
-  
-// matrix new code   FH (Houston 2004)        
- TheOperators->Add("=",
-//       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation::Op*,E_F_StackF0F0>(SetMatrixInterpolation),
-<<<<<<< HEAD
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const Matrix_Prod<R,R>,E_F_StackF0F0>(ProdMat<R,R,R,1>),
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,KN<R> *,E_F_StackF0F0>(DiagMat<R,1>),
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,Matrice_Creuse_Transpose<R>,E_F_StackF0F0>(CopyTrans<R,R,1>), 
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,Matrice_Creuse<R>*,E_F_StackF0F0>(CopyMat<R,R,1>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,KNM<R>*,E_F_StackF0F0>(MatFull2Sparse<R,1>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,map< pair<int,int>, R> * ,E_F_StackF0F0>(MatMap2Sparse<R,1>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,list<triplet<R,MatriceCreuse<R> *,bool> > *,E_F_StackF0F0>(CombMat<R,1>) ,
-       new OneOperatorCode<BlockMatrix1<R> >()
-=======
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const Matrix_Prod<R,R>,E_F_StackF0F0>(ProdMat<R,R,R>),
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,KN<R> *,E_F_StackF0F0>(DiagMat<R>),       
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,Matrice_Creuse_Transpose<R>,E_F_StackF0F0>(CopyTrans<R,R,1>), 
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,Matrice_Creuse<R>*,E_F_StackF0F0>(CopyMat<R,R,1>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,KNM<R>*,E_F_StackF0F0>(MatFull2Sparse<R>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,map< pair<int,int>, R> * ,E_F_StackF0F0>(MatMap2Sparse<R>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,list<triplet<R,MatriceCreuse<R> *,bool> > *,E_F_StackF0F0>(CombMat<R>) ,
-       new OneOperatorCode<BlockMatrix<R> >()
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-       
-       );
-       
- TheOperators->Add("<-",
-       new OneOperatorCode<BlockMatrix<R> >(),
-//       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation::Op*,E_F_StackF0F0>(SetMatrixInterpolation),
-<<<<<<< HEAD
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const Matrix_Prod<R,R>,E_F_StackF0F0>(ProdMat<R,R,R,0>),
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,KN<R> *,E_F_StackF0F0>(DiagMat<R,0>)  ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,Matrice_Creuse_Transpose<R>,E_F_StackF0F0>(CopyTrans<R,R,0>), 
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,Matrice_Creuse<R>*,E_F_StackF0F0>(CopyMat<R,R,0>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,KNM<R>*,E_F_StackF0F0>(MatFull2Sparse<R,0>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,map< pair<int,int>, R> * ,E_F_StackF0F0>(MatMap2Sparse<R,0>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,list<triplet<R,MatriceCreuse<R> *,bool> > *,E_F_StackF0F0>(CombMat<R,0>)
-=======
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const Matrix_Prod<R,R>,E_F_StackF0F0>(ProdMat<R,R,R>),
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,KN<R> *,E_F_StackF0F0>(DiagMat<R>)  ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,Matrice_Creuse_Transpose<R>,E_F_StackF0F0>(CopyTrans<R,R,0>), 
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,Matrice_Creuse<R>*,E_F_StackF0F0>(CopyMat<R,R,0>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,KNM<R>*,E_F_StackF0F0>(MatFull2Sparse<R>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,map< pair<int,int>, R> * ,E_F_StackF0F0>(MatMap2Sparse<R>) ,
-       new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,list<triplet<R,MatriceCreuse<R> *,bool> > *,E_F_StackF0F0>(CombMat<R>) 
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      
-       
-       );
-TheOperators->Add("*", 
-        new OneBinaryOperator<Op2_pair<Matrix_Prod<R,R>,Matrice_Creuse<R>*,Matrice_Creuse<R>*> >,
-        new OneBinaryOperator<Op2_pair<Matrix_Prod<R,R>,Matrice_Creuse_Transpose<R>,Matrice_Creuse<R>* > >, 
-        new OneBinaryOperator<Op2_pair<Matrix_Prod<R,R>,Matrice_Creuse_Transpose<R>,Matrice_Creuse_Transpose<R> > >,
-        new OneBinaryOperator<Op2_pair<Matrix_Prod<R,R>,Matrice_Creuse<R>*,Matrice_Creuse_Transpose<R> > > ,
-        new OneBinaryOperator<Op2_ListCM<R> >  , 
-        new OneBinaryOperator<Op2_ListMC<R> >  ,
-	new OneBinaryOperator<Op2_ListCMt<R> >  , 
-        new OneBinaryOperator<Op2_ListMtC<R> >  
-		  
-        );
-TheOperators->Add("+", 
-        new OneBinaryOperator<Op2_ListCMCMadd<R> >,
-        new OneBinaryOperator<Op2_ListCMMadd<R> >,
-        new OneBinaryOperator<Op2_ListMCMadd<R> >,
-//	new OneBinaryOperator<Op2_ListCMCMadd<R> >(t_MCt,t_lM),
-//	new OneBinaryOperator<Op2_ListCMCMadd<R> >(t_MC,t_lM),
-        new OneBinaryOperator<Op2_ListMMadd<R> >
-       
-       ); 
- TheOperators->Add("-",  
-	 new OneUnaryOperator<Op1_LCMd<R> >
-     );
- Add<Matrice_Creuse<R> *>("n",".",new OneOperator1<long,Matrice_Creuse<R> *>(get_mat_n<R>) );
- Add<Matrice_Creuse<R> *>("m",".",new OneOperator1<long,Matrice_Creuse<R> *>(get_mat_m<R>) );
- Add<Matrice_Creuse<R> *>("nbcoef",".",new OneOperator1<long,Matrice_Creuse<R> *>(get_mat_nbcoef<R>) );
- Add<Matrice_Creuse<R> *>("nnz",".",new OneOperator1<long,Matrice_Creuse<R> *>(get_mat_nbcoef<R>) );
- Add<Matrice_Creuse<R> *>("size",".",new OneOperator1<long,Matrice_Creuse<R> *>(get_mat_nbcoef<R>) );
-    
- 
- Add<Matrice_Creuse<R> *>("diag",".",new OneOperator1<TheDiagMat<R> ,Matrice_Creuse<R> *>(thediag<R>) );
- Add<Matrice_Creuse<R> *>("coef",".",new OneOperator1<TheCoefMat<R> ,Matrice_Creuse<R> *>(thecoef<R>) );
-
-// Add<Matrice_Creuse<R> *>("setdiag",".",new OneOperator2<long,Matrice_Creuse<R> *,KN<R> *>(set_diag<R>) );
- TheOperators->Add("=", new OneOperator2<KN<R>*,KN<R>*,TheDiagMat<R> >(get_mat_daig<R>) );
- TheOperators->Add("=", new OneOperator2<TheDiagMat<R>,TheDiagMat<R>,KN<R>*>(set_mat_daig<R>) );
- 
-// TheOperators->Add("=", new OneOperator2<KN<R>*,KN<R>*,TheDiagMat<R> >(get_mat_daig<R>) );
-// TheOperators->Add("=", new OneOperator2<TheDiagMat<R>,TheDiagMat<R>,KN<R>*>(set_mat_daig<R>) );
-// ADD oct 2005
- TheOperators->Add("=", new OneOperator2<KN<R>*,KN<R>*,TheCoefMat<R> >(get_mat_coef<R>) );
- TheOperators->Add("=", new OneOperator2<TheCoefMat<R>,TheCoefMat<R>,KN<R>*>(set_mat_coef<R>) );
- 
-// TheOperators->Add("=", new OneOperator2<KN<R>*,KN<R>*,TheCoefMat<R> >(get_mat_coef<R>) );
-// TheOperators->Add("=", new OneOperator2<TheCoefMat<R>,TheCoefMat<R>,KN<R>*>(set_mat_coef<R>) );
- 
- Global.Add("set","(",new SetMatrix<R>);
- //Global.Add("psor","(",new  OneOperatorCode<Psor<R> > );
- 
- atype<Matrice_Creuse<R> * >()->Add("(","",new OneOperator3_<R*,Matrice_Creuse<R> *,long,long >(get_elementp2mc<R>));
- 
- atype<KNM<R>*>()->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,KNM<R>*,Inv_KN_long,Inv_KN_long >(Matrixfull2mapIJ_inv<R>));
- atype<KNM<R>*>()->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,KNM<R>*,KN_<long>,KN_<long> >(Matrixfull2mapIJ<R>));
- 
- atype<outProduct_KN_<R>*>()->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,outProduct_KN_<R>*,Inv_KN_long,Inv_KN_long >(Matrixoutp2mapIJ_inv<R>));
- atype<outProduct_KN_<R>*>()->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,outProduct_KN_<R>*,KN_<long>,KN_<long> >(Matrixoutp2mapIJ<R>));
-
-
- TheOperators->Add("=", new SetRawMatformMat<R>);
-
-
-
- t_MM->Add("(","",  new OneOperator3_<map< pair<int,int>, R> *,map< pair<int,int>, R> *,Inv_KN_long,Inv_KN_long >(Matrixmapp2mapIJ1<R>));
- t_MM->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,map< pair<int,int>, R> *,KN_<long>,KN_<long> >(Matrixmapp2mapIJ<R>));
-
- t_MC->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,map< pair<int,int>, R> *,Inv_KN_long,Inv_KN_long >(Matrixmapp2mapIJ1<R>,t_MC));
- t_MC->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,map< pair<int,int>, R> *,KN_<long>,KN_<long> >(Matrixmapp2mapIJ<R>,t_MC));
-
- //atype<outProduct_KN_<R>*>()->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,map< pair<int,int>, R> *,Inv_KN_long,Inv_KN_long >(Matrixmapp2mapIJ1<R>),t_lM);
- //atype<outProduct_KN_<R>*>()->Add("(","",new OneOperator3_<map< pair<int,int>, R> *,map< pair<int,int>, R> *,KN_<long>,KN_<long> >(Matrixmapp2mapIJ<R>),t_lM);
-
- 
-//map< pair<int,int>, R> * ttt=   (0);
-
-   //   ; 
- map_type[typeid(map< pair<int,int>, R> *).name()]->AddCast(
-     new E_F1_funcT<map< pair<int,int>, R> *,KNM<R>* >(Matrixfull2map<R>),
-     new E_F1_funcT<map< pair<int,int>, R> *,outProduct_KN_<R>* >(Matrixoutp2map<R>),
-     new E_F1_funcT<map< pair<int,int>, R> *,Matrice_Creuse<R>* >(MatriceCreuse2map<R>)
-
-       ); 
-
- map_type[typeid(list<triplet<R,MatriceCreuse<R> *,bool> > *).name()]->AddCast(
-     new E_F1_funcT<list<triplet<R,MatriceCreuse<R> *,bool> > *,Matrice_Creuse<R>* >(M2L3<R>),
-     new E_F1_funcT<list<triplet<R,MatriceCreuse<R> *,bool> > *,Matrice_Creuse_Transpose<R> >(tM2L3<R>),						    
-     new E_F1_funcT<list<triplet<R,MatriceCreuse<R> *,bool> > *,minusMat<R> >(mM2L3<R> )
-     );
- /*
- map_type[typeid(minusMat<R>).name()]->AddCast( 
-	new E_F1_funcT<minusMat<R>,list<triplet<R,MatriceCreuse<R> *,bool> > * >(mmM2L3<R> )
-	//new E_F1_funcT<minusMat<R>,Matrice_Creuse<R>*  > * >(mmM2L3c<R> ),
-	//new E_F1_funcT<minusMat<R>,Matrice_Creuse_Transpose<R> > * >(mmM2L3ct<R> )
-						
-      );
-*/
-
-
-
-      
-//  --- end  
-}
-
-
-//extern Map_type_of_map map_type_of_map ; //  to store te type 
-//extern Map_type_of_map map_pair_of_type ; //  to store te type 
-extern int lineno(); 
-class  PrintErrorCompile : public OneOperator {
-    public: 
-    const char * cmm;
-    E_F0 * code(const basicAC_F0 & ) const 
-     { ErrorCompile(cmm,lineno());
-      return 0;} 
-    PrintErrorCompile(const char * cc): OneOperator(map_type[typeid(R).name()]),cmm(cc){}
-
-};
-
-class PrintErrorCompileIM :  public E_F0info { public:  
- typedef double  Result;
- static E_F0 *   f(const basicAC_F0 & args)  
-    {   
-     lgerror("\n\n *** change interplotematrix in interpole.\n  *** Bad name in previous version,\n *** sorry FH.\n\n");
-     return 0;  }   
-    static ArrayOfaType  typeargs() {return  ArrayOfaType(true);}
-    operator aType () const { return atype<double>();} 
-
-};
-
-//  the 2 default sparse solver double and complex
-DefSparseSolver<double>::SparseMatSolver SparseMatSolver_R ; ;
-DefSparseSolver<Complex>::SparseMatSolver SparseMatSolver_C;
-DefSparseSolverSym<double>::SparseMatSolver SparseMatSolverSym_R ; ;
-DefSparseSolverSym<Complex>::SparseMatSolver SparseMatSolverSym_C;
-// the default probleme solver 
-TypeSolveMat::TSolveMat  TypeSolveMatdefaultvalue=TypeSolveMat::defaultvalue;
-
-bool SetDefault()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse to default" << endl;
-    DefSparseSolver<double>::solver =SparseMatSolver_R;
-    DefSparseSolver<Complex>::solver =SparseMatSolver_C;
-    DefSparseSolverSym<double>::solver =SparseMatSolverSym_R;
-    DefSparseSolverSym<Complex>::solver =SparseMatSolverSym_C;
-    TypeSolveMat::defaultvalue =TypeSolveMat::SparseSolver;
-    return  true;
-}
-
-
-bool SparseDefault()
-{
-    return TypeSolveMat::SparseSolver== TypeSolveMat::defaultvalue;
-}
-
-bool Have_UMFPACK_=false;
-bool Have_UMFPACK() { return Have_UMFPACK_;}
-//OneOperator0<bool> *TheSetDefaultSolver=0; // to change the SetDefaultSolver
-void  init_lgmat() 
-
-{
-  SparseMatSolver_R= DefSparseSolver<double>::solver;
-  SparseMatSolver_C= DefSparseSolver<Complex>::solver;
-  SparseMatSolverSym_R= DefSparseSolverSym<double>::solver;
-  SparseMatSolverSym_C= DefSparseSolverSym<Complex>::solver;
-
-  
-  Dcl_Type<const  MatrixInterpolation<pfes>::Op *>(); 
-  Dcl_Type<const  MatrixInterpolation<pfes3>::Op *>(); 
-
-  map_type_of_map[make_pair(atype<Matrice_Creuse<double>* >(),atype<double*>())]=atype<Matrice_Creuse<double> *>();
-  map_type_of_map[make_pair(atype<Matrice_Creuse<double>* >(),atype<Complex*>())]=atype<Matrice_Creuse<Complex> *>();
-  AddSparseMat<double>();
-  AddSparseMat<Complex>();
-  
-  Add<const MatrixInterpolation<pfes>::Op *>("<-","(", new MatrixInterpolation<pfes>);
-  Add<const MatrixInterpolation<pfes>::Op *>("<-","(", new MatrixInterpolation<pfes>(1));
-  Add<const MatrixInterpolation<pfes>::Op *>("<-","(", new MatrixInterpolation<pfes3>);
-  Add<const MatrixInterpolation<pfes>::Op *>("<-","(", new MatrixInterpolation<pfes3>(1,1));
-    
-    Dcl_Type<const  RestrictArray<pfes>::Op *>();
-    Dcl_Type<const  RestrictArray<pfes3>::Op *>();
-  //  Add<const RestrictArray<pfes>::Op *>("<-","(", new RestrictArray<pfes>);
-  //  Add<const RestrictArray<pfes3>::Op *>("<-","(", new RestrictArray<pfes3>);
-  
-  Global.Add("restrict","(",new RestrictArray<pfes>);// FH Jan 2014
-  Global.Add("restrict","(",new RestrictArray<pfes3>);// FH Jan 2014
-    
-  TheOperators->Add("=",
-                      new OneOperator2_<KN<long>*,KN<long>*,const RestrictArray<pfes>::Op*,E_F_StackF0F0>(SetRestrict<pfes,1>),
-                      new OneOperator2_<KN<long>*,KN<long>*,const RestrictArray<pfes3>::Op*,E_F_StackF0F0>(SetRestrict<pfes3,1>)
-                      );
-    TheOperators->Add("<-",
-                      new OneOperator2_<KN<long>*,KN<long>*,const RestrictArray<pfes>::Op*,E_F_StackF0F0>(SetRestrict<pfes,0>),
-                      new OneOperator2_<KN<long>*,KN<long>*,const RestrictArray<pfes3>::Op*,E_F_StackF0F0>(SetRestrict<pfes3,0>)
-                      );
-  
-
-  Global.Add("interpolate","(",new MatrixInterpolation<pfes>);
-  Global.Add("interpolate","(",new MatrixInterpolation<pfes>(1));
-  Global.Add("interpolate","(",new MatrixInterpolation<pfes3>);
-  Global.Add("interpolate","(",new MatrixInterpolation<pfes3>(1,1));
-  Global.Add("interplotematrix","(",new  OneOperatorCode<PrintErrorCompileIM>);
-  zzzfff->Add("mapmatrix",atype<map< pair<int,int>, double> *>());
-  zzzfff->Add("Cmapmatrix",atype<map< pair<int,int>, Complex> *>()); // a voir
-  
-  Global.Add("defaulttoGMRES","(",new OneOperator0<bool>(SetGMRES));
-  Global.Add("defaulttoCG","(",new OneOperator0<bool>(SetCG));
-  Global.New("havesparsesolver",CVariable<bool>(SparseDefault));
-  Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefault));
-  
-  Dcl_Type< Resize<Matrice_Creuse<double> > > ();
-  
-  Add<Matrice_Creuse<double> *>("resize",".",new OneOperator1< Resize<Matrice_Creuse<double>  >,Matrice_Creuse<double> *>(to_Resize));
-  Add<Resize<Matrice_Creuse<double> > >("(","",new OneOperator3_<Matrice_Creuse<double>  *,Resize<Matrice_Creuse<double>  > , long, long  >(resize2)); 
-  // add missing in
- Dcl_Type< Resize<Matrice_Creuse<Complex> > > ();
- Add<Matrice_Creuse<Complex> *>("resize",".",new OneOperator1< Resize<Matrice_Creuse<Complex>  >,Matrice_Creuse<Complex> *>(to_Resize));
- Add<Resize<Matrice_Creuse<Complex> > >("(","",new OneOperator3_<Matrice_Creuse<Complex>  *,Resize<Matrice_Creuse<Complex>  > , long, long  >(resize2));   
- 
- 
- //Global.Add("defaultsolver","(",new OneOperator0<bool>(SetDefaultSolver));
- 
- // pour compatibiliter 
- 
- TheOperators->Add("=",
-<<<<<<< HEAD
-		   new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes>::Op*,E_F_StackF0F0>(SetMatrixInterpolation<1>),
-		   new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes3>::Op*,E_F_StackF0F0>(SetMatrixInterpolation3<1>)
-=======
-		   new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes>::Op*,E_F_StackF0F0>(SetMatrixInterpolation),
-		   new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes3>::Op*,E_F_StackF0F0>(SetMatrixInterpolation3)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-		   );
-
-    
- TheOperators->Add("<-",
-<<<<<<< HEAD
-		   new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes>::Op*,E_F_StackF0F0>(SetMatrixInterpolation<0>),
-		   new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes3>::Op*,E_F_StackF0F0>(SetMatrixInterpolation3<0>)
-=======
-		   new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes>::Op*,E_F_StackF0F0>(SetMatrixInterpolation),
-		   new OneOperator2_<Matrice_Creuse<R>*,Matrice_Creuse<R>*,const MatrixInterpolation<pfes3>::Op*,E_F_StackF0F0>(SetMatrixInterpolation3)
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-		   );
- // construction of complex matrix form a double matrix
- TheOperators->Add("=", new OneOperator2_<Matrice_Creuse<Complex>*,Matrice_Creuse<Complex>*,Matrice_Creuse<double>*,E_F_StackF0F0>(CopyMat<R,Complex,1>)
-		   );
- 
- TheOperators->Add("<-", new OneOperator2_<Matrice_Creuse<Complex>*,Matrice_Creuse<Complex>*,Matrice_Creuse<double>*,E_F_StackF0F0>(CopyMat<R,Complex,0>)
-		   );
- // Global.Add("imag","(",new OneOperator1_<double,Complex>(Imag));
- //   Add<double>("<--","(",new OneOperator1_<double,Complex>(Real));
-    Dcl_Type<Matrice_Creuse_C2R>(); 
-    Add<Matrice_Creuse<Complex>*>("re",".",new OneOperator1<Matrice_Creuse_C2R ,Matrice_Creuse<Complex>* >(Build_Matrice_Creuse_C2R<0> ));
-    Add<Matrice_Creuse<Complex>*>("im",".",new OneOperator1<Matrice_Creuse_C2R ,Matrice_Creuse<Complex>* >(Build_Matrice_Creuse_C2R<1> ));
-    // construction of complex matrix form a double matrix
-<<<<<<< HEAD
-    TheOperators->Add("=", new OneOperator2_<Matrice_Creuse<Complex>*,Matrice_Creuse<double>*,Matrice_Creuse_C2R,E_F_StackF0F0>(CopyMatC2R<1>));
-
-    TheOperators->Add("<-", new OneOperator2_<Matrice_Creuse<Complex>*,Matrice_Creuse<double>*,Matrice_Creuse_C2R,E_F_StackF0F0>(CopyMatC2R<0>));
-=======
-    TheOperators->Add("=", new OneOperator2_<Matrice_Creuse<double>*,Matrice_Creuse<double>*,Matrice_Creuse_C2R,E_F_StackF0F0>(CopyMatC2R<1>));
-
-    TheOperators->Add("<-", new OneOperator2_<Matrice_Creuse<double>*,Matrice_Creuse<double>*,Matrice_Creuse_C2R,E_F_StackF0F0>(CopyMatC2R<0>));
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
- extern  void init_UMFPack_solver();
- init_UMFPack_solver();
-}
-
-int Data_Sparse_Solver_version() { return VDATASPARSESOLVER;}
diff --git a/src/fflib/load.cpp.orig b/src/fflib/load.cpp.orig
deleted file mode 100644
index a0e7223..0000000
--- a/src/fflib/load.cpp.orig
+++ /dev/null
@@ -1,269 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include "config-wrapper.h" // needed for HAVE_DLFCN_H
-
-#include  <iostream>
-#include  <map>
-#include  <set>
-#include "AFunction.hpp"
-#include "environment.hpp"
-#include "InitFunct.hpp"
-using namespace std;
-#include "lex.hpp"
-#define LOAD 1
-#if defined(__INTEL__) || defined(__MWERKS__) || !defined(HAVE_DLFCN_H)
-#undef LOAD
-#endif
-
-#ifdef LOAD
-#include <dlfcn.h>
-#elif WIN32
-#include <windows.h>
-#endif
-
-#include "ffapi.hpp"
-
-set<string> SetLoadFile;
-
-bool load(string ss)
-{
-<<<<<<< HEAD
-  
-  // FFCS - do not allow potentially dangerous commands from remote anonymous clients
-  
-=======
-
-  // FFCS - do not allow potentially dangerous commands from remote anonymous clients
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  if(ffapi::protectedservermode() && (ss=="pipe" || ss=="shell")){
-    cerr<<"library "<<ss<<" not allowed in server environment"<<endl;
-    CompileError("Error load");
-    return 0;
-  }
-
-  if(SetLoadFile.find(ss) != SetLoadFile.end())
-    { 
-      if( (mpirank==0)&& verbosity)
-	cout << " (already loaded : " <<  ss << " ) " ;
-    }
-<<<<<<< HEAD
-  else
-    {
-      SetLoadFile.insert(ss);
-      bool ret=false;
-      void * handle = 0;
-      const int /*nbprefix=2,*/nbsuffix=2;
-      list<string> prefix(ffenvironment["loadpath"]);
-      if(prefix.empty())
-	{
-	  prefix.push_back("");
-	  prefix.push_back("./");
-	}
-      
-      string suffix[nbsuffix] ;
-	
-      suffix[0]="";
-      suffix[1]=".so";
-#ifdef  __APPLE__
-      suffix[1]=".dylib";
-#endif  
-#ifdef WIN32  
-      suffix[1]=".dll";
-#endif 
-      int j; 
-      for (list<string>::const_iterator i= prefix.begin();i !=prefix.end();++i)
-	for ( j= 0;j< nbsuffix;++j)
-	  {
-	    string s= *i+ss+suffix[j];
-	    
-#ifdef LOAD  
-	    handle = dlopen (s.c_str(), RTLD_LAZY ); 
-	    if (verbosity>9) cout << " test dlopen(" << s << ")= " << handle <<  endl;
-	    
-	    // FFCS - 20/9/11 - print explanation for load errors
-	    if(verbosity>9 && !handle){
-	      cout<<"load error was: "<<dlerror()<<endl;
-	    }
-	    
-	    ret= handle !=0;
-	    if (  ret ) 
-	      {
-		if(verbosity && (mpirank ==0))
-		  cout << " (load: dlopen " << s << " " << handle << ") ";
-		callInitsFunct() ;  
-		return handle;
-	      }
-	    
-#elif WIN32
-	    {
-	      HINSTANCE mod=  LoadLibrary(s.c_str());
-	      if (verbosity>9) cout << " test LoadLibrary(" << s << ")= " << mod <<  endl;
-	      if(mod==0) 
-		{
-		  DWORD merr = GetLastError();
-		  if(verbosity>19)
-		    cerr  <<   "\n try loadLibary : " <<s << "\n \t fail : " << merr << endl;
-		}
-	      else 
-		{
-		  if(verbosity&& (mpirank ==0))
-		    cout << "(load: loadLibary " <<  s <<  " = " << handle << ")";
-		  callInitsFunct() ; 
-		  return mod;
-		}
-	    }
-#else
-	    if(mpirank ==0)
-=======
-    else
-      {
-	SetLoadFile.insert(ss);
-	bool ret=false;
-	void * handle = 0;
-	const int /*nbprefix=2,*/nbsuffix=2;
-	list<string> prefix(ffenvironment["loadpath"]);
-	if(prefix.empty())
-	  {
-	    prefix.push_back("");
-	    prefix.push_back("./");
-	  }
-
-	string suffix[nbsuffix] ;
-	
-	suffix[0]="";
-	suffix[1]=".so";
-#ifdef  __APPLE__
-	suffix[1]=".dylib";
-#endif  
-#ifdef WIN32  
-	suffix[1]=".dll";
-#endif 
-	int j; 
-	for (list<string>::const_iterator i= prefix.begin();i !=prefix.end();++i)
-	  for ( j= 0;j< nbsuffix;++j)
-	    {
-	      string s= *i+ss+suffix[j];
-	      
-#ifdef LOAD  
-	      handle = dlopen (s.c_str(), RTLD_LAZY ); 
-	      if (verbosity>9) cout << " test dlopen(" << s << ")= " << handle <<  endl;
-
-	      // FFCS - 20/9/11 - print explanation for load errors
-	      if(verbosity>9 && !handle){
-		cout<<"load error was: "<<dlerror()<<endl;
-	      }
-
-	      ret= handle !=0;
-	      if (  ret ) 
-		{
-		  if(verbosity && (mpirank ==0))
-		    cout << " (load: dlopen " << s << " " << handle << ") ";
-          callInitsFunct() ;  
-		  return handle;
-		}
-	      
-#elif WIN32
-	      {
-		HINSTANCE mod=  LoadLibrary(s.c_str());
-		if (verbosity>9) cout << " test LoadLibrary(" << s << ")= " << mod <<  endl;
-		if(mod==0) 
-		  {
-		    DWORD merr = GetLastError();
-		    if(verbosity>19)
-		      cerr  <<   "\n try loadLibary : " <<s << "\n \t fail : " << merr << endl;
-		  }
-		else 
-		  {
-		    if(verbosity&& (mpirank ==0))
-		      cout << "(load: loadLibary " <<  s <<  " = " << handle << ")";
-            callInitsFunct() ; 
-		    return mod;
-	    }
-	      }
-#else
-	      if((mpirank ==0))
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-		{
-		  cout << "------------------------------------   \n" ;
-		  cout << "  load: sorry no dlopen on this system " << s << " \n" ;
-		  cout << "------------------------------------   \n" ;
-		}
-<<<<<<< HEAD
-	    CompileError("Error load");
-	    return 0;
-#endif  
-	  }
-      if(mpirank ==0)
-	{
-	  cerr  <<   "\nload error : " << ss << "\n \t fail : "  << endl;
-	  char *error=0;
-#ifndef WIN32
-#ifdef LOAD
-	  error= dlerror();
-	  if ( error  != NULL) {
-	    cerr << " dlerror : " << error << endl;
-	  }
-#endif
-#endif
-	  cerr << "list  prefix: " ;
-	  for (list<string>::const_iterator i= prefix.begin();i !=prefix.end();++i)
-	    cerr <<"'"<<*i<<"' ";
-	  cerr << "list  suffix : '"<< suffix[0] << "' , '"  << suffix[1] << "' "; 
-	  
-	  cerr << endl;
-	}
-      CompileError("Error load");
-    }
-=======
-	CompileError("Error load");
-	return 0;
-#endif  
-	    }
-	if(mpirank ==0)
-	  {
-	    cerr  <<   "\nload error : " << ss << "\n \t fail : "  << endl;
-        char *error;
-#ifndef WIN32
-        if ((error = dlerror()) != NULL) {
-            fprintf(stderr, "%s\n", error);
-        }
-#endif
-	    cerr << "list  prefix: " ;
-	    for (list<string>::const_iterator i= prefix.begin();i !=prefix.end();++i)
-	      cerr <<"'"<<*i<<"' ";
-	    cerr << "list  suffix : '"<< suffix[0] << "' , '"  << suffix[1] << "' "; 
-	    
-	    cerr << endl;
-	  }
-	CompileError("Error load");
-      }
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  return 0 ;
-}
-
diff --git a/src/fflib/problem.cpp.orig b/src/fflib/problem.cpp.orig
deleted file mode 100644
index 8e1b257..0000000
--- a/src/fflib/problem.cpp.orig
+++ /dev/null
@@ -1,6159 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#include  <iostream>
-using namespace std;
-
-#include "rgraph.hpp"
-#include "error.hpp"
-#include "AFunction.hpp"
-
-//#include "lex.hpp"
-#include "MatriceCreuse_tpl.hpp"
-#include "Mesh3dn.hpp"
-#include "MeshPoint.hpp"
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-#include <set>
-
-
-
-basicAC_F0::name_and_type  CDomainOfIntegration::name_param[]= {
-    { "qft", &typeid(const Fem2D::QuadratureFormular *)},
-    { "qfe", &typeid(const Fem2D::QuadratureFormular1d *)},
-    { "qforder",&typeid(long)},
-    { "qfnbpT",&typeid(long)},
-    { "qfnbpE",&typeid(long)},
-    { "optimize",&typeid(bool)},
-    { "binside",&typeid(double)},
-    { "mortar",&typeid(bool)},
-    { "qfV", &typeid(const Fem2D::GQuadratureFormular<R3> *)},
-    { "levelset",&typeid(double)}
-
-};
-
-
-basicAC_F0::name_and_type  Problem::name_param[]= {
-{  "save",&typeid(string* )},
-{  "cadna",&typeid(KN<double>*)},
-{  "bmat",&typeid(Matrice_Creuse<R>* )},
-LIST_NAME_PARM_MAT
-/*
-  {  "init", &typeid(bool)},
-  {  "solver", &typeid(TypeSolveMat*)},
-  {  "eps", &typeid(double) },
-  {  "precon",&typeid(Polymorphic*)}, 
-  {  "dimKrylov",&typeid(long)},
-  {  "bmat",&typeid(Matrice_Creuse<R>* )},
-  {  "tgv",&typeid(double )},
-  {  "strategy",&typeid(long )},
-  {  "save",&typeid(string* )},
-  {  "cadna",&typeid(KN<double>*)},
-  {  "tolpivot", &typeid(double)},
-  {  "tolpivotsym", &typeid(double)},
-  {  "nbiter", &typeid(long)}, // 12 
-  {   "paramint",&typeid(KN_<long>)}, // Add J. Morice 02/09 
-  {   "paramdouble",&typeid(KN_<double>)},
-  {   "paramstring",&typeid(string *)},
-  {   "permrow",&typeid(KN_<long>)},
-  {   "permcol",&typeid(KN_<long>)},
-  {   "fileparamint",&typeid(string*)}, // Add J. Morice 02/09 
-  {   "fileparamdouble",&typeid(string*)},
-  {   "fileparamstring",&typeid(string* )},
-  {   "filepermrow",&typeid(string*)},
-  {   "filepermcol",&typeid(string*)} //22
- */
-};
-
-struct pair_stack_double
-{
-    Stack first;
-    double *second;
-    pair_stack_double(Stack ss,double* bb) : first(ss),second(bb) {};
-
-};
-
-namespace Fem2D {
-
-    void  Expandsetoflab(Stack stack,const CDomainOfIntegration & di,set<int> & setoflab,bool &all);
-    void  Expandsetoflab(Stack stack,const BC_set & bc,set<long> & setoflab);
-
-void Check(const Opera &Op,int N,int  M)
- {
-   int err=0;
-   for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++)
-     {  // attention la fonction test donne la ligne 
-       //  et la fonction test est en second      
-       BilinearOperator::K ll(*l);
-       pair<int,int> jj(ll.first.first),ii(ll.first.second);
-       if (ii.first <0 || ii.first >= M) err++;
-       if (jj.first <0 || jj.first >= N) err++;
-       
-     }
-   if (err) {
-     cout << "Check Bilinear Operator" << N << " " << M << endl;
-     for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++)
-       {  // attention la fonction test donne la ligne 
-         //  et la fonction test est en second      
-         BilinearOperator::K ll(*l);
-         pair<int,int> jj(ll.first.first),ii(ll.first.second);
-         cout << " +  " << jj.first << " " << jj.second << "*" << ii.first << " " << ii.second << endl;
-          }
-     ExecError("Check BilinearOperator N M");
-   }
- }
- void Check(const  BC_set * bc,int N)
- {
-   int err=0;
-   int kk=bc->bc.size();
-   for (int k=0;k<kk;k++)
-     {
-       pair<int,Expression> xx=bc->bc[k];
-       if (xx.first >= N) { 
-         err++;
-         cerr << " Sorry : just " << N << " componant in FE space \n"
-              << "   and Boundary condition refere to " << xx.first << "+1 componant " << endl;
-       }
-     }
-   if (err) 
-     ExecError("Incompatibility beetwen  boundary condition  and FE space");
- }
- 
-  void Check(const  Ftest * fl,int N)
- {
-   assert(fl);
-   int err=0;
-   Ftest::const_iterator kk= fl->v.end(),k;
-   int ii=0;
-   for (k=fl->v.begin();k<kk;k++)
-     { 
-       ii++;
-       int j=k->first.first;
-       if (  j >= N) { 
-         err++;
-         cerr << " Sorry : just " << N << " componant in FE space \n"
-              << " and linear var form  refere to " << j << "+1 componant (part " << ii << ")" << endl;
-       }
-     }
-   if (err) 
-     ExecError("Incompatibility beetwen linear varf  and FE space");
- }
- //---------------------------------------------------------------------------------------
-  template<class R>
-  void  Element_OpVF(MatriceElementairePleine<R,FESpace3> & mat,
-		     const FElement3 & Ku,const FElement3 & KKu,
-		     const FElement3 & Kv,const FElement3 & KKv,
-		     double * p,int ie,int iie, int label,void *bstack,R3 *B)
-  {
-    ffassert(0); 
-  }
-  
-  template<class R>
-  void  Element_OpVF(MatriceElementairePleine<R,FESpace> & mat,
-			const FElement & Ku,const FElement & KKu,
-			const FElement & Kv,const FElement & KKv,
-			double * p,int ie,int iie, int label,void *bstack,R2 *B)
-  {
-     ffassert(B==0);
-    pair_stack_double * bs=static_cast<pair_stack_double *>(bstack);   
-    Stack stack= bs->first;
-    double binside = *bs->second; // truc FH pour fluide de grad2 (decentrage bizard)
-    assert(mat.onFace); //   Finite Volume or discontinous Galerkine 
-    assert(ie>=0 && ie < 3); //  int on edge 
-    MeshPoint mp= *MeshPointStack(stack);
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    
-    bool same = &Ku == & Kv;
-    assert(same); 
-    const Triangle & T  = Ku.T;
-    int nTonEdge =  &Ku == &KKu ? 1 : 2; 
-    double cmean = 1./nTonEdge;
-    
-    throwassert(&T == &Kv.T);  
-  // const QuadratureFormular & FI = mat.FIT;
-    const QuadratureFormular1d & FIb = mat.FIE;
-    long npi;
-    R *a=mat.a;
-    R *pa=a;
-    long i,j;
-    long n= mat.n,m=mat.m,nx=n*m;
-    assert(nx<=mat.lga);
-    long N= Kv.N;
-    long M= Ku.N;
-    
-    long mu=Ku.NbDoF();
-    long mmu=KKu.NbDoF();
-    long nv=Kv.NbDoF();
-    long nnv=Kv.NbDoF();
-    assert(mu==mmu && nv == nnv) ; 
-    
-    
-    
-    const Opera &Op(*mat.bilinearform);
-    bool classoptm = copt && Op.optiexpK;
-    //  if (Ku.number<1 && verbosity/100 && verbosity % 10 == 2) 
-    if (Ku.number<1 && ( verbosity > 1 ) )
-      cout << "Element_OpVF P: copt = " << copt << " " << classoptm << " binside (For FH) =" << binside <<endl;
-  
-    
-    KN<bool> Dop(last_operatortype); //  sinon ca plate bizarre 
-    Op.DiffOp(Dop);  
-    int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-    //assert(lastop<=3);
-    int lffv = nv*N*last_operatortype;  
-    int lffu = mu*M*last_operatortype;
-    int loffset =  same ? 0 :  (nv+nnv)*N*last_operatortype;
-    
-    RNMK_ fv(p,nv,N,lastop); //  the value for basic fonction in K
-    RNMK_ ffv(p + lffv ,nnv,N,lastop); //  the value for basic fonction in KK
-    RNMK_ fu(  (double*) fv   + loffset  ,mu,M,lastop); //  the value for basic fonction
-    RNMK_ ffu( (double*) fu  + lffu  ,mmu,M,lastop); //  the value for basic fonction
-    
-    R2 E=T.Edge(ie);
-    double le = sqrt((E,E));
-    R2 PA(TriangleHat[VerticesOfTriangularEdge[ie][0]]),
-      PB(TriangleHat[VerticesOfTriangularEdge[ie][1]]),
-      PC(TriangleHat[OppositeVertex[ie]]);
-    // warning the to edge are in opposite sens         
-    R2 PP_A(TriangleHat[VerticesOfTriangularEdge[iie][1]]),
-      PP_B(TriangleHat[VerticesOfTriangularEdge[iie][0]]),
-      PP_C(TriangleHat[OppositeVertex[ie]]);
-    R2 Normal(E.perp()/-le); 
-    for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-      {
-        pa =a;
-        QuadratureFormular1dPoint pi( FIb[npi]);        
-        double coef = le*pi.a;
-        double sa=pi.x,sb=1-sa;
-        R2 Pt(PA*sa+PB*sb ); //
-        R2 PP_t(PP_A*sa+PP_B*sb ); //  
-        if (binside) {
-	  Pt   = (1-binside)*Pt + binside*PC; 
-	  PP_t  = (1-binside)*PP_t + binside*PP_C; }
-        Ku.BF(Dop,Pt,fu);
-        KKu.BF(Dop,PP_t,ffu);
-        if (!same) { Kv.BF(Dop,Pt,fv); KKv.BF(Dop,PP_t,ffv); }     
-        // int label=-999999; // a passer en argument 
-        MeshPointStack(stack)->set(T(Pt),Pt,Kv,label, Normal,ie);
-        if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-        
-        
-        for ( i=0;  i<n;   i++ )  
-            { 
-              int ik= mat.nik[i];
-              int ikk=mat.nikk[i]; 
-               
-              RNM_ wi(fv(Max(ik,0),'.','.'));   
-              RNM_ wwi(ffv(Max(ikk,0),'.','.'));   
-                  
-              for ( j=0;  j<m;   j++,pa++ ) 
-                { 
-                  int jk= mat.njk[j];
-                  int jkk=mat.njkk[j];
-                    
-                  RNM_ wj(fu(Max(jk,0),'.','.'));
-                  RNM_ wwj(ffu(Max(jkk,0),'.','.'));
-                  
-                  int il=0;
-                  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                      {       
-                        BilinearOperator::K ll(*l);
-                        pair<int,int> jj(ll.first.first),ii(ll.first.second);
-                        int iis = ii.second, jjs=jj.second;
-                        
-                        int iicase  = iis / last_operatortype;
-                        int jjcase  = jjs / last_operatortype;
-                        
-                         iis %= last_operatortype;
-                         jjs %= last_operatortype;
-                        double w_i=0,w_j=0,ww_i=0,ww_j=0;
-                        
-                        if(ik>=0) w_i =   wi(ii.first,iis ); 
-                        if(jk>=0) w_j =   wj(jj.first,jjs );
-                        
-                        if( iicase>0 && ikk>=0) ww_i =  wwi(ii.first,iis ); 
-                        if( jjcase>0 && jkk>=0) ww_j =  wwj(jj.first,jjs );
-                       
-                        
-                        if       (iicase==Code_Jump) w_i = ww_i-w_i; // jump
-                        else  if (iicase==Code_Mean) { 
-                            
-                            w_i = cmean*  (w_i + ww_i );} // average
-                        else  if (iicase==Code_OtherSide) w_i = ww_i;  // valeur de autre cote
-                        
-                        if      (jjcase==Code_Jump) w_j = ww_j-w_j; // jump
-                        else if (jjcase==Code_Mean) w_j = cmean*  (w_j +ww_j ); // average
-                        else if (jjcase==Code_OtherSide) w_j = ww_j;  //  valeur de l'autre cote    
-                        
-                       // R ccc = GetAny<R>(ll.second.eval(stack));
-                       
-                        R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-                       if ( copt && Kv.number <1)
-                        {
-                         R cc  =  GetAny<R>(ll.second.eval(stack));
-                         if ( ccc != cc) { 
-                          cerr << cc << " != " << ccc << " => ";
-                         cerr << "Sorry error in Optimization (b) add:  int2d(Th,optimize=0)(...)" << endl;
-                         ExecError("In Optimized version "); }
-                 }
-                         *pa += coef * ccc * w_i*w_j;
-                      }
-                }
-            } 
-         // else pa += m;
-      }
-  
-  
-     pa=a;
-     if ( (verbosity > 9999) ||( (verbosity > 55) && (Ku.number <=0 || KKu.number <=0 )))  {
-       cout <<endl  << " edge between " << Ku.number << " , " <<  KKu.number   << " =  "<<  T[0] << ", " << T[1] << ", " << T[2] << " " << nx << endl;
-       cout << " K u, uu =  " << Ku.number << " " << KKu.number << " " <<  " K v, vv =  " << Kv.number << " " << KKv.number << " " <<endl; 
-       for (int i=0;i<n;i++)
-	 {
-	   cout << setw(2) << i << setw(4) << mat.ni[i] <<  setw(4) << mat.nik[i] << setw(4) << mat.nikk[i]  <<  " :";
-	   for (int j=0;j<m;j++)
-	     cout << setw(5)  << (*pa++) << " ";
-	   cout << endl;
-	 } } 
-     
-     *MeshPointStack(stack) = mp;
-  }  
-
- //--------------------------------------------------------------------------------------
- 
-// --------- FH 120105
- template<class R>
- void AssembleBilinearForm(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-			   MatriceCreuse<R>  & A, const  FormBilinear * b  )
-   
- {
-     /*FH:  case ..in 2D
-      in varf ...
-      standard case ..
-      */
-
-   StackOfPtr2Free * sptr = WhereStackOfPtr2Free(stack);
-   bool sptrclean=true;
-   const CDomainOfIntegration & di= *b->di;
-   const Mesh * pThdi = GetAny<pmesh>( (* di.Th)(stack));
-   if ( pThdi != &Th || &Uh.Th !=&Th || &Vh.Th !=&Th) { 
-       cout << " --Use matrix formulation ---" << endl; 
-     ExecError("No way to compute bilinear form with integrale of on mesh \n"
-	       "  test  or unkown function  defined on an other mesh! sorry to hard.   ");
-   }
-   SHOWVERB(cout << " FormBilinear " << endl);
-    MatriceElementaireSymetrique<R,FESpace> *mates =0;
-    MatriceElementairePleine<R,FESpace> *matep =0;
-    const bool useopt=di.UseOpt(stack);    
-    double binside=di.binside(stack);
-    
-    //const vector<Expression>  & what(di.what);             
-    CDomainOfIntegration::typeofkind  kind = di.kind;
-    set<int> setoflab;
-    bool all=true;
-     
-    const Mesh & ThI = Th;//* GetAny<pmesh>( (* di.Th)(stack));
-    bool sameMesh = &ThI == &Vh.Th &&  &ThI == &Uh.Th;
-    
-//    const QuadratureFormular1d & FIE = di.FIE(stack);
-//    const QuadratureFormular & FIT = di.FIT(stack);
-     const QuadratureFormular1d & FIEo = di.FIE(stack);
-     const QuadratureFormular & FITo = di.FIT(stack);
-     // const GQuadratureFormular<R3> & FIVo = di.FIV(stack);
-     //  to change the quadrature on element ... may 2014 FH ..
-     QuadratureFormular1d  FIE(FIEo,3);
-     QuadratureFormular FIT(FITo,3);
-    // GQuadratureFormular<R3>  FIV(FIVo,3);
-
-    bool VF=b->VF();  // finite Volume or discontinous Galerkin
-    if (verbosity>2) cout << "  -- discontinous Galerkin  =" << VF << " size of Mat =" << A.size()<< " Bytes\n";
-    if (verbosity>3)
-    {
-      if (CDomainOfIntegration::int1d==kind) cout << "  -- boundary int border ( nQP: "<< FIE.n << ") ,"  ;
-      else  if (CDomainOfIntegration::intalledges==kind) cout << "  -- boundary int all edges ( nQP: "<< FIE.n << "),"  ;
-      else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF edges nQP: ("<< FIE.n << ")," ;
-      else cout << "  --  int    (nQP: "<< FIT.n << " ) in "  ;
-    }
-     //if(di.islevelset()) InternalError("So no levelset integration type on this case (6)");
-     if(di.islevelset() && ( (CDomainOfIntegration::int1d!=kind) && (CDomainOfIntegration::int2d!=kind) )  )
-         InternalError("So no levelset integration type on no int1d case (6)");
-     
-    Expandsetoflab(stack,di, setoflab,all);
-   /*
-    for (size_t i=0;i<what.size();i++)
-      {
-	long  lab  = GetAny<long>( (*what[i])(stack));
-	setoflab.insert(lab);
-	if ( verbosity>3) cout << lab << " ";
-	all=false;
-      }*/
-    if (verbosity>3) cout <<" Optimized = "<< useopt << ", ";
-    const E_F0 & optiexp0=*b->b->optiexp0;
-    
-    int n_where_in_stack_opt=b->b->where_in_stack_opt.size();
-    R** where_in_stack =0;
-    if (n_where_in_stack_opt && useopt)
-      where_in_stack = new R * [n_where_in_stack_opt];
-    if (where_in_stack)
-      {
-	assert(b->b->v.size()==(size_t) n_where_in_stack_opt);
-	for (int i=0;i<n_where_in_stack_opt;i++)
-	  {
-	    int offset=b->b->where_in_stack_opt[i];
-	    assert(offset>10);
-	    where_in_stack[i]= static_cast<R *>(static_cast<void *>((char*)stack+offset));
-	    *(where_in_stack[i])=0;
-	  }
-	
-	
-	if(&optiexp0) 
-	  optiexp0(stack); 
-	KN<bool> ok(b->b->v.size());
-	{  //   remove the zero coef in the liste 
-	  // R zero=R();  
-	  int il=0;
-	  for (BilinearOperator::const_iterator l=b->b->v.begin();l!=b->b->v.end();l++,il++)
-	    ok[il] =  ! (b->b->mesh_indep_stack_opt[il] && ( Fem2D::norm(*(where_in_stack[il])) < 1e-100 ) );
-	}
-	BilinearOperator b_nozer(*b->b,ok); 
-	if (verbosity % 10 > 3 ) 
-	  cout << "   -- nb term in bilinear form  (!0) : " << b_nozer.v.size() 
-	       << "  total " << n_where_in_stack_opt << endl;
-	
-	if ( (verbosity/100) % 10 >= 2)   
-	  { 
-	    int il=0;
-	    
-	    for (BilinearOperator::const_iterator l=b->b->v.begin();l!=b->b->v.end();l++,il++)
-	      cout << il << " coef (" << l->first << ") = " << *(where_in_stack[il]) 
-		   << " offset=" << b->b->where_in_stack_opt[il] 
-		   << " dep mesh " << l->second.MeshIndependent() << b->b->mesh_indep_stack_opt[il] << endl;
-	  }
-      }
-    Stack_Ptr<R*>(stack,ElemMatPtrOffset) =where_in_stack;
-    void *paramate=stack;
-    pair_stack_double parammatElement_OpVF(stack,& binside);
-   // parammatElement_OpVF.first = stack;
-   // parammatElement_OpVF.second= & binside;
-    
-    if (verbosity >3)
-    {
-      if (all) cout << " all " << endl ;
-      else cout << endl;
-    }
-    if(VF) {
-      if(&Uh != &Vh || sym)
-<<<<<<< HEAD
-	cout << ("To Day in bilinear form with discontinous Galerkin (2d):   \n"
-		  "  test or unkown function must be  defined on the same FEspace, \n"
-		  "  and the matrix is not symmetric. \n" 
-		  " To do other case in a future (F. Hecht) dec. 2003 ");
-        if(&Uh == &Vh)
-            matep= new MatriceElementairePleine<R,FESpace>(Uh,VF,FIT,FIE);
-        else
-            matep= new MatriceElementairePleine<R,FESpace>(Uh,Vh,VF,FIT,FIE);
-
-        
-     
-  //      matep= new MatriceElementairePleine<R,FESpace>(Uh,Vh,VF,FIT,FIE);
-=======
-	ExecError("To Day in bilinear form with discontinous Galerkin:   \n"
-		  "  test or unkown function must be  defined on the same FEspace, \n"
-		  "  and the matrix is not symmetric. \n" 
-		  " To do other case in a future (F. Hecht) dec. 2003 ");
-      
-      matep= new MatriceElementairePleine<R,FESpace>(Uh,VF,FIT,FIE);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      matep->faceelement = Element_OpVF;   
-      paramate= &parammatElement_OpVF;            
-    }
-    else if (sym) {
-      mates= new MatriceElementaireSymetrique<R,FESpace>(Uh,FIT,FIE);
-      mates->element = Element_Op<R>;
-    }
-    else {
-      matep= new MatriceElementairePleine<R,FESpace>(Uh,Vh,FIT,FIE);
-      matep->element = Element_Op<R>;               
-    }
-    MatriceElementaireFES<R,FESpace> & mate(*( sym? (MatriceElementaireFES<R,FESpace> *)mates : (MatriceElementaireFES<R,FESpace> *) matep));
-    
-    
-    mate.bilinearform=b->b;
-    
-    Check(*mate.bilinearform,mate.Uh.N,mate.Vh.N);
-    
-    if (di.kind == CDomainOfIntegration::int1d )
-      {
-          if(di.islevelset())
-          {
-              double uset = HUGE_VAL;
-              R2 Q[3];
-              KN<double> phi(Th.nv);phi=uset;
-              double f[3];
-              for(int t=0; t< Th.nt;++t)
-              {
-                if ( all || setoflab.find(Th[t].lab) != setoflab.end())
-                  {
-                  double umx=-HUGE_VAL,umn=HUGE_VAL;
-                  for(int i=0;i<3;++i)
-                  {
-                      int j= ThI(t,i);
-                      if( phi[j]==uset)
-                      {
-                          MeshPointStack(stack)->setP(&ThI,t,i);
-                          phi[j]= di.levelset(stack);//zzzz
-                      }
-                      f[i]=phi[j];
-                      umx = std::max(umx,phi[j]);
-                      umn = std::min(umn,phi[j]);
-                      
-                  }
-                  if( umn <=0 && umx >= 0)
-                  {
-                      
-                      int np= IsoLineK(f,Q,1e-10);
-                      if(np==2)
-                      {
-                         /* if ( sameMesh)
-                          {
-                           
-                              Element_rhs<R>(Vh[t],*l->l,buf,stack,*B,FIE,Q[0],Q[1]);
-                          }
-                          else*/ 
-                           //   InternalError(" No levelSet on Diff mesh :    to day  int1d of Matrix");
-                         A += mate(t,10,Th[t].lab,stack,Q);
-                      }
-                      if(sptrclean) sptrclean=sptr->clean();
-                  }
-              }
-              }
-          }
-        else for( int e=0;e<Th.neb;e++)
-          {
-            if (all || setoflab.find(Th.bedges[e].lab) != setoflab.end())   
-              {                  
-                int ie,i =Th.BoundaryElement(e,ie);
-                A += mate(i,ie,Th.bedges[e].lab,stack);  
-                if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-		
-              }
-          }
-      }
-    else if (di.kind == CDomainOfIntegration::intalledges)
-      {
-        for (int i=0;i< Th.nt; i++) 
-          {
-            if ( all || setoflab.find(Th[i].lab) != setoflab.end())
-	      for (int ie=0;ie<3;ie++)   
-              A += mate(i,ie,Th[i].lab,paramate); 
-	    if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-	    
-          }
-	
-      }      
-    else if (di.kind == CDomainOfIntegration::intallVFedges)
-      {
-	cerr << " a faire intallVFedges " << endl;
-	ffassert(0);
-        for (int i=0;i< Th.nt; i++) 
-          {
-            if ( all || setoflab.find(Th[i].lab) != setoflab.end())
-             for (int ie=0;ie<3;ie++)   
-	       A += mate(i,ie,Th[i].lab,paramate);  
-	    if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-	    
-          }
-	
-      }      
-    else if (di.kind == CDomainOfIntegration::int2d )
-      {
-          
-          if(di.islevelset())
-          {
-              double uset = HUGE_VAL;
-              R2 Q[2][3];
-              double vol6[2];
-              KN<double> phi(Th.nv);phi=uset;
-              double f[3];
-              for(int t=0; t< Th.nt;++t)
-              {
-                  if ( all || setoflab.find(Th[t].lab) != setoflab.end())
-                  {
-                      double umx=-HUGE_VAL,umn=HUGE_VAL;
-                      for(int i=0;i<3;++i)
-                      {
-                          int j= ThI(t,i);
-                          if( phi[j]==uset)
-                          {
-                              MeshPointStack(stack)->setP(&ThI,t,i);
-                              phi[j]= di.levelset(stack);//zzzz
-                          }
-                          f[i]=phi[j];
-                          umx = std::max(umx,phi[j]);
-                          umn = std::min(umn,phi[j]);
-                          
-                      }
-                      int nt= UnderIso(f,Q, vol6,1e-14);
-                      setQF<R2>(FIT,FITo,QuadratureFormular_T_1, Q,vol6,nt);
-                      if(FIT.n)
-                       A += mate(t,-1,Th[t].lab,stack);
-                      if(sptrclean) sptrclean=sptr->clean();
-                      }
-                  }
-                FIT =FITo;
-              }
-        else
-         
-          
-        for (int i=0;i< Th.nt; i++) 
-          {
-            if ( all || setoflab.find(Th[i].lab) != setoflab.end())  
-              A += mate(i,-1,Th[i].lab,stack);   
-            if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-
-            // AA += mate;
-          }
-      } 
-    else 
-      InternalError(" kind of CDomainOfIntegration unkown");
-    
-    if (where_in_stack) delete [] where_in_stack;
-    delete &mate;
- }
-// --------- FH 120105
-// 3d
- template<class R>
- void AssembleBilinearForm(Stack stack,const FESpace3::Mesh & Th,const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-			   MatriceCreuse<R>  & A, const  FormBilinear * b  )
-   
- {
-     
-     /*FH:  case ..in 3D
-      in varf ...
-      standard case ..
-      */
-     
-     
-   typedef FESpace3 FESpace;
-   typedef FESpace3::Mesh Mesh;
-   typedef Mesh *pmesh ;
-   StackOfPtr2Free * sptr = WhereStackOfPtr2Free(stack);
-   bool sptrclean=true;
-   const CDomainOfIntegration & di= *b->di;
-   ffassert(di.d==3);
-   const Mesh * pThdi = GetAny<pmesh>( (* di.Th)(stack));
-   if ( pThdi != &Th || &Uh.Th !=&Th || &Vh.Th !=&Th) { 
-       cout << " Use matrix formulation .... " << endl;
-     ExecError("No way to compute bilinear form with integrale of on mesh \n"
-	       "  test  or unkown function  defined on an other mesh! sorry to hard.   ");
-   }
-   SHOWVERB(cout << " FormBilinear " << endl);
-    MatriceElementaireSymetrique<R,FESpace> *mates =0;
-    MatriceElementairePleine<R,FESpace> *matep =0;
-    const bool useopt=di.UseOpt(stack);    
-    double binside=di.binside(stack);
-    
-    //const vector<Expression>  & what(di.what);             
-    CDomainOfIntegration::typeofkind  kind = di.kind;
-    set<int> setoflab;
-    bool all=true; 
-    const QuadratureFormular1d & FIEo = di.FIE(stack);
-    const QuadratureFormular & FITo = di.FIT(stack);
-    const GQuadratureFormular<R3> & FIVo = di.FIV(stack);
-     //  to change the quadrature on element ... may 2014 FH ..
-     QuadratureFormular1d  FIE(FIEo,3);
-    QuadratureFormular FIT(FITo,3);
-    GQuadratureFormular<R3>  FIV(FIVo,3);
-     
-    bool VF=b->VF();  // finite Volume or discontinous Galerkin
-    if (verbosity>2) cout << "  -- discontinous Galerkin  =" << VF << " size of Mat =" << A.size()<< " Bytes\n";
-    if (verbosity>3)
-    {
-      if (CDomainOfIntegration::int2d==kind) cout << "  -- boundary int border ( nQP: "<< FIT.n << ") ,"  ;
-      else  if (CDomainOfIntegration::intalledges==kind) cout << "  -- boundary int all edges ( nQP: "<< FIT.n << "),"  ;
-      else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF edges nQP: ("<< FIE.n << ")," ;
-      else cout << "  --  int3d   (nQP: "<< FIV.n << " ) in "  ;
-      if(di.islevelset()) cout << " ( int on Levelset) " << endl;
-  
-    }
-      if(di.islevelset() && (CDomainOfIntegration::int2d!=kind) && (CDomainOfIntegration::int3d!=kind))
-          InternalError("Sorry no levelset integration type on no int[2|3]d case");
-     
-   Expandsetoflab(stack,di, setoflab,all);
-   /*
-    for (size_t i=0;i<what.size();i++)
-      {
-	long  lab  = GetAny<long>( (*what[i])(stack));
-	setoflab.insert(lab);
-	if ( verbosity>3) cout << lab << " ";
-	all=false;
-      }*/
-    if (verbosity>3) cout <<" Optimized = "<< useopt << ", ";
-    const E_F0 & optiexp0=*b->b->optiexp0;
-    
-    int n_where_in_stack_opt=b->b->where_in_stack_opt.size();
-    R** where_in_stack =0;
-    if (n_where_in_stack_opt && useopt)
-      where_in_stack = new R * [n_where_in_stack_opt];
-    if (where_in_stack)
-      {
-	assert(b->b->v.size()==(size_t) n_where_in_stack_opt);
-	for (int i=0;i<n_where_in_stack_opt;i++)
-	  {
-	    int offset=b->b->where_in_stack_opt[i];
-	    assert(offset>10);
-	    where_in_stack[i]= static_cast<R *>(static_cast<void *>((char*)stack+offset));
-	    *(where_in_stack[i])=0;
-	  }
-	
-	
-	if(&optiexp0) 
-	  optiexp0(stack); 
-	KN<bool> ok(b->b->v.size());
-	{  //   remove the zero coef in the liste 
-	  // R zero=R();  
-	  int il=0;
-	  for (BilinearOperator::const_iterator l=b->b->v.begin();l!=b->b->v.end();l++,il++)
-	    ok[il] =  ! (b->b->mesh_indep_stack_opt[il] && ( Fem2D::norm(*(where_in_stack[il])) < 1e-100 ) );
-	}
-	BilinearOperator b_nozer(*b->b,ok); 
-	if (verbosity % 10 > 3 ) 
-	  cout << "   -- nb term in bilinear form  (!0) : " << b_nozer.v.size() 
-	       << "  total " << n_where_in_stack_opt << endl;
-	
-	if ( (verbosity/100) % 10 >= 2)   
-	  { 
-	    int il=0;
-	    
-	    for (BilinearOperator::const_iterator l=b->b->v.begin();l!=b->b->v.end();l++,il++)
-	      cout << il << " coef (" << l->first << ") = " << *(where_in_stack[il]) 
-		   << " offset=" << b->b->where_in_stack_opt[il] 
-		   << " dep mesh " << l->second.MeshIndependent() << b->b->mesh_indep_stack_opt[il] << endl;
-	  }
-      }
-    Stack_Ptr<R*>(stack,ElemMatPtrOffset) =where_in_stack;
-    void *paramate=stack;
-    pair_stack_double parammatElement_OpVF(stack, & binside);
-    parammatElement_OpVF.first = stack;
-    parammatElement_OpVF.second= & binside;
-    
-    if (verbosity >3)
-    {
-      if (all) cout << " all " << endl ;
-      else cout << endl;
-    }
-    if(VF) {
-      if(&Uh != &Vh || sym)
-<<<<<<< HEAD
-	cout <<  ("To Day in bilinear form with discontinous Galerkin (3d):   \n"
-		  "  test or unkown function must be  defined on the same FEspace, \n"
-		  "  and the matrix is not symmetric. \n" 
-		  " To do other case in a future (F. Hecht) dec. 2014 ");
-      if(&Uh == &Vh)
-      matep= new MatriceElementairePleine<R,FESpace>(Uh,VF,FIV,FIT);
-      else
-      matep= new MatriceElementairePleine<R,FESpace>(Uh,Vh,VF,FIV,FIT);
-=======
-	ExecError("To Day in bilinear form with discontinous Galerkin:   \n"
-		  "  test or unkown function must be  defined on the same FEspace, \n"
-		  "  and the matrix is not symmetric. \n" 
-		  " To do other case in a future (F. Hecht) dec. 2003 ");
-      
-      matep= new MatriceElementairePleine<R,FESpace>(Uh,VF,FIV,FIT);
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      matep->faceelement = Element_OpVF;   
-      paramate= &parammatElement_OpVF;            
-    }
-    else if (sym) {
-      mates= new MatriceElementaireSymetrique<R,FESpace>(Uh,FIV,FIT);
-      mates->element = Element_Op<R>;               
-    }
-    else {
-      matep= new MatriceElementairePleine<R,FESpace>(Uh,Vh,FIV,FIT);
-      matep->element = Element_Op<R>;               
-    }
-    MatriceElementaireFES<R,FESpace> & mate(*( sym? (MatriceElementaireFES<R,FESpace> *)mates : (MatriceElementaireFES<R,FESpace> *) matep));
-    
-    
-    mate.bilinearform=b->b;
-    
-    Check(*mate.bilinearform,mate.Uh.N,mate.Vh.N);
-    
-    if (di.kind == CDomainOfIntegration::int2d )
-    {
-        
-        if(di.islevelset())
-        {
-            if(verbosity>99) cout << " int2d on levelset in 3d " << endl;
-            double uset = HUGE_VAL;
-            R3 Q[4];
-            KN<double> phi(Th.nv);phi=uset;
-            double f[4];
-            for(int t=0; t< Th.nt;++t)
-            {
-                if ( all || setoflab.find(Th[t].lab) != setoflab.end())
-                {
-                double umx=-HUGE_VAL,umn=HUGE_VAL;
-                for(int i=0;i<4;++i)
-                {
-                    int j= Th(t,i);
-                    if( phi[j]==uset)
-                    {
-                        MeshPointStack(stack)->setP(&Th,t,i);
-                        phi[j]= di.levelset(stack);//zzzz
-                    }
-                    f[i]=phi[j];
-                    umx = std::max(umx,phi[j]);
-                    umn = std::min(umn,phi[j]);
-                    
-                }
-                if( umn <=0 && umx >= 0)
-                {
-                    int np= IsoLineK(f,Q,1e-10);// ca code ...
-                  //  cout <<umn << " " << umx << " " << np << endl;
-              
-                    if(np>2 )
-                    {
-                       if( verbosity > 999 ) cout << " -- int " << np << " on:  " << Q[0] << " " << Q[1] << " " << Q[2] << " " << Q[3] << endl;
-                       A += mate(t,10+np,Th[t].lab,stack,Q);
-                    }
-                    if(sptrclean) sptrclean=sptr->clean();
-                }
-                }}
-            
-        }
-        else
-            for( int e=0;e<Th.nbe;e++)
-            {
-                if (all || setoflab.find(Th.be(e).lab) != setoflab.end())
-                {
-                    int ie,i =Th.BoundaryElement(e,ie);
-                    A += mate(i,ie,Th.be(e).lab,stack);
-                    if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-                    
-                }
-            }
-    }
-    else if (di.kind == CDomainOfIntegration::intallfaces  )
-      {
-        for (int i=0;i< Th.nt; i++) 
-          {
-            if ( all || setoflab.find(Th[i].lab) != setoflab.end())
-	      for (int ie=0;ie<3;ie++)   
-              A += mate(i,ie,Th[i].lab,paramate); 
-	    if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-	    
-          }
-	
-      }      
-    else if (di.kind == CDomainOfIntegration::intallVFedges)
-      {
-	cerr << " a faire intallVFedges " << endl;
-	ffassert(0);
-        for (int i=0;i< Th.nt; i++)
-          {
-            if ( all || setoflab.find(Th[i].lab) != setoflab.end())
-             for (int ie=0;ie<3;ie++)   
-	       A += mate(i,ie,Th[i].lab,paramate);  
-	    if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-	    
-          }
-	
-      }      
-    else if (di.kind == CDomainOfIntegration::int3d )
-    {
-        if(di.islevelset())  //  may 2014 FH ...
-        {   // int3d levelset < 0
-            double llevelset = 0;
-            const double uset = std::numeric_limits<double>::max();
-            // cout << " uset ="<<uset << endl;
-            R3 Q[3][4];
-            double vol6[3];
-            KN<double> phi(Th.nv);
-            phi=uset;
-            double f[4];
-            
-            for (int t=0;t< Th.nt; t++)
-            {
-                
-                const Mesh3::Element & K(Th[t]);
-                if ( all || setoflab.find(Th[t].lab) != setoflab.end())
-                    
-                {
-                    double umx=std::numeric_limits<double>::min(),umn=std::numeric_limits<double>::max();
-                    for(int i=0;i<4;++i)
-                    {
-                        int j= Th(t,i);
-                        if( phi[j]==uset)
-                        {
-                            MeshPointStack(stack)->setP(&Th,t,i);
-                            phi[j]= di.levelset(stack);//zzzz
-                        }
-                        f[i]=phi[j];
-                    }
-                    int ntets= UnderIso(f,Q, vol6,1e-14);
-                    setQF<R3>(FIV,FIVo,QuadratureFormular_Tet_1, Q,vol6,ntets);
-                    if(FIV.n)
-                    {
-                        A += mate(t,-1,Th[t].lab,stack);
-                        if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-                        
-                    }
-                }
-            }
-            FIV=FIVo;
-        }
-        else
-            for (int i=0;i< Th.nt; i++)
-            {
-                if ( all || setoflab.find(Th[i].lab) != setoflab.end())
-                    A += mate(i,-1,Th[i].lab,stack);
-                if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-                
-                // AA += mate;
-            }
-        
-    }
-    else
-    {
-        cerr << " kind of CDomainOfIntegration unkown ?? " << di.kind << endl;
-      InternalError(" kind of CDomainOfIntegration unkown");
-    }
-    
-    if (where_in_stack) delete [] where_in_stack;
-    delete &mate;
- }
-
-// end 3d
-
-// --------- FH 170605  
-
-    template<class R> 
-    void  AddMatElem(map<pair<int,int>, R > & A,const Mesh & Th,const BilinearOperator & Op,bool sym,int it,  int ie,int label,
-		     const FESpace & Uh,const FESpace & Vh,
-		     const QuadratureFormular & FI,
-		     const QuadratureFormular1d & FIb,
-		     double *p,   void *vstack, bool intmortar=false,R2 *Q=0)
-    {
-        //cout << "AddMatElem" << Q << " "  << ie << endl;
-        Stack stack=pvoid2Stack(vstack);
-	MeshPoint mp= *MeshPointStack(stack);
-	R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-	const Mesh & Thu(Uh.Th);
-	const Mesh & Thv(Vh.Th);
-	
-	bool same = &Uh == & Vh;
-	const Triangle & T  = Th[it];
-	long npi;
-	long i,j;
-	bool classoptm = copt && Op.optiexpK;
-	assert(Op.MaxOp() <last_operatortype);
-	//
-	
-	
-	KN<bool> Dop(last_operatortype);
-	Op.DiffOp(Dop);  
-	int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-	//assert(lastop<=3);
-	
-	if (ie<0)
-        {
-	    for (npi=0;npi<FI.n;npi++) // loop on the integration point
-	    {
-		QuadraturePoint pi(FI[npi]);
-		double coef = T.area*pi.a;
-		R2 Pt(pi),Ptu,Ptv;
-		R2 P(T(Pt));
-		bool outsideu,outsidev;
-		// ici trouve le T
-		int iut=0,ivt=0;
-		const Triangle * tu,*tv;
-		if(&Th == & Thu )
-		{
-		    tu =&T;
-		    Ptu=Pt;
-		}
-		else
-		{
-		    tu= Thu.Find(P,Ptu,outsideu);
-		    if( !tu ||  outsideu) { 
-			if(verbosity>100) cout << " On a pas trouver (u) " << P << " " << endl; 
-			continue;}}
-		if(same)
-		{
-		    tv=tu;
-		    outsidev=outsideu;
-		    Ptv=Ptu;
-		}
-		else
-		{
-		    if(&Th == & Thv )
-		    {
-			tv =&T;
-			Ptv=Pt;
-		    }
-		    else
-		    {
-			tv= Thv.Find(P,Ptv,outsidev);
-			if( !tv || outsidev) {
-			    if(verbosity>100) cout << " On a pas trouver (v) " << P << " " << endl;
-			    continue;
-			}}
-		} 
-		iut = Thu(tu);
-		ivt = Thv(tv);
-		if( verbosity>1000) cout << " T " << it  << "  iut " << iut << " ivt " << ivt  <<  endl ; 
-		FElement Ku(Uh[iut]);
-		FElement Kv(Vh[ivt]);
-		long n= Kv.NbDoF() ,m=Ku.NbDoF();
-		long N= Kv.N;
-		long M= Ku.N;
-		RNMK_ fv(p,n,N,lastop); //  the value for basic fonction
-		RNMK_ fu(p+ (same ?0:n*N*lastop) ,m,M,lastop); //  the value for basic fonction
-		
-		
-		Ku.BF(Dop,Ptu,fu);
-		MeshPointStack(stack)->set(Th,P,Pt,T,label);
-		if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-		if (!same) Kv.BF(Dop,Ptv,fv);      
-		for ( i=0;  i<n;   i++ )  
-		{ 
-		    
-		    // attention la fonction test donne la ligne 
-		    //  et la fonction test est en second      
-		    int ig = Kv(i);
-		    RNM_ wi(fv(i,'.','.'));         
-		    for ( j=0;  j<m;   j++ ) 
-		    { 
-			RNM_ wj(fu(j,'.','.'));
-			int il=0;
-			int jg(Ku(j));
-			if ( !sym ||  ig <= jg ) 
-			    for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-			    {  // attention la fonction test donne la ligne 
-			       //  et la fonction test est en second      
-				BilinearOperator::K ll(*l);
-				pair<int,int> jj(ll.first.first),ii(ll.first.second);
-				double w_i =  wi(ii.first,ii.second); 
-				double w_j =  wj(jj.first,jj.second);
-				R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack))   ;  
-				if( verbosity>1000) cout << ig << " " << jg << " "  <<  " " << ccc << " " <<  coef * ccc * w_i*w_j << " on T \n"   ;                                        
-				double wij =  w_i*w_j;
-				if (abs(wij)>= 1e-10)                                          
-				    A[make_pair(ig,jg)] += coef * ccc * wij;
-			    }
-		    }
-		}
-	    }
-        }
-      else // int on edge ie
-            {
-                R2 PA,PB,E;
-                if(Q)
-                {
-                    PA=Q[0];
-                    PB=Q[1];
-                    E=T(PB)-T(PA);
-                    // cout << " AddMAtElem " <<  PA <<  " " << PB << " "<< sqrt((E,E))<< endl;
-                }
-                else
-                {
-                  PA=TriangleHat[VerticesOfTriangularEdge[ie][0]];
-                  PB=TriangleHat[VerticesOfTriangularEdge[ie][1]];
-                  E=T.Edge(ie);
-                }
-                double le = sqrt((E,E));
-               
-              for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-		    {
-			QuadratureFormular1dPoint pi( FIb[npi]);
-                        double sa=pi.x,sb=1-sa;
-                        double coef = le*pi.a;
-
-			R2 Pt(PA*sa+PB*sb ); //
-			
-			R2 Ptu,Ptv;
-			R2 P(T(Pt));
-			bool outsideu,outsidev;
-			// ici trouve le T
-			int iut=0,ivt=0;
-			const Triangle * tu, *tv;
-			if(&Th == & Thu )
-			{
-			    tu =&T;
-			    Ptu=Pt;
-			}
-			else
-			{	
-			    tu= Thu.Find(P,Ptu,outsideu);
-			    if( !tu ||  (outsideu && !intmortar) )  { 
-				//R dd=-1;
-				//if(tu) { R2 PP((*tu)(Ptu)),PPP(P,PP) ; cout << PP << " " << sqrt( (PPP,PPP) ) <<"    "; } 
-				if(verbosity>100) cout << " On a pas trouver (u) " << P << " " <<Ptu << " " << tu <<   endl; 
-				continue;}}
-			iut = Thu(tu);
-			if(same)
-			{
-			    tv=tu;
-			    outsidev=outsideu;
-			    Ptv=Ptu;
-			    ivt=iut;
-			}
-			else
-			{
-			    if(&Th == & Thv )
-			    {
-				tv =&T;
-				Ptv=Pt;
-			    }
-			    else {
-				tv= Thv.Find(P,Ptv,outsidev);
-				if( !tv || (outsidev&& !intmortar))  { 
-				    if(verbosity>100) cout << " On a pas trouver (v) " << P << " " << endl; 
-				    continue;}} 
-			    ivt = Thv(tv);
-			} 
-			FElement Ku(Uh[iut]);
-			FElement Kv(Vh[ivt]);
-			long n= Kv.NbDoF() ,m=Ku.NbDoF();
-			long N= Kv.N;
-			long M= Ku.N;
-			//  cout << P << " " <<  Pt << " " <<  iut << " " << ivt  << "  Ptu : " << Ptu << " Ptv: " << Ptv << " n:" << n << " m:" << m << endl;
-			RNMK_ fv(p,n,N,lastop); //  the value for basic fonction
-			RNMK_ fu(p+ (same ?0:n*N*lastop) ,m,M,lastop); //  the value for basic fonction
-			
-			Ku.BF(Dop,Ptu,fu);
-			if( !same)
-			    Kv.BF(Dop,Ptv,fv);
-			
-			
-			// int label=-999999; // a passer en argument 
-			MeshPointStack(stack)->set(Th,P,Pt,T,label,R2(E.y,-E.x)/le,ie);
-			if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-			
-			
-			for ( i=0;  i<n;   i++ )  
-			    // if (onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // juste the df on edge bofbof generaly wrong FH dec 2003
-			{ 
-			    RNM_ wi(fv(i,'.','.'));       
-			    int ig=Kv(i);
-			    for ( j=0;  j<m;   j++ ) 
-			    { 
-				RNM_ wj(fu(j,'.','.'));
-				int il=0;
-				int jg=Ku(j);
-				if( ! sym || ig <= jg )
-				    for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-				    {       
-					BilinearOperator::K ll(*l);
-					pair<int,int> jj(ll.first.first),ii(ll.first.second);
-					double w_i =  wi(ii.first,ii.second); 
-					double w_j =  wj(jj.first,jj.second);
-					// R ccc = GetAny<R>(ll.second.eval(stack));
-					
-					R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-					double wij =  w_i*w_j;
-					if (abs(wij)>= 1e-10&& (verbosity>1000))  
-					    cout << " \t\t\t" << ig << " " << jg << " "  <<  ccc <<  " " <<  coef * ccc * w_i*w_j << " on edge \n" ;  
-					if (abs(wij)>= 1e-10)                                          
-					    A[make_pair(ig,jg)] += wij*coef*ccc ;
-				    }
-			    }
-			} 
-		    }
-            }
-			
-        *MeshPointStack(stack) = mp;
-    }  
-			
-    
-    template<class R> 
-    void  AddMatElem(map<pair<int,int>, R > & A,const Mesh3 & Th,const BilinearOperator & Op,bool sym,int it,  int ie,int label,
-                     const FESpace3 & Uh,const FESpace3 & Vh,
-                     const Fem2D::GQuadratureFormular<R3>  & FI,
-                     const  QuadratureFormular & FIb,
-                     double *p,   void *vstack, bool intmortar=false)
-    {
-         Stack stack=pvoid2Stack(vstack);
-        MeshPoint mp= *MeshPointStack(stack);
-        static int count =0; // non test FH .........................
-        if(count++ < 1) {
-            cout << " Warning : Assemble Matrix with incompatible 3d meshes in test (FH)  " << endl;
-            cout << " ------------------------------------------------------------- " << endl;
-        }
-        R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-        const Mesh3 & Thu(Uh.Th);
-        const Mesh3 & Thv(Vh.Th);
-        
-        bool same = &Uh == & Vh;
-        const Tet & T  = Th[it];
-        long npi;
-        long i,j;
-        bool classoptm = copt && Op.optiexpK;
-        assert(Op.MaxOp() <last_operatortype);
-        //
-        int lastop=0;
-        lastop = 0;
-        What_d Dop = Op.DiffOp(lastop);
-
-       
-        //assert(lastop<=3);
-        
-        if (ie<0)    
-            for (npi=0;npi<FI.n;npi++) // loop on the integration point
-            {
-                GQuadraturePoint<R3> pi(FI[npi]);
-                double coef = T.mesure()*pi.a;
-                R3 Pt(pi),Ptu,Ptv;
-                R3 P(T(Pt));
-                bool outsideu,outsidev;
-                // ici trouve le T
-                int iut=0,ivt=0;
-                const Tet * tu,*tv;
-                if(&Th == & Thu )
-                {
-                    tu =&T;
-                    Ptu=Pt;
-                }
-                else
-                {
-                    tu= Thu.Find(P,Ptu,outsideu);
-                    if( !tu ||  outsideu) { 
-                        if(verbosity>100) cout << " On a pas trouver (u) " << P << " " << endl; 
-                        continue;}}
-                if(same)
-                {
-                    tv=tu;
-                    outsidev=outsideu;
-                    Ptv=Ptu;
-                }
-                else
-                {
-                    if(&Th == & Thv )
-                    {
-                        tv =&T;
-                        Ptv=Pt;
-                    }
-                    else
-                    {
-                        tv= Thv.Find(P,Ptv,outsidev);
-                        if( !tv || outsidev) {
-                            if(verbosity>100) cout << " On a pas trouver (v) " << P << " " << endl;
-                            continue;
-                        }}
-                } 
-                iut = Thu(tu);
-                ivt = Thv(tv);
-                if( verbosity>1000) cout << " T " << it  << "  iut " << iut << " ivt " << ivt  <<  endl ; 
-                FElement3 Ku(Uh[iut]);
-                FElement3 Kv(Vh[ivt]);
-                long n= Kv.NbDoF() ,m=Ku.NbDoF();
-                long N= Kv.N;
-                long M= Ku.N;
-                RNMK_ fv(p,n,N,(long) lastop); //  the value for basic fonction
-                RNMK_ fu(p+ (same ?0:n*N*lastop) ,m,M,(long) lastop); //  the value for basic fonction
-                
-                
-                Ku.BF(Dop,Ptu,fu);
-                MeshPointStack(stack)->set(Th,P,Pt,T,label);
-                if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-                if (!same) Kv.BF(Dop,Ptv,fv);      
-                for ( i=0;  i<n;   i++ )  
-                { 
-                    
-                    // attention la fonction test donne la ligne 
-                    //  et la fonction test est en second      
-                    int ig = Kv(i);
-                    RNM_ wi(fv(i,'.','.'));         
-                    for ( j=0;  j<m;   j++ ) 
-                    { 
-                        RNM_ wj(fu(j,'.','.'));
-                        int il=0;
-                        int jg(Ku(j));
-                        if ( !sym ||  ig <= jg ) 
-                            for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                            {  // attention la fonction test donne la ligne 
-                                //  et la fonction test est en second      
-                                BilinearOperator::K ll(*l);
-                                pair<int,int> jj(ll.first.first),ii(ll.first.second);
-                                double w_i =  wi(ii.first,ii.second); 
-                                double w_j =  wj(jj.first,jj.second);
-                                R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack))   ;  
-                                if( verbosity>1000) cout << ig << " " << jg << " "  <<  " " << ccc << " " <<  coef * ccc * w_i*w_j << " on T \n"   ;                                        
-                                double wij =  w_i*w_j;
-                                if (abs(wij)>= 1e-10)                                          
-                                    A[make_pair(ig,jg)] += coef * ccc * wij;
-                            }
-                    }
-                }
-            }
-		else // int on edge ie 
-		    for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-		    {
-              
-                GQuadraturePoint<R2> pi( FIb[npi]);
-                R3 NN= T.N(ie);
-                double mes=NN.norme();
-                NN/=mes;
-                double coef = 0.5*mes*pi.a; // correction 0.5 050109 FH
-                R3 Pt(T.PBord(ie,pi));
-                //Ku.BF(Dop,Pt,fu);
-
-               
-                
-                R3 Ptu,Ptv;
-                R3 P(T(Pt));
-                bool outsideu,outsidev;
-                // ici trouve le T
-                int iut=0,ivt=0;
-                const Tet * tu, *tv;
-                if(&Th == & Thu )
-                {
-                    tu =&T;
-                    Ptu=Pt;
-                }
-                else
-                {	
-                    tu= Thu.Find(P,Ptu,outsideu);
-                    if( !tu ||  (outsideu && !intmortar) )  { 
-                        //R dd=-1;
-                        //if(tu) { R2 PP((*tu)(Ptu)),PPP(P,PP) ; cout << PP << " " << sqrt( (PPP,PPP) ) <<"    "; } 
-                        if(verbosity>100) cout << " On a pas trouver (u) " << P << " " <<Ptu << " " << tu <<   endl; 
-                        continue;}}
-                iut = Thu(tu);
-                if(same)
-                {
-                    tv=tu;
-                    outsidev=outsideu;
-                    Ptv=Ptu;
-                    ivt=iut;
-                }
-                else
-                {
-                    if(&Th == & Thv )
-                    {
-                        tv =&T;
-                        Ptv=Pt;
-                    }
-                    else {
-                        tv= Thv.Find(P,Ptv,outsidev);
-                        if( !tv || (outsidev&& !intmortar))  { 
-                            if(verbosity>100) cout << " On a pas trouver (v) " << P << " " << endl; 
-                            continue;}} 
-                    ivt = Thv(tv);
-                } 
-                FElement3 Ku(Uh[iut]);
-                FElement3 Kv(Vh[ivt]);
-                long n= Kv.NbDoF() ,m=Ku.NbDoF();
-                long N= Kv.N;
-                long M= Ku.N;
-                //  cout << P << " " <<  Pt << " " <<  iut << " " << ivt  << "  Ptu : " << Ptu << " Ptv: " << Ptv << " n:" << n << " m:" << m << endl;
-                RNMK_ fv(p,n,N,lastop); //  the value for basic fonction
-                RNMK_ fu(p+ (same ?0:n*N*lastop) ,m,M,lastop); //  the value for basic fonction
-                
-                Ku.BF(Dop,Ptu,fu);
-                if( !same)
-                    Kv.BF(Dop,Ptv,fv);
-                
-                
-                // int label=-999999; // a passer en argument 
-                MeshPointStack(stack)->set(Th,P,Pt,T,label,NN,ie);
-                if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-                
-                
-                for ( i=0;  i<n;   i++ )  
-                    // if (onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // juste the df on edge bofbof generaly wrong FH dec 2003
-                { 
-                    RNM_ wi(fv(i,'.','.'));       
-                    int ig=Kv(i);
-                    for ( j=0;  j<m;   j++ ) 
-                    { 
-                        RNM_ wj(fu(j,'.','.'));
-                        int il=0;
-                        int jg=Ku(j);
-                        if( ! sym || ig <= jg )
-                            for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                            {       
-                                BilinearOperator::K ll(*l);
-                                pair<int,int> jj(ll.first.first),ii(ll.first.second);
-                                double w_i =  wi(ii.first,ii.second); 
-                                double w_j =  wj(jj.first,jj.second);
-                                // R ccc = GetAny<R>(ll.second.eval(stack));
-                                
-                                R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-                                double wij =  w_i*w_j;
-                                if (abs(wij)>= 1e-10&& (verbosity>1000))  
-                                    cout << " \t\t\t" << ig << " " << jg << " "  <<  ccc <<  " " <<  coef * ccc * w_i*w_j << " on edge \n" ;  
-                                if (abs(wij)>= 1e-10)                                          
-                                    A[make_pair(ig,jg)] += wij*coef*ccc ;
-                            }
-                    }
-                } 
-		    }
-        
-        
-        *MeshPointStack(stack) = mp;
-    }  
-   
- template<class R>
-  void AssembleBilinearForm(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                           map<pair<int,int>, R >  & A, const  FormBilinear * b  )
-    
-  {
-  /*FH:  case ..in 2D
-     in varf ...
-     all mesh can can be different ....
-   */
-      StackOfPtr2Free * sptr = WhereStackOfPtr2Free(stack);
-     bool sptrclean=true;
-     //     sptr->clean(); // modif FH mars 2006  clean Ptr
-
-    const CDomainOfIntegration & di= *b->di;
-    const Mesh * pThdi = GetAny<pmesh>( (* di.Th)(stack));
-    SHOWVERB(cout << " FormBilinear () " << endl);
-    //MatriceElementaireSymetrique<R> *mates =0;
-    // MatriceElementairePleine<R> *matep =0;
-    const bool useopt=di.UseOpt(stack);    
-    //double binside=di.binside(stack);
-    const bool intmortar=di.intmortar(stack);
-    if ( verbosity >1)
-     {
-      cout << " Integral   on Th nv :  " << Th.nv << " nt : " << Th.nt << endl;
-      cout << "        Th/ u nv : " << Uh.Th.nv << "   nt : " << Uh.Th.nt << endl;
-      cout << "        Th/ v nv : " << Vh.Th.nv << "   nt : " << Vh.Th.nt << endl;
-      cout << "        suppose in mortar " << intmortar << "   levelset=  " << di.islevelset() << endl;
-     }
-    assert(pThdi == & Th);
-    //const vector<Expression>  & what(di.what);             
-    CDomainOfIntegration::typeofkind  kind = di.kind;
-    set<int> setoflab;
-    bool all=true; 
-    const QuadratureFormular1d & FIE = di.FIE(stack);
-    const QuadratureFormular & FITo = di.FIT(stack);
-    QuadratureFormular FIT(FITo,3);
-    bool VF=b->VF();  // finite Volume or discontinous Galerkin
-    if (verbosity>2) cout << "  -- discontinous Galerkin  =" << VF << " size of Mat =" << A.size()<< " Bytes\n";
-    if (verbosity>3)
-    {
-      if (CDomainOfIntegration::int1d==kind) cout << "  -- boundary int border ( nQP: "<< FIE.n << ") ,"  ;
-      else  if (CDomainOfIntegration::intalledges==kind) cout << "  -- boundary int all edges ( nQP: "<< FIE.n << "),"  ;
-      else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF edges nQP: ("<< FIE.n << ")," ;
-      else cout << "  --  int    (nQP: "<< FIT.n << " ) in "  ;
-    }
-     // if(di.islevelset()) InternalError("Sorry no levelset integration type on this case (1)");
-      if(di.islevelset() && (CDomainOfIntegration::int1d!=kind) &&  (CDomainOfIntegration::int2d!=kind) )
-          InternalError("Sorry no levelset integration type on no int1d case");
-      
-    /*
-    if (verbosity>3) 
-      if (CDomainOfIntegration::int1d==kind) cout << "  -- boundary int border  " ;
-      else  if (CDomainOfIntegration::intalledges==kind) cout << "  -- boundary int all edges, "   ;
-      else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF edges, "   ;
-      else cout << "  --  int  in  " ; */
-    Expandsetoflab(stack,di, setoflab,all);
-    /*
-    for (size_t i=0;i<what.size();i++)
-      {long  lab  = GetAny<long>( (*what[i])(stack));
-      setoflab.insert(lab);
-      if ( verbosity>3) cout << lab << " ";
-      all=false;
-      }*/
-     if (verbosity>3) cout <<" Optimized = "<< useopt << ", ";
-  const E_F0 & optiexp0=*b->b->optiexp0;
-  // const E_F0 & optiexpK=*b->b->optiexpK;
-  int n_where_in_stack_opt=b->b->where_in_stack_opt.size();
-  R** where_in_stack =0;
-  if (n_where_in_stack_opt && useopt)
-    where_in_stack = new R * [n_where_in_stack_opt];
-  if (where_in_stack)
-   {
-    assert(b->b->v.size()==(size_t) n_where_in_stack_opt);
-    for (int i=0;i<n_where_in_stack_opt;i++)
-    {
-      int offset=b->b->where_in_stack_opt[i];
-      assert(offset>10);
-      where_in_stack[i]= static_cast<R *>(static_cast<void *>((char*)stack+offset));
-      *(where_in_stack[i])=0;
-     }
-    
-    
-    if(&optiexp0) 
-      optiexp0(stack); 
-    KN<bool> ok(b->b->v.size());
-     {  //   remove the zero coef in the liste 
-       // R zero=R();  
-      int il=0;
-      for (BilinearOperator::const_iterator l=b->b->v.begin();l!=b->b->v.end();l++,il++)
-        ok[il] =  ! (b->b->mesh_indep_stack_opt[il] && ( Fem2D::norm(*(where_in_stack[il])) < 1e-100 ) );
-     }
-    BilinearOperator b_nozer(*b->b,ok); 
-    if (verbosity % 10 > 3 ) 
-      cout << "   -- nb term in bilinear form  (!0) : " << b_nozer.v.size() 
-           << "  total " << n_where_in_stack_opt << endl;
-    
-    if ( (verbosity/100) % 10 >= 2)   
-     { 
-      int il=0;
-      
-      for (BilinearOperator::const_iterator l=b->b->v.begin();l!=b->b->v.end();l++,il++)
-       cout << il << " coef (" << l->first << ") = " << *(where_in_stack[il]) 
-                  << " offset=" << b->b->where_in_stack_opt[il] 
-                  << " dep mesh " << l->second.MeshIndependent() << b->b->mesh_indep_stack_opt[il] << endl;
-    }
-    }
-    Stack_Ptr<R*>(stack,ElemMatPtrOffset) =where_in_stack;
-  
-   KN<double>  p(Vh.esize()+ Uh.esize() );
-
-    
-    if (verbosity >3)
-    {
-      if (all) cout << " all " << endl ;
-      else cout << endl;
-    }
-    
-      if (di.kind == CDomainOfIntegration::int1d )
-      {
-         
-          if(di.islevelset())
-          {
-              double uset = HUGE_VAL;
-              R2 Q[2];
-              double vol6[2];
-              KN<double> phi(Th.nv);phi=uset;
-              double f[3], ll=0;
-              for(int t=0; t< Th.nt;++t)
-              {
-                  if ( all || setoflab.find(Th[t].lab) != setoflab.end())
-                  {
-                      double umx=-HUGE_VAL,umn=HUGE_VAL;
-                      for(int i=0;i<3;++i)
-                      {
-                          int j= Th(t,i);
-                          if( phi[j]==uset)
-                          {
-                              MeshPointStack(stack)->setP(&Th,t,i);
-                              phi[j]= di.levelset(stack);//zzzz
-                          }
-                          f[i]=phi[j];
-                          umx = std::max(umx,phi[j]);
-                          umn = std::min(umn,phi[j]);
-                          
-                      }
-                      int ntp= IsoLineK(f,Q,1e-10);
-                      if(verbosity>999 && ntp==2)
-                      {
-                          const Triangle &T = Th[t];
-                          R2 E(T(Q[0]),T(Q[1]));
-                          double le=sqrt((E,E));
-                          ll += le;
-                        cout << "\t\t" << ntp <<" :  " << Q[0] << " " << Q[1] << " ;  "
-                             << f[0] << " " << f[1] << " " << f[2] << "  " << le << " / " << ll<<endl;
-                      }
-                      if( ntp==2)
-                      {
-                          AddMatElem(A,Th,*b->b,sym,t,10,Th[t].lab,Uh,Vh,FIT,FIE,p,stack,intmortar,Q);
-                          if(sptrclean) sptrclean=sptr->clean();
-                      }
-                  }
-              }
-              FIT =FITo;
-          }
-          
-          
-          else
-          {
-              for( int e=0;e<Th.neb;e++)
-              {
-                  if (all || setoflab.find(Th.bedges[e].lab) != setoflab.end())
-                  {
-                      int ie,i =Th.BoundaryElement(e,ie);
-                      AddMatElem(A,Th,*b->b,sym,i,ie,Th.bedges[e].lab,Uh,Vh,FIT,FIE,p,stack,intmortar);
-                      if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-                  }
-              }
-          }}
-    else if (di.kind == CDomainOfIntegration::intalledges)
-      {
-        cerr << " Sorry no implement to hard  "<< endl;
-        ExecError("FH: no intalledges on diff mesh ???");
-        ffassert(0); // a faire 
-        for (int i=0;i< Th.nt; i++) 
-          {
-            if ( all || setoflab.find(Th[i].lab) != setoflab.end())
-             for (int ie=0;ie<3;ie++)   
-                AddMatElem(A,Th,*b->b,sym,i,ie,Th[i].lab,Uh,Vh,FIT,FIE,p,stack,intmortar);  
-             if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr   
-                
-                
-          }
-         
-      }      
-    else if (di.kind == CDomainOfIntegration::intallVFedges)
-      {
-       
-       cerr << " a faire intallVFedges " << endl;
-       ffassert(0);
-         
-      }      
-    else if (di.kind == CDomainOfIntegration::int2d )
-      {
-       // cerr << " a faire CDomainOfIntegration::int2d  " << endl;
-          if(di.islevelset())
-          {
-              double uset = HUGE_VAL;
-              R2 Q[2][3];
-              double vol6[2];
-              KN<double> phi(Th.nv);phi=uset;
-              double f[3];
-              for(int t=0; t< Th.nt;++t)
-              {
-                  if ( all || setoflab.find(Th[t].lab) != setoflab.end())
-                  {
-                      double umx=-HUGE_VAL,umn=HUGE_VAL;
-                      for(int i=0;i<3;++i)
-                      {
-                          int j= Th(t,i);
-                          if( phi[j]==uset)
-                          {
-                              MeshPointStack(stack)->setP(&Th,t,i);
-                              phi[j]= di.levelset(stack);//zzzz
-                          }
-                          f[i]=phi[j];
-                          umx = std::max(umx,phi[j]);
-                          umn = std::min(umn,phi[j]);
-                          
-                      }
-                      int nt= UnderIso(f,Q, vol6,1e-14);
-                      setQF<R2>(FIT,FITo,QuadratureFormular_T_1, Q,vol6,nt);
-                      if(FIT.n)
-                        AddMatElem(A,Th,*b->b,sym,t,-1,Th[t].lab,Uh,Vh,FIT,FIE,p,stack);
-                      if(sptrclean) sptrclean=sptr->clean();
-                  }
-              }
-              FIT =FITo;
-          }
-          else
-  
-        {
-        for (int i=0;i< Th.nt; i++)
-          {
-            if ( all || setoflab.find(Th[i].lab) != setoflab.end())  
-               AddMatElem(A,Th,*b->b,sym,i,-1,Th[i].lab,Uh,Vh,FIT,FIE,p,stack); 
-            if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr    
-          }
-
-      }}
-    else 
-      InternalError(" kind of CDomainOfIntegration unkown");
-      
-    if (where_in_stack) delete [] where_in_stack;
-  }
-
-			
- template<class R>
-  void AssembleBilinearForm(Stack stack,const Mesh3 & Th,const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-                           map<pair<int,int>, R >  & A, const  FormBilinear * b  )
-    
-  {
-      /*FH:  case ..in 3D
-       in varf ...
-       all mesh can can be different ....
-       */
-      
-      
-      StackOfPtr2Free * sptr = WhereStackOfPtr2Free(stack);
-      bool sptrclean=true;
-      //     sptr->clean(); // modif FH mars 2006  clean Ptr
-      
-      const CDomainOfIntegration & di= *b->di;
-      const Mesh3 * pThdi = GetAny<pmesh3>( (* di.Th)(stack));
-      SHOWVERB(cout << " FormBilinear () " << endl);
-      //MatriceElementaireSymetrique<R> *mates =0;
-      // MatriceElementairePleine<R> *matep =0;
-      const bool useopt=di.UseOpt(stack);    
-      //double binside=di.binside(stack);
-      const bool intmortar=di.intmortar(stack);
-      if ( verbosity >1)
-      {
-          cout << " Integral   on Th nv :  " << Th.nv << " nt : " << Th.nt << endl;
-          cout << "        Th/ u nv : " << Uh.Th.nv << "   nt : " << Uh.Th.nt << endl;
-          cout << "        Th/ v nv : " << Vh.Th.nv << "   nt : " << Vh.Th.nt << endl;
-          cout << "        suppose in mortar " << intmortar << endl;
-      }
-      assert(pThdi == & Th);
-      //const vector<Expression>  & what(di.what);             
-      CDomainOfIntegration::typeofkind  kind = di.kind;
-      set<int> setoflab;
-      bool all=true;
-      // const QuadratureFormular1d & FIEo = di.FIE(stack);
-      const QuadratureFormular & FITo = di.FIT(stack);
-      const GQuadratureFormular<R3> & FIVo = di.FIV(stack);
-      //  to change the quadrature on element ... may 2014 FH ..
-      // QuadratureFormular1d  FIE(FIEo,3);
-      QuadratureFormular FIT(FITo,3);
-      GQuadratureFormular<R3>  FIV(FIVo,3);
-      
-      
-      
-  //    const QuadratureFormular & FIT = di.FIT(stack);
-  //    const Fem2D::GQuadratureFormular<R3> & FIV = di.FIV(stack);
-      bool VF=b->VF();  // finite Volume or discontinous Galerkin
-      if (verbosity>2) cout << "  -- discontinous Galerkin  =" << VF << " size of Mat =" << A.size()<< " Bytes\n";
-      if (verbosity>3)
-      {
-          if (CDomainOfIntegration::int2d==kind) cout << "  -- boundary int border ( nQP: "<< FIT.n << ") ,"  ;
-          else  if (CDomainOfIntegration::intallfaces==kind) cout << "  -- boundary int all edges ( nQP: "<< FIT.n << "),"  ;
-          //else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF edges nQP: ("<< FIT.n << ")," ;
-          else cout << "  --  int    (nQP: "<< FIV.n << " ) in "  ;
-      }
-      if(di.islevelset()) InternalError("Sorry no levelset integration type on this case (2)");
-      if(di.islevelset() && (CDomainOfIntegration::int2d!=kind) && (CDomainOfIntegration::int3d!=kind) ) InternalError("Sorry no levelset integration type on no int2d case");
-   
-      Expandsetoflab(stack,di, setoflab,all);
-      /*
-       for (size_t i=0;i<what.size();i++)
-       {long  lab  = GetAny<long>( (*what[i])(stack));
-       setoflab.insert(lab);
-       if ( verbosity>3) cout << lab << " ";
-       all=false;
-       }*/
-      if (verbosity>3) cout <<" Optimized = "<< useopt << ", ";
-      const E_F0 & optiexp0=*b->b->optiexp0;
-      // const E_F0 & optiexpK=*b->b->optiexpK;
-      int n_where_in_stack_opt=b->b->where_in_stack_opt.size();
-      R** where_in_stack =0;
-      if (n_where_in_stack_opt && useopt)
-          where_in_stack = new R * [n_where_in_stack_opt];
-      if (where_in_stack)
-      {
-          assert(b->b->v.size()==(size_t) n_where_in_stack_opt);
-          for (int i=0;i<n_where_in_stack_opt;i++)
-          {
-              int offset=b->b->where_in_stack_opt[i];
-              assert(offset>10);
-              where_in_stack[i]= static_cast<R *>(static_cast<void *>((char*)stack+offset));
-              *(where_in_stack[i])=0;
-          }
-          
-          
-          if(&optiexp0) 
-              optiexp0(stack); 
-          KN<bool> ok(b->b->v.size());
-          {  //   remove the zero coef in the liste 
-              // R zero=R();  
-              int il=0;
-              for (BilinearOperator::const_iterator l=b->b->v.begin();l!=b->b->v.end();l++,il++)
-                  ok[il] =  ! (b->b->mesh_indep_stack_opt[il] && ( Fem2D::norm(*(where_in_stack[il])) < 1e-100 ) );
-          }
-          BilinearOperator b_nozer(*b->b,ok); 
-          if (verbosity % 10 > 3 ) 
-              cout << "   -- nb term in bilinear form  (!0) : " << b_nozer.v.size() 
-              << "  total " << n_where_in_stack_opt << endl;
-          
-          if ( (verbosity/100) % 10 >= 2)   
-          { 
-              int il=0;
-              
-              for (BilinearOperator::const_iterator l=b->b->v.begin();l!=b->b->v.end();l++,il++)
-                  cout << il << " coef (" << l->first << ") = " << *(where_in_stack[il]) 
-                  << " offset=" << b->b->where_in_stack_opt[il] 
-                  << " dep mesh " << l->second.MeshIndependent() << b->b->mesh_indep_stack_opt[il] << endl;
-          }
-      }
-      Stack_Ptr<R*>(stack,ElemMatPtrOffset) =where_in_stack;
-      
-      KN<double>  p(Vh.esize()+ Uh.esize() );
-      
-      
-      if (verbosity >3) 
-	{
-	  if (all) cout << " all " << endl ;
-          else cout << endl;
-	}
-      
-      if (di.kind == CDomainOfIntegration::int2d )
-      { 
-          for( int e=0;e<Th.nbe;e++)
-          {
-              if (all || setoflab.find(Th.be(e).lab) != setoflab.end())   
-              {                  
-                  int ie,i =Th.BoundaryElement(e,ie);
-                  AddMatElem(A,Th,*b->b,sym,i,ie,Th.be(e).lab,Uh,Vh,FIV,FIT,p,stack,intmortar);  
-                  if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-              }
-          }
-      }
-      else if (di.kind == CDomainOfIntegration::intallfaces)
-      {
-          ffassert(0); // a faire 
-          
-          for (int i=0;i< Th.nt; i++) 
-          {
-              if ( all || setoflab.find(Th[i].lab) != setoflab.end())
-                  for (int ie=0;ie<3;ie++)   
-                      AddMatElem(A,Th,*b->b,sym,i,ie,Th[i].lab,Uh,Vh,FIV,FIT,p,stack,intmortar);  
-           
-              if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr   
-              
-              
-          } 
-          
-      }      
-     /* else if (di.kind == CDomainOfIntegration::intallVFedges)
-      {
-          
-          cerr << " a faire intallVFedges " << endl;
-          ffassert(0);
-          
-      }  */    
-      else if (di.kind == CDomainOfIntegration::int3d )
-      {
-          if(di.islevelset())  //  may 2014 FH ...
-          {   // int3d levelset < 0
-              double llevelset = 0;
-              const double uset = std::numeric_limits<double>::max();
-              // cout << " uset ="<<uset << endl;
-              R3 Q[3][4];
-              double vol6[3];
-              KN<double> phi(Th.nv);
-              phi=uset;
-              double f[4];
-              
-              for (int t=0;t< Th.nt; t++)
-              {
-                  
-                  const Mesh3::Element & K(Th[t]);
-                  if (all || setoflab.find(Th[t].lab) != setoflab.end())
-                      
-                  {
-                      double umx=std::numeric_limits<double>::min(),umn=std::numeric_limits<double>::max();
-                      for(int i=0;i<4;++i)
-                      {
-                          int j= Th(t,i);
-                          if( phi[j]==uset)
-                          {
-                              MeshPointStack(stack)->setP(&Th,t,i);
-                              phi[j]= di.levelset(stack);//zzzz
-                          }
-                          f[i]=phi[j];
-                      }
-                      int ntets= UnderIso(f,Q, vol6,1e-14);
-                      setQF<R3>(FIV,FIVo,QuadratureFormular_Tet_1, Q,vol6,ntets);
-                      if(FIV.n)
-                      {
-                          AddMatElem(A,Th,*b->b,sym,t,-1,Th[t].lab,Uh,Vh,FIV,FIT,p,stack);
-                          if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-                          
-                      }
-                      
-                  }
-              }
-              FIV = FIVo;
-              
-          }
-          else
-
-      {
-          // cerr << " a faire CDomainOfIntegration::int3d  " << endl;
-          for (int i=0;i< Th.nt; i++) 
-          {
-              if ( all || setoflab.find(Th[i].lab) != setoflab.end())  
-                  AddMatElem(A,Th,*b->b,sym,i,-1,Th[i].lab,Uh,Vh,FIV,FIT,p,stack); 
-              if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr    
-          }
-          
-      } }
-      else 
-          InternalError(" kind of CDomainOfIntegration unkown");
-      
-      if (where_in_stack) delete [] where_in_stack;      
-   
-  }
-// --------- FH 170605
- 
- 
-  template<class R> 
-  void  Element_Op(MatriceElementairePleine<R,FESpace3> & mat,const FElement3 & Ku,const FElement3 & Kv,double * p,int ie,int label,void *vstack,R3 *B)
-  {
-  //  ffassert(B==0);
-   Stack stack=pvoid2Stack(vstack);    
-    //    ffassert(0);
-    typedef  FElement3::Element Element;
-    MeshPoint mp= *MeshPointStack(stack);
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    
-    bool same = &Ku == & Kv;
-    const Element & T  = Ku.T;
-    throwassert(&T == &Kv.T);  
-    const GQuadratureFormular<R3> & FI = mat.FIT;
-    const GQuadratureFormular<R2> & FIb = mat.FIE;
-    long npi;
-    R *a=mat.a;
-    R *pa=a;
-    long i,j;
-    long n= mat.n,m=mat.m,nx=n*m;
-    long N= Kv.N;
-    long M= Ku.N;
-    
-  
-    
-    
-    
-    const Opera &Op(*mat.bilinearform);
-    bool classoptm = copt && Op.optiexpK;
-    bool oldopt=1;  // juin 2007 FH ???? a voir 
-    int  iloop=0;
-    KN<bool> unvarexp(classoptm ? Op.optiexpK->sizevar() : 1);
-    if (Ku.number<1 && verbosity/100 && verbosity % 10 == 2) 
-      cout << "Element_Op 3d P: copt = " << copt << " " << classoptm << endl;
-    assert(Op.MaxOp() <last_operatortype);
-    //
-    int lastop;
-    lastop = 0;
-    What_d Dop = Op.DiffOp(lastop);
-    //KN<bool> Dop(last_operatortype);
-    //p.DiffOp(Dop);  
-    //int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-    //assert(lastop<=3);
-    RNMK_ fv(p,n,N,lastop); //  the value for basic fonction
-    RNMK_ fu(p+ (same ?0:n*N*lastop) ,m,M,lastop); //  the value for basic fonction
-  
-    for (i=0;i< nx;i++) 
-      *pa++ = 0.; 
-    if (ie<0)    
-      for (npi=0;npi<FI.n;npi++) // loop on the integration point
-	{
-	  GQuadraturePoint<R3> pi(FI[npi]);
-	  R coef = T.mesure()*pi.a;
-	  R3 Pt(pi);
-	  pa =a;
-	  Ku.BF(Dop,Pt,fu);
-	  MeshPointStack(stack)->set(T(Pt),Pt,Kv);
-	  if (classoptm) {
-	    if( oldopt) (*Op.optiexpK)(stack); // call old optim version 
-	    else Op.optiexpK->eval(stack,iloop++,unvarexp); // new optim version 
-	  }
-	  if (!same) Kv.BF(Dop,Pt,fv);
-	  int il=0;
-	  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	    {  // attention la fonction test donne la ligne 
-	      //  et la fonction test est en second      
-	      BilinearOperator::K ll(*l);
-	      //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-	      long jcomp= ll.first.first.first,jop=ll.first.first.second;
-	      long icomp= ll.first.second.first,iop=ll.first.second.second;
-	      
-	      R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-	      if ( copt && Kv.number <1)
-		{
-		  R cc  =  GetAny<R>(ll.second.eval(stack));
-		  //cout << *(copt[il]) << " == " <<  cc << endl;
-		  if ( ccc != cc) { 
-		    cerr << cc << " != " << ccc << " => ";
-		    cerr << "Sorry error in Optimization (a) add:  int2d(Th,optimize=0)(...)" << endl;
-		    ExecError("In Optimized version "); }
-		}
-	      int fi=Kv.dfcbegin(icomp);
-	      int li=Kv.dfcend(icomp);
-	      int fj=Ku.dfcbegin(jcomp);
-	      int lj=Ku.dfcend(jcomp);
-	      ccc *= coef;
-	      
-	      // attention la fonction test donne la ligne 
-	      //  et la fonction test est en second      
-	      
-	      for ( i=fi;  i<li;   i++ )  
-		{ 
-		  for ( j=fj;  j<lj;   j++ ) 
-		    { 		      
-		      R w_i =  fv(i,icomp,iop); 
-		      R w_j =  fu(j,jcomp,jop);		      
-		      mat(i,j) += ccc * w_i*w_j;
-		    }
-		}
-	    }
-	}
-    else if(B)
-    {  // int on leveset
-        int np = ie-10; //= (B[0].x == B[3].x ) && (B[0].y == B[3].y ) && (B[0].z == B[3].z ) ? 3 : 4;
-        if(verbosity>999) cout << "    Ass mat pleine /"<< np << endl;
-        assert( np==3 || np==4);
-        // XXXXXXX
-        double epsmes3=T.mesure()*T.mesure()*1e-18;
-        R3 PP[4];
-        double l[3];
-        for(int i=0; i< np; ++i)
-            PP[i]= T(B[i]);
-        
-        for( int i =0; i+1 < np; i+=2)
-        { // 0,1,, a and 2,3,0.
-            int i0=i,i1=i+1,i2=(i+2)%np;
-            R3 NN= R3(PP[i0],PP[i1])^R3(PP[i0],PP[i2]);
-            double mes2 = (NN,NN);
-            double mes = sqrt(mes2);
-
-            if(mes2*mes <epsmes3) continue; //  too small
-            NN /= mes;
-            mes *= 0.5;
-            if(verbosity>999)
-                cout << " --int on leveset3d " << np << " " << mes << " " << i0<<i1<<i2 <<endl;
-            double asum=0;
-            for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-            {
-                GQuadraturePoint<R2>  pi( FIb[npi]);
-               // cout << " %% " << npi << " " << pi.a << " " << pi.x << " " << pi.y << endl;
-                asum+= pi.a;
-                pi.toBary(l);
-                R3 Pt( l[0]*B[i0]+l[1]*B[i1]+l[2]*B[i2]); //
-                double coef = mes*pi.a; // correction 0.5 050109 FH
-                Ku.BF(Dop,Pt,fu);
-                if (!same) Kv.BF(Dop,Pt,fv);
-                MeshPointStack(stack)->set(T(Pt),Pt,Ku,label,NN,ie);
-                if (classoptm) (*Op.optiexpK)(stack); // call optim version
-
-                pa=a;
-                for (int i=0;  i<n;   i++ )
-                {
-                    RNM_ wi(fv(i,'.','.'));
-                    for (int  j=0;  j<m;   j++,pa++ )
-                    {
-                        RNM_ wj(fu(j,'.','.'));
-                        int il=0;
-                        for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-			{
-			    BilinearOperator::K ll(*l);
-			    pair<int,int> jj(ll.first.first),ii(ll.first.second);
-			    
-			    double w_i =  wi(ii.first,ii.second);
-			    double w_j =  wj(jj.first,jj.second);
-			    
-			    R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-			    if ( copt && Kv.number <1)
-                            {
-                                R cc  =  GetAny<R>(ll.second.eval(stack));
-                                if ( ccc != cc) {
-                                    cerr << cc << " != " << ccc << " => ";
-                                    cerr << "Sorry error in Optimization (b) add:  int2d(Th,optimize=0)(...)" << endl;
-                                    ExecError("In Optimized version "); }
-                            }
-                            if(verbosity>999)
-                                cout << " -- int on leveset3d  aij = "<< pi.a* ccc * w_i*w_j <<" " << ccc << " " << w_i*w_j <<endl;
-			    *pa += coef * ccc * w_i*w_j;
-			}
-                    }
-                }
-               if(verbosity>999) cout << " ++\n";
-            }
-
-            if(verbosity>999) cout << " @@ "<< asum << endl;;
-
-        }
-        
-    }// end int level set ...
-    else // int on edge ie
-     for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-      {
-        pa =a;
-	GQuadraturePoint<R2> pi( FIb[npi]);
-	R3 NN= T.N(ie);
-	  double mes=NN.norme();
-	  NN/=mes;
-	  double coef = 0.5*mes*pi.a; // correction 0.5 050109 FH
-	  R3 Pt(T.PBord(ie,pi));
-	  Ku.BF(Dop,Pt,fu);
-	  if (!same) Kv.BF(Dop,Pt,fv);      
-          MeshPointStack(stack)->set(T(Pt),Pt,Ku,label,NN,ie);
-         if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-        
-        
-	  for ( i=0;  i<n;   i++ )  
-	    { 
-		RNM_ wi(fv(i,'.','.'));       
-		for ( j=0;  j<m;   j++,pa++ ) 
-		  { 
-		      RNM_ wj(fu(j,'.','.'));
-		      int il=0;
-		      for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-			{       
-			    BilinearOperator::K ll(*l);
-			    pair<int,int> jj(ll.first.first),ii(ll.first.second);
-			    
-			    double w_i =  wi(ii.first,ii.second); 
-			    double w_j =  wj(jj.first,jj.second);
-			    
-			    R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-			    if ( copt && Kv.number <1)
-			      {
-				  R cc  =  GetAny<R>(ll.second.eval(stack));
-				  if ( ccc != cc) { 
-				      cerr << cc << " != " << ccc << " => ";
-				      cerr << "Sorry error in Optimization (b) add:  int2d(Th,optimize=0)(...)" << endl;
-				  ExecError("In Optimized version "); }
-			      }
-			    *pa += coef * ccc * w_i*w_j;
-			}
-		  }
-	    } 
-      }
-   
-    
-    if (Ku.Vh.Th(T) <1 && verbosity>100) {
-      pa=mat.a;
-      cout <<endl  << " Tet " << Ku.Vh.Th(T) << " =  " << T  << " " << nx << endl;
-      for (int i=0;i<n;i++)
-	{
-	  cout << setw(2) << i << setw(4) << mat.ni[i] << " :";
-	  for (int j=0;j<m;j++)
-	    cout << setw(5)  << (*pa++) << " ";
-	  cout << endl;
-	} } 
-    
-
-  } 
-  // xxxxxxxxxxxxxxxxx  modif a faire 
-  template<class R> 
-  void  Element_Op(MatriceElementairePleine<R,FESpace> & mat,const FElement & Ku,const FElement & Kv,double * p,int ie,int label,void *vstack,R2 *B)
-  {
-      Stack stack=pvoid2Stack(vstack);
-    typedef  FElement::Element Element;
-    MeshPoint mp= *MeshPointStack(stack);
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-
-  bool same = &Ku == & Kv;
-  const Element & T  = Ku.T;
-  throwassert(&T == &Kv.T);  
-  const QuadratureFormular & FI = mat.FIT;
-  const QuadratureFormular1d & FIb = mat.FIE;
-  long npi;
-  R *a=mat.a;
-  R *pa=a;
-  long i,j;
-  long n= mat.n,m=mat.m,nx=n*m;
-  long N= Kv.N;
-  long M= Ku.N;
-  
-  
-  
-  
-  
-  const Opera &Op(*mat.bilinearform);
-  bool classoptm = copt && Op.optiexpK;
-  bool oldopt=1;  // juin 2007 FH ???? a voir 
-  int  iloop=0;
-  KN<bool> unvarexp(classoptm ? Op.optiexpK->sizevar() : 1);
-  if (Ku.number<1 && verbosity/100 && verbosity % 10 == 2) 
-     cout << "Element_Op P: copt = " << copt << " " << classoptm << endl;
-    assert(Op.MaxOp() <last_operatortype);
-  
-    
-  KN<bool> Dop(last_operatortype);
-  Op.DiffOp(Dop);  
-  int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
- //assert(lastop<=3);
-  RNMK_ fv(p,n,N,lastop); //  the value for basic fonction
-  RNMK_ fu(p+ (same ?0:n*N*lastop) ,m,M,lastop); //  the value for basic fonction
-
-  for (i=0;i< nx;i++) 
-    *pa++ = 0.; 
-  if (ie<0 )//&& B==0)
-    for (npi=0;npi<FI.n;npi++) // loop on the integration point
-      {
-        QuadraturePoint pi(FI[npi]);
-          R mes = B ? B->x : T.area;
-        R coef = mes *pi.a;
-        R2 Pt(pi);
-        pa =a;
-        Ku.BF(Dop,Pt,fu);
-	MeshPointStack(stack)->set(T(Pt),Pt,Kv);
-        if (classoptm) {
-	    if( oldopt) (*Op.optiexpK)(stack); // call old optim version 
-	    else Op.optiexpK->eval(stack,iloop++,unvarexp); // new optim version 
-	}
-        if (!same) Kv.BF(Dop,Pt,fv);      
-	  int il=0;
-	  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	    {  // attention la fonction test donne la ligne 
-	      //  et la fonction test est en second      
-	      BilinearOperator::K ll(*l);
-	      //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-	      long jcomp= ll.first.first.first,jop=ll.first.first.second;
-	      long icomp= ll.first.second.first,iop=ll.first.second.second;
-	      
-	      R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-	      if ( copt && Kv.number <1)
-		{
-		  R cc  =  GetAny<R>(ll.second.eval(stack));
-		  //cout << *(copt[il]) << " == " <<  cc << endl;
-		  if ( ccc != cc) { 
-		    cerr << cc << " != " << ccc << " => ";
-		    cerr << "Sorry error in Optimization (a) add:  int2d(Th,optimize=0)(...)" << endl;
-		    ExecError("In Optimized version "); }
-		}
-	      int fi=Kv.dfcbegin(icomp);
-	      int li=Kv.dfcend(icomp);
-	      int fj=Ku.dfcbegin(jcomp);
-	      int lj=Ku.dfcend(jcomp);
-	      fi=0,fj=0;
-	      li=n,lj=m;
-	      ccc *= coef;
-	      
-	      // attention la fonction test donne la ligne 
-	      //  et la fonction test est en second      
-	      for ( i=fi;  i<li;   i++ )  
-		{ 
-		  for ( j=fj;  j<lj;   j++ ) 
-		    { 		      
-		      R w_i =  fv(i,icomp,iop); 
-		      R w_j =  fu(j,jcomp,jop);		      
-		      mat(i,j) += ccc * w_i*w_j;
-		    }
-		}
-	    }
-      }
-  else if(B)
-  {  // int on isovalue ...
-      R2 PA(B[0]),PB(B[1]);
-      R2 A=T(PA),B=T(PB);
-      R2 E(A,B);
-      double le = sqrt((E,E));
-    //  cout << " xxxx "<< le << " "<< A << " " << B << endl;
-      if(le > 1e-15) // bofbof ????
-      for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-      {
-          pa =a;
-          QuadratureFormular1dPoint pi( FIb[npi]);
-          double coef = le*pi.a;
-          double sa=pi.x,sb=1-sa;
-          R2 Pt(PA*sa+PB*sb ); //
-          Ku.BF(Dop,Pt,fu);
-          if (!same) Kv.BF(Dop,Pt,fv);
-          // int label=-999999; // a passer en argument
-          MeshPointStack(stack)->set(T(Pt),Pt,Kv,-1,R2(E.y,-E.x)/le,-1);
-          if (classoptm) (*Op.optiexpK)(stack); // call optim version
-          int il=0;
-          for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	  {  // attention la fonction test donne la ligne
-              //  et la fonction test est en second
-              BilinearOperator::K ll(*l);
-              //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-              long jcomp= ll.first.first.first,jop=ll.first.first.second;
-              long icomp= ll.first.second.first,iop=ll.first.second.second;
-              
-              
-              R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-              if ( copt && Kv.number <1)
-	      {
-                  R cc  =  GetAny<R>(ll.second.eval(stack));
-                  //cout << *(copt[il]) << " == " <<  cc << endl;
-                  if ( ccc != cc) {
-                      cerr << cc << " != " << ccc << " => ";
-                      cerr << "Sorry error in Optimization (a) add:  int2d(Th,optimize=0)(...)" << endl;
-                      ExecError("In Optimized version "); }
-	      }
-              int fi=Kv.dfcbegin(icomp);
-              int li=Kv.dfcend(icomp);
-              int fj=Ku.dfcbegin(jcomp);
-              int lj=Ku.dfcend(jcomp);
-              ccc *= coef;
-              
-              // attention la fonction test donne la ligne
-              //  et la fonction test est en second      
-              
-              for ( i=fi;  i<li;   i++ )  
-	      { 
-		  for ( j=fj;  j<lj;   j++ ) 
-                  { 		      
-		      R w_i =  fv(i,icomp,iop); 
-		      R w_j =  fu(j,jcomp,jop);		      
-		      mat(i,j) += ccc * w_i*w_j;
-                  }
-	      }
-	  }
-      }
-  }
-  else // int on edge ie
-    for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-      {
-        pa =a;
-        QuadratureFormular1dPoint pi( FIb[npi]);
-        R2 E=T.Edge(ie);
-        double le = sqrt((E,E));
-        double coef = le*pi.a;
-        double sa=pi.x,sb=1-sa;
-        R2 PA(TriangleHat[VerticesOfTriangularEdge[ie][0]]),
-          PB(TriangleHat[VerticesOfTriangularEdge[ie][1]]);
-        R2 Pt(PA*sa+PB*sb ); //  
-        Ku.BF(Dop,Pt,fu);
-        if (!same) Kv.BF(Dop,Pt,fv);      
-        // int label=-999999; // a passer en argument 
-        MeshPointStack(stack)->set(T(Pt),Pt,Kv,label,R2(E.y,-E.x)/le,ie);
-        if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-	int il=0;
-	for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	  {  // attention la fonction test donne la ligne 
-	    //  et la fonction test est en second      
-	    BilinearOperator::K ll(*l);
-	    //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-	    long jcomp= ll.first.first.first,jop=ll.first.first.second;
-	    long icomp= ll.first.second.first,iop=ll.first.second.second;
-
-	    
-	    R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-	    if ( copt && Kv.number <1)
-	      {
-		R cc  =  GetAny<R>(ll.second.eval(stack));
-		//cout << *(copt[il]) << " == " <<  cc << endl;
-		if ( ccc != cc) { 
-		  cerr << cc << " != " << ccc << " => ";
-		  cerr << "Sorry error in Optimization (a) add:  int2d(Th,optimize=0)(...)" << endl;
-		  ExecError("In Optimized version "); }
-	      }
-	    int fi=Kv.dfcbegin(icomp);
-	    int li=Kv.dfcend(icomp);
-	    int fj=Ku.dfcbegin(jcomp);
-	    int lj=Ku.dfcend(jcomp);
-	    ccc *= coef;
-	    
-	    // attention la fonction test donne la ligne 
-	    //  et la fonction test est en second      
-	    
-	    for ( i=fi;  i<li;   i++ )  
-	      { 
-		  for ( j=fj;  j<lj;   j++ ) 
-		    { 		      
-		      R w_i =  fv(i,icomp,iop); 
-		      R w_j =  fu(j,jcomp,jop);		      
-		      mat(i,j) += ccc * w_i*w_j;
-		    }
-	      }
-	  }
-	  
-	/*        
-        for ( i=0;  i<n;   i++ )  
-         // if (onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // juste the df on edge bofbof generaly wrong FH dec 2003
-            { 
-              RNM_ wi(fv(i,'.','.'));       
-              for ( j=0;  j<m;   j++,pa++ ) 
-                { 
-                  RNM_ wj(fu(j,'.','.'));
-                  int il=0;
-                  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                   // if (onWhatIsEdge[ie][Kv.DFOnWhat(j)]) // juste the df on edge bofbof generaly wrong FH dec 2003
-                      {       
-                        BilinearOperator::K ll(*l);
-                        pair<int,int> jj(ll.first.first),ii(ll.first.second);
-                        
-                        double w_i =  wi(ii.first,ii.second); 
-                        double w_j =  wj(jj.first,jj.second);
-                       // R ccc = GetAny<R>(ll.second.eval(stack));
-                       
-                    R ccc = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-                if ( copt && Kv.number <1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                     if ( ccc != cc) { 
-                        cerr << cc << " != " << ccc << " => ";
-                       cerr << "Sorry error in Optimization (b) add:  int2d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                         *pa += coef * ccc * w_i*w_j;
-                      }
-                }
-            } 
-         // else pa += m;  FH dec 2003
-	 */
-      }
-  
-  
-  /*  pa=a;
-      if (Ku.Vh.Th(T) >=0 ) {
-      cout <<endl  << " Triangle " << Ku.Vh.Th(T) << " =  "<<  T[0] << ", " << T[1] << ", " << T[2] << " " << nx << endl;
-      for (int i=0;i<n;i++)
-      {
-      cout << setw(2) << i << setw(4) << mat.ni[i] << " :";
-      for (int j=0;j<m;j++)
-      cout << setw(5)  << (*pa++) << " ";
-      cout << endl;
-      } } 
-  */ 
-  *MeshPointStack(stack) = mp;
-  }  
-  
-  
-  
- template<class R>
- void  Element_Op(MatriceElementaireSymetrique<R,FESpace3> & mat,const FElement3 & Ku,double * p,int ie,int label, void * vstack,R3 *B)
-  {
-  //    ffassert(B==0);
-      Stack stack=pvoid2Stack(vstack);
-   typedef FESpace3 FESpace;
-   typedef typename FESpace3::Mesh Mesh;
-   typedef Mesh *pmesh ;
-   typedef typename Mesh::Element Element;
-    MeshPoint mp= *MeshPointStack(stack);
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    const Element & T  = Ku.T;
-
-    const GQuadratureFormular<R3> & FI = mat.FIT;
-    const GQuadratureFormular<R2> & FIb = mat.FIE;
-
-    long npi;
-    R *a=mat.a;
-    R *pa=a;
-    long i,j;
-    long n= mat.n,m=mat.m,nx=n*(m+1)/2;
-    long N= Ku.N;
-    
-    assert(mat.bilinearform);
-    
-    const Opera &Op(*mat.bilinearform);
-    bool classoptm = copt && Op.optiexpK;
-    // assert(  (copt !=0) ||  (Op.where_in_stack_opt.size() !=0) );
-    int lastop;
-    What_d Dop = Op.DiffOp(lastop);
-
-    if (Ku.number<1  && verbosity/100 && verbosity % 10 == 2 ) 
-      cout << "Element_Op S 3d: copt = " << copt << " " << classoptm << " lastop = "<< lastop << " Dop " << Dop << endl;
-    assert(Op.MaxOp() <last_operatortype);
-    
-    RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-    
-    
-    pa =a;
-    for (i=0;i< nx;i++) 
-      *pa++ = 0.; 
-    
-    if (ie<0)   
-      for (npi=0;npi<FI.n;npi++) // loop on the integration point
-        {
-          GQuadraturePoint<R3> pi(FI[npi]);
-          double coef = T.mesure()*pi.a;
-	  //R3 Pt(pi);
-          pa =a;
-          Ku.BF(Dop,pi,fu);
-          MeshPointStack(stack)->set(T(pi),pi,Ku);
-          if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-	  int il=0;
-	  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	    {  // attention la fonction test donne la ligne 
-	      //  et la fonction test est en second      
-	      BilinearOperator::K ll(*l);
-	      //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-	      long jcomp= ll.first.first.first,jop=ll.first.first.second;
-	      long icomp= ll.first.second.first,iop=ll.first.second.second;
-
-              
-	      R c = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
-	      if ( copt && Ku.number <1)
-		{
-		  R cc  =  GetAny<R>(ll.second.eval(stack));
-		  // cout << *(copt[il]) << " == " <<  cc << endl;
-		  if ( c != cc) { 
-		    cerr << c << " != " << cc << " => ";
-			    cerr << "Sorry error in Optimization (c) add:  int2d(Th,optimize=0)(...)" << endl;
-			    ExecError("In Optimized version "); }
-		}
-	      c *= coef ;
-	      long fi=Ku.dfcbegin(icomp);
-	      long li=Ku.dfcend(icomp);
-	      long fj=Ku.dfcbegin(jcomp);
-	      long lj=Ku.dfcend(jcomp);
-
-	      for ( i=fi;  i<li;   i++ )  
-		for ( j=fj;  j<min(lj,i+1);  j++,pa++ ) // 
-		  {
-		    R w_i =  fu(i,icomp,iop); 
-		    R w_j =  fu(j,jcomp,jop);		      
-		    
-		    mat(i,j)  +=  c * w_i*w_j;
-
-		    /*
-		      if (Ku.Vh.Th(T) < 1 && npi < 1 && i < 1 && j < 1 ) 
-		      cout <<" + " << c << " (" <<coef << " " << w_i << " " << w_j << " " << jj.first << " " << jj.second << ") " ;
-		    */
-		  }
-              
-            }
-          
-        } 
-    else if(B)
-        {  // int on leveset
-            int np = ie-10; //= (B[0].x == B[3].x ) && (B[0].y == B[3].y ) && (B[0].z == B[3].z ) ? 3 : 4;
-            if(verbosity>999) cout << "    Ass mat pleine /"<< np << endl;
-            assert( np==3 || np==4);
-            // XXXXXXX
-            double epsmes3=T.mesure()*T.mesure()*1e-18;
-            R3 PP[4];
-            double l[3];
-            for(int i=0; i< np; ++i)
-                PP[i]= T(B[i]);
-            
-            for( int i =0; i+1 < np; i+=2)
-            { // 0,1,, a and 2,3,0.
-                int i0=i,i1=i+1,i2=(i+2)%np;
-                R3 NN= R3(PP[i0],PP[i1])^R3(PP[i0],PP[i2]);
-                double mes2 = (NN,NN);
-                double mes = sqrt(mes2);
-                
-                if(mes2*mes <epsmes3) continue; //  too small
-                NN /= mes;
-                mes *= 0.5;
-                if(verbosity>999)
-                    cout << " --int on leveset3d " << np << " " << mes << " " << i0<<i1<<i2 <<endl;
-                double asum=0;
-                for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-                {
-                    GQuadraturePoint<R2>  pi( FIb[npi]);
-                    // cout << " %% " << npi << " " << pi.a << " " << pi.x << " " << pi.y << endl;
-                    asum+= pi.a;
-                    pi.toBary(l);
-                    R3 Pt( l[0]*B[i0]+l[1]*B[i1]+l[2]*B[i2]); //
-                    double coef = mes*pi.a; // correction 0.5 050109 FH
-                    Ku.BF(Dop,Pt,fu);
-                     MeshPointStack(stack)->set(T(Pt),Pt,Ku,label,NN,ie);
-                    if (classoptm) (*Op.optiexpK)(stack); // call optim version
-                    
-                    pa=a;
-                    int il=0;
-                    for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                    {  // attention la fonction test donne la ligne
-                        //  et la fonction test est en second
-                        BilinearOperator::K ll(*l);
-                        //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-                        long jcomp= ll.first.first.first,jop=ll.first.first.second;
-                        long icomp= ll.first.second.first,iop=ll.first.second.second;
-                        
-                        R c = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
-                        if ( copt && Ku.number <1)
-                        {
-                            R cc  =  GetAny<R>(ll.second.eval(stack));
-                            // cout << *(copt[il]) << " == " <<  cc << endl;
-                            if ( c != cc) {
-                                cerr << c << " != " << cc << " => ";
-                                cerr << "Sorry error in Optimization (c) add:  int2d(Th,optimize=0)(...)" << endl;
-                                ExecError("In Optimized version "); }
-                        }
-                        c *= coef ;
-                        long fi=Ku.dfcbegin(icomp);
-                        long li=Ku.dfcend(icomp);
-                        long  fj=Ku.dfcbegin(jcomp);
-                        long  lj=Ku.dfcend(jcomp);
-                        
-                        for (long i=fi;  i<li;   i++ )
-                            for (long j=fj;  j<min(lj,i+1);  j++,pa++ ) //
-                            {
-                                R w_i =  fu(i,icomp,iop); 
-                                R w_j =  fu(j,jcomp,jop);		      
-                                
-                                mat(i,j)  +=  c * w_i*w_j;
-                                
-                                /*
-                                 if (Ku.Vh.Th(T) < 1 && npi < 1 && i < 1 && j < 1 ) 
-                                 cout <<" + " << c << " (" <<coef << " " << w_i << " " << w_j << " " << jj.first << " " << jj.second << ") " ;
-                                 */
-                            }
-                        
-                    }
-                    
-                    
-                    
-                }
-                
-                
-            }
-            
-        }// end int level set ...
-      else
-        // int on edge ie
-      for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-        {
-          
-          pa =a;
-          GQuadraturePoint<R2> pi( FIb[npi]);
-	  R3 NN= T.N(ie);
-	  double mes=NN.norme();
-	  NN/=mes;
-	  mes *=0.5;	
-	  double coef = mes*pi.a; // correction 0.5 050109 FH
-	  R3 Pt(T.PBord(ie,pi));
-          Ku.BF(Dop,Pt,fu);
-          // int label=-999999; // a passer en argument 
-          MeshPointStack(stack)->set(T(Pt),Pt,Ku,label,NN,ie);
-          if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-	  int il=0;
-	  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	    {  // attention la fonction test donne la ligne 
-	      //  et la fonction test est en second      
-	      BilinearOperator::K ll(*l);
-	      //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-	      long jcomp= ll.first.first.first,jop=ll.first.first.second;
-	      long icomp= ll.first.second.first,iop=ll.first.second.second;
-              
-	      R c = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
-	      if ( copt && Ku.number <1)
-		{
-		  R cc  =  GetAny<R>(ll.second.eval(stack));
-		  // cout << *(copt[il]) << " == " <<  cc << endl;
-		  if ( c != cc) { 
-		    cerr << c << " != " << cc << " => ";
-			    cerr << "Sorry error in Optimization (c) add:  int2d(Th,optimize=0)(...)" << endl;
-			    ExecError("In Optimized version "); }
-		}
-	      c *= coef ;
-	      long fi=Ku.dfcbegin(icomp);
-	      long li=Ku.dfcend(icomp);
-	      long  fj=Ku.dfcbegin(jcomp);
-	      long  lj=Ku.dfcend(jcomp);
-
-	      for (long i=fi;  i<li;   i++ )
-		for (long j=fj;  j<min(lj,i+1);  j++,pa++ ) //
-		  {
-		    R w_i =  fu(i,icomp,iop); 
-		    R w_j =  fu(j,jcomp,jop);		      
-		    
-		    mat(i,j)  +=  c * w_i*w_j;
-		    
-		    /*
-		      if (Ku.Vh.Th(T) < 1 && npi < 1 && i < 1 && j < 1 ) 
-		      cout <<" + " << c << " (" <<coef << " " << w_i << " " << w_j << " " << jj.first << " " << jj.second << ") " ;
-		    */
-		  }
-              
-            }
-          
-          
-        }
-    
-    
-    pa=a;
-    if (Ku.Vh.Th(T) <0 & verbosity>100) {
-      cout <<endl  << " Tet " << Ku.Vh.Th(T) << " =  "<<  T << "  nx= " << nx << endl;
-      for (int i=0;i<n;i++)
-	{
-	  cout << setw(2) << i << setw(4) << mat.ni[i] << " :";
-	  for (int j=0;j<=i;j++)
-	    cout << setw(5)  << (*pa++) << " ";
-	  cout << endl;
-	} } 
-    /*
-    pa=a;
-    for (int i=0;i<n;i++)
-      cout << mat.ni[i] << " " ;
-    for (int i=0;i<n;i++)
-      for (int j=0;j<n;j++,pa++)
-	if ( mat.ni[i]==150 && mat.nj[j] == 150)
-	  cout << "a_150,150 = "<< *pa ;
-    cout << endl; 
-    */
-    
-    *MeshPointStack(stack) = mp;
-
-  }
-
-  // xxxxxxxxxxxxxxxxx  modif a faire   
- template<class R>
- void  Element_Op(MatriceElementaireSymetrique<R,FESpace> & mat,const FElement & Ku,double * p,int ie,int label, void * vstack,R2*B)
-  {
-    Stack stack=pvoid2Stack(vstack);
-    MeshPoint mp= *MeshPointStack(stack);
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    const Triangle & T  = Ku.T;
-    //  const QuadratureFormular & FI = QuadratureFormular_T_2;
-    //  const QuadratureFormular1d & FIb = QF_GaussLegendre2;
-    const QuadratureFormular & FI = mat.FIT;
-    const QuadratureFormular1d & FIb = mat.FIE;
-    long npi;
-    R *a=mat.a;
-    R *pa=a;
-    long i,j;
-    long n= mat.n,m=mat.m,nx=n*(m+1)/2;
-    long N= Ku.N;
-    //long M=N;
-    // bool show = Ku.Vh.Th(T)==0;
-    //    char * xxx[] ={" u"," v"," p"," q"," r"};
-    //char * xxxx[] ={" u'"," v'"," p'"," q'"," r'"};
-    //char * yyy[] ={" ","_x ","_y "};
-    
-    
-    throwassert(mat.bilinearform);
-    
-    const Opera &Op(*mat.bilinearform);
-    bool classoptm = copt && Op.optiexpK;
-   // assert(  (copt !=0) ||  (Op.where_in_stack_opt.size() !=0) );
-  if (Ku.number<1  && verbosity/100 && verbosity % 10 == 2 ) 
-     cout << "Element_Op S: copt = " << copt << " " << classoptm << endl;
-    assert(Op.MaxOp() <last_operatortype);
-
-
-    KN<bool> Dop(last_operatortype);
-    Op.DiffOp(Dop);  
-    int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-   // assert(lastop<=3);
-
-    RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-    
-    pa =a;
-    for (i=0;i< nx;i++) 
-      *pa++ = 0.; 
-    
-    if (ie<0)   
-      for (npi=0;npi<FI.n;npi++) // loop on the integration point
-        {
-          QuadraturePoint pi(FI[npi]);
-          double mes= B ? B->x :T.area;
-          double coef = mes*pi.a;
-          R2 Pt(pi);
-          pa =a;
-          Ku.BF(Dop,Pt,fu);
-          MeshPointStack(stack)->set(T(pi),pi,Ku);
-          if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-	  int il=0;
-	  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	    {  // attention la fonction test donne la ligne 
-	      //  et la fonction test est en second      
-	      BilinearOperator::K ll(*l);
-	      //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-	      long jcomp= ll.first.first.first,jop=ll.first.first.second;
-	      long icomp= ll.first.second.first,iop=ll.first.second.second;
-              
-	      R c = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
-	      if ( copt && Ku.number <1)
-		{
-		  R cc  =  GetAny<R>(ll.second.eval(stack));
-		  // cout << *(copt[il]) << " == " <<  cc << endl;
-		  if ( c != cc) { 
-		    cerr << c << " != " << cc << " => ";
-			    cerr << "Sorry error in Optimization (c) add:  int2d(Th,optimize=0)(...)" << endl;
-			    ExecError("In Optimized version "); }
-		}
-	      c *= coef ;
-	      long fi=Ku.dfcbegin(icomp);
-	      long li=Ku.dfcend(icomp);
-	      long fj=Ku.dfcbegin(jcomp);
-	      long lj=Ku.dfcend(jcomp);
-	      if (verbosity>10 && Ku.Vh.Th(T) < 1 && npi < 1)
-		cout << " ic "<< icomp << fi<< " "<< lj << " "<< " c "<< jcomp << " " <<fj << " "<< lj << endl; 
-	      for ( i=fi;  i<li;   i++ )  
-		for ( j=fj;  j<min(lj,i+1);  j++ ) // 
-		  {
-		    R w_i =  fu(i,icomp,iop); 
-		    R w_j =  fu(j,jcomp,jop);		      
-		    
-		    mat(i,j)  +=  c * w_i*w_j;
-
-		  }
-              
-            }
-          
-	  /*
-          for ( i=0;  i<n;   i++ )  
-            { 
-              RNM_ wi(fu(i,'.','.'));
-              //    if (Ku.Vh.Th(T) < 1) cout << i <<" " <<Pt<< "wi =" << wi ;
-              for ( j=0;  j<=i;  j++,pa++ ) // 
-                {
-                  
-                  RNM_ wj(fu(j,'.','.'));
-                  //   if (Ku.Vh.Th(T) < 1) cout << j <<" " <<Pt<< "wj =" << wj ;
-                  int il=0;
-                  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                    {       
-                      const  BilinearOperator::K & ll(*l);
-                      pair<int,int> ii(ll.first.first),jj(ll.first.second);
-                      double w_i =  wi(ii.first,ii.second);
-                      double w_j =  wj(jj.first,jj.second);
-		      
-                      R c = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
-                if ( copt && Ku.number <1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                    // cout << *(copt[il]) << " == " <<  cc << endl;
-                     if ( c != cc) { 
-                       cerr << c << " != " << cc << " => ";
-                       cerr << "Sorry error in Optimization (c) add:  int2d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                      
-                      *pa += coef * c * w_i*w_j;
-		      }
-		      }
-		      
-		      }*/
-          
-        } 
-    else if(B)
-    {
-        R2 PA(B[0]),PB(B[0]);
-        R2 A=T(PA),B=T(PB);
-        R2 E(A,B);
-        double le = sqrt((E,E));
-         if(le > 1e-15)
-        for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-        {
-            
-            pa =a;
-            QuadratureFormular1dPoint pi( FIb[npi]);
-           
-            double coef = le*pi.a;
-            double sa=pi.x,sb=1-sa;
-            R2 Pt(PA*sa+PB*sb ); //
-            Ku.BF(Dop,Pt,fu);
-            // int label=-999999; // a passer en argument
-            MeshPointStack(stack)->set(T(Pt),Pt,Ku,0,R2(E.y,-E.x)/le,0);
-            if (classoptm) (*Op.optiexpK)(stack); // call optim version
-            
-            int il=0;
-            for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	    {  // attention la fonction test donne la ligne
-                //  et la fonction test est en second
-                BilinearOperator::K ll(*l);
-                //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-                long jcomp= ll.first.first.first,jop=ll.first.first.second;
-                long icomp= ll.first.second.first,iop=ll.first.second.second;
-                
-                R c = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
-                if ( copt && Ku.number <1)
-		{
-                    R cc  =  GetAny<R>(ll.second.eval(stack));
-                    // cout << *(copt[il]) << " == " <<  cc << endl;
-                    if ( c != cc) {
-                        cerr << c << " != " << cc << " => ";
-                        cerr << "Sorry error in Optimization (c) add:  int2d(Th,optimize=0)(...)" << endl;
-                        ExecError("In Optimized version "); }
-		}
-                c *= coef ;
-                long fi=Ku.dfcbegin(icomp);
-                long li=Ku.dfcend(icomp);
-                long fj=Ku.dfcbegin(jcomp);
-                long lj=Ku.dfcend(jcomp);
-                
-                for ( i=fi;  i<li;   i++ )
-                    for ( j=fj;  j<min(lj,i+1);  j++,pa++ ) //
-                    {
-                        R w_i =  fu(i,icomp,iop);
-                        R w_j =  fu(j,jcomp,jop);		      
-                        
-                        mat(i,j)  +=  c * w_i*w_j;
-                        /*
-                         if (Ku.Vh.Th(T) < 1 && npi < 1 && i < 1 && j < 1 ) 
-                         cout <<" + " << c << " (" <<coef << " " << w_i << " " << w_j << " " << jj.first << " " << jj.second << ") " ;
-                         */
-                    }
-                
-            }
-        }
-    }
-    else    // int on edge ie
-      for (npi=0;npi<FIb.n;npi++) // loop on the integration point
-        {
-          
-          pa =a;
-          QuadratureFormular1dPoint pi( FIb[npi]);
-          R2 E=T.Edge(ie);
-          double le = sqrt((E,E));
-          double coef = le*pi.a;
-          double sa=pi.x,sb=1-sa;
-          R2 PA(TriangleHat[VerticesOfTriangularEdge[ie][0]]),
-            PB(TriangleHat[VerticesOfTriangularEdge[ie][1]]);
-          R2 Pt(PA*sa+PB*sb ); //  
-          Ku.BF(Dop,Pt,fu);
-          // int label=-999999; // a passer en argument 
-          MeshPointStack(stack)->set(T(Pt),Pt,Ku,label,R2(E.y,-E.x)/le,ie);
-          if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-
-	  int il=0;
-	  for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-	    {  // attention la fonction test donne la ligne 
-	      //  et la fonction test est en second      
-	      BilinearOperator::K ll(*l);
-	      //	      pair<int,int> jj(ll.first.first),ii(ll.first.second);
-	      long jcomp= ll.first.first.first,jop=ll.first.first.second;
-	      long icomp= ll.first.second.first,iop=ll.first.second.second;
-              
-	      R c = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
-	      if ( copt && Ku.number <1)
-		{
-		  R cc  =  GetAny<R>(ll.second.eval(stack));
-		  // cout << *(copt[il]) << " == " <<  cc << endl;
-		  if ( c != cc) { 
-		    cerr << c << " != " << cc << " => ";
-			    cerr << "Sorry error in Optimization (c) add:  int2d(Th,optimize=0)(...)" << endl;
-			    ExecError("In Optimized version "); }
-		}
-	      c *= coef ;
-	      long fi=Ku.dfcbegin(icomp);
-	      long li=Ku.dfcend(icomp);
-	      long fj=Ku.dfcbegin(jcomp);
-	      long lj=Ku.dfcend(jcomp);
-
-	      for ( i=fi;  i<li;   i++ )  
-		for ( j=fj;  j<min(lj,i+1);  j++,pa++ ) // 
-		  {
-		    R w_i =  fu(i,icomp,iop); 
-		    R w_j =  fu(j,jcomp,jop);		      
-		    
-		    mat(i,j)  +=  c * w_i*w_j;
-		    /*
-		      if (Ku.Vh.Th(T) < 1 && npi < 1 && i < 1 && j < 1 ) 
-		      cout <<" + " << c << " (" <<coef << " " << w_i << " " << w_j << " " << jj.first << " " << jj.second << ") " ;
-		    */
-		  }
-              
-            }
-                    
-          /*
-          for ( i=0;  i<n;   i++ )  
-           // if ( onWhatIsEdge[ie][Ku.DFOnWhat(i)]) // generaly wrong FH dec 2003
-              { 
-                RNM_ wi(fu(i,'.','.'));     
-                for ( j=0;  j<=i;   j++,pa++ ) 
-                  { 
-                    RNM_ wj(fu(j,'.','.'));
-                    int il=0;
-                    for (BilinearOperator::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                     // if (onWhatIsEdge[ie][Ku.DFOnWhat(j)]) // generaly wrong FH dec 2003
-                        {       
-                          BilinearOperator::K ll(*l);
-                          pair<int,int> ii(ll.first.first),jj(ll.first.second);
-                          double w_i =  wi(ii.first,ii.second); 
-                          double w_j =  wj(jj.first,jj.second);
-                         // R ccc = GetAny<R>(ll.second.eval(stack));
-                      R ccc = copt ? *(copt[il]): GetAny<R>(ll.second.eval(stack));
-                if ( copt && Ku.number <1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                     if ( ccc != cc) { 
-                       cerr << ccc << " != " << cc << ", xy = "<< T(Pt) << " => ";
-                       cerr << "Sorry error in Optimization (d)  add:  int2d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                          
-                          *pa += coef * ccc * w_i*w_j;
-                        }
-                  }
-              } //else pa+= i+1;
-	  */
-        }
-    
-    /*  
-    pa=a;
-    if (Ku.Vh.Th(T) <=0 ) {
-      cout <<endl  << " Triangle " << Ku.Vh.Th(T) << " =  "<<  T[0] << ", " << T[1] << ", " << T[2] << " " << nx << endl;
-      for (int i=0;i<n;i++)
-	{
-	  cout << setw(2) << i << setw(4) << mat.ni[i] << " :";
-	  for (int j=0;j<=i;j++)
-	    cout << setw(5)  << (*pa++) << " ";
-	  cout << endl;
-	} } 
-    pa=a;
-        for (int i=0;i<n;i++)
-      cout << mat.ni[i] << " " ;
-    for (int i=0;i<n;i++)
-      for (int j=0;j<n;j++,pa++)
-         if ( mat.ni[i]==150 && mat.nj[j] == 150)
-         cout << "a_150,150 = "<< *pa ;
-         cout << endl; 
-    */
-    
-    *MeshPointStack(stack) = mp;
-    
-  }    
-  
-  
-  
-  // #pragma optimization_level 0
- template<class R>
-  void  Element_rhs(const FElement & Kv,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                    const QuadratureFormular & FI = QuadratureFormular_T_2)
-  {
-    Stack stack=pvoid2Stack(vstack);
-    MeshPoint mp=*MeshPointStack(stack) ;
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    const Triangle & T  = Kv.T;
-    //  const QuadratureFormular & FI = QuadratureFormular_T_2;
-    //  const QuadratureFormular & FI = QuadratureFormular_T_2;
-    long npi;
-    long i,n=Kv.NbDoF(),N=Kv.N;
-    
-    //  bool show = Kv.Vh.Th(T)==0;
-  //  char * xxx[] ={" u"," v,"," p"," q"," r"};
-   // char * xxxx[] ={" u'"," v',"," p'"," q'"," r'"};
-   // char * yyy[] ={" ","_x ","_y "};
-    
-    bool classoptm = copt && Op.optiexpK;
-   // assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-    if (Kv.number<1  && verbosity/100 && verbosity % 10 == 2) 
-     cout << "Element_rhs S0: copt = " << copt << " " << classoptm << endl;
- 
-
-    KN<bool> Dop(last_operatortype);
-    Op.DiffOp(Dop);  
-    int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-    assert(Op.MaxOp() <last_operatortype);
-    
-  //  assert(lastop<=3);
-
-    
-    RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-    
-    for (npi=0;npi<FI.n;npi++) // loop on the integration point
-      {
-        QuadraturePoint pi(FI[npi]);
-        double coef = T.area*pi.a;
-        R2 Pt(pi);
-        Kv.BF(Dop,Pt,fu);
-        MeshPointStack(stack)->set(T(Pt),Pt,Kv);
-        if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-        for ( i=0;  i<n;   i++ )  
-          { 
-            RNM_ wi(fu(i,'.','.'));
-            int il=0;
-            for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-              {       
-                LOperaD::K ll(*l);
-                pair<int,int> ii(ll.first);
-                double w_i =  wi(ii.first,ii.second);
-                //copt=0;
-                R c = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack)); //GetAny<double>(ll.second.eval(stack));
-                if ( copt && Kv.number <1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                     if ( c != cc) { 
-                       cerr << c << " != " << cc << " => ";
-                       cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                //if (Kv.number<5) cout << il<< " " << i << "  c== " <<  c << endl;
-                R a = coef * c * w_i;
-                B[Kv(i)] += a;
-              }
-          }
-        
-        
-      }  
-    *MeshPointStack(stack) = mp;
-    
-    
-  }  
-
-  // 3D
- template<class R>
-  void  Element_rhs(const FElement3 & Kv,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                    const GQuadratureFormular<R3> & FI = QuadratureFormular_Tet_2)
-  {
-    Stack stack=pvoid2Stack(vstack);
-    typedef  FElement3::Element Element;
-    MeshPoint mp=*MeshPointStack(stack) ;
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    const Element & T  = Kv.T;
-    //  const QuadratureFormular & FI = QuadratureFormular_T_2;
-    //  const QuadratureFormular & FI = QuadratureFormular_T_2;
-    long npi;
-    long i,n=Kv.NbDoF(),N=Kv.N;
-    
-     
-    bool classoptm = copt && Op.optiexpK;
-   // assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-    if (Kv.number<1  && verbosity/100 && verbosity % 10 == 2) 
-     cout << "Element_rhs S0: copt = " << copt << " " << classoptm << endl;
-
-
-    int lastop;
-    What_d Dop = Op.DiffOp(lastop);
-    assert(Op.MaxOp() <last_operatortype);
-    
-  //  assert(lastop<=3);
-
-    
-    RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-    
-    for (npi=0;npi<FI.n;npi++) // loop on the integration point
-      {
-        GQuadraturePoint<R3> pi(FI[npi]);
-        double coef = T.mesure()*pi.a;
-        R3 Pt(pi);
-        Kv.BF(Dop,Pt,fu);
-        MeshPointStack(stack)->set(T(Pt),Pt,Kv);
-        if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-        for ( i=0;  i<n;   i++ )  
-          { 
-            RNM_ wi(fu(i,'.','.'));
-            int il=0;
-            for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-              {       
-                LOperaD::K ll(*l);
-                pair<int,int> ii(ll.first);
-                double w_i =  wi(ii.first,ii.second);
-                //copt=0;
-                R c = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack)); //GetAny<double>(ll.second.eval(stack));
-                if ( copt && Kv.number <1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                     if ( c != cc) { 
-                       cerr << c << " != " << cc << " => ";
-                       cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                //if (Kv.number<5) cout << il<< " " << i << "  c== " <<  c << endl;
-                R a = coef * c * w_i;
-                B[Kv(i)] += a;
-              }
-          }
-        
-        
-      }  
-    *MeshPointStack(stack) = mp;
-    
-    
-  }  
-  // fin 3d   
-  // #pragma optimization_level 0
-  // 3d
- template<class R>
- void  Element_rhs(const  Mesh3 & ThI,const Mesh3::Element & KI,
-                    const FESpace3 & Vh,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-		   const GQuadratureFormular<R3> & FI)
- {
-     Stack stack=pvoid2Stack(vstack);
-   // AFAIRE("Element_rhs 3d diff meshes");
-     static int count=0;
-     if(count++<1)
-     {
-         cout << "Warning:  Element_rhs 3 3d diff meshes in test (FH) " << endl;
-         cout << "--------------------------------------------------- " << endl;
-     }
-     MeshPoint mp=*MeshPointStack(stack) ;
-     R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-     //    int maxd = Op.MaxOp();
-     //    assert(maxd<last_operatortype);
-     const Tet * Kp=0;
-     
-     bool classoptm = copt && Op.optiexpK;
-     // assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-     if (ThI(KI)<1 && verbosity/100 && verbosity % 10 == 2)
-         
-         cout << "Element_rhs 3d  3: copt = " << copt << " " << classoptm << endl;
-     
-     assert(Op.MaxOp() <last_operatortype);
-     //
-     int lastop=0;
-     lastop = 0;
-     What_d Dop = Op.DiffOp(lastop);
-     assert(Op.MaxOp() <last_operatortype);
-     
-     // assert(lastop<=3);
-     
-     for (long npi=0;npi<FI.n;npi++) // loop on the integration point
-     {
-         GQuadraturePoint<R3> pi(FI[npi]);
-         R3 PI(KI(pi));      
-         double coef = KI.mesure()*pi.a;
-         MeshPointStack(stack)->set(ThI,PI,pi,KI,KI.lab);
-         if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-         bool outside;
-         R3 Pt;
-         const Tet & K  = *Vh.Th.Find(PI,Pt,outside,Kp);
-         if ( ! outside) 
-         {
-             const  FElement3  Kv= Vh[K];
-             long i,n=Kv.NbDoF(),N=Kv.N;
-             RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-             Kv.BF(Dop,Pt,fu);
-             
-             for ( i=0;  i<n;   i++ )  
-             { 
-                 RNM_ wi(fu(i,'.','.'));
-                 int il=0;
-                 for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                 {       
-                     LOperaD::K ll(*l);
-                     pair<int,int> ii(ll.first);
-                     
-                     double w_i =  wi(ii.first,ii.second);
-                     
-                     R c = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));;//GetAny<double>(ll.second.eval(stack));
-                     if ( copt && ThI(KI) <1)
-                     {
-                         R cc  =  GetAny<R>(ll.second.eval(stack));
-                         if ( c != cc) { 
-                             cerr << c << " != " << cc << " => ";
-                             cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-                             ExecError("In Optimized version "); }
-                     }
-                     
-                     R a = coef * c * w_i;
-                     B[Kv(i)] += a;
-                 }
-             }
-         }
-         Kp = & K; 
-     }  
-     *MeshPointStack(stack) = mp;
-     
-    
-}
-  //
- template<class R>
-  void  Element_rhs(const  Mesh & ThI,const Triangle & KI,
-                    const FESpace & Vh,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                    const QuadratureFormular & FI = QuadratureFormular_T_2)
-  {
-   Stack stack=pvoid2Stack(vstack);
-    MeshPoint mp=*MeshPointStack(stack) ;
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-//    int maxd = Op.MaxOp();
-//    assert(maxd<last_operatortype);
-    const Triangle * Kp=0;
-
-    bool classoptm = copt && Op.optiexpK;
-   // assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-    if (ThI(KI)<1 && verbosity/100 && verbosity % 10 == 2)
-
-     cout << "Element_rhs 3: copt = " << copt << " " << classoptm << endl;
-
-    KN<bool> Dop(last_operatortype);
-    Op.DiffOp(Dop);  
-    int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-    assert(Op.MaxOp() <last_operatortype);
-
-   // assert(lastop<=3);
-      
-    for (long npi=0;npi<FI.n;npi++) // loop on the integration point
-      {
-        QuadraturePoint pi(FI[npi]);
-        R2 PI(KI(pi));      
-        double coef = KI.area*pi.a;
-        MeshPointStack(stack)->set(ThI,PI,pi,KI,KI.lab);
-        if (classoptm) (*Op.optiexpK)(stack); // call optim version 
-        bool outside;
-        R2 Pt;
-        const Triangle & K  = *Vh.Th.Find(PI,Pt,outside,Kp);
-        if ( ! outside) 
-          {
-            const  FElement  Kv= Vh[K];
-            long i,n=Kv.NbDoF(),N=Kv.N;
-            RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-            Kv.BF(Dop,Pt,fu);
-            
-            for ( i=0;  i<n;   i++ )  
-              { 
-                RNM_ wi(fu(i,'.','.'));
-                int il=0;
-                for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                  {       
-                    LOperaD::K ll(*l);
-                    pair<int,int> ii(ll.first);
-                    
-                    double w_i =  wi(ii.first,ii.second);
-                    
-                    R c = copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));;//GetAny<double>(ll.second.eval(stack));
-                if ( copt && ThI(KI) <1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                     if ( c != cc) { 
-                       cerr << c << " != " << cc << " => ";
-                       cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                    
-                    R a = coef * c * w_i;
-                    B[Kv(i)] += a;
-                  }
-              }
-          }
-        Kp = & K; 
-      }  
-    *MeshPointStack(stack) = mp;
-    
-    
-  }  
-  // 3d 
-  template<class R>
-  void  Element_rhs(const FElement3 & Kv,int ie,int label,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                    const QuadratureFormular & FI ,bool alledges=false)
-  {
-    //   AFAIRE("Element_rhs on border");
-    Stack stack=pvoid2Stack(vstack);
-    typedef  FElement3::Element Element;
-    MeshPoint mp=*MeshPointStack(stack) ;
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    const Element & T  = Kv.T;
-    long npi;
-    long i,n=Kv.NbDoF(),N=Kv.N;
-    
-    bool classoptm = copt && Op.optiexpK;
-   // assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-    if (Kv.number<1 && verbosity/100 && verbosity % 10 == 2) 
-     cout << "Element_rhs 3d S: copt = " << copt << " " << classoptm << endl;
-    int lastop;
-    What_d Dop = Op.DiffOp(lastop);
-
-    assert(Op.MaxOp() <last_operatortype);
-   // assert(lastop<=3);
-
-    RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-    
-    for (npi=0;npi<FI.n;npi++) // loop on the integration point
-      {
-         GQuadraturePoint<R2> pi( FI[npi]);
-	R3 NN=T.N(ie);
-	double le= NN.norme();
-	NN /= le;
-        double coef = le*pi.a*0.5;// correction 050109 FH
-        R3 Pt(T.PBord(ie,pi));
-      //  
-        Kv.BF(Dop,Pt,fu);
-        MeshPointStack(stack)->set(T(Pt),Pt,Kv,label,NN,ie);
-        if (classoptm) (*Op.optiexpK)(stack); // call optim version         
-        
-        for ( i=0;  i<n;   i++ )  
-         // if (alledges || onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // bofbof faux si il y a des derives ..
-            { 
-              RNM_ wi(fu(i,'.','.'));
-              int il=0;
-              for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                {       
-                  LOperaD::K ll(*l);
-                  pair<int,int> ii(ll.first);
-                  double w_i =  wi(ii.first,ii.second);
-                  R c =copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-		  // FFCS - removing what is probably a small glitch
-                if ( copt && Kv.number<1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                     if ( c != cc) { 
-			 cerr << c << " =! " << cc << endl;
-                       cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                  
-                  
-                  //= GetAny<double>(ll.second.eval(stack));
-                 
-                  B[Kv(i)] += coef * c * w_i;
-                }
-            }
-        
-        
-      }  
-    *MeshPointStack(stack) = mp;
-    
-  }
-    // 3d isoline ... levelset ...
-    template<class R>
-    void  Element_rhs(const FElement3 & Kv,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                      const QuadratureFormular & FI ,int np, R3 *Q)
-    {
-        //   AFAIRE("Element_rhs on border");
-        Stack stack=pvoid2Stack(vstack);
-        typedef  FElement3::Element Element;
-        
-        MeshPoint mp=*MeshPointStack(stack) ;
-        R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-        const Element & K  = Kv.T;
-        const Mesh3 & Th= Kv.Vh.Th;
-        double epsmes3=K.mesure()*K.mesure()*1e-18;
-        long npi;
-        long n=Kv.NbDoF(),N=Kv.N;
-        double l[3];
-        
-        bool classoptm = copt && Op.optiexpK;
-        // assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-        if (Kv.number<1 && verbosity/100 && verbosity % 10 == 2)
-            cout << "Element_rhs 3d S(levelset): copt = " << copt << " " << classoptm << endl;
-        int lastop;
-        What_d Dop = Op.DiffOp(lastop);
-        
-        assert(Op.MaxOp() <last_operatortype);
-        // assert(lastop<=3);
-        
-        RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-        R3 PP[4];
-        for(int i=0; i< np; ++i)
-            PP[i]= K(Q[i]);
-
-        for( int iii =0; iii+1 < np; iii+=2)
-        { // 0,1,, a and 2,3,0.
-            int i0=iii,i1=iii+1,i2=(iii+2)%np;
-            R3 NN= R3(PP[i0],PP[i1])^R3(PP[i0],PP[i2]);
-            double mes2 = (NN,NN);
-            double mes = sqrt(mes2);
-            if(mes2*mes <epsmes3) continue; //  too small
-            NN /= mes;
-            mes *= 0.5;
-           // cout << " Element_rhs::mes " << mes << " " << iii << endl;
-
-        for (npi=0;npi<FI.n;npi++) // loop on the integration point
-        {
-            GQuadraturePoint<R2>  pi( FI[npi]);
-            pi.toBary(l);
-            R3 Pt( l[0]*Q[i0]+l[1]*Q[i1]+l[2]*Q[i2]); //
-            MeshPointStack(stack)->set(Th,K(Pt),Pt,K,-1,NN,-1);
-            //
-            Kv.BF(Dop,Pt,fu);
-    //        MeshPointStack(stack)->set(K(Pt),Pt,Kv,label,NN,ie);
-            if (classoptm) (*Op.optiexpK)(stack); // call optim version
-            double coef = mes*pi.a;
-            for (int  i=0;  i<n;   i++ )
-                // if (alledges || onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // bofbof faux si il y a des derives ..
-            {
-                RNM_ wi(fu(i,'.','.'));
-                int il=0;
-                for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                {
-                    LOperaD::K ll(*l);
-                    pair<int,int> ii(ll.first);
-                    double w_i =  wi(ii.first,ii.second);
-                    R c =copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-                    // FFCS - removing what is probably a small glitch
-                    if ( copt && Kv.number<1)
-                    {
-                        R cc  =  GetAny<R>(ll.second.eval(stack));
-                        if ( c != cc) {
-                            cerr << c << " =! " << cc << endl;
-                            cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-                            ExecError("In Optimized version "); }
-                    }
-                    
-                    
-                    //= GetAny<double>(ll.second.eval(stack));
-                    
-                    B[Kv(i)] += coef * c * w_i;
-                }
-            }
-            
-            
-        }
-    }
-        *MeshPointStack(stack) = mp;
-        
-}
-    
-    
-    
-  // end 3d
-    
-    
- template<class R>
-  void  Element_rhs(const FElement & Kv,int ie,int label,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                    const QuadratureFormular1d & FI = QF_GaussLegendre2,bool alledges=false)
-  {
-    Stack stack=pvoid2Stack(vstack);
-    MeshPoint mp=*MeshPointStack(stack) ;
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    const Triangle & T  = Kv.T;
-    // const QuadratureFormular1d & FI = QF_GaussLegendre2;
-    long npi;
-    long i,n=Kv.NbDoF(),N=Kv.N;
-    
-    //  bool show = Kv.Vh.Th(T)==0;
-    // char * xxx[] ={" u"," v,"," p"," q"," r"};
-    // char * xxxx[] ={" u'"," v',"," p'"," q'"," r'"};
-    // char * yyy[] ={" ","_x ","_y "};
-
-    bool classoptm = copt && Op.optiexpK;
-   // assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-    if (Kv.number<1 && verbosity/100 && verbosity % 10 == 2) 
-     cout << "Element_rhs S: copt = " << copt << " " << classoptm << endl;
-    KN<bool> Dop(last_operatortype);
-    Op.DiffOp(Dop);  
-    int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-    assert(Op.MaxOp() <last_operatortype);
-   // assert(lastop<=3);
-
-    RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-    
-    for (npi=0;npi<FI.n;npi++) // loop on the integration point
-      {
-        QuadratureFormular1dPoint pi( FI[npi]);
-        R2 E=T.Edge(ie);
-        double le = sqrt((E,E));
-        double coef = le*pi.a;
-        double sa=pi.x,sb=1-sa;
-        R2 PA(TriangleHat[VerticesOfTriangularEdge[ie][0]]),
-          PB(TriangleHat[VerticesOfTriangularEdge[ie][1]]);
-        R2 Pt(PA*sa+PB*sb ); //  
-        Kv.BF(Dop,Pt,fu);
-        MeshPointStack(stack)->set(T(Pt),Pt,Kv,label,R2(E.y,-E.x)/le,ie);
-        if (classoptm) (*Op.optiexpK)(stack); // call optim version         
-        
-        for ( i=0;  i<n;   i++ )  
-         // if (alledges || onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // bofbof faux si il y a des derives ..
-            { 
-              RNM_ wi(fu(i,'.','.'));
-              int il=0;
-              for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                {       
-                  LOperaD::K ll(*l);
-                  pair<int,int> ii(ll.first);
-                  double w_i =  wi(ii.first,ii.second);
-                  R c =copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-		  // FFCS - removing what is probably a small glitch
-                if ( copt && Kv.number<1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                     if ( c != cc) { 
-			 cerr << c << " =! " << cc << endl;
-                       cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                  
-                  
-                  //= GetAny<double>(ll.second.eval(stack));
-                 
-                  B[Kv(i)] += coef * c * w_i;
-                }
-            }
-        
-        
-      }  
-    *MeshPointStack(stack) = mp;
-    
-  }
-    
-    template<class R>
-    void  Element_rhs(const FElement & Kv,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                      const QuadratureFormular1d & FI ,const R2 & PPA,const R2 &PPB)
-    {
-        Stack stack=pvoid2Stack(vstack);
-        MeshPoint mp=*MeshPointStack(stack) ;
-        R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-        const Triangle & T  = Kv.T;
-        R2 PA=T(PPA),PB=T(PPB);
-        // const QuadratureFormular1d & FI = QF_GaussLegendre2;
-        long npi;
-        long i,n=Kv.NbDoF(),N=Kv.N;
-        
-        //  bool show = Kv.Vh.Th(T)==0;
-        // char * xxx[] ={" u"," v,"," p"," q"," r"};
-        // char * xxxx[] ={" u'"," v',"," p'"," q'"," r'"};
-        // char * yyy[] ={" ","_x ","_y "};
-        
-        bool classoptm = copt && Op.optiexpK;
-        // assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-        if (Kv.number<1 && verbosity/100 && verbosity % 10 == 2)
-            cout << "Element_rhs(levelset) S: copt = " << copt << " " << classoptm << endl;
-        KN<bool> Dop(last_operatortype);
-        Op.DiffOp(Dop);
-        int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-        assert(Op.MaxOp() <last_operatortype);
-        // assert(lastop<=3);
-        
-        RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-        
-        for (npi=0;npi<FI.n;npi++) // loop on the integration point
-        {
-            QuadratureFormular1dPoint pi( FI[npi]);
-            R2 E(PA,PB);
-            double le = sqrt((E,E));
-            double coef = le*pi.a;
-            double sa=pi.x,sb=1-sa;
-           
-            R2 Pt(PA*sa+PB*sb ); //
-            Kv.BF(Dop,Pt,fu);
-            MeshPointStack(stack)->set(T(Pt),Pt,Kv,0,R2(E.y,-E.x)/le,0);
-            if (classoptm) (*Op.optiexpK)(stack); // call optim version
-            
-            for ( i=0;  i<n;   i++ )
-                // if (alledges || onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // bofbof faux si il y a des derives ..
-            {
-                RNM_ wi(fu(i,'.','.'));
-                int il=0;
-                for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                {
-                    LOperaD::K ll(*l);
-                    pair<int,int> ii(ll.first);
-                    double w_i =  wi(ii.first,ii.second);
-                    R c =copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-		  // FFCS - removing what is probably a small glitch
-                    if ( copt && Kv.number<1)
-                    {
-                        R cc  =  GetAny<R>(ll.second.eval(stack));
-                        if ( c != cc) {
-                            cerr << c << " =! " << cc << endl;
-                            cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-                            ExecError("In Optimized version "); }
-                    }
-                    
-                    
-                    //= GetAny<double>(ll.second.eval(stack));
-                    
-                    B[Kv(i)] += coef * c * w_i;
-                }
-            }
-            
-            
-        }  
-        *MeshPointStack(stack) = mp;
-        
-    } 
-   
-    
- 
-    template<class R>
-    void  Element_rhsVF(const FElement & Kv,const FElement & KKv,int ie,int iie,int label,const LOperaD &Op,double * p,int *ip,void  * bstack,KN_<R> & B,
-		      const QuadratureFormular1d & FI = QF_GaussLegendre2)
-    // sier of ip
-    {
-	pair_stack_double * bs=static_cast<pair_stack_double *>(bstack);   
-	Stack stack= bs->first;
-	double binside = *bs->second; // truc FH pour fluide de grad2 (decentrage bizard)
-	
-	MeshPoint mp=*MeshPointStack(stack) ;
-	R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-	const Triangle & T  = Kv.T;
-	// const QuadratureFormular1d & FI = QF_GaussLegendre2;
-	long npi;
-	long i,nv=Kv.NbDoF(),N=Kv.N;
-	long nnv=KKv.NbDoF();
-	assert(nv==nnv);
-	//  bool show = Kv.Vh.Th(T)==0;
-	// char * xxx[] ={" u"," v,"," p"," q"," r"};
-	// char * xxxx[] ={" u'"," v',"," p'"," q'"," r'"};
-	// char * yyy[] ={" ","_x ","_y "};
-	
-	bool classoptm = copt && Op.optiexpK;
-	// assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-       	if (Kv.number<1 && verbosity/100 && verbosity % 10 == 2) 
-	    cout << "Element_rhs S: copt = " << copt << " " << classoptm << endl;
-	KN<bool> Dop(last_operatortype);
-	Op.DiffOp(Dop);  
-	int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-	//assert(Op.MaxOp() <last_operatortype);
-	// assert(lastop<=3);
-	int lffv = nv*N*last_operatortype; 
-	int lp =nv*2;
-	KN_<int> pp(ip,lp),pk(ip+lp,lp),pkk(ip+2*lp,lp);	
-	int n = BuildMEK_KK(lp,pp,pk,pkk,&Kv,&KKv); 
-	RNMK_ fu(p,nv,N,lastop); //  the value for basic fonction
-	RNMK_ ffu( (double*) p  + lffv  ,nv,N,lastop); //  the value for basic fonction
-	
-	R2 E=T.Edge(ie);
-	double le = sqrt((E,E));
-	R2 PA(TriangleHat[VerticesOfTriangularEdge[ie][0]]),
-	PB(TriangleHat[VerticesOfTriangularEdge[ie][1]]),
-	PC(TriangleHat[OppositeVertex[ie]]);
-	// warning the to edge are in opposite sens         
-	R2 PP_A(TriangleHat[VerticesOfTriangularEdge[iie][1]]),
-	PP_B(TriangleHat[VerticesOfTriangularEdge[iie][0]]),
-	PP_C(TriangleHat[OppositeVertex[ie]]);
-	R2 Normal(E.perp()/-le); 
-	bool onborder= &Kv.T == &KKv.T; 
-        double cmean = onborder ? 1. : 0.5;
-	for (npi=0;npi<FI.n;npi++) // loop on the integration point
-	  {
-	      QuadratureFormular1dPoint pi( FI[npi]);
-	      R2 E=T.Edge(ie);
-	      double le = sqrt((E,E));
-	      double coef = le*pi.a;
-	      double sa=pi.x,sb=1-sa;
-	      R2 PA(TriangleHat[VerticesOfTriangularEdge[ie][0]]),
-	      PB(TriangleHat[VerticesOfTriangularEdge[ie][1]]);
-	      R2 Pt(PA*sa+PB*sb ); //
-	      R2 PP_t(PP_A*sa+PP_B*sb ); //  
-	      if (binside) {
-		  Pt   = (1-binside)*Pt + binside*PC; 
-	      PP_t  = (1-binside)*PP_t + binside*PP_C; }
-	      Kv.BF(Dop,Pt,fu);
-	      if(onborder)
-		ffu=0;
-	      else 
-	        KKv.BF(Dop,PP_t,ffu);
-	      
-	      MeshPointStack(stack)->set(T(Pt),Pt,Kv,label,R2(E.y,-E.x)/le,ie);
-	      if (classoptm) (*Op.optiexpK)(stack); // call optim version         
-	      
-	      for ( i=0;  i<n;   i++ )  
-		  // if (alledges || onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // bofbof faux si il y a des derives ..
-		{ 
-		    int ik= pk[i];
-		    int ikk=pkk[i]; 
-		    RNM_ wi(fu(Max(ik,0),'.','.'));
-                    RNM_ wwi(ffu(Max(ikk,0),'.','.'));  		    
-		    int il=0;
-		    for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-		      {       
-			 
-			  
-			  LOperaD::K ll(*l);
-			  pair<int,int> ii(ll.first);
-			  int iis = ii.second;
-			  int iicase  = iis / last_operatortype;
-			  iis %= last_operatortype;
-			  double w_i=0,ww_i=0; 
-			  if(ik>=0) w_i =   wi(ii.first,iis ); 
-			  if( iicase>0 ) 
-			    {
-			    if( ikk>=0) ww_i =  wwi(ii.first,iis );  
-			    if       (iicase==Code_Jump)      w_i = ww_i-w_i; // jump
-			    else  if (iicase==Code_Mean)      w_i = cmean*  (w_i + ww_i ); // average
-			    else  if (iicase==Code_OtherSide) w_i = ww_i;  // valeur de autre cote
-			    }
-			  R c =copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-		  // FFCS - removing what is probably a small glitch
-			  if ( copt && Kv.number<1)
-			    {
-				R cc  =  GetAny<R>(ll.second.eval(stack));
-				if ( c != cc) { 
-				     cerr << c << " =! " << cc << endl;
-				    cerr << "Sorry error in Optimization add:  int2d(Th,optimize=0)(...)" << endl;
-				ExecError("In Optimized version "); }
-			    }
-			  
-			  
-			  //= GetAny<double>(ll.second.eval(stack));
-			  
-			  B[Kv(i)] += coef * c * w_i;
-		      }
-		}
-	      
-	      
-	  }  
-	*MeshPointStack(stack) = mp;
-	
-    } 
-    
-  // 3d  
- template<class R>
- void  Element_rhs(const  Mesh3 & ThI,const Mesh3::Element & KI, const FESpace3 & Vh,
- int ie,int label,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                    const QuadratureFormular & FI,bool alledges=false)
-    {
-      Stack stack=pvoid2Stack(vstack);
-      int intmortar=0;
-  //  AFAIRE("Element_rhs 3d on surface  2 diff mesh ");
-      static int count =0;
-      if(count++<1) 
-      {
-          cout << " Element_rhs 3d on surface  2 diff mesh int test (FH)" << endl;
-          cout << " -----------------------------------------------------" << endl;
-      }
-      // integration 1d on 2 diff mesh 
-      
-      
-      MeshPoint mp=*MeshPointStack(stack) ;
-      R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-      
-      
-      bool classoptm = copt && Op.optiexpK;
-      //assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-      if (ThI(KI)<1 && verbosity/100 && verbosity % 10 == 2) 
-          cout << "Element_rhs S: copt = " << copt << " " << classoptm << endl;
-      assert(Op.MaxOp() <last_operatortype);
-      //
-      int lastop=0;
-      lastop = 0;
-      What_d Dop = Op.DiffOp(lastop);
-      // assert(lastop<=3);
-      const Tet & T  = KI;
-      long npi;
-      
-      const Tet * Kp=0;
-      
-      for (npi=0;npi<FI.n;npi++) // loop on the integration point
-      {
-          
-          GQuadraturePoint<R2> pi(FI[npi]);
-          R3 NN= T.N(ie);
-          double mes=NN.norme();
-          NN/=mes;
-          double coef = 0.5*mes*pi.a; // 
-          R3 Pt(T.PBord(ie,pi)),PI(T(Pt));
-          
-          
-          
-          MeshPointStack(stack)->set(ThI,PI,Pt,KI,label,NN,ie);
-          if (classoptm) (*Op.optiexpK)(stack); // call optim version         
-          bool outside;
-          R3 PIt;
-          const Tet & K  = *Vh.Th.Find(PI,PIt,outside,Kp);
-          if ( ! outside || intmortar) //  FH march 2009 ???
-          {
-              const  FElement3  Kv= Vh[K];
-              long i,n=Kv.NbDoF(),N=Kv.N;
-              RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-              Kv.BF(Dop,PIt,fu);
-              
-              for ( i=0;  i<n;   i++ )  
-             //   if (alledges || onWhatIsFace[ie][Kv.DFOnWhat(i)]) // bofbof faux si il y a des derives ..
-              { 
-                  RNM_ wi(fu(i,'.','.'));
-                  int il=0;
-                  for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                  {       
-                      LOperaD::K ll(*l);
-                      pair<int,int> ii(ll.first);
-                      double w_i =  wi(ii.first,ii.second);
-                      R c =copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-		  // FFCS - removing what is probably a small glitch
-                      if ( copt && Kv.number<1)
-                      {
-                          R cc  =  GetAny<R>(ll.second.eval(stack));
-                          if ( c != cc) { 
-                              cerr << c << " =! " << cc << endl;
-                              cerr << "Sorry error in Optimization add:  int1d(Th,optimize=0)(...)" << endl;
-                              ExecError("In Optimized version "); }
-                      }
-                      
-                      
-                      //= GetAny<double>(ll.second.eval(stack));
-                      
-                      B[Kv(i)] += coef * c * w_i;
-                  }
-              }
-              
-          }
-      }  
-      *MeshPointStack(stack) = mp;
-     
-      
-  } 
-  // 3d
- template<class R>
- void  Element_rhs(const  Mesh & ThI,const Triangle & KI, const FESpace & Vh,
- int ie,int label,const LOperaD &Op,double * p,void * vstack,KN_<R> & B,
-                    const QuadratureFormular1d & FI = QF_GaussLegendre2,bool alledges=false,bool intmortar=false,
-                   R2 *Q=0)
-  {
-     // integration 1d on 2 diff mesh 
-    
-     Stack stack=pvoid2Stack(vstack);
-    MeshPoint mp=*MeshPointStack(stack) ;
-    R ** copt = Stack_Ptr<R*>(stack,ElemMatPtrOffset);
-    
-
-    bool classoptm = copt && Op.optiexpK;
-    //assert(  (copt !=0) ==  (Op.where_in_stack_opt.size() !=0) );
-    if (ThI.number(KI)<1 && verbosity/100 && verbosity % 10 == 2) 
-     cout << "Element_rhs S: copt = " << copt << " " << classoptm << endl;
-    KN<bool> Dop(last_operatortype);
-    Op.DiffOp(Dop);  
-    int lastop=1+Dop.last(binder1st<equal_to<bool> >(equal_to<bool>(),true));
-    assert(Op.MaxOp() <last_operatortype);
-   // assert(lastop<=3);
-    const Triangle & T  = KI;
-    long npi;
-    
-    const Triangle * Kp=0;
-    R2 PA,PB,E;
-    if( Q==0)
-      {
-       PA=TriangleHat[VerticesOfTriangularEdge[ie][0]];
-       PB=TriangleHat[VerticesOfTriangularEdge[ie][1]];
-       E=T.Edge(ie);
-      }
-      else
-      {
-          PA=Q[0];
-          PB=Q[1];
-          E=T(PB)-T(PA);
-      }
-    double le = sqrt((E,E));
-   
-    for (npi=0;npi<FI.n;npi++) // loop on the integration point
-      {
-        QuadratureFormular1dPoint pi( FI[npi]);
-
-        
-        double coef = le*pi.a;
-        double sa=pi.x,sb=1-sa;
-        R2 Pt(PA*sa+PB*sb ); //
-        R2 PI(KI(Pt));  
-     //   Kv.BF(Dop,Pt,fu);
-        MeshPointStack(stack)->set(ThI,PI,Pt,KI,label,R2(E.y,-E.x)/le,ie);
-        if (classoptm) (*Op.optiexpK)(stack); // call optim version         
-        bool outside;
-        R2 PIt;
-        const Triangle & K  = *Vh.Th.Find(PI,PIt,outside,Kp);
-        if ( ! outside || intmortar) //  FH march 2009 ???
-          {
-            const  FElement  Kv= Vh[K];
-            long i,n=Kv.NbDoF(),N=Kv.N;
-            RNMK_ fu(p,n,N,lastop); //  the value for basic fonction
-            Kv.BF(Dop,PIt,fu);
-        
-        for ( i=0;  i<n;   i++ )  
-         // if (alledges || onWhatIsEdge[ie][Kv.DFOnWhat(i)]) // bofbof faux si il y a des derives ..
-            { 
-              RNM_ wi(fu(i,'.','.'));
-              int il=0;
-              for (LOperaD::const_iterator l=Op.v.begin();l!=Op.v.end();l++,il++)
-                {       
-                  LOperaD::K ll(*l);
-                  pair<int,int> ii(ll.first);
-                  double w_i =  wi(ii.first,ii.second);
-                  R c =copt ? *(copt[il]) : GetAny<R>(ll.second.eval(stack));
-		  // FFCS - removing what is probably a small glitch
-                if ( copt && Kv.number<1)
-                 {
-                     R cc  =  GetAny<R>(ll.second.eval(stack));
-                     if ( c != cc) { 
-			  cerr << c << " =! " << cc << endl;
-                       cerr << "Sorry error in Optimization add:  int1d(Th,optimize=0)(...)" << endl;
-                       ExecError("In Optimized version "); }
-                 }
-                  
-                  
-                  //= GetAny<double>(ll.second.eval(stack));
-                 
-                  B[Kv(i)] += coef * c * w_i;
-                }
-            }
-        
-        }
-      }  
-    *MeshPointStack(stack) = mp;
-    
-  } 
-  
-
-  template<class R,typename MC,class FESpace >
-  bool AssembleVarForm(Stack stack,const typename FESpace::Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                       MC  * A,KN_<R> * B,const list<C_F0> &largs)
-  { // return true if BC 
-    typedef typename FESpace::Mesh Mesh ;
-    typedef Mesh * pmesh;
-    bool ret=false; 
-    typedef DotStar_KN_<R> DotStar;
-    typedef DotSlash_KN_<R> DotSlash;
-    list<C_F0>::const_iterator ii,ib=largs.begin(),
-      ie=largs.end();
-     using namespace FreeFempp;  
-     TypeVarForm<R> *tvf=TypeVarForm<R>::Global;
-     assert( tvf);
-    for (ii=ib;ii != ie;ii++)
-      {
-        Expression e=ii->LeftValue();
-        aType r = ii->left();
-      //  if(A)        cout << "AssembleVarForm " <<  * r << " " <<  (*A)(0,3) << endl;
-        if (r==  tvf->tFB) 
-          { if (A)
-           { 
-            const  FormBilinear * bf =dynamic_cast<const  FormBilinear *>(e);
-            pmesh  Thbf = GetAny<pmesh>((*bf->di->Th)(stack));
-            if(Thbf)AssembleBilinearForm<R>( stack,*Thbf,Uh,Vh,sym,*A,bf);
-           }
-          }
-        else if (r==tvf->tMat)
-          {
-            if (A)
-              InternalError(" Add sparse matrice; to do, sorry");
-          }
-        else if (r==tvf->tFL)
-          {
-            if (B) {
-              const  FormLinear * bf =dynamic_cast<const  FormLinear *>(e);
-              pmesh  Thbf = GetAny<pmesh>((*bf->di->Th)(stack));            
-              if(Thbf) AssembleLinearForm<R>( stack,*Thbf, Vh, B,bf) ;
-	    }
-          }
-        else if (r==tvf->tTab)
-          {
-            if ( B) 
-              *B += *GetAny<KN<R> *>( (*e)(stack) );
-          }
-        else if (r==tvf->tDotStar)
-          {
-            if ( B) 
-              {
-                DotStar ab=GetAny<DotStar>( (*e)(stack) );
-                *B += ab;
-              }
-          }
-        else if (r==tvf->tMatX)
-          {
-            if ( B) 
-              { 
-                *B += GetAny<typename VirtualMatrice<R>::plusAx >( (*e)(stack) )  ;
-              }
-          }
-        else if (r==tvf->tMatTX)
-          {
-            if ( B) 
-              { 
-                *B += GetAny<typename VirtualMatrice<R>::plusAtx >( (*e)(stack) )  ;
-              }
-          }
-        else if (r== tvf->tBC) 
-          ret=true;
-        else 
-          { 
-            cerr << "AssembleVarForm  invalid type : " << * r <<  endl;
-            throw(ErrorExec("AssembleVarForm invalid type in varf",1));
-          }
-      }
-    return ret;
-  }                            
-  
-  template<class R,class FESpace>
-  void AssembleBC(Stack stack,const typename FESpace::Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                  MatriceCreuse<R>  * A,KN_<R> * B,KN_<R> * X, const list<C_F0> &largs , double tgv  )
-  {
-    list<C_F0>::const_iterator ii,ib=largs.begin(),
-      ie=largs.end();
-    aType tBC( atype<const  BC_set  *>()) ;                    
-    for (ii=ib;ii != ie;ii++)
-      {
-        Expression e=ii->LeftValue();
-        aType r = ii->left();
-        if (r==tBC)
-          AssembleBC(stack,Th,Uh,Vh,sym,A,B,X, dynamic_cast<const  BC_set *>(e),tgv);
-      }
-    
-  }
-  
-
- template<class R>
-  void AssembleBC(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                  MatriceCreuse<R>  * A,KN_<R> * B,KN_<R> * X, const  BC_set * bc, double tgv  )
-    
-  {
-    MeshPoint *mps= MeshPointStack(stack),mp=*mps;
-     StackOfPtr2Free * sptr = WhereStackOfPtr2Free(stack);
-     bool sptrclean=true;
-     //     sptr->clean(); // modif FH mars 2006  clean Ptr
-    
-    int ktbc=0, nbon =0;
-    bool Aii = A && A->n == A->m;
-    int Nbcomp=Vh.N;
-    Check(bc,Nbcomp);
-    ffassert(Vh.N == Uh.N);
-    TabFuncArg tabexp(stack,Vh.N);
-    KN<double> buf(Vh.MaximalNbOfDF()*last_operatortype*Vh.N);
-    KN<R> gg(buf);
-    if ( B && B->N() != Vh.NbOfDF) ExecError("AssembleBC size rhs and nb of DF of Vh");
-    if(verbosity>99) cout << " Problem : BC_set "<< typeid(R).name() << " " ;
-    nbon =bc->on.size();
-    set<long> on;
-    Expandsetoflab(stack,*bc, on);
-/*
-    for (int i=0;i<nbon;i++)
-      {
-        long  lab  = GetAny<long>( (*bc->on[i])(stack));
-        if(verbosity>99) cout << lab << " " ;
-        on.insert(lab);
-      }
-    if(verbosity>99) 
-      cout << endl;
-    */
-    int kk=bc->bc.size();
-    
-    const int dim=Vh.N;
-    FElement::aIPJ ipj(Vh[0].Pi_h_ipj()); 
-    FElement::aR2  PtHat(Vh[0].Pi_h_R2()); 
-    
-    KN<int> PtonB(PtHat.N());
-    
-    KN<double>   Aipj(ipj.N());
-    KNM<R>  Vp(dim,PtHat.N());
-    
-    double tgv1=tgv <0? 1: tgv; // change 21 dec 2010 FH (Hack of ILU)
-    for (int ib=0;ib<Th.neb;ib++)
-      {
-        int ie;
-        int it = Th.BoundaryElement(ib,ie);
-        int r =Th.bedges[ib].lab;
-        if (on.find(r) != on.end() ) 
-          {
-            const FElement K(Uh[it]);
-            R2 E=K.T.Edge(ie);
-            double le = sqrt((E,E));
-            
-            ktbc++;
-            if(verbosity>99)   cout << "BC " << it << " " << ie << " lab=" << r <<  ":\t"
-                                    << K.T[VerticesOfTriangularEdge[ie][0]] << "; " 
-                                    << K.T[VerticesOfTriangularEdge[ie][1]] << " E=" << K.T.Edge(ie) << endl;
-            
-            for (int k=0;k<kk;k++)
-              {
-                gg=R();
-                pair<int,Expression> xx=bc->bc[k];
-                tabexp=0; 
-                int comp = xx.first;
-                tabexp[comp]=xx.second;
-                // while  (comp+1 <Nbcomp && which_uh[comp+1] == which_uh[comp])   
-                while  (comp+1 <Nbcomp && Uh.dim_which_sub_fem[comp+1] == Uh.dim_which_sub_fem[comp])   
-                  {  // the right 
-                    k++; // NEXT COMP 
-                    comp++;
-                    if (k<kk && (comp == bc->bc[k].first) )
-                      tabexp[comp]=bc->bc[k].second;
-                    else
-                      CompileError("In Boundary condition the vector FESpace , we must have:"
-                                   " all componant, in the right order");
-                    
-                  }
-                 // cout << " k "<< k << " " << comp << " " << " Nbcomp=" << Nbcomp << " " << Uh.dim_which_sub_fem[comp] << " " << Uh.dim_which_sub_fem[comp+1] <<  endl; 
-#ifdef OLDPih                    
-                K.Pi_h(gg,F_Pi_h,buf,&tabexp);
-                
-#else
-         K.Pi_h(Aipj);
-         PtonB = 0;
-        for (int i=0;i<Aipj.N();i++)
-           PtonB[ipj[i].p] += onWhatIsEdge[ie][K.DFOnWhat(ipj[i].i)] ;
-         // cout << "   bc->complextype:  " << bc->complextype << endl;             
-         for (int p=0;p<PtHat.N();p++)
-          if (PtonB[p]) // in on boundary 
-          { 
-            mps->set(K.T(PtHat[p]),PtHat[p],K,r,R2(E.y,-E.x)/le,ie); // la normal bofbof ?
-            KN_<R> Vpp(Vp('.',p));
-	    Vpp=R();
-            for (int j=0;j<dim;j++)
-             if (tabexp[j]) 
-	       {  
-		  if(bc->complextype) // FH may 2007  MatriceCreuse
-                   Vpp[j]=GetAny<R>( (*tabexp[j])(stack) );
-		  else 
-		   Vpp[j]=GetAny<double>( (*tabexp[j])(stack) );
-	        }       
-              else Vpp[j]=0.;
-           }
-		//cout << " ..... Vp " << Vp << " " << bc->complextype << " " << bc << endl;  
-         for (int i=0;i<Aipj.N();i++)
-          { 
-           const FElement::IPJ &ipj_i(ipj[i]);
-           gg[ipj_i.i] += Aipj[i]*Vp(ipj_i.j,ipj_i.p);           
-          }
-#endif
-                int nbdf = K.NbDoF();
-                for (int df=0;df<nbdf;df++)
-                  // if (K.FromFE(df)==which_uh[xx.first] && onWhatIsEdge[ie][K.DFOnWhat(df)] ) 
-                  {
-                  //  cout << df << " from = " << K.FromFE(df) << "   dim .. " << Uh.dim_which_sub_fem[xx.first] << "  first " << xx.first << " " << onWhatIsEdge[ie][K.DFOnWhat(df)] << endl;
-                  if (K.FromASubFE(df)==Uh.dim_which_sub_fem[xx.first] && onWhatIsEdge[ie][K.DFOnWhat(df)] ) 
-                    {
-                      // cout << k << " df=" << df <<  " g= " << gg[df] <<" " << gg(FromTo(0,2)) << endl;
-                      int ddf=K(df);
-                      // AA(ddf,ddf) =tgv;
-                      if (Aii)  A->SetBC(ddf, tgv);// change 21 dec 2010 FH (Hack of ILU)
-                      if (B) (*B)[ddf]=  tgv1*gg[df]; 
-                      if (X) (*X)[ddf]=gg[df];
-                    }
-                   }
-              if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-	      }
-          }
-      }
-    if (! ktbc  && nbon && verbosity ) 
-      {
-        cout << " Warning: -- Your set of boundary condition is incompatible with the mesh label." << endl;
-      }
-    *mps =mp;            
-  }
- 
-
-template<class R>
-  void AssembleBC(Stack stack,const Mesh3 & Th,const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-                  MatriceCreuse<R>  * A,KN_<R> * B,KN_<R> * X, const  BC_set * bc, double tgv  )
-    
-  {
-    typedef Mesh3 Mesh;
-    typedef typename FESpace3::FElement FElement;
-    typedef typename Mesh::BorderElement BorderElement;
-    typedef typename Mesh::Rd Rd;
-    typedef typename Mesh::Element Element;
-    typedef typename Mesh::RdHat RdHat;
-    
-    MeshPoint *mps= MeshPointStack(stack),mp=*mps;
-    StackOfPtr2Free * sptr = WhereStackOfPtr2Free(stack);
-    bool sptrclean=true;
-    //     sptr->clean(); // modif FH mars 2006  clean Ptr
-    
-    int ktbc=0, nbon =0;
-    bool Aii = A && A->n == A->m;
-    int Nbcomp=Vh.N;
-    Check(bc,Nbcomp);
-    assert(Vh.N == Uh.N);
-    TabFuncArg tabexp(stack,Vh.N);
-    KN<double> buf(Vh.MaximalNbOfDF()*last_operatortype*Vh.N);
-    KN<R> gg(buf);
-    if ( B && B->N() != Vh.NbOfDF) ExecError("AssembleBC size rhs and nb of DF of Vh");
-    if(verbosity>99) cout << " Problem : BC_set "<< typeid(R).name() << " " ;
-    nbon =bc->on.size();
-    set<long> on;
-    Expandsetoflab(stack,*bc, on);
-/*
-    for (int i=0;i<nbon;i++)
-      {
-        long  lab  = GetAny<long>( (*bc->on[i])(stack));
-        if(verbosity>99) cout << lab << " " ;
-        on.insert(lab);
-      }
-    if(verbosity>99) 
-      cout << endl;*/
-    int kk=bc->bc.size();
-    
-    const int dim=Vh.N;
-    
-    InterpolationMatrix<RdHat> ipmat(Vh);    
-    int npPh = Vh.maxNbPtforInterpolation;
-    KN<int> PtonB(npPh);
-    KNM<R>   Vp(npPh,dim);
-    Vp=R();
-    KN<R>  Vdf(Vh.MaxNbDFPerElement);
-    double tgv1=tgv <0? 1: tgv; 
-    map<int,int> lll;
-    for (int ib=0;ib<Th.nbe;ib++)
-      {
-        int ie;
-        int it = Th.BoundaryElement(ib,ie);
-	
-	//const BorderElement &be=Th.be(ib);
-        int r =Th.be(ib).lab;
-	lll[r]++;
-        if (on.find(r) != on.end() ) 
-          {
-	     const FElement K(Uh[it]);
-	    ipmat.set(K);
-           
-            //R2 E=K.T.Edge(ie);
-            //double le = be.mesure(); 
-            
-            ktbc++;
-	    /*
-            if(verbosity>99)   cout << "BC " << it << " " << ie << " lab=" << r <<  ":\t"
-                                    << K.T[VerticesOfTriangularEdge[ie][0]] << "; " 
-                                    << K.T[VerticesOfTriangularEdge[ie][1]] << " E=" << K.T.Edge(ie) << endl;
-	    */
-            for (int k=0;k<kk;k++)
-              {
-                gg=R();
-                pair<int,Expression> xx=bc->bc[k];
-                tabexp=0; 
-                int comp = xx.first;
-                tabexp[comp]=xx.second;
-                // while  (comp+1 <Nbcomp && which_uh[comp+1] == which_uh[comp])   
-                while  (comp+1 <Nbcomp && Uh.dim_which_sub_fem[comp+1] == Uh.dim_which_sub_fem[comp])   
-                  {  // the right 
-                    k++; // NEXT COMP 
-                    comp++;
-                    if (k<kk && (comp == bc->bc[k].first) )
-                      tabexp[comp]=bc->bc[k].second;
-                    else
-                      CompileError("In Boundary condition the vector FESpace , we must have:"
-                                   " all componant, in the right order");
-                    
-                  }
-		int nbdf=K.NbDoF() ;	  
-		//ipmat.set(it);
-		PtonB = 0;
-		Rd NN=K.T.N(ie);
-		NN /= NN.norme();
-		for (int i=0;i<ipmat.ncoef;i++)
-		  PtonB[ipmat.p[i]] +=  Element::onWhatBorder[ie][K.DFOnWhat(ipmat.dofe[i])] ;
-		
-		
-		for (int p=0;p<ipmat.np;p++)
-		  if (PtonB[p]) // in on boundary 
-		    { 
-		      const RdHat & PtHat(ipmat.P[p]);
-		      mps->set(K.T(PtHat),PtHat,K,r,NN,ie); // la normal bofbof ?
-		      KN_<R> Vpp(Vp(p,'.'));
-		      for (int j=0;j<dim;j++)
-			if (tabexp[j]) 
-			  if(bc->complextype) // FH may 2007   
-			  Vpp[j]=GetAny<R>( (*tabexp[j])(stack) );
-			  else 
-			  Vpp[j]=GetAny<double>( (*tabexp[j])(stack) );
-    
-			else Vpp[j]=0.;
-		    }
-		// cout << " Vp:  " << Vp << endl;
-		K.Pi_h(Vp,Vdf,ipmat);  
-                for (int df=0;df<nbdf;df++)
-                  {
-		    if (K.FromASubFE(df)==Uh.dim_which_sub_fem[xx.first] && Element::onWhatBorder[ie][K.DFOnWhat(df)] ) 
-		      {
-			int ddf=K(df);
-			// cout << ddf << " " << df << " " << Vdf[df] << " " << it << " ib = " << ib  << " == " << Th(Th[it][df]) <<  endl;
-			if (Aii)  A->SetBC(ddf,tgv);// change 21 dec 2010 FH (Hack of ILU)
-			if (B) (*B)[ddf]=tgv1*Vdf[df]; 
-			if (X) (*X)[ddf]=Vdf[df];
-		      }
-		  }
-		if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-	      }
-          }
-      }
-    if (! ktbc  && nbon && verbosity ) 
-      {
-        cout << " Warning: -- Your set of boundary condition is incompatible with the mesh label." << endl;
-	for (map<int,int>::const_iterator i=lll.begin();i!=lll.end();i++)
-	  cout << " lab " << i-> first << "  nb " << i->second  << endl;
-      }
-    *mps =mp;            
-  }
-void  Expandsetoflab(Stack stack,const BC_set & bc,set<long> & setoflab);
-void  Expandsetoflab(Stack stack,const CDomainOfIntegration & di,set<int> & setoflab,bool &all);
-    
-
-template<class R>
- void AssembleLinearForm(Stack stack,const Mesh3 & Th,const FESpace3 & Vh,KN_<R> * B,const  FormLinear * l )
-{
-    typedef FESpace3 FESpace;
-   typedef FESpace3::Mesh Mesh;
-   typedef Mesh *pmesh ;
-
-      StackOfPtr2Free * sptr = WhereStackOfPtr2Free(stack);
-     bool sptrclean=true;
-     //     sptr->clean(); // modif FH mars 2006  clean Ptr
-    Check(l->l,Vh.N);
-    if ( B && B->N() != Vh.NbOfDF) ExecError("AssembleLinearForm size rhs and nb of DF of Vh");
-   // if ( & Th != &Vh.Th ) ExecError("AssembleLinearForm on different meshes  ( not implemented FH).");
-    KN<double> buf(Vh.MaximalNbOfDF()*last_operatortype*Vh.N*2);
-    
-    //            const  FormLinear * l=dynamic_cast<const  FormLinear *>(e);
-    const CDomainOfIntegration & di= *l->di;
-    ffassert(di.d==3);
-   // const Mesh * pThdi = GetAny<pmesh>( (* di.Th)(stack));
-
-    const Mesh & ThI = Th;//* GetAny<pmesh>( (* di.Th)(stack));
-    bool sameMesh = &ThI == &Vh.Th;
-    
-    SHOWVERB(cout << " FormLinear " << endl);
-    //const vector<Expression>  & what(di.what);
-    
-    CDomainOfIntegration::typeofkind  kind = di.kind;
-    //const QuadratureFormular1d & FIE = di.FIE(stack);
-  //  const QuadratureFormular & FIT = di.FIT(stack);
-   // const GQuadratureFormular<R3> & FIV = di.FIV(stack);
-    
-   // const QuadratureFormular1d & FIEo = di.FIE(stack);
-    const QuadratureFormular & FITo = di.FIT(stack);
-    const GQuadratureFormular<R3> & FIVo = di.FIV(stack);
-    //  to change the quadrature on element ... may 2014 FH ..
-   // QuadratureFormular1d  FIE(FIEo,3);
-    QuadratureFormular FIT(FITo,3);
-    GQuadratureFormular<R3>  FIV(FIVo,3);
-    
-    const bool useopt=di.UseOpt(stack);    
-    double binside=di.binside(stack);  // truc FH pour fluide de grad2 (decentrage bizard)  
-  //  cout << "AssembleLinearForm " << l->l->v.size() << endl; 
-    set<int> setoflab;
-    bool all=true; 
-    bool VF=l->VF();  // finite Volume or discontinous Galerkin
-    if (verbosity>2) cout << "  -- AssembleLinearForm 1,  discontinous Galerkin  =" << VF << " binside = "<< binside <<"\n";
-
-    if (verbosity>3) 
-      {
-	if (CDomainOfIntegration::int2d==kind) cout << "  -- boundary int border ( nQP: "<< FIT.n << ") , samemesh: " << sameMesh << " "   ;
-	else  if (CDomainOfIntegration::intalledges==kind) cout << "  -- boundary int all edges ( nQP: "<< FIT.n << "),"  ;
-	else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF edges nQP: ("<< FIT.n << ")," ;
-	else cout << "  --  int    (nQP: "<< FIV.n << " ) in "  ;
-      }
-  //  if(di.islevelset()) InternalError("So no levelset integration type on this case (3)");
-    if(di.islevelset() && (CDomainOfIntegration::int2d!=kind) && (CDomainOfIntegration::int3d!=kind) )
-        InternalError("So no levelset intgeration type on no int2d/3d case");
-    /*
-    if ( verbosity>3) 
-      if (kind==CDomainOfIntegration::int1d) cout << "  -- boundary int border " ;
-      else if (kind==CDomainOfIntegration::intalledges) cout << "  -- boundary int all edges " ;
-      else if (kind==CDomainOfIntegration::intallVFedges) cout << "  -- boundary int all edges " ;
-      else cout << "  -- boundary int  " ;
-    */
-      
-    Expandsetoflab(stack,di, setoflab,all);
-    /*
-    for (size_t i=0;i<what.size();i++)
-      if(di.whatis[i] ==0)
-      {
-	long  lab  = GetAny<long>( (*what[i])(stack));
-        setoflab.insert(lab);
-        if ( verbosity>3) cout << lab << " ";
-        all=false;
-      }
-     else 
-        {
-	   KN<long>  labs( GetAny<KN_<long> >( (*what[i])(stack)));
-	  for (long j=0; j<labs.N(); ++j) {	      
-	      setoflab.insert(labs[j]);
-	      if ( verbosity>3) cout << labs[j] << " ";
-	  }	  
-	  all=false;	  
-     }*/
-
-    if (verbosity>3) cout << " Optimized = "<< useopt << ", ";
-    
-    const E_F0 & optiexp0=*l->l->optiexp0;
-    // const E_F0 & optiexpK=*l->l->optiexpK;
-    int n_where_in_stack_opt=l->l->where_in_stack_opt.size();
-    R** where_in_stack =   0;
-    if (n_where_in_stack_opt && useopt)
-      where_in_stack = new R * [n_where_in_stack_opt];
-    if (where_in_stack)
-      {
-	assert(l->l->v.size()==(size_t) n_where_in_stack_opt);
-	for (int i=0;i<n_where_in_stack_opt;i++)
-	  {
-	    int offset=l->l->where_in_stack_opt[i];
-	    assert(offset>10);
-	    where_in_stack[i]= static_cast<R *>(static_cast<void *>((char*)stack+offset));
-	    *(where_in_stack[i])=0;
-	  }
-	if(&optiexp0) optiexp0(stack);
-	
-	if( (verbosity/100) && verbosity % 10 == 2)
-	  {
-	    int il=0;
-
-	    for (LinearOperatorD::const_iterator ll=l->l->v.begin();ll!=l->l->v.end();ll++,il++)
-	      cout << il << " coef (" << ll->first << ") = " << *(where_in_stack[il]) << " offset=" << l->l->where_in_stack_opt[il] <<endl;
-	    
-	    for (int i=0;i<n_where_in_stack_opt;i++)
-	      cout << "const coef " << i << " = " << *(where_in_stack[i]) << endl;
-	  }
-      }
-    Stack_Ptr<R*>(stack,ElemMatPtrOffset) =where_in_stack;
-    
-      KN<int>   ip(Vh.MaxNbDFPerElement*6);
-    if (verbosity >3) 
-      {
-	if (all) cout << " all " << endl ;
-	else cout << endl;
-      }
-    if (kind==CDomainOfIntegration::int2d)
-      { //AFAIRE("3D Elment RHS CDomainOfIntegration::int2d");
-        double  ss =0;
-	if(VF) InternalError(" no jump or average in int1d of RHS");
-          if(di.islevelset()) // init on level set (of RHS)
-          {
-              double uset = HUGE_VAL;
-              R3 Q[4];
-              KN<double> phi(ThI.nv);phi=uset;
-              double f[4];
-              for(int t=0; t< ThI.nt;++t)
-              {
-                  
-                  double umx=-HUGE_VAL,umn=HUGE_VAL;
-                  for(int i=0;i<4;++i)
-                  {
-                      int j= ThI(t,i);
-                      if( phi[j]==uset)
-                      {
-                          MeshPointStack(stack)->setP(&ThI,t,i);
-                          phi[j]= di.levelset(stack);//zzzz
-                      }
-                      f[i]=phi[j];
-                      umx = std::max(umx,phi[j]);
-                      umn = std::min(umn,phi[j]);
-                      
-                  }
-                  if( umn <=0 && umx >= 0)
-                  {
-                      
-                      int np= IsoLineK(f,Q,1e-10);// ca code ...
-                      if(np==3 || np==4)
-                      {  //  if(np==3) Q[3]=Q[0]; // same 0 == 3 bofbof ??? FH
-                          //   cout << " Q[0]" << Q[0] << endl;
-                          if( verbosity> 99)
-                          {
-                          R3 PP[4];
-                          const Tet  &K(ThI[t]);
-                          for(int i=0; i< np; ++i)
-                              PP[i]= K(Q[i]);
-                          for( int i =0; i+1 < np; i+=2)
-                          {
-                              int i0=i,i1=i+1,i2=(i+2)%np;
-                              R3 NN= R3(PP[i0],PP[i1])^R3(PP[i0],PP[i2]);
-                              double mes2 = (NN,NN);
-                              double mes = sqrt(mes2)/2;
-                              ss+= mes;
-                              //cout << "mes " << mes << " " << i << " , ";
-                          }
-                          }
-
-                      if ( sameMesh)
-                          Element_rhs<R>(Vh[t],*l->l,buf,stack,*B,FIT,np,Q);
-                      else
-                      //    else
-                            InternalError(" No levelSet on Diff mesh3 :    to day  int2d of RHS");
-                      //    Element_rhs<R>(ThI,ThI[t],Vh,-1,lab,*l->l,buf,stack,*B,FIT,false);
-                      }
-                      if(sptrclean) sptrclean=sptr->clean();
-                  }
-              }
-              if( verbosity> 99)
-              cout << "          surf levelset = " << ss << endl;
-              
-          }
-        else
-        for( int e=0;e<ThI.nbe;e++)
-          {
-            if (all || setoflab.find(ThI.be(e).lab) != setoflab.end())   
-              {                  
-                int ie,i =ThI.BoundaryElement(e,ie);
-                if ( sameMesh) 
-                  Element_rhs<R>(Vh[i],ie,Th.be(e).lab,*l->l,buf,stack,*B,FIT,false); 
-                else 
-                  Element_rhs<R>(ThI,ThI[i],Vh,ie,Th.be(e).lab,*l->l,buf,stack,*B,FIT,false); 
-               if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr   
-              }
-	      } 
-      }
-    else if (kind==CDomainOfIntegration::intalledges)
-      {	 AFAIRE("3D Elment RHS CDomainOfIntegration::intalledges");
-       /*
-       if(VF)
-	 {
-	   pair_stack_double bstack; 
-	   
-	   bstack.first = stack;
-	   bstack.second= & binside;
-	   
-	   //InternalError(" Today no jump or average in intalledges of RHS ");
-	   for (int i=0;i< ThI.nt; i++) 
-	     if (all || setoflab.find(ThI[i].lab) != setoflab.end()) 
-	       {
-		 
-		 for (int ie=0;ie<3;ie++)
-		   if ( sameMesh) 
-		     {
-		       int iie=ie,ii=Th.ElementAdj(i,iie);	
-		       if(ii<0) ii=i;//  sur le bord	
-			      Element_rhsVF<R>(Vh[i],Vh[ii],ie,iie,Th[i].lab,*l->l,buf,ip,&bstack,*B,FIE); 
-		     }
-		   else 
-		     InternalError("To Do") ;
-		 if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-		  }
-	   
-	 }
-       else 
-	 for (int i=0;i< ThI.nt; i++) 
-	   if (all || setoflab.find(ThI[i].lab) != setoflab.end()) 
-	     {
-         for (int ie=0;ie<3;ie++)
-	   if ( sameMesh) 
-	     Element_rhs<R>(Vh[i],ie,Th[i].lab,*l->l,buf,stack,*B,FIE,true); 
-	   else 
-	     InternalError("To Do") ;
-	 if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-	 }*/
-      }
-    else if (kind==CDomainOfIntegration::intallVFedges)
-      {
-	cerr << " intallVFedges a faire" << endl;
-	
-	InternalError(" intallVFedges a faire ");
-	
-	ffassert(0);/*
-      for (int i=0;i< ThI.nt; i++) 
-      {
-      if (all || setoflab.find(ThI[i].lab) != setoflab.end()) 
-         for (int ie=0;ie<3;ie++)
-	 if ( sameMesh) 
-	 Element_rhs<R>(Vh[i],ie,Th[i].lab,*l->l,buf,stack,*B,FIE,true); 
-	 else 
-                InternalError("To Do") ;
-		if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-		    
-		}*/
-      }
-    
-    else if(kind==CDomainOfIntegration::int3d) {
-        if(di.islevelset())  //  may 2014 FH ...
-        {   // int3d levelset < 0
-            double llevelset = 0;
-            const double uset = std::numeric_limits<double>::max();
-            // cout << " uset ="<<uset << endl;
-            R3 Q[3][4];
-            double vol6[3];
-            KN<double> phi(Th.nv);
-            phi=uset;
-            double f[4];
-            
-            for (int t=0;t< Th.nt; t++)
-            {
-                
-                const Mesh3::Element & K(ThI[t]);
-                if (all || setoflab.find(ThI[t].lab) != setoflab.end())
-
-                {
-                    double umx=std::numeric_limits<double>::min(),umn=std::numeric_limits<double>::max();
-                    for(int i=0;i<4;++i)
-                    {
-                        int j= ThI(t,i);
-                        if( phi[j]==uset)
-                        {
-                            MeshPointStack(stack)->setP(&ThI,t,i);
-                            phi[j]= di.levelset(stack);//zzzz
-                        }
-                        f[i]=phi[j];
-                    }
-                    int ntets= UnderIso(f,Q, vol6,1e-14);
-                    setQF<R3>(FIV,FIVo,QuadratureFormular_Tet_1, Q,vol6,ntets);
-                    if(FIV.n)
-                    {
-                    if ( sameMesh )
-                       Element_rhs<R>(Vh[t],*l->l,buf,stack,*B,FIV);
-                    else
-                        Element_rhs<R>(ThI,ThI[t],Vh,*l->l,buf,stack,*B,FIV);
-                    if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-                    
-                    }
-                 }
-            }
-          FIV=FIVo;
-        }
-        else
-        {
-      
-      for (int i=0;i< ThI.nt; i++) 
-        if (all || setoflab.find(ThI[i].lab) != setoflab.end()) 
-	  {
-	    if ( sameMesh ) 
-	      Element_rhs<R>(Vh[i],*l->l,buf,stack,*B,FIV); 
-	    else 
-	      Element_rhs<R>(ThI,ThI[i],Vh,*l->l,buf,stack,*B,FIV);
-            if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-	  }}
-    }  
-    else  if(kind==CDomainOfIntegration::intallfaces    ) {
-        
-	if(VF) InternalError(" no jump or average in intallfaces of RHS");
-        
-        for(int i=0;i<ThI.nt; i++)
-            for(int ie=0;ie<Mesh3::nea; ie++)
-        {
-            int lab=0;
-            // if face on bord get the lab ??? 
-                if ( sameMesh)
-                    Element_rhs<R>(Vh[i],ie,lab,*l->l,buf,stack,*B,FIT,false);
-                else
-                    Element_rhs<R>(ThI,ThI[i],Vh,ie,lab,*l->l,buf,stack,*B,FIT,false);
-                if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-            
-        }
-    }
-    else 
-    {
-      cout << " Strange (unknows) kind = " << kind << endl; 
-      ffassert(0);
-    }
-    if (n_where_in_stack_opt) delete [] where_in_stack;
-             
-  }
-
-
-template<class R>
- void AssembleLinearForm(Stack stack,const Mesh & Th,const FESpace & Vh,KN_<R> * B,const  FormLinear * l )
-  {
-     StackOfPtr2Free * sptr = WhereStackOfPtr2Free(stack);
-     bool sptrclean=true;
-     //     sptr->clean(); // modif FH mars 2006  clean Ptr
-    Check(l->l,Vh.N);
-    if ( B && B->N() != Vh.NbOfDF) ExecError("AssembleLinearForm size rhs and nb of DF of Vh");
-   // if ( & Th != &Vh.Th ) ExecError("AssembleLinearForm on different meshes  ( not implemented FH).");
-    KN<double> buf(Vh.MaximalNbOfDF()*last_operatortype*Vh.N*2);
-    
-    //            const  FormLinear * l=dynamic_cast<const  FormLinear *>(e);
-    const CDomainOfIntegration & di= *l->di;
-    const Mesh & ThI = Th;//* GetAny<pmesh>( (* di.Th)(stack));
-    bool sameMesh = &ThI == &Vh.Th;
-    const bool intmortar=di.intmortar(stack);
-    
-    SHOWVERB(cout << " FormLinear " << endl);
-   // const vector<Expression>  & what(di.what);
-    
-    CDomainOfIntegration::typeofkind  kind = di.kind;
-    const QuadratureFormular1d & FIE = di.FIE(stack);
-    const QuadratureFormular & FIT = di.FIT(stack);
-    const bool useopt=di.UseOpt(stack);    
-     double binside=di.binside(stack);  // truc FH pour fluide de grad2 (decentrage bizard)  
-  //  cout << "AssembleLinearForm " << l->l->v.size() << endl; 
-    set<int> setoflab;
-    bool all=true; 
-    bool VF=l->VF();  // finite Volume or discontinous Galerkin
-    if (verbosity>2) cout << "  -- AssembleLinearForm 2, discontinous Galerkin  =" << VF << " binside = "<< binside
-          << " levelset integration " <<di.islevelset()<<  "\n";
-
-    if (verbosity>3) 
-      {
-	if (CDomainOfIntegration::int1d==kind) cout << "  -- boundary int border ( nQP: "<< FIE.n << ") , samemesh :"<< sameMesh<< " int mortar: " << intmortar ;
-	else  if (CDomainOfIntegration::intalledges==kind) cout << "  -- boundary int all edges ( nQP: "<< FIE.n << "),"  ;
-	else  if (CDomainOfIntegration::intallVFedges==kind) cout << "  -- boundary int all VF edges nQP: ("<< FIE.n << ")," ;
-	else cout << "  --  int    (nQP: "<< FIT.n << " ) in "  ;
-      }
-    /*
-    if ( verbosity>3) 
-      if (kind==CDomainOfIntegration::int1d) cout << "  -- boundary int border " ;
-      else if (kind==CDomainOfIntegration::intalledges) cout << "  -- boundary int all edges " ;
-      else if (kind==CDomainOfIntegration::intallVFedges) cout << "  -- boundary int all edges " ;
-      else cout << "  -- boundary int  " ;
-    */
-      if(di.islevelset() && ( (CDomainOfIntegration::int1d!=kind) && (CDomainOfIntegration::int2d!=kind) )  )
-          InternalError("So no levelset integration type on no int1d/int2d case (4)");
-     Expandsetoflab(stack,di, setoflab,all);
-    /*
-    for (size_t i=0;i<what.size();i++)
-      {long  lab  = GetAny<long>( (*what[i])(stack));
-      setoflab.insert(lab);
-      if ( verbosity>3) cout << lab << " ";
-      all=false;
-      } */
-    if (verbosity>3) cout << " Optimized = "<< useopt << ", ";
-    
-    const E_F0 & optiexp0=*l->l->optiexp0;
-    // const E_F0 & optiexpK=*l->l->optiexpK;
-    int n_where_in_stack_opt=l->l->where_in_stack_opt.size();
-    R** where_in_stack =0;
-    if (n_where_in_stack_opt && useopt)
-      where_in_stack = new R * [n_where_in_stack_opt];
-    if (where_in_stack)
-      {
-	assert(l->l->v.size()==(size_t) n_where_in_stack_opt);
-	for (int i=0;i<n_where_in_stack_opt;i++)
-	  {
-	    int offset=l->l->where_in_stack_opt[i];
-	    assert(offset>10);
-	    where_in_stack[i]= static_cast<R *>(static_cast<void *>((char*)stack+offset));
-	    *(where_in_stack[i])=0;
-	  }
-	if(&optiexp0) optiexp0(stack);
-	
-	if( (verbosity/100) && verbosity % 10 == 2)
-	  {
-	    int il=0;
-
-	    for (LinearOperatorD::const_iterator ll=l->l->v.begin();ll!=l->l->v.end();ll++,il++)
-	      cout << il << " coef (" << ll->first << ") = " << *(where_in_stack[il]) << " offset=" << l->l->where_in_stack_opt[il] <<endl;
-	    
-	    for (int i=0;i<n_where_in_stack_opt;i++)
-	      cout << "const coef " << i << " = " << *(where_in_stack[i]) << endl;
-	  }
-      }
-    Stack_Ptr<R*>(stack,ElemMatPtrOffset) =where_in_stack;
-    
-      KN<int>   ip(Vh.MaxNbDFPerElement*6);
-    if (verbosity >3) 
-      {
-	if (all) cout << " all " << endl ;
-	else cout << endl;
-      }
-      if(di.islevelset() && (kind !=CDomainOfIntegration::int1d)&& (kind !=CDomainOfIntegration::int2d))
-       InternalError(" Sorry No levelSet integral for is case ..(5)");
-         
-
-    if (kind==CDomainOfIntegration::int1d)
-      {
-          
-          
-          if(VF) InternalError(" no jump or average in int1d of RHS");
-          if(di.islevelset())
-          {
-              double uset = HUGE_VAL;
-              R2 Q[3];
-              KN<double> phi(ThI.nv);phi=uset;
-              double f[3];
-              for(int t=0; t< ThI.nt;++t)
-              {
-                  double umx=-HUGE_VAL,umn=HUGE_VAL;
-                  for(int i=0;i<3;++i)
-                  {
-                      int j= ThI(t,i);
-                      if( phi[j]==uset)
-                      {
-                          MeshPointStack(stack)->setP(&ThI,t,i);
-                          phi[j]= di.levelset(stack);//zzzz
-                      }
-                      f[i]=phi[j];
-                      umx = std::max(umx,phi[j]);
-                      umn = std::min(umn,phi[j]);
-                      
-                  }
-                  if( umn <=0 && umx >= 0)
-                  {
-                      
-                      int np= IsoLineK(f,Q,1e-10);
-                      if(np==2)
-                      {
-                          if ( sameMesh)
-                          {/*
-                            void  Element_rhs(const FElement & Kv,const LOperaD &Op,double * p,void * stack,KN_<R> & B,
-                            const QuadratureFormular1d & FI ,const R2 & PA,const R2 &PB)
-                            
-                            */
-                              Element_rhs<R>(Vh[t],*l->l,buf,stack,*B,FIE,Q[0],Q[1]);
-                          }
-                          else
-                              Element_rhs<R>(ThI,ThI[t],Vh,0,ThI[t].lab,*l->l,buf,stack,*B,FIE,false,intmortar,Q);
-                              
-                              //InternalError(" No levelSet on Diff mesh :    to day  int1d of RHS");
-                      }
-                      if(sptrclean) sptrclean=sptr->clean();
-                  }
-              }
-              
-        }
-       else
-           for( int e=0;e<ThI.neb;e++)
-          {
-            if (all || setoflab.find(ThI.bedges[e].lab) != setoflab.end())
-              {                  
-                int ie,i =ThI.BoundaryElement(e,ie);
-                if ( sameMesh) 
-                  Element_rhs<R>(Vh[i],ie,Th.bedges[e].lab,*l->l,buf,stack,*B,FIE,false); 
-                else 
-                  Element_rhs<R>(ThI,ThI[i],Vh,ie,Th.bedges[e].lab,*l->l,buf,stack,*B,FIE,false,intmortar); 
-               if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr   
-              }
-          }
-      }
-    else if (kind==CDomainOfIntegration::intalledges)
-     {	
-      if(VF)
-        {
-	    pair_stack_double bstack(stack,& binside);
-	    
-	    //bstack.first = stack;
-	    //bstack.second= & binside;
-	    
-	    //InternalError(" Today no jump or average in intalledges of RHS ");
-	    for (int i=0;i< ThI.nt; i++) 
-		if (all || setoflab.find(ThI[i].lab) != setoflab.end()) 
-		  {
-		      
-		      for (int ie=0;ie<3;ie++)
-			  if ( sameMesh) 
-			    {
-			      int iie=ie,ii=Th.ElementAdj(i,iie);	
-			       if(ii<0) ii=i;//  sur le bord	
-			      Element_rhsVF<R>(Vh[i],Vh[ii],ie,iie,Th[i].lab,*l->l,buf,ip,&bstack,*B,FIE); 
-			    }
-			  else 
-			      InternalError("To Do") ;
-		      if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-		  }
-	    
-	}
-      else 
-      for (int i=0;i< ThI.nt; i++) 
-        if (all || setoflab.find(ThI[i].lab) != setoflab.end()) 
-         {
-         for (int ie=0;ie<3;ie++)
-            if ( sameMesh) 
-                Element_rhs<R>(Vh[i],ie,Th[i].lab,*l->l,buf,stack,*B,FIE,true); 
-             else 
-                InternalError("To Do") ;
-          if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-          }
-     }
-    else if (kind==CDomainOfIntegration::intallVFedges)
-     {
-      cerr << " intallVFedges a faire" << endl;
-
-      InternalError(" intallVFedges a faire ");
-	 
-      ffassert(0);
-      for (int i=0;i< ThI.nt; i++) 
-        {
-	  if (all || setoflab.find(ThI[i].lab) != setoflab.end()) 
-	    for (int ie=0;ie<3;ie++)
-	      { 
-		if ( sameMesh) 
-		  Element_rhs<R>(Vh[i],ie,Th[i].lab,*l->l,buf,stack,*B,FIE,true); 
-		else 
-		  InternalError("To Do") ;
-	      }
-	  if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-        }
-     }
-     
-    else if (kind==CDomainOfIntegration::int2d){
-        if(di.islevelset())
-        {
-            QuadratureFormular FITM(FIT);
-            double uset = HUGE_VAL;
-            R2 Q[4];
-            KN<double> phi(Th.nv);phi=uset;
-            double f[3];
-            for(int t=0; t< Th.nt;++t)
-            {
-                if ( all || setoflab.find(ThI[t].lab) != setoflab.end())
-                {
-                    double umx=-HUGE_VAL,umn=HUGE_VAL;
-                    for(int i=0;i<3;++i)
-                    {
-                        int j= ThI(t,i);
-                        if( phi[j]==uset)
-                        {
-                            MeshPointStack(stack)->setP(&ThI,t,i);
-                            phi[j]= di.levelset(stack);//zzzz
-                        }
-                        f[i]=phi[j];
-                        umx = std::max(umx,phi[j]);
-                        umn = std::min(umn,phi[j]);
-                        
-                    }
-                    if( umx <=0 )
-                        Element_rhs<R>(Vh[t],*l->l,buf,stack,*B,FIT);
-                    else if( umn <0 )
-                    { // coupe ..
-                        int i0 = 0, i1 = 1, i2 =2;
-                        
-                        if( f[i0] > f[i1] ) swap(i0,i1) ;
-                        if( f[i0] > f[i2] ) swap(i0,i2) ;
-                        if( f[i1] > f[i2] ) swap(i1,i2) ;
-                        
-                        double c = (f[i2]-f[i1])/(f[i2]-f[i0]); // coef Up Traing
-                        if( f[i1] < 0 ) {double y=f[i2]/(f[i2]-f[i1]); c *=y*y; }
-                        else {double y=f[i0]/(f[i0]-f[i1]) ; c = 1.- (1.-c)*y*y; };
-                        assert( c > 0 && c < 1);
-                        double arean = (1-c)*Th[t].area;
-                        FITM=FIT;
-                        FITM*=1-c;
-                        Element_rhs<R>(Vh[t],*l->l,buf,stack,*B,FITM);
-                    }
-                    if(sptrclean) sptrclean=sptr->clean();
-                }
-            }
-        }
-        else
-            for (int i=0;i< ThI.nt; i++)
-                if (all || setoflab.find(ThI[i].lab) != setoflab.end())
-                {
-                    if ( sameMesh )
-                        Element_rhs<R>(Vh[i],*l->l,buf,stack,*B,FIT);
-                    else
-                        Element_rhs<R>(ThI,ThI[i],Vh,*l->l,buf,stack,*B,FIT);
-                    if(sptrclean) sptrclean=sptr->clean(); // modif FH mars 2006  clean Ptr
-                }
-    }
-      
-      if (n_where_in_stack_opt) delete [] where_in_stack;
-      
-  }
-    
-  
-}// END of NameSpace Fem2D
-
-
-bool isVF(const list<C_F0> & largs)  // true => VF type of Matrix   
-{
-  list<C_F0>::const_iterator ii,ib=largs.begin(),
-    ie=largs.end();
-    
-  bool VVF =false;   
-  for (ii=ib;ii != ie;ii++)
-    {
-      Expression e=ii->LeftValue();
-      aType r = ii->left();
-      if (r==atype<const  FormBilinear *>()) 
-        {
-          const  FormBilinear * bb=dynamic_cast<const  FormBilinear *>(e);
-          bool vvf  = bb->VF();
-          if( vvf &&  (bb->di->kind != CDomainOfIntegration::intalledges && bb->di->kind != CDomainOfIntegration::intallVFedges  )
-             &&  (bb->di->kind != CDomainOfIntegration::intallfaces ))
-            CompileError("Sorry, no  jump or moy in bilinear form no of type intalledges or intallVFedges ");
-           VVF = vvf || VVF;
-          }
-    }
-  return VVF;
-} 
-
-
-bool isSameMesh(const list<C_F0> & largs,const void * Thu,const void * Thv,Stack stack)  // true => VF type of Matrix   
-{
-  if( Thv != Thu ) return false;
-  list<C_F0>::const_iterator ii,ib=largs.begin(),
-    ie=largs.end();
-    
-  // bool VVF =false;   
-  for (ii=ib;ii != ie;ii++)
-    {
-      Expression e=ii->LeftValue();
-      aType r = ii->left();
-      if (r==atype<const  FormBilinear *>()) 
-        {
-          const  FormBilinear * bb=dynamic_cast<const  FormBilinear *>(e);
-          const void *  Thbf = GetAny<const void *>((*bb->di->Th)(stack));
-          if (Thbf != Thu) return false;
-          }
-      else if (r==atype<const  FormLinear *>()) 
-        {
-          const  FormLinear * bb=dynamic_cast<const  FormLinear *>(e);
-          const void * Thbf = GetAny<const void *>((*bb->di->Th)(stack));
-          if (Thbf != Thu) return false;
-          }
-    }
-  return true;
-} 
-
-template<class R,class FESpace,class v_fes>
-void InitProblem( int Nb, const FESpace & Uh,
-                               const FESpace & Vh,
-		  KN<R> *&B,KN<R> *&X,vector<  pair< FEbase<R,v_fes> * ,int> > &u_hh,
-                 TypeSolveMat    *typemat ,
-		  vector<  FEbase<R,v_fes> *  > & u_h,const FESpace ** LL, bool initx )
-{
-    typedef typename  FESpace::Mesh Mesh;
-    typedef typename  FESpace::FElement FElement;
-    typedef typename  Mesh::Element Element;
-    typedef typename  Mesh::Vertex Vertex;  
-    typedef typename  Mesh::RdHat RdHat;  
-    typedef typename  Mesh::Rd Rd;  
-    
-  *B=R();
-  
-//  bool initx = typemat->t==TypeSolveMat::GC;
-  
-  const  Mesh & Th(Uh.Th);
-  
-  if (initx) 
-    {
-      if (!X || (X =B) )
-        X=new KN<R>(B->N());
-      const FEbase<R,v_fes> & u_h0 = *(u_h[0]);
-      const FESpace  * u_Vh = &*u_h0.Vh ;
-      
-      if ( u_Vh==0  || &(*(u_h[0])).Vh->Th != &Th )
-        {
-          *X=R();
-          if(verbosity>1)
-            cout << "   -- Change of Mesh " << (u_Vh ? & (*(u_h[0])).Vh->Th: 0 ) 
-                 << "  " << &Th <<  endl;
-        }
-      else
-        { //  copy the previous soluton to initialize CG, GMRES, etc ...
-          if (Nb==1) 
-	    {  // modif  FH 0701/2005 + april 2006 
-	    if(u_h[0]->x()->N() != X->N() )
-	      cout << " bug ???? " << endl;
-	    if (u_h[0]->x() && u_h[0]->x()->N() == X->N() )
-	      *X= * u_h[0]->x();
-	    else
-	      *X=R();
-	    }
-          else { // dispatch the solution  
-            const FElement ** sK= new const FElement * [Nb];  
-            KN<R> ** sol= new KN<R> * [Nb];
-            for (int i=0;i<Nb;i++) {
-              
-              sol[i] = (*(u_h[i])).x() ;
-            }
-            
-            for (int it=0;it<Th.nt;it++)
-              {
-                const FElement K(Uh[it]);
-                const int nbdf=K.NbDoF();
-                for (int i=0;i<Nb;i++)
-                  sK[i]= new FElement( (*LL[i])[it]) ;
-                for (int df=0;df< nbdf;df++)
-                  {  int kfe=K.FromFE(df);
-                  int kdf=K.FromDF(df);
-                  if (sol[kfe]) {
-                     const FElement & SK(*sK[kfe]);
-                     (*X)[K(df)]= (*sol[kfe])[SK(kdf)] ;
-                    }
-                   else (*X)[K(df)]= R();
-                  }
-                for (int i=0;i<Nb;i++)
-                  delete sK[i];        
-              }
-            delete [] sol;
-            delete [] sK; 
-          }}
-    }
-
-
-} 
-
-template<class R>
-void DefSolver(Stack stack, MatriceCreuse<R>  & A, Data_Sparse_Solver & ds )
-{
-    const OneOperator* pprecon= static_cast<const OneOperator*>(ds.precon);
-    if (ds.typemat->profile)
-      {
-        if(verbosity>5) cout << " Matrix skyline type:" << ds.typemat->t <<endl;
-        MatriceProfile<R> & AA(dynamic_cast<MatriceProfile<R> &>(A));
-        throwassert(&AA);
-        double tol_pivot1= (ds.tol_pivot>0.) ? ds.tol_pivot : EPSILON/8.;
-       // cout << " tol_pivot1 " <<tol_pivot1 <<  endl; auto_ptr
-        switch (ds.typemat->t) {
-        case TypeSolveMat::LU       : AA.LU(tol_pivot1); break;
-        case TypeSolveMat::CROUT    : AA.crout(tol_pivot1); break;
-        case TypeSolveMat::CHOLESKY : AA.cholesky(tol_pivot1); break;
-        default:
-          cerr << " type resolution " << ds.typemat->t << endl;
-          CompileError("type resolution profile inconnue"); break;       
-        }
-      }
-    else 
-      {
-        if(verbosity>5) cout << " Matrix morse type:" << ds.typemat->t <<endl;
-	MatriceMorse<R> & AA(dynamic_cast<MatriceMorse<R> &>(A));
-        throwassert(&A);
-        switch (ds.typemat->t) {
-        case    TypeSolveMat::GC:   
-          if (ds.precon)
-            AA.SetSolverMaster(new SolveGCPrecon<R>(AA,pprecon,stack,ds.itmax,ds.epsilon));
-          else 
-            AA.SetSolverMaster(new SolveGCDiag<R>(AA,ds.itmax,ds.epsilon));
-          break; 
-        case TypeSolveMat::GMRES :
-          if (ds.precon)
-            AA.SetSolverMaster(new SolveGMRESPrecon<R>(AA,pprecon,stack,ds.NbSpace,ds.itmax,ds.epsilon));
-          else 
-            AA.SetSolverMaster(new SolveGMRESDiag<R>(AA,ds.NbSpace,ds.itmax,ds.epsilon));
-         break;
-	 //#ifdef HAVE_LIBUMFPACK         
-        case TypeSolveMat::SparseSolver :
-	  AA.SetSolverMaster(DefSparseSolver<R>::Build(stack,&AA,ds));
-//           AA.SetSolverMaster(new SolveUMFPack<R>(AA,umfpackstrategy,tgv,eps,tol_pivot,tol_pivot_sym));
-         break;
-        case TypeSolveMat::SparseSolverSym :
-                AA.SetSolverMaster(DefSparseSolverSym<R>::Build(stack,&AA,ds));
-                //           AA.SetSolverMaster(new SolveUMFPack<R>(AA,umfpackstrategy,tgv,eps,tol_pivot,tol_pivot_sym));
-                break;
-          
-//#endif         
-        default:
-          cerr << " type resolution " << ds.typemat->t << endl;
-          CompileError("type resolution inconnue"); break;       
-        }
-        
-      }
-  }  
-
-bool SetGMRES()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse (morse) solver to GMRES" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverGMRES;
-    DefSparseSolver<Complex>::solver =BuildSolverGMRES; 
-    return true;
-}
-
-bool SetCG()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse (morse) solver to CG" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverCG;
-    DefSparseSolver<Complex>::solver =BuildSolverCG; 
-    return true;
-}
-
-#ifdef XXXXXXXXXXX
-#ifdef HAVE_LIBUMFPACK
-bool SetUMFPACK()
-{
-    if(verbosity>1)
-	cout << " SetDefault sparse solver to UMFPack" << endl;
-    DefSparseSolver<double>::solver  =BuildSolverUMFPack;
-    DefSparseSolver<Complex>::solver =BuildSolverUMFPack;  
-    return true;
-}
-
-template <>
-DefSparseSolver<double>::SparseMatSolver  DefSparseSolver<double>::solver =BuildSolverUMFPack;
-template <>
-DefSparseSolver<Complex>::SparseMatSolver  DefSparseSolver<Complex>::solver =BuildSolverUMFPack;
-
-#else
-template <>
-DefSparseSolver<double>::SparseMatSolver  DefSparseSolver<double>::solver =BuildSolverGMRES;
-template <>
-DefSparseSolver<Complex>::SparseMatSolver  DefSparseSolver<Complex>::solver =BuildSolverGMRES;
-
-bool SetUMFPACK()
-{
-    if(verbosity>1)
-	cout << " Sorry no UMFPack" << endl;
-    return false;
-}
-
-#endif
-#endif
-template <>
-DefSparseSolverSym<double>::SparseMatSolver  DefSparseSolverSym<double>::solver =BuildSolverGMRES;
-template <>
-DefSparseSolverSym<Complex>::SparseMatSolver  DefSparseSolverSym<Complex>::solver =BuildSolverGMRES;
-
- 
-template<class R>
- MatriceCreuse<typename CadnaType<R>::Scalaire> * DefSolverCadna(
-  Stack stack,
-  MatriceCreuse<R>  & A,
-  Data_Sparse_Solver & ds
-/*  long NbSpace , 
-  long itmax, 
-  double & eps,
-  bool initmat,
-  int strategy,
-  const OneOperator *precon,
-  double tgv,
-  double tol_pivot, double tol_pivot_sym
-*/
-)
-{
-   typedef typename CadnaType<R>::Scalaire R_st;
- //  MatriceCreuse<R_st> *CadnaMat;
-    if (ds.typemat->profile)
-      {
-        if(verbosity>5) cout << " Matrix skyline type:" << ds.typemat->t <<endl;
-        MatriceProfile<R> & AAA(dynamic_cast<MatriceProfile<R> &>(A));
-        MatriceProfile<R_st> &AA(*new MatriceProfile<R_st>(AAA)); // 
-        
-        throwassert(&AA);
-        double tol_pivot1= (ds.tol_pivot>0) ? ds.tol_pivot : EPSILON/8.;
-       // cout << " tol_pivot1 " <<tol_pivot1 <<  endl;
-        switch (ds.typemat->t) {
-        case TypeSolveMat::LU       : AA.LU(tol_pivot1); break;
-        case TypeSolveMat::CROUT    : AA.crout(tol_pivot1); break;
-        case TypeSolveMat::CHOLESKY : AA.cholesky(tol_pivot1); break;
-        default:
-          cerr << " type resolution " << ds.typemat->t << endl;
-          CompileError("type resolution profile inconnue"); break;       
-        }
-        return &AA;
-      }
-    else 
-      {
-         ExecError("matrix morse & CADNA are incompatible today, sorry!");
-         return 0;
-      }
-   return 0;   
-  }      
-  
-template<class R,class FESpace,class v_fes>   
-void   DispatchSolution(const typename FESpace::Mesh & Th,int Nb, vector<  FEbase<R,v_fes> * > & u_h,KN<R> * X,KN<R> * B,const FESpace **  LL,const FESpace &  Uh)
-  {
-      typedef typename  FESpace::Mesh Mesh;
-      typedef typename  FESpace::FElement FElement;
-      typedef typename  Mesh::Element Element;
-      typedef typename  Mesh::Vertex Vertex;  
-      typedef typename  Mesh::RdHat RdHat;  
-      typedef typename  Mesh::Rd Rd;  
-      
-   // dispatch the solution 
-  if (Nb==1)  {
-    *(u_h[0])=X;
-    if (X != B ) delete B;  }
-  else {
-    const FElement ** sK= new const FElement * [Nb];
-    
-    KN<R> ** sol= new KN<R> * [Nb];
-    for (int i=0;i<Nb;i++) {
-      sol[i]= new KN<R>( LL[i]->NbOfDF) ;
-      *(u_h[i]) = sol[i];
-    }
-    
-    for (int it=0;it<Th.nt;it++)
-      {
-        const FElement K(Uh[it]);
-        const int nbdf=K.NbDoF();
-        for (int i=0;i<Nb;i++)
-          sK[i]= new FElement( (*LL[i])[it]) ;
-        for (int df=0;df< nbdf;df++)
-          {  int kfe=K.FromFE(df);
-          int kdf=K.FromDF(df);
-          const FElement & SK(*sK[kfe]);
-          (*sol[kfe])[SK(kdf)] = (*X)[K(df)];
-          }
-        for (int i=0;i<Nb;i++)
-          delete sK[i];
-        
-      }
-    
-     delete [] sK;
-     delete [] sol;
-     if (X != B && X ) delete X; 
-     delete B; 
-  }
-  }
-
-#ifdef HAVE_LIBUMFPACK   
-TypeSolveMat::TSolveMat  TypeSolveMat::defaultvalue=TypeSolveMat::SparseSolver;
-#else
-TypeSolveMat::TSolveMat  TypeSolveMat::defaultvalue=TypeSolveMat::LU;
-#endif
-
-
-template<class R,class FESpace,class v_fes>
-AnyType Problem::eval(Stack stack,Data<FESpace> * data,CountPointer<MatriceCreuse<R> > & dataA, 
-      MatriceCreuse< typename CadnaType<R>::Scalaire >   * & cadnamat ) const
-{  
-    typedef typename  FESpace::Mesh Mesh;
-    typedef typename  FESpace::FElement FElement;
-    typedef typename  Mesh::Element Element;
-    typedef typename  Mesh::Vertex Vertex;  
-    typedef typename  Mesh::RdHat RdHat;  
-    typedef typename  Mesh::Rd Rd;  
-    
-  using namespace Fem2D;
-  typedef typename CadnaType<R>::Scalaire R_st;
-  MeshPoint *mps= MeshPointStack(stack),mp=*mps;
-    Data_Sparse_Solver ds;
- /* long NbSpace = 50; 
-  long itmax=0; 
-  double epsilon=1e-6;*/
-  string save;
-    
-//  bool VF=false;
-//  VF=isVF(op->largs);
- // assert(!VF); 
-//  double tgv = 1e30;
-// type de matrice par default
-    TypeSolveMat tmat(TypeSolveMat::defaultvalue); 
-     
-   ds.typemat=&tmat;
- // bool initmat=true;
-/*
-    int strategy=0;
-  double tol_pivot=-1.; // defaut UMFPACK value  Add FH 31 oct 2005 
-  double tol_pivot_sym=-1.; // defaut Add FH 31 oct 2005 
-  
-  KN<int> param_int;
-  KN<double> param_double; 
-  string *param_char = NULL;
-  KN<int> perm_r; 
-  KN<int> perm_c;
-  string *file_param_int;  // Add J. Morice 02/09 
-  string *file_param_double; 
-  string* file_param_char;
-  string* file_param_perm_r;
-  string* file_param_perm_c;  
-*/
-  KN<double>* cadna=0; 
-/*
- {  "save",&typeid(string* )}, 0
- {  "cadna",&typeid(KN<double>*)}, 1
- {  "bmat",&typeid(Matrice_Creuse<R>* )}, 2
- 
- */
- if (nargs[0]) save = *GetAny<string*>((*nargs[0])(stack));
- if (nargs[1]) cadna= GetAny<KN<double>* >((*nargs[1])(stack));   
-  // bmat not used .... bizarre  
-/*    
-  if (nargs[0]) ds.initmat= ! GetAny<bool>((*nargs[0])(stack));
-  if (nargs[1]) ds.typemat= GetAny<TypeSolveMat *>((*nargs[1])(stack));
-  if (nargs[2]) ds.epsilon= GetAny<double>((*nargs[2])(stack));
-  // 3 precon 
-  if (nargs[4]) ds.NbSpace= GetAny<long>((*nargs[4])(stack));
-  if (nargs[6]) ds.tgv= GetAny<double>((*nargs[6])(stack));
-  if (nargs[7]) ds.strategy = GetAny<long>((*nargs[7])(stack));
-  if (nargs[8]) save = *GetAny<string*>((*nargs[8])(stack));
-  if (nargs[9]) cadna= GetAny<KN<double>* >((*nargs[9])(stack));
-*/
-/*
-  if (nargs[10]) ds.tol_pivot= GetAny<double>((*nargs[10])(stack));
-  if (nargs[11]) ds.tol_pivot_sym= GetAny<double>((*nargs[11])(stack));
-  if (nargs[12]) ds.itmax = GetAny<long>((*nargs[12])(stack)); //  fevr 2007
-
-  if (nargs[13]) ds.param_int= GetAny< KN<int> >((*nargs[13])(stack));  // Add J. Morice 02/09 
-  if (nargs[14]) ds.param_double= GetAny< KN<double> >((*nargs[14])(stack));
-  if (nargs[15]) ds.param_char= GetAny< string * >((*nargs[15])(stack));  //
-  if (nargs[16]) ds.perm_r = GetAny< KN<int > >((*nargs[16])(stack));
-  if (nargs[17]) ds.perm_c = GetAny< KN<int> >((*nargs[17])(stack));  //
-  if (nargs[18]) ds.file_param_int= GetAny< string* >((*nargs[18])(stack));  // Add J. Morice 02/09 
-  if (nargs[19]) ds.file_param_double= GetAny< string* > ((*nargs[19])(stack));
-  if (nargs[20]) ds.file_param_char= GetAny< string* >((*nargs[20])(stack));  //
-  if (nargs[21]) ds.file_param_perm_r = GetAny< string* >((*nargs[21])(stack));
-  if (nargs[22]) ds.file_param_perm_c = GetAny< string* >((*nargs[22])(stack));  //
- */
-    SetEnd_Data_Sparse_Solver<R>(stack,ds,nargs,n_name_param);
-
-
-  //  for the gestion of the PTR. 
-  WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH aout 2007 
-
-  bool sym = ds.typemat->sym;
-  
-  list<C_F0>::const_iterator ii,ib=op->largs.begin(),
-    ie=op->largs.end();
-  int Nbcomp2=var.size(),Nbcomp=Nbcomp2/2; // nb de composante 
-  throwassert(Nbcomp2==2*Nbcomp);
-//  Data *data= dataptr(stack);
-  //   data->init();
-  KN<int>  which_comp(Nbcomp2),which_uh(Nbcomp2);
-  
-  TabFuncArg tabexp(stack,Nbcomp);
-  typedef pair< FEbase<R,v_fes> *,int> pfer;
-  vector< pair< FEbase<R,v_fes> *,int> > u_hh(Nbcomp2); 
-  for (size_t i=0;i<var.size();i++)
-    u_hh[i] = GetAny< pfer  >( (*(var[i]))(stack));
-  for (size_t i=0;i<var.size();i++)
-    u_hh[i].first->newVh(); 
-  //   compression pour les cas vectoriel
-  int kkk=0;
-  for (int i=0;i<Nbcomp2;i++)
-    {
-      if ( u_hh[i].second==0) 
-        kkk++;
-      else {          
-        throwassert(u_hh[i].second==(u_hh[i-1].second+1));}
-      which_uh[i]=kkk-1;  
-      which_comp[i]=u_hh[i].second;  
-    }
-  
-  vector<  FEbase<R,v_fes> * > u_h(kkk); 
-  kkk= 0;
-  for (int i=0;i<Nbcomp2;i++)
-    if ( u_hh[i].second==0) u_h[kkk++]=u_hh[i].first;
-  const int  Nb2 = kkk, Nb=Nb2/2; // nb of FESpace 
-  throwassert(Nb2==2*Nb);
-  
-  //const FESpace ** LL = new  const FESpace *[var.size()];
-  KN<const FESpace *> LL(var.size());
-  for (int i=0;i<Nb2;i++)
-    LL[i]= (*(u_h[i])).newVh();
-  SHOWVERB(cout << "Problem  " << Nb << endl);
-  
-  //   const de  
-  
-  //  const FESpace * Uhh , *Vhh;
-  const Mesh * pTh= &LL[0]->Th;
-  for (int i=0;i<Nb2;i++)
-    if ( &LL[i]->Th != pTh)
-      ExecError("all the finites elements spaces must be defined on the same mesh in solve");
-  if ( pTh != data->pTh ) 
-    {
-       ds.initmat = true;
-       data->pTh=pTh;
-       if (Nb==1) 
-         { //  cas scalaire
-           data->Uh=LL[0];
-           data->Vh=LL[1]; }
-       else 
-         { //  cas vectoriel 
-           bool same=true;
-           for (int i=0;i<Nb;i++)
-             if ( LL[i] != LL[Nb+i] )
-               {
-                 same = false;
-                 break;
-               }
-           if(!same)
-             InternalError("Methode de Galerkine (a faire)");
-           else
-             {
-               
-               bool unique=true;
-               for (int i=1;i<Nb;i++)
-                 if ( LL[0] != LL[i]) 
-                   {
-                     unique = false;
-                     break;
-                   }
-               if (unique) 
-                 data->Uh.master( new FESpace(*LL[0],Nb));
-               else 
-                 data->Uh.master(new FESpace(LL,Nb));
-               data->Vh=data->Uh;
-             }
-           
-         }
-    }          
-               
-  const FESpace & Uh(*data->Uh);    
-  const FESpace & Vh(*data->Vh);
-  throwassert(Nbcomp==Uh.N && Nbcomp==Vh.N); 
-  KN<R> *B=new KN<R>(Vh.NbOfDF);
-  KN<R> *X=B; //
-  const  Mesh & Th(Uh.Th);
-  bool initx = true; //typemat->t==TypeSolveMat::GC ; //  make x and b different in all case 
-  // more safe for the future ( 4 days lose with is optimization FH )
-
-  InitProblem<R,FESpace,v_fes>(  Nb,  Uh, Vh, B, X,u_hh,ds.typemat , u_h,  LL,  initx);
-
-  if(verbosity>2) cout << "   Problem(): initmat " << ds.initmat << " VF (discontinuous Galerkin) = " << VF << endl;
-  
-
-  
-  if (ds.initmat) 
-   {
-    if (ds.typemat->profile) 
-      {
-      dataA.master(new MatriceProfile<R>(Vh,VF));      
-      }
-    else 
-      {
-        if ( &Uh == & Vh )
-          dataA.master(new MatriceMorse<R>(Vh,sym,VF));
-        else 
-          dataA.master(new MatriceMorse<R>(Vh,Uh,VF));
-      }
-      MatriceCreuse<R>  & AA(dataA);
-     if(verbosity>1) cout <<  "   -- size of Matrix " << AA.size()<< " Bytes" << " skyline =" <<ds.typemat->profile << endl;
-    }
-  MatriceCreuse<R>  & A(dataA);
-  if  (AssembleVarForm( stack,Th,Uh,Vh,sym, ds.initmat ? &A:0 , B, op->largs)) 
-    { 
-      *B = - *B; 
-      // hach FH 
-      for (int i=0, n= B->N(); i< n; i++)
-        if( abs((*B)[i]) < 1.e-60 ) (*B)[i]=0;
-        
-      AssembleBC<R,FESpace>     ( stack,Th,Uh,Vh,sym, ds.initmat ? &A:0 , B, initx ? X:0,  op->largs, ds.tgv );
-    }
-  else 
-    *B = - *B;
-  MatriceCreuse<R_st>  * ACadna = 0;
-  
-  
-  try {  
-  
-  if (ds.initmat)
-    {
-      if(cadna)
-	ACadna = DefSolverCadna( stack,A, ds);
-      else
-	DefSolver(stack,  A, ds);
-    }
-
-
-      
- // if(verbosity>3) cout << "   B  min " << B->min() << " ,  max = " << B->max() << endl;
-  if( save.length() )
-  {
-      string savem=save+".matrix";
-      string saveb=save+".b";
-    {
-     ofstream outmtx( savem.c_str());
-     outmtx << A << endl;
-    }  
-    {
-     ofstream outb(saveb.c_str());
-     outb<< *B << endl;
-    }  
-     
-  }
-  if (verbosity>99)
-   {
-    cout << " X= " << *X << endl;
-    cout << " B= " << *B << endl;
-    }
-    
-   if(ACadna)  
-    {
-     KN<R_st> XX(*X);
-     KN<R_st> BB(*B);
-     ACadna->Solve(XX,BB);
-     *X=XX;
-     *cadna =-1.;            
-
-#ifdef HAVE_CADNA     
-     R_st xxmin = XX.min();
-     R_st xxmax = XX.max();
-     cout  << "    cadna:      min " <<  xxmin << "/ nd " << cestac(xxmin) 
-	   << " ,   max " << xxmax << " / nd " << cestac(xxmax)   << endl ;
-     int nn= XX.N();
-     if ( cadna->N() == nn )
-       for (int i=0;i<nn;++i)
-         (*cadna)[i] = cestac(XX[i]);
-     else
-       cerr << "Warning: Sorry array is incorrect size to store cestac " 
-	    << nn << " != " << cadna->N() << endl;
-#endif
-    }
-  else
-    
-    A.Solve(*X,*B);
-   
-    if (verbosity>99)
-    {
-      cout << " X= " << *X << endl;
-     }
-    }
-   catch (...)
-   {
-     if(verbosity) cout << " catch an erreur in  solve  =>  set  sol = 0 !!!!!!! "   <<  endl;
-     *X=R(); // erreur set the sol of zero ???? 
-     DispatchSolution<R,FESpace,v_fes>(Th,Nb,u_h,X,B,LL,Uh);
-     throw ; 
-   }
-   DispatchSolution<R,FESpace,v_fes>(Th,Nb,u_h,X,B,LL,Uh);
-  
- 
-  if (verbosity) 
-    {cout << "  -- Solve : \n" ; 
-    for (int i=0;i<Nb;i++) 
-      cout  << "          min " << (u_h[i])->x()->min() << "  max " << (u_h[i])->x()->max() << endl ;
-    }
-    
- // delete [] LL;
- // if (save) delete save; // clean memory
-  *mps=mp;
-  return SetAny<const Problem *>(this);
-}
-
-
-
-int dimProblem(const ListOfId &l)
-{
-    int dim=2;
-    int nb=l.size();//,nbarray=0;//,n=0,
-    //const UnId *p1;
-    if(nb>0) 
-      {
-	  if (l[0].array) 
-	    {
-		ListOfId * array=l[0].array;
-		if(array->size()>0)
-		  {
-		      const UnId & idi( (*array)[0]);
-		      if (idi.r == 0 && idi.re  == 0 && idi.array==0 ) 
-			{
-			    C_F0 c=::Find( idi.id);
-			    if(BCastTo<pf3c>(c) ) dim=3;
-			    if(BCastTo<pf3r>(c) ) dim=3;	
-			}
-		  }
-	    }
-	  else 
-	    {
-		C_F0 c=::Find(l[0].id);
-		if(BCastTo<pf3c>(c) ) dim=3;
-		if(BCastTo<pf3r>(c) ) dim=3;	  
-	    }
-	  
-      }
-    return dim;
-    
-}
-template<class pfer,class pfec>
-bool GetBilinearParam(const ListOfId &l,basicAC_F0::name_and_type *name_param,int n_name_param,
-                      Expression *nargs,int & N,int & M,  vector<Expression> & var )
-{
-  bool unset=true,complextype=false;
-  
-  for (int i=0;i<n_name_param;i++)
-    nargs[i]=0;
-  int nb=l.size(),n=0,nbarray=0;
-  ListOfId * array[2];
-  for (int i=0;i<nb;i++)
-    if (l[i].r == 0 && l[i].re  == 0 && l[i].array == 0) 
-      n++;
-       else if (l[i].array) array[Min(nbarray++,1)] = l[i].array;
-    else 
-      {  
-        bool ok=false;
-        for (int j=0;j<n_name_param;j++)
-          if (!strcmp(l[i].id,name_param[j].name))
-            {
-              ok = !nargs[j];
-              nargs[j]= map_type[name_param[j].type->name()]->CastTo(C_F0(l[i].e,l[i].re));
-              break;
-            }
-        if (!ok) 
-          {
-            cerr << " Error name argument " << l[i].id << " the kown arg : "; 
-            for (int k=0;k<n_name_param;k++)
-              cerr << name_param[k].name << " ";
-            cerr << endl;
-                 CompileError("Unkown name argument or two times same name argument ");
-          }
-      }
-  
-  if (nbarray)
-    { // new version ok
-      if(nbarray!=2) 
-        CompileError(" Must have 2 array, one for unknow functions, one for test functions");
-      N = array[0]->size();
-      M = array[1]->size();
-      var.resize(N+M);
-      for (size_t k=0,j=0;k<2;k++)
-        for  (size_t i=0;i<array[k]->size();i++)
-          { 
-            const UnId & idi((*array[k])[i]);
-            if (idi.r == 0 && idi.re  == 0 && idi.array==0 ) 
-              { C_F0 c=::Find( idi.id);
-              if (unset) 
-                complextype =  BCastTo<pfec>(c) , unset=false;
-
-              if(complextype) 
-              var[j++]=CastTo<pfec>(c);
-              else 
-              var[j++]=CastTo<pfer>(c);
-               }         
-            else 
-              CompileError(" Just Variable in array parameter ");   
-          }   
-    }
-  else
-    { // old version
-      assert(n%2==0);
-      N=n/2;
-      M=N; 
-      var.resize(N+M);
-      for  (size_t i=0,j=0;i<l.size();i++)
-        if (l[i].r == 0 && l[i].re  == 0 && l[i].array==0 ) 
-          {
-            C_F0 c=::Find(l[i].id);
-              if (unset) 
-                complextype =  BCastTo<pfec>(c) , unset=false;
-              if(complextype) 
-              var[j++]=CastTo<pfec>(c);
-              else 
-              var[j++]=CastTo<pfer>(c);
-         } 
-      
-    }
-  return complextype;
-}
-
- 
-/*
-int DimForm( list<C_F0> & largs) 
-{
-  int dim=0;
-  list<C_F0>::iterator ii,ib=largs.begin(),
-    ie=largs.end();
-  for (ii=ib;ii != ie;ii++)
-    {
-      Expression e=ii->LeftValue();
-      aType r = ii->left();
-      if (r==atype<const  FormBilinear *>())
-        {
-          const  FormBilinear * bb=dynamic_cast<const  FormBilinear *>(e);
-	  if(dim) ffassert(bb->d==dim); 
-	  else 
-	    dim=bb->d;
-	}
-      else if (r==atype<const  FormLinear *>())
-        {
-          const  FormLinear * ll=dynamic_cast<const  FormLinear *>(e);
-	  if(dim) ffassert(bb->d==dim); 
-	  else 
-	    dim=bb->d;
-
-        }
-      else if (r == atype<const  BC_set *>())
-	{
-          const  BC_set * bc=dynamic_cast<const  BC_set *>(e);
-          if (bc->complextype)  complextype=true;
-
-	}
-    }
-
-    }*/
-bool FieldOfForm( list<C_F0> & largs ,bool complextype)  // true => complex problem 
-{
-  //  bool   iscomplextype=complextype;
-  list<C_F0>::iterator ii,ib=largs.begin(),
-    ie=largs.end();
- // bool complextype =false;   
-  for (ii=ib;ii != ie;ii++)
-    {
-      Expression e=ii->LeftValue();
-      aType r = ii->left();
-      if (r==atype<const  FormBilinear *>()) 
-        {
-          const  FormBilinear * bb=dynamic_cast<const  FormBilinear *>(e);
-          if (! bb->b->mappable(BCastToR)) 
-            complextype=true;
-          }
-      else if (r==atype<const  FormLinear *>())
-        {
-          const  FormLinear * ll=dynamic_cast<const  FormLinear *>(e);
-          if (! ll->l->mappable(BCastToR)) 
-            complextype=true;
-        }
-      else if (r == atype<const  BC_set *>())
-       {
-          const  BC_set * bc=dynamic_cast<const  BC_set *>(e);
-          if (bc->complextype)  complextype=true;
-
-       }
-    }
-   
-  for (ii=ib;ii != ie;ii++)
-    {
-      Expression e=ii->LeftValue();
-      aType r = ii->left();
-      if (r==atype<const  FormBilinear *>()) 
-        {
-          FormBilinear * bb=new FormBilinear(*dynamic_cast<const FormBilinear *>(e));
-          Foperator * b=const_cast<  Foperator *>(bb->b);
-         // const Foperator * b=bb->b;
-          //cout << b <<  " bb->b " <<  bb->b << " " <<  bb->b <<  " " << bb->b->isoptimize <<endl;                 
-          assert(b->isoptimize==false);
-          if (complextype)  b->mapping(&CCastToC);
-          else b->mapping(&CCastToR) ;  
-          Foperator * bn = b->Optimize(currentblock);  
-          *bb->b = *bn;
-           *ii=C_F0(bb,r);           
-        }
-      else if (r==atype<const  FormLinear *>())
-        {
-	  FormLinear * ll=new FormLinear(*dynamic_cast<const  FormLinear *>(e));
-          Ftest * l= const_cast<Ftest *>(ll->l);
-          if (complextype)  l->mapping(&CCastToC) ;
-          else l->mapping(&CCastToR) ; 
-          Ftest * ln = l->Optimize(currentblock);  
-          *ll->l=*ln; 
-           *ii=C_F0(ll,r);    
-          //cout << l <<   " ll->l " <<  ll->l << " " << ll->l->isoptimize <<endl;                
-        }
-      else if (r==atype<const  BC_set *>())
-      {// modif FH  mai 2007  A FAIRE il y a un bug ici XXXXXXXXXXXXX
-    
-	BC_set * bc= new BC_set(*dynamic_cast<const  BC_set *>(e));
-	if (complextype && !bc->complextype) {
-	    bc->CastToK<Complex>() ;
-<<<<<<< HEAD
-	    if(verbosity > 10) cout << " Bc to complex " << endl;
-=======
-	    cout << " Bc to complex " << endl;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-	} 
-	//else bc->mapping(&CCastToR) ; 
-          //cout << l <<   " ll->l " <<  ll->l << " " << ll->l->isoptimize <<endl;    
-	 *ii=C_F0(bc,r);   
-      }
-      
-    } 
-  return complextype;
-}  
-
-
-Problem::Problem(const C_args * ca,const ListOfId &l,size_t & top) :
-  op(new C_args(*ca)),
-  var(l.size()),
-  VF(false), 
-  offset(align8(top)),
-  dim(dimProblem(l))
-{
-  // cout << "Problem : -----------------------------" << top << " dim = " << dim<< endl;
-  top = offset + max(sizeof(Data<FESpace>),sizeof(Data<FESpace>));
-    
-    bool iscomplex;
-    if(dim==2)
-	iscomplex=GetBilinearParam<pfer,pfec>(l,name_param,n_name_param,nargs, Nitem,Mitem,var);
-    else if (dim==3) 
- 	iscomplex=GetBilinearParam<pf3r,pf3c>(l,name_param,n_name_param,nargs, Nitem,Mitem,var);
-    else ffassert(0); // bug 
-        
-  precon = 0; //  a changer 
-  if ( nargs[3+3])
-    {
-      const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(nargs[3+3]);
-      assert(op);
-      precon = op->Find("(",ArrayOfaType(atype<KN<R>* >(),false));
-   }
-
-  VF=isVF(op->largs);   
- // cout << " Problem ) VF = " << VF << endl;
-  complextype =  FieldOfForm(op->largs,iscomplex)  ;  // Warning do the casting of all expression in double or complex
- if( complextype && !iscomplex) 
-    CompileError("Error: Problem  a complex problem with no complex FE function ");
- if( verbosity > 1)
-    cout << "  -- Problem type  ( complex : " << complextype << " )  "  <<endl;  
-}
-
-Expression IsFebaseArray(Expression f)
-{
-  assert(f);
-  size_t N=f->nbitem();
-   E_Array * vvi(dynamic_cast< E_Array *>(f));
-  if ( ! vvi) return 0;
-   E_Array & vi(*vvi);
-  Expression febase=0;
-  for (size_t i=0;i<N;i++)
-    { 
-      assert(vi[i].left() == atype<pfer>() );
-      const E_FEcomp<R,v_fes> * comp=dynamic_cast<const E_FEcomp<R,v_fes> *>( vi[i].LeftValue()) ;   
-      if (!(comp && comp->comp == (int) i  && comp->N == (int) N)) return 0; 
-      if (!febase) febase = comp->a0;
-      else if(comp->a0 != febase) return 0;        
-    }   
-  return febase;  
-}
-template<class VFES>
-Call_FormBilinear<VFES>::Call_FormBilinear(int dd,Expression * na,Expression  BB,Expression fi, Expression fj)
-  : d(dd),nargs(na),largs(),N(fi->nbitem()),M(fj->nbitem()), 
-     euh(fi), evh(fj)
-{
-  assert(nargs );
-  const C_args * LLL=dynamic_cast<const C_args *>(BB);
-  if (!LLL) 
-    CompileError("Sorry the variationnal form (varf)  is not a the variationnal form (type const C_args *)");
-  largs=LLL->largs;
-}
-template<class VFES>
-Call_FormLinear<VFES>::Call_FormLinear(int dd,Expression *na,Expression  LL, Expression ft)
-  : d(dd),largs(),nargs(na),N(ft->nbitem()),
-  ppfes(ft)//IsFebaseArray(ft)) 
-{
-  const C_args * LLL=dynamic_cast<const C_args *>(LL);
-  if ( !LLL) CompileError("The parameter of a LinearForm must be a array of all componate of FE function");
-  largs=LLL->largs;
-}
-bool C_args::IsLinearOperator() const {
-  //  int n=largs.size();
-  aType tRn =atype<KN<R>* >();
-  aType tCn =atype<KN<Complex>* >();
-  for (const_iterator i=largs.begin(); i != largs.end();i++) 
-    { 
-      C_F0  c= *i; 
-      // Expression e=c; 
-      aType r=c.left();
-      if (     ( r != atype<const  FormLinear *>() )
-	       &&  ( r != atype<const  BC_set *>() )
-	       &&  ( r != atype<VirtualMatrice<R>::plusAx >() )
-	       &&  ( r != atype<VirtualMatrice<R>::plusAtx >() )
-	       &&  ( r != atype<VirtualMatrice<Complex>::plusAx >() )
-	       &&  ( r != atype<VirtualMatrice<Complex>::plusAtx >() )
-	       &&  ( r != tRn) 
-	       &&  ( r != tCn) 
-	       ) return false;
-    }
-  return true;}
-
-bool C_args::IsBilinearOperator() const {
-  //int n=largs.size();
-  aType tRn =atype<Matrice_Creuse<R>* >();
-  aType tCn =atype<Matrice_Creuse<Complex>* >();
-  for (const_iterator i=largs.begin(); i != largs.end();i++) 
-    {  
-      C_F0  c= *i;
-      //Expression e=c;
-      aType r=c.left();
-      if (     ( r!= atype<const  FormBilinear *>() )
-	       &&  ( r != atype<const  BC_set *>() )
-	       &&  ( r != tRn) 
-	       &&  ( r != tCn)
-	       ) return false;
-    }
-  return true;}
-
-
-void SetArgsFormLinear(const ListOfId *lid,int ordre)
-{  
-  //  the local parameter are 
-  //  ordre ==2 => bilinear form  unknown (newU_) and test function (newV_)
-  //  ordre ==1 =>   linear form just  test function (newV_)
-  // ---------------------
-  throwassert(ordre >0 && ordre <=2 && (lid || lid->size()>0 ) );
-  const ListOfId & l(*lid);
-  int nb=l.size();
-  int n=0;
-  C_F0 type,init;
-  int nbarray=0;
-  ListOfId * array[2];
-  aType uh=atype<const finconnue*>(),vh=atype<const ftest*>();
-  
-  for (int i=0;i<nb;i++)        
-    if (l[i].r == 0 &&  l[i].re == 0 && l[i].id  ) n++; 
-         else if (l[i].array) 
-           array[Min(nbarray++,2)] = l[i].array;  
-  if (nbarray && n==0)
-    {  // 
-      
-      if(nbarray!=ordre) 
-        { cerr << " form " << ordre << " == " << nbarray << " Nb of Array "<<endl;
-        CompileError(" Must have 1 or 2 array, one for unknow functions, one for test functions");
-        }
-      for (int k=0;k<ordre;k++)
-        for  (int i=0,iend=array[k]->size();i<iend;i++)
-          { 
-            const UnId & idi((*array[k])[i].id);
-            if (idi.r == 0 && idi.re  == 0 && idi.array==0 ) 
-              {
-                if (k==ordre-2)  //  unknow function just in case of bilinear form  
-                  currentblock->NewID(uh,idi.id,C_F0(newU_(i),uh));
-                else   //  test function 
-                  currentblock->NewID(vh,idi.id,C_F0(newV_(i),vh));
-              }
-            else 
-              CompileError(" Just Variable in array parameter "); 
-          }  
-    }
-  else if (nbarray==0)
-    {    // a supprimer  to remove   in case of bilinear    
-      
-      SHOWVERB(cout << "SetArgs:: form  set parameter " << endl);
-      if( ! ( ordre==1 || n%2==0) )
-       CompileError(" Error in test or unkwon function (odd number of function) ");
-      ffassert( ordre==1 || n%2==0);
-      int nn=ordre==1 ? 0 : n/2; // ordre == 1 => no unknown function just test function
-      
-      for (int i=0,j=0;i<nb;i++)
-        if (l[i].r == 0 && l[i].re  == 0 && l[i].array==0) 
-          {          
-            SHOWVERB(cout <<"  " <<  l[i].id  << " " << (j<nn) << endl); 
-            if (j<nn)
-              currentblock->NewID(uh,l[i].id,C_F0(newU_(j%nn),uh));
-            else 
-              currentblock->NewID(vh,l[i].id,C_F0(newV_(j%nn),vh));
-            j++;
-          }
-    }
-  else
-    {
-       CompileError(" Sorry you mixte formulation with and without array "); 
-    }
-}
-
-const Fem2D::GQuadratureFormular<R3> & CDomainOfIntegration::FIV(Stack stack) const 
-{
-  using namespace Fem2D;
-  if (nargs[8]) return  *GetAny<const Fem2D::GQuadratureFormular<R3> *>((*nargs[8])(stack));
-  int exact = 5;
-  if (nargs[2]) exact=  GetAny<long>((*nargs[2])(stack))-1;
-  GQuadratureFormular<R3> *qf=QF_Simplex<R3>(exact);//QF_Tria_exact(exact);
-  if(verbosity>99 && qf ) cout << "   QF Tet  n:" << qf->n << " exact = " << exact <<  endl;
-  if(qf) return *qf;
-  /*
-  if( QuadratureFormular_T_1.exact >= exact ) return QuadratureFormular_T_1;
-  if( QuadratureFormular_T_2.exact >= exact ) return QuadratureFormular_T_2;
-  if( QuadratureFormular_T_5.exact >= exact ) return QuadratureFormular_T_5;
-  if( QuadratureFormular_T_7.exact >= exact ) return QuadratureFormular_T_7;
-  if( QuadratureFormular_T_9.exact >= exact ) return QuadratureFormular_T_9;
-  */
-  cerr << "Warning :  Order of the Quadrature Formular order " << exact+1 << " exact = " << exact << endl;
-  //  ExecError(" We find  no Quadrature Formular on Tet for this  order: too high");
-  return QuadratureFormular_Tet_5;
-}
-
-const Fem2D::QuadratureFormular & CDomainOfIntegration::FIT(Stack stack) const 
-{
-  using namespace Fem2D;
-  if (nargs[0]) return  *GetAny<const Fem2D::QuadratureFormular *>((*nargs[0])(stack));
-  int exact = 5;
-  if (nargs[2]) exact=  GetAny<long>((*nargs[2])(stack))-1;
-  QuadratureFormular *qf=QF_Simplex<R2>(exact);//QF_Tria_exact(exact);
-  if(verbosity>99 && qf ) cout << "   QF Tria  n:" << qf->n << " exact = " << exact <<  endl;
-  if(qf) return *qf;
-  /*
-  if( QuadratureFormular_T_1.exact >= exact ) return QuadratureFormular_T_1;
-  if( QuadratureFormular_T_2.exact >= exact ) return QuadratureFormular_T_2;
-  if( QuadratureFormular_T_5.exact >= exact ) return QuadratureFormular_T_5;
-  if( QuadratureFormular_T_7.exact >= exact ) return QuadratureFormular_T_7;
-  if( QuadratureFormular_T_9.exact >= exact ) return QuadratureFormular_T_9;
-  */
-  cerr << " Order of the Quadature Formular: order = " << exact+1 << " exact = " << exact << endl;
-  ExecError("Sorry,  we find  no Quadrature Formular on Triangle for this  order: too high.");
-  return QuadratureFormular_T_1;
-}       
-const Fem2D::QuadratureFormular1d & CDomainOfIntegration::FIE(Stack stack) const 
-{
-  using namespace Fem2D;
-  if (nargs[1]) return  *GetAny<const Fem2D::QuadratureFormular1d *>((*nargs[1])(stack));
-  int exact = 5;
-  if (nargs[2]) exact=  GetAny<long>((*nargs[2])(stack))-1;
-  QuadratureFormular1d *qf=QF_Simplex<R1>(exact);//QF_1d_exact(exact);
-  if(verbosity>99 && qf ) cout << "   QF 1d  n:" << qf->n << " exact = " << exact <<  endl;
-  if(qf) return *qf; 
-  /*
-  if( 1 >= exact ) return QF_GaussLegendre1;
-  if( 3 >= exact ) return QF_GaussLegendre2;
-  if( 5 >= exact ) return QF_GaussLegendre3;
-  if( 7 >= exact ) return QF_GaussLegendre4;
-  if( 9 >= exact ) return QF_GaussLegendre5;
-  */
-  cerr << " Ordre of the Integration Formular on Edge, order = " << exact+1 << " exact = " << exact << endl;
-  ExecError(" We find  no Quadrature Formular on Edge  for this  order:  too high.");
-  return QF_GaussLegendre1;
-}
-
-
-namespace Fem2D {
-
-
-// instantiation  des template en double
-  template  bool AssembleVarForm<double,MatriceCreuse<double>,FESpace >(Stack stack,const FESpace::Mesh & Th,
-									const FESpace & Uh,const FESpace & Vh,bool sym,
-									MatriceCreuse<double>  * A,KN_<double> * B,const list<C_F0> &largs );
-
-  template  bool AssembleVarForm<double,MatriceCreuse<double>,FESpace3 >(Stack stack,const  FESpace3::Mesh & Th,
-									const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-									MatriceCreuse<double>  * A,KN_<double> * B,const list<C_F0> &largs );
-
-  template  bool AssembleVarForm<double,map< pair<int,int>, double>,FESpace >(Stack stack,const  FESpace::Mesh & Th,
-									      const FESpace & Uh,const FESpace & Vh,bool sym,
-									      map< pair<int,int>, double>  * A,KN_<double> * B,const list<C_F0> &largs );
-  //3d ->
-  template  bool AssembleVarForm<double,map< pair<int,int>, double>,FESpace3 >(Stack stack,const  FESpace3::Mesh & Th,
-									      const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-									      map< pair<int,int>, double>  * A,KN_<double> * B,const list<C_F0> &largs );
-
-  
-  template  void AssembleLinearForm<double>(Stack stack,const Mesh & Th,const FESpace & Vh,KN_<double> * B,const  FormLinear * const l);
-  
-  template   void AssembleBilinearForm<double>(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-					       MatriceCreuse<double>  & A, const  FormBilinear * b  );
-  template   void AssembleBilinearForm<double>(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-					       map<pair<int,int>, double >  & A, const  FormBilinear * b  );
-
-  // instantiation  des template en Complex
-  
-  template  bool AssembleVarForm<Complex,MatriceCreuse<Complex>,FESpace >(Stack stack,const FESpace::Mesh & Th,
-									  const FESpace & Uh,const FESpace & Vh,bool sym,
-									  MatriceCreuse<Complex>  * A,KN_<Complex> * B,const list<C_F0> &largs );
-  
-  template  bool AssembleVarForm<Complex,map<pair<int,int>, Complex >,FESpace >(Stack stack,const FESpace::Mesh & Th,
-										const FESpace & Uh,const FESpace & Vh,bool sym,
-										map<pair<int,int>, Complex >  * A,KN_<Complex> * B,const list<C_F0> &largs );
-  // 3d
-  template  bool AssembleVarForm<Complex,MatriceCreuse<Complex>,FESpace3 >(Stack stack,const FESpace3::Mesh & Th,
-									  const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-									  MatriceCreuse<Complex>  * A,KN_<Complex> * B,const list<C_F0> &largs );
-  
-  template  bool AssembleVarForm<Complex,map<pair<int,int>, Complex >,FESpace3 >(Stack stack,const FESpace3::Mesh & Th,
-										const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-										map<pair<int,int>, Complex >  * A,KN_<Complex> * B,const list<C_F0> &largs );
-  //  3d fin
-//template  bool AssembleVarForm<double,map< pair<int,int>, Complex> >(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-//                       map< pair<int,int>, Complex>  * A,KN<double> * B,const list<C_F0> &largs );
-  
-template  void AssembleLinearForm<Complex>(Stack stack,const Mesh & Th,const FESpace & Vh,KN_<Complex> * B,const  FormLinear * const l);
-
-template   void AssembleBilinearForm<Complex>(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                            MatriceCreuse<Complex>  & A, const  FormBilinear * b  );
-                            
-template   void AssembleBilinearForm<Complex>(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                            map<pair<int,int>, Complex >  & A, const  FormBilinear * b  );
-                            
-                            
-  //template   void AssembleBC<Complex>(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-  //              MatriceCreuse<Complex>  * A,KN_<Complex> * B,KN_<Complex> * X, const  BC_set * bc , double tgv   );
-  //  template   void AssembleBC<double,FESpace>(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-  //               MatriceCreuse<double>  * A,KN_<double> * B,KN_<double> * X, const  BC_set * bc , double tgv   );
-
-  template   void AssembleBC<Complex,FESpace>(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                  MatriceCreuse<Complex>  * A,KN_<Complex> * B,KN_<Complex> * X, const list<C_F0> &largs , double tgv  );
-
-  template   void AssembleBC<double,FESpace>(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-					     MatriceCreuse<double>  * A,KN_<double> * B,KN_<double> * X, const list<C_F0> &largs , double tgv  );
-
-  template   void AssembleBC<Complex,FESpace3>(Stack stack,const Mesh3 & Th,const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-                  MatriceCreuse<Complex>  * A,KN_<Complex> * B,KN_<Complex> * X, const list<C_F0> &largs , double tgv  );
-
-  template   void AssembleBC<double,FESpace3>(Stack stack,const Mesh3 & Th,const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-					     MatriceCreuse<double>  * A,KN_<double> * B,KN_<double> * X, const list<C_F0> &largs , double tgv  );
-}
-  template class Call_FormLinear<v_fes>;
-  template class Call_FormLinear<v_fes3>;
-  template class Call_FormBilinear<v_fes>;
-  template class Call_FormBilinear<v_fes3>;
-
diff --git a/src/fflib/problem.hpp b/src/fflib/problem.hpp
index 78d947a..f098936 100644
--- a/src/fflib/problem.hpp
+++ b/src/fflib/problem.hpp
@@ -191,7 +191,7 @@ class BC_set : public E_F0mps { public:
   vector<Expression> on;
   vector<int> onis;
     
-  vector<pair<int,Expression> > bc; //  n� de l'inconnue+ valeur
+  vector<pair<int,Expression> > bc; //  n� de l'inconnue+ valeur
   BC_set(  const basicAC_F0 & args) 
     :on(args.size()),onis(args.size())
     {
diff --git a/src/fflib/problem.hpp.orig b/src/fflib/problem.hpp.orig
deleted file mode 100644
index 81c19e3..0000000
--- a/src/fflib/problem.hpp.orig
+++ /dev/null
@@ -1,1351 +0,0 @@
-// -*- Mode : c++ -*-
-//
-// SUMMARY  :      
-// USAGE    :        
-// ORG      : 
-// AUTHOR   : Frederic Hecht
-// E-MAIL   : hecht at ann.jussieu.fr
-//
-
-/*
- 
- This file is part of Freefem++
- 
- Freefem++ is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
- 
- Freefem++  is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU Lesser General Public License for more details.
- 
- You should have received a copy of the GNU Lesser General Public License
- along with Freefem++; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-#ifndef PROBLEM_HPP_
-#define PROBLEM_HPP_
-extern Block *currentblock;
-
-template<class K> class Matrice_Creuse;
-template<class K> class MatriceCreuse;
-namespace  Fem2D {
-  template<class K> class SolveGCPrecon;
-  template<class K> class SolveGMRESPrecon;
-  template<class K> class SolveGMRESDiag;
-//  int IsoLineK(double *f,R2 *Q,double eps);
-  
-}
-
-#include "P1IsoValue.hpp"
-
-
-template<class K> class SolveGCDiag; 
-class Plot;
-class v_fes;
-
-typedef FEbase<double,v_fes> * pferbase ;
-typedef FEbaseArray<double,v_fes> * pferbasearray ;
-typedef pair<pferbase,int> pfer ;
-typedef pair<pferbasearray,int> pferarray ;
-
-typedef FEbase<Complex,v_fes> * pfecbase ;
-typedef FEbaseArray<Complex,v_fes> * pfecbasearray ;
-typedef pair<pfecbase,int> pfec ;
-typedef pair<pfecbasearray,int> pfecarray ;
-
-
-//typedef pair<pmesh *,int> pmesharray ;
-
-typedef   LinearComb<MGauche,C_F0> Finconnue;
-typedef   LinearComb<MDroit,C_F0> Ftest;
-typedef   LinearComb<pair<MGauche,MDroit>,C_F0> Foperator;
-
-inline int intOp(const MGauche &i) {return i.second;}
-inline int intOp(const MDroit &i) {return i.second;}
-inline int intOp(pair<MGauche,MDroit> & p) {return Max(intOp(p.first),intOp(p.second));}
-
-inline void SetOp(KN_<bool> & d,const MGauche &i) 
-          { d[i.second% last_operatortype]=true;}
-inline void SetOp(KN_<bool> & d,const MDroit &i)
-          { d[(int) i.second % last_operatortype]=true;}
-inline void SetOp(KN_<bool> & d,const pair<MGauche,MDroit> & p) 
-          {SetOp(d,p.first);SetOp(d,p.second);}
-
-inline unsigned int GetDiffOp(const MGauche &i, int& lastop) 
-   {int op=(i.second% last_operatortype);
-     lastop=max(lastop,op) ;
-     return 1<<op;}
-inline unsigned int GetDiffOp(const MDroit &i, int& lastop)
-   {int op=(i.second% last_operatortype);
-     lastop=max(lastop,op) ;
-     return 1<<op;}
-inline unsigned int GetDiffOp(const  pair<MGauche,MDroit> &p, int& lastop) 
-{ return GetDiffOp(p.first,lastop)|GetDiffOp(p.second,lastop);}
-
-typedef  const Finconnue  finconnue;
-typedef  const Ftest ftest;
-typedef  const Foperator foperator;
-
-Expression IsFebaseArray(Expression f);
-
-void SetArgsFormLinear(const ListOfId *lid,int ordre);
-
-
-inline ostream & operator<<(ostream & f,const  TypeSolveMat & tm)
-{
-  switch(tm.t) {
-   case TypeSolveMat::NONESQUARE:  f << "No Square (Sparse Morse)"; break;
-   case TypeSolveMat::LU:  f << "LU (Skyline)"; break;
-   case TypeSolveMat::CROUT:  f << "CROUT (Skyline)"; break;
-   case TypeSolveMat::CHOLESKY:  f << "CHOLESKY (Skyline)"; break;
-   case TypeSolveMat::GC:  f << "CG (Sparse Morse)"; break;
-   case TypeSolveMat::GMRES:  f << "GMRES (Sparse Morse)"; break;
-   case TypeSolveMat::SparseSolver:  f << "SparseSolver (Sparse Morse)"; break;
-   default: f << "Unknown  bug???";
-   }
-  return f;
-}
-
-
-class C_args: public E_F0mps  {public:
-  typedef const C_args *  Result;
-  list<C_F0> largs;
-  typedef list<C_F0> ::const_iterator const_iterator ;
-  // il faut expendre 
-  C_args() :largs(){}
-  C_args(C_F0 c) : largs() { if(!c.Zero() )largs.push_back(c);}
-  C_args(  const basicAC_F0 & args) :largs(){ 
-    int n=args.size();
-    for (int i=0;i< n;i++)
-      {
-       if(args[i].Zero()) ; //  skip zero term ...
-       else  if (args[i].left() == atype<const C_args *>())
-          {
-            const C_args * a = dynamic_cast<const C_args *>(args[i].LeftValue());
-            for (list<C_F0>::const_iterator i=a->largs.begin();i!=a->largs.end();i++)
-              largs.push_back(*i);                   
-          } 
-        else 
-          largs.push_back(args[i]);
-      };}
-  static ArrayOfaType  typeargs() { return ArrayOfaType(true);}
-  AnyType operator()(Stack ) const  { return SetAny<const C_args *>(this);}
-  operator aType () const { return atype<const C_args *>();}         
-  
-  static  E_F0 * f(const basicAC_F0 & args) { return new C_args(args);}
-  bool Zero() { return !largs.empty();}
-  bool IsLinearOperator() const;
-  bool IsBilinearOperator() const;
-};
-
-class C_args_minus: public C_args  {public:
-  C_args_minus(  const basicAC_F0 & args) { 
-    int n=args.size();
-    ffassert(n==2);    
-    if (args[0].left() == atype<const C_args *>())
-      {
-        const C_args * a = dynamic_cast<const C_args *>(args[0].LeftValue());
-        ffassert(a);
-        for (list<C_F0>::const_iterator i=a->largs.begin();i!=a->largs.end();i++)
-          largs.push_back(*i);                   
-      }
-    else 
-      largs.push_back(args[0]);
-    
-    largs.push_back(C_F0(TheOperators,"-",args[1]));
-     }
-  
-  static ArrayOfaType  typeargs() { return ArrayOfaType(atype<const C_args *>(),true);}
-  static  E_F0 * f(const basicAC_F0 & args) { return new C_args_minus(args);}    
-};
-
-bool isVF(const list<C_F0> & largs); 
-
-template<typename F>
-class Minus_Form: public  E_F0mps    {public:
-  typedef const F * Result;
-  static ArrayOfaType  typeargs() { return ArrayOfaType(atype<const F *>());}
-  static  E_F0 * f(const basicAC_F0 & args) { 
-    int n=args.size();
-    ffassert(n==1);
-    aType tF=atype<Result>();
-    ffassert(args[0].left() == tF);
-    Result f = dynamic_cast<Result>(args[0].LeftValue());
-    ffassert(f);
-    // F mf = -*f;
-    F * rf=new F(-*f);
-    return  rf;
-  }
-    operator aType () const { return atype<Result>();} 
-    
-    
-};
-
-//template<class RR=double>
-class BC_set : public E_F0mps { public:
-   bool  complextype;
-  typedef const BC_set* Result;
-  vector<Expression> on;
-  vector<int> onis;
-    
-  vector<pair<int,Expression> > bc; //  n� de l'inconnue+ valeur
-  BC_set(  const basicAC_F0 & args) 
-    :on(args.size()),onis(args.size())
-    {
-    int n = args.size();      
-    ffassert(args.named_parameter);
-    AC_F0::const_iterator ii=args.named_parameter->begin();
-    AC_F0::const_iterator ie=args.named_parameter->end();
-    bc.resize(args.named_parameter->size());
-    complextype=false;
-    for (int kk=0;ii!=ie;kk++,ii++)
-     {
-      if( ! BCastTo<double>(ii->second)) 
-       complextype = true; 
-     } 
-    ii=args.named_parameter->begin();
-    for (int kk=0;ii!=ie;kk++,ii++)
-      { //
-        C_F0 x=Find(ii->first);
-        if (x.left() != atype<const finconnue *>())
-          CompileError("We expected an unkown  u=... of the problem");
-        const finconnue * uu = dynamic_cast<const finconnue *>(x.LeftValue());
-        ffassert(uu);
-        const MGauche *ui=uu->simple();
-        ffassert(ui && ui->second == op_id);
-        if(verbosity>9)
-         cout << " on : " << ii->first << " n " << ui->first <<   " = ? " << endl;
-        if (complextype)
-        bc[kk]= make_pair(ui->first,CastTo<Complex>(ii->second));
-        else
-        bc[kk]= make_pair(ui->first,CastTo<double>(ii->second));
-        //ii->second;
-      } 
-    //  sort bc / num de composante
-        
-        std::sort(bc.begin(),bc.end());
-        if(verbosity>9)
-        for (vector<pair<int,Expression> >::iterator i=bc.begin(); i !=bc.end();++i)
-            cout <<"  on " <<  i->first << " " << i->second << endl;
-        
-    for (int i=0;i<n;i++)
-      if( ! BCastTo<KN_<long> >(args[i]))
-         {
-	   on[i]=CastTo<long>(args[i]);
-	   onis[i]=0;
-         }
-	 else 
-	 {
-	   on[i]=CastTo<KN_<long> >(args[i]);
-	   onis[i]=1;	   
-	 }
-  }
-    template<class K> 
-     void CastToK()
-    {
-      aType rr =  complextype ? atype<Complex>() : atype<double>();
-      if (rr == atype<Complex>()) complextype= true; 
-<<<<<<< HEAD
-      if(verbosity > 10) cout << " CastToK => " << complextype <<endl;
-=======
-      cout << " CastToK => " << complextype <<endl;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-     for ( vector<pair<int,Expression> >::iterator k=bc.begin();k!=bc.end();k++)
-	k->second=CastTo<K>(C_F0(k->second,rr)) ;
-    }
-/* De
-  // ajout modif FH  mai 2007 XXXXXXXXXXXXX....
- void mappingC(C_F0 (*f)(const C_F0 &)) {
-      
-      for ( vector<pair<int,Expression> >::iterator k=bc.begin();k!=bc.end();k++)
-	  k->second=CastTo<Complex>(C_F0(k->second,rr)) ;}
-  // fin ajout
-*/    
-  static ArrayOfaType  typeargs() { return ArrayOfaType(/*atype<long>(),*/true);} //  change frev 2011 FH...
-  AnyType operator()(Stack ) const  { return SetAny<Result>(this);}
-  operator aType () const { return atype<Result>();}         
-  
-  static  E_F0 * f(const basicAC_F0 & args) { return new BC_set(args);}         
-  //    void init(Stack stack) const {}
-  
-};
-
-class CDomainOfIntegration: public E_F0mps { 
-public:
-  static const int n_name_param =10;
-  static basicAC_F0::name_and_type name_param[] ;
-  Expression nargs[n_name_param];
-  enum typeofkind  { int2d=0, int1d=1, intalledges=2,intallVFedges=3, int3d = 4, intallfaces= 5,intallVFfaces=6 } ; //3d
-  typeofkind  kind; //  0 
-  int d; // 3d
-   typedef const CDomainOfIntegration* Result;
-  Expression Th;
-  vector<Expression> what;
-  vector<int> whatis; // 0 -> long , 1 -> array ??? 
-  CDomainOfIntegration( const basicAC_F0 & args,typeofkind b=int2d,int ddim=2) // 3d
-    :kind(b),d(ddim), Th(0), what(args.size()-1),whatis(args.size()-1)
-     
-  {
-    args.SetNameParam(n_name_param,name_param,nargs);
-    if(d==2) // 3d
-      Th=CastTo<pmesh>(args[0]);
-    else if(d==3)
-      Th=CastTo<pmesh3>(args[0]);
-    else ffassert(0); // a faire 
-    int n=args.size();
-    
-    for (int i=1;i<n;i++)
-      if(!BCastTo<KN_<long> >(args[i]) )	 
-	 {
-	   whatis[i-1]=0;
-	   what[i-1]=CastTo<long>(args[i]); 
-	 }
-      else 
-	 {
-	   whatis[i-1]=1;
-	   what[i-1]=CastTo<KN_<long> >(args[i]); 	   
-	 }
-    // cout << " CDomainOfIntegration " << this << endl;       
-  }
-  static  ArrayOfaType  typeargs() {  return ArrayOfaType(atype<pmesh>(), true);} // all type
-  AnyType operator()(Stack ) const  { return SetAny<const CDomainOfIntegration *>(this);}
-  operator aType () const { return atype<const CDomainOfIntegration *>();}         
-  
-  static  E_F0 * f(const basicAC_F0 & args) { return new CDomainOfIntegration(args);} 
-  const Fem2D::QuadratureFormular & FIT(Stack) const ;   
-  const Fem2D::QuadratureFormular1d & FIE(Stack) const ;  
-  const Fem2D::GQuadratureFormular<R3> & FIV(Stack) const ;  // 3d
-  bool UseOpt(Stack s) const  {  return nargs[5] ? GetAny<bool>( (*(nargs[5]))(s) )  : 1;}
-  double  binside(Stack s) const { return nargs[6] ? GetAny<double>( (*(nargs[6]))(s) )  : 0;} // truc pour FH
-  bool intmortar(Stack s) const { return nargs[7] ? GetAny<bool>( (*(nargs[7])) (s) )  : 1;} // truc  pour 
-  double levelset(Stack s) const { return nargs[9] ? GetAny<double>( (*(nargs[9]))(s) )  : 0;}
-  bool  islevelset() const { return nargs[9] != 0; }
-    
-};  
-
-class CDomainOfIntegrationBorder: public CDomainOfIntegration { 
-public:
-  CDomainOfIntegrationBorder( const basicAC_F0 & args) :CDomainOfIntegration(args,int1d) {}
-  static  E_F0 * f(const basicAC_F0 & args) { return new CDomainOfIntegration(args,int1d);}    
-};
-
-class CDomainOfIntegrationAllEdges: public CDomainOfIntegration { 
-public:
-  CDomainOfIntegrationAllEdges( const basicAC_F0 & args) :CDomainOfIntegration(args,intalledges) {}
-  static  E_F0 * f(const basicAC_F0 & args) { return new CDomainOfIntegration(args,intalledges);}    
-};
-
-class CDomainOfIntegrationVFEdges: public CDomainOfIntegration { 
-public:
-  CDomainOfIntegrationVFEdges( const basicAC_F0 & args) :CDomainOfIntegration(args,intallVFedges) {}
-  static  E_F0 * f(const basicAC_F0 & args) { return new CDomainOfIntegration(args,intallVFedges);}    
-};
-// add for the 3d case .. // 3d 
-class CDomainOfIntegration3d: public CDomainOfIntegration { 
-public:
-  CDomainOfIntegration3d( const basicAC_F0 & args) :CDomainOfIntegration(args,int3d,3) {}
-  static  E_F0 * f(const basicAC_F0 & args) { return new CDomainOfIntegration(args,int3d,3);}
-  static  ArrayOfaType  typeargs() {  return ArrayOfaType(atype<pmesh3>(), true);} // all type    
-};
-
-class CDomainOfIntegrationBorder3d: public CDomainOfIntegration { 
-public:
-  CDomainOfIntegrationBorder3d( const basicAC_F0 & args) :CDomainOfIntegration(args,int2d,3) {}
-  static  E_F0 * f(const basicAC_F0 & args) { return new CDomainOfIntegration(args,int2d,3);}    
-  static  ArrayOfaType  typeargs() {  return ArrayOfaType(atype<pmesh3>(), true);} // all type
-};
-
-class CDomainOfIntegrationAllFaces: public CDomainOfIntegration { 
-public:
-  CDomainOfIntegrationAllFaces( const basicAC_F0 & args) :CDomainOfIntegration(args,intallfaces,3) {}
-  static  E_F0 * f(const basicAC_F0 & args) { return new CDomainOfIntegration(args,intallfaces,3);}    
-  static  ArrayOfaType  typeargs() {  return ArrayOfaType(atype<pmesh3>(), true);} // all type
-};
-
-// end add
-
-
-
-
-
-// hack build template 
-template<class T> struct CadnaType{
-   typedef T  Scalaire;
- }; 
-#ifdef  HAVE_CADNA
-#include <cadnafree.h>
-// specialisation 
-template<> struct CadnaType<complex<double> >{
-   typedef complex<double_st> Scalaire;
- };
-template<> struct CadnaType<double> {
-   typedef double_st Scalaire;
- };
-inline double_st conj(const double_st &x){ return x;};
-inline complex<double_st> conj(const complex<double_st> &x){ return complex<double_st>(x.real(),-x.imag());}
- 
- inline double norm(complex<double_st> x){return x.real()*x.real()+x.imag()*x.imag();} 
- inline double norm(double_st x){return x*x;} 
-inline int cestac(const complex<double_st> & z) 
-{return min(cestac(z.real()),cestac(z.imag()));}
-#endif
-
-class Problem  : public Polymorphic { 
-  //  typedef double R;
-  static basicAC_F0::name_and_type name_param[] ;
-  static const int n_name_param =3+NB_NAME_PARM_MAT; // modi FH oct 2005 add tol_pivot 02/ 2007 add nbiter   
-  int Nitem,Mitem;
-  const int dim; 
-public:
- template<class FESpace>   
-  struct Data {
-    typedef typename FESpace::Mesh Mesh;
-    const Mesh * pTh; 
-    CountPointer<const FESpace> Uh;
-    CountPointer<const FESpace> Vh;
-    CountPointer<MatriceCreuse<double> > AR;   
-    CountPointer<MatriceCreuse<Complex> > AC; 
-    typedef  CadnaType<double>::Scalaire double_st;  
-    typedef  CadnaType<complex<double> >::Scalaire cmplx_st;  
-    MatriceCreuse<double_st>  * AcadnaR;
-    MatriceCreuse<cmplx_st>  * AcadnaC;
-
-    void init()  {pTh=0; AcadnaR=0;AcadnaC=0; Uh.init(),Vh.init();AR.init();AC.init();}
-    void destroy() { 
-      pTh=0;
-      Uh.destroy(); 
-      Vh.destroy();
-      AR.destroy();       
-      AC.destroy();
-      
-      if(AcadnaR) AcadnaR->destroy();
-      if(AcadnaC) AcadnaC->destroy();
-      }        
-  } ;
-  const OneOperator *precon;
-  
-  C_args *op; // the list of all operator 
-  mutable vector<Expression> var; // list des var pour les solutions et test 
-  bool complextype,VF;
-
-  //   Expression noinit,type,epsilon;
-  Expression nargs[n_name_param];
-  
-  const size_t  offset;         
-  Problem(const C_args * ca,const ListOfId &l,size_t & top) ;
-  static ArrayOfaType  typeargs() { return ArrayOfaType(true);}// all type
-  
-  Data<FESpace> * dataptr (Stack stack) const {return   (Data<FESpace> *) (void *) (((char *) stack)+offset);}
-  Data<FESpace3> * dataptr3 (Stack stack) const {return   (Data<FESpace3> *) (void *) (((char *) stack)+offset);}
-  void init(Stack stack) const  {
-    // cout << " init  " << (char *) dataptr(stack) - (char*) stack  << " " << offset <<  endl; 
-    if(dim==2)
-	dataptr(stack)->init();
-    else 
-	dataptr3(stack)->init();
-      }
-  void destroy(Stack stack)  const  {
-      if(dim==2) dataptr(stack)->destroy();
-      else dataptr3(stack)->destroy();
-  }
-
-  template<class R,class FESpace,class v_fes>
-  AnyType eval(Stack stack,Data<FESpace> * data,CountPointer<MatriceCreuse<R> > & dataA,
-  MatriceCreuse< typename CadnaType<R>::Scalaire >  * & dataCadna) const;
-
-  AnyType operator()(Stack stack) const
-  {
-   if(dim==2)
-      {
-     Data<FESpace> *data= dataptr(stack);
-    if (complextype) 
-	return eval<Complex,FESpace,v_fes>(stack,data,data->AC,data->AcadnaC);
-    else
-     return eval<double,FESpace,v_fes>(stack,data,data->AR,data->AcadnaR);
-      }
-    
-    else if(dim==3)
-      {
-	Data<FESpace3> *data= dataptr3(stack);
-      if (complextype) 
-	  return eval<Complex,FESpace3,v_fes3>(stack,data,data->AC,data->AcadnaC);
-      else
-	  return eval<double,FESpace3,v_fes3>(stack,data,data->AR,data->AcadnaR);
-      }
-    else ffassert(0);
-  }
-    
-  
-  
-  bool Empty() const {return false;}     
-  size_t nbitem() const { return Nitem;}     
-};
-
-
-class Solve : public Problem { public:
-  // just a problem with implicit solve 
-  Solve(const C_args * ca,const ListOfId &l,size_t & top) 
-    : Problem(new C_args(*ca),l,top) {} 
-};
-
-class FormBilinear : public E_F0mps { public:
-  typedef const FormBilinear* Result;
-  typedef const CDomainOfIntegration * A;
-  typedef const foperator  *  B;
-  A  di;
-  Foperator * b;    
-  FormBilinear(const basicAC_F0 & args) {
-   di= dynamic_cast<A>(CastTo<A>(args[0]));
-   B  bb= dynamic_cast<B>(CastTo<B>(args[1]));
-  // b = bb->Optimize(currentblock); // FH1004
-  b=new Foperator(*bb); // FH1004  no optimisation here because we don't the type of the bilinear form here.
-  //  the opimisation is done after in FieldOfForm routine 
-  // to find if the form is real or complex 
-  
-  // delete bb; il ne faut pas detruire .. car bb peut etre dans une variable 
-    ffassert(di && b); }
-  
-  static ArrayOfaType  typeargs() { return ArrayOfaType(atype<A>(),atype<B>());}// all type
-  AnyType operator()(Stack ) const { return SetAny<Result>(this);}
-   operator aType () const { return atype<Result>();}         
-
-  static  E_F0 * f(const basicAC_F0 & args) { return new FormBilinear(args);}  
-  FormBilinear(A a,Expression bb) : di(a),b(new Foperator(*dynamic_cast<B>(bb))/*->Optimize(currentblock) FH1004 */) 
-  {ffassert(b);}   
-  FormBilinear operator-() const { return  FormBilinear(di,C_F0(TheOperators,"-",C_F0(b,atype<B>())));}
-  bool VF() const { return MaxOp(b) >= last_operatortype;}
-  int dim() const {return di->d;}
-  FormBilinear(const FormBilinear & fb) : di(fb.di),b(new Foperator(*fb.b) ) {}
-  //  void init(Stack stack) const {}
-};
-
-
-//template<class v_fes>
-class FormLinear : public E_F0mps { public:
-  typedef const FormLinear* Result;
-  typedef const CDomainOfIntegration * A;
-  typedef const ftest  *  B;
-  A  di;
-  Ftest * l;
-   
-  FormLinear(const basicAC_F0 & args) {
-    di= dynamic_cast<A>(CastTo<A>(args[0]));
-    assert(di);
-    Expression a1=CastTo<B>(args[1]);
-    assert(a1);
-   // cout << "  ---FormLinear: "<< a1 << "  " << typeid(*a1).name() << *a1 <<endl;
-    B ll= dynamic_cast<B>(a1);
-    assert(ll);
-    l = new Ftest(*ll); // FH1004 ->Optimize(currentblock);  same as bilinear
-    // delete ll; // il ne faut pas detruire car ll peut etre dans une variable
-    assert(l);
-    ffassert(di && l); 
-  }
-  bool VF() const { return MaxOp(l) >= last_operatortype;}
- 
-  static ArrayOfaType  typeargs() { return ArrayOfaType(atype<A>(),atype<B>());}// all type
-  AnyType operator()(Stack ) const  { return SetAny<Result>(this);}
-   operator aType () const { return atype<Result>();}         
-  int dim() const {return di->d;}
-  static  E_F0 * f(const basicAC_F0 & args) { return new FormLinear(args);}    
-  FormLinear(A a,Expression bb) : di(a),l(new Ftest(*dynamic_cast<B>(bb))/*->Optimize(currentblock) FH1004 */) {ffassert(l);}   
-  FormLinear operator-() const { return  FormLinear(di,C_F0(TheOperators,"-",C_F0(l,atype<B>())));}
-  //  void init(Stack stack) const {}
-  FormLinear(const FormLinear & fb) : di(fb.di),l(new Ftest(*fb.l) ) {}
-  
-};
-
-template<class VFES>
-class Call_FormLinear: public E_F0mps 
-{ 
-public:
-  const int d;
-  list<C_F0> largs;
-  Expression *nargs;
-  typedef list<C_F0>::const_iterator const_iterator;
-  const int N;
-  Expression ppfes; 
-  
-  Call_FormLinear(int dd,Expression * na,Expression  LL, Expression ft) ;
-  AnyType operator()(Stack stack) const 
-  { InternalError(" bug: no eval of Call_FormLinear ");} 
-   operator aType () const { return atype<void>();}         
-  
-};
-
-template<class VFES>
-class Call_FormBilinear: public E_F0mps 
-{
-public:
-  const int d;
-  Expression *nargs;
-  list<C_F0> largs;
-  typedef list<C_F0>::const_iterator const_iterator;
-  
-  const int N,M;
-  Expression euh,evh; 
-  Call_FormBilinear(int dd,Expression * na,Expression  LL, Expression fi,Expression fj) ;
-  AnyType operator()(Stack stack) const  
-  { InternalError(" bug: no eval of Call_FormBilinear ");} 
-   operator aType () const { return atype<void>();}         
-    
-};
-
-
-struct OpCall_FormLinear_np {
-  static basicAC_F0::name_and_type name_param[] ;
-  static const int n_name_param =1;
-  
-};
-
-struct OpCall_FormBilinear_np {
-  static basicAC_F0::name_and_type name_param[] ;
-  static const int n_name_param =1+NB_NAME_PARM_MAT; // 9-> 11 FH 31/10/2005  11->12 nbiter 02/2007  // 12->22 MUMPS+ Autre Solveur 02/08
-};
-
-template<class T,class v_fes>
-struct OpCall_FormLinear
-  : public OneOperator,
-    public OpCall_FormLinear_np
-{
-  typedef v_fes *pfes;
-  E_F0 * code(const basicAC_F0 & args) const 
-  { 
-    Expression * nargs = new Expression[n_name_param];
-    args.SetNameParam(n_name_param,name_param,nargs);
-    
-    return  new Call_FormLinear<v_fes>(v_fes::d,nargs,to<const C_args*>(args[0]),to<pfes*>(args[1]));} 
-  OpCall_FormLinear() : 
-    OneOperator(atype<const Call_FormLinear<v_fes>*>(),atype<const T*>(),atype<pfes*>()) {}
-};
-
-
-template<class T,class v_fes>
-struct OpCall_FormLinear2
-  : public OneOperator,
-    public OpCall_FormLinear_np
-{
-  static const int d=v_fes::d;
-  typedef v_fes *pfes;
-  E_F0 * code(const basicAC_F0 & args) const 
-  {    
-    Expression * nargs = new Expression[this->n_name_param];
-    args.SetNameParam(this->n_name_param,this->name_param,nargs);
-    
-    Expression p=args[1];
-    if ( ! p->EvaluableWithOutStack() ) 
-      { CompileError("  a(long,Vh) , The long  must be a constant, and  = 0, sorry");}
-    long pv = GetAny<long>((*p)(NullStack));
-    if ( pv ) 
-      { CompileError("  a(long,Vh) , The long  must be a constant == 0, sorry");}       
-    return  new Call_FormLinear<v_fes>(v_fes::d,nargs,to<const C_args*>(args[0]),to<pfes*>(args[2]));} 
-  OpCall_FormLinear2() : 
-    OneOperator(atype<const Call_FormLinear<v_fes>*>(),atype<const T*>(),atype<long>(),atype<pfes*>()) {}
-};
-
-template<class T,class v_fes>
-struct OpCall_FormBilinear
-  : public OneOperator ,
-  OpCall_FormBilinear_np
-{
-  typedef v_fes *pfes;
-  static const int d=v_fes::d;
-  
-  E_F0 * code(const basicAC_F0 & args) const 
-  { Expression * nargs = new Expression[n_name_param];
-    args.SetNameParam(n_name_param,name_param,nargs);
-    // cout << " OpCall_FormBilinear " << *args[0].left() << " " << args[0].LeftValue() << endl;
-    return  new Call_FormBilinear<v_fes>(v_fes::d,nargs,to<const C_args*>(args[0]),to<pfes*>(args[1]),to<pfes*>(args[2]));} 
-  OpCall_FormBilinear() : 
-    OneOperator(atype<const Call_FormBilinear<v_fes>*>(),atype<const T *>(),atype<pfes*>(),atype<pfes*>()) {}
-};
-
-
-
-
-
-bool FieldOfForm( list<C_F0> & largs ,bool complextype);
-template<class A>  struct IsComplexType { static const bool value=false;};
-template<>  struct IsComplexType<Complex> { static const bool value=true;};
-
-template<class R,class v_fes>  //  to make   x=linearform(x)
-struct OpArraytoLinearForm
-  : public OneOperator
-{
-  typedef typename Call_FormLinear<v_fes>::const_iterator const_iterator;
-  const bool isptr;
-  const bool init;
-  const bool zero;
-  class Op : public E_F0mps 
-  {
-  public:
-    Call_FormLinear<v_fes> *l;
-    Expression x;
-    const  bool isptr; 
-    const  bool init; 
-    const  bool zero;
-    AnyType operator()(Stack s)  const ;
-    Op(Expression xx,Expression  ll,bool isptrr,bool initt,bool zzero) 
-      : l(new Call_FormLinear<v_fes>(*dynamic_cast<const Call_FormLinear<v_fes> *>(ll))),
-        x(xx),
-        isptr(isptrr),init(initt),zero(zzero)
-        {assert(l);
-	    
-	bool iscmplx=FieldOfForm(l->largs,IsComplexType<R>::value);
-	//cout<< "FieldOfForm:iscmplx " << iscmplx << " " << IsComplexType<R>::value << " " <<( (iscmplx) == IsComplexType<R>::value) << endl; 
-	ffassert( (iscmplx) == IsComplexType<R>::value); 
-}
-     operator aType () const { return atype<KN<R> *>();} 
-      
-  };
-  E_F0 * code(const basicAC_F0 & args) const 
-  { if(isptr) return new Op(to<KN<R> *>(args[0]),args[1],isptr,init,zero);
-    else      return new Op(to<KN_<R> >(args[0]),args[1],isptr,init,zero);}
-   
-  
-  //  OpArraytoLinearForm(const basicForEachType * tt) : 
-  //    OneOperator(atype<KN_<R> >(),tt,atype<const Call_FormLinear*>()),init(false),isptr(false) {}
-  
-  OpArraytoLinearForm(const basicForEachType * tt,bool isptrr, bool initt,bool zzero=1) : 
-    OneOperator(atype<KN_<R> >(),tt,atype<const Call_FormLinear<v_fes>*>()),
-    isptr(isptrr), init(initt),zero(zzero) {}
-  
-};
-
-
-template<class R,class v_fes>  //  to make   A=linearform(x)
-struct OpMatrixtoBilinearForm
-  : public OneOperator
-{
-  typedef typename Call_FormBilinear<v_fes>::const_iterator const_iterator;
-  int init; 
-  class Op : public E_F0mps {
-  public:
-    Call_FormBilinear<v_fes> *b;
-    Expression a;
-    int init;
-    AnyType operator()(Stack s)  const ;    
-
-    Op(Expression aa,Expression  bb,int initt) 
-      : b(new Call_FormBilinear<v_fes>(* dynamic_cast<const Call_FormBilinear<v_fes> *>(bb))),a(aa),init(initt) 
-  { assert(b && b->nargs);
-    bool iscmplx=FieldOfForm(b->largs,IsComplexType<R>::value)  ;
-     // cout<< "FieldOfForm:iscmplx " << iscmplx << " " << IsComplexType<R>::value << " " << ((iscmplx) == IsComplexType<R>::value) << endl; 
-    ffassert( (iscmplx) == IsComplexType<R>::value);
-}
-  operator aType () const { return atype<Matrice_Creuse<R>  *>();} 
-    
-  };
-  E_F0 * code(const basicAC_F0 & args) const 
-  { return  new Op(to<Matrice_Creuse<R>*>(args[0]),args[1],init);} 
-  OpMatrixtoBilinearForm(int initt=0) : 
-    OneOperator(atype<Matrice_Creuse<R>*>(),atype<Matrice_Creuse<R>*>(),atype<const Call_FormBilinear<v_fes>*>()),
-    init(initt)
- {}
-};
-
-template<class R>
-class IntFunction  : public E_F0mps { public:
-  typedef R Result;
-  typedef const CDomainOfIntegration * A;
-  typedef R  B;
-  A  di;
-  Expression fonc;    
-  IntFunction(const basicAC_F0 & args) {
-    di= dynamic_cast<A>(CastTo<A>(args[0]));
-    fonc= CastTo<B>(args[1]);
-    ffassert(di && fonc); }
-  
-  static ArrayOfaType  typeargs() { return ArrayOfaType(atype<A>(),atype<B>());}// all type
-  AnyType operator()(Stack ) const;
-  static  E_F0 * f(const basicAC_F0 & args) { return new IntFunction(args);}    
-  //  IntFunction(A a,Expression bb) : di(a),fonc(bb) {}   
-   operator aType () const { return atype<Result>();}         
-  
-};
-
-
-extern Block *currentblock;
-
-class TypeFormOperator: public ForEachType<const C_args*> {
-public:
-  TypeFormOperator() : ForEachType<const C_args*>(0,0) {}
-  void SetArgs(const ListOfId *lid) const {
-    SetArgsFormLinear(lid,2);    } 
-  
-  Type_Expr SetParam(const C_F0 & c,const ListOfId *l,size_t & top) const 
-  { return Type_Expr(this,CastTo(c));}
-  
-  inline  C_F0 Initialization(const Type_Expr & e) const {return C_F0();}
-  
-};
-
-class TypeFormBilinear: public ForEachType<const FormBilinear*> {
-public:
-  TypeFormBilinear() : ForEachType<const FormBilinear*>(0,0) {}
-  void SetArgs(const ListOfId *lid) const {
-    SetArgsFormLinear(lid,2);  
-  }
-  
-  Type_Expr SetParam(const C_F0 & c,const ListOfId *l,size_t & top) const 
-  { return Type_Expr(this,CastTo(c));}
-  
-  
-  C_F0 Initialization(const Type_Expr & e) const 
-  {  
-    // cout << "Initialization " << *e.first << endl;
-    return C_F0(); }  // nothing to initialize 
-  Type_Expr construct(const Type_Expr & e) const 
-  {  
-    //cout << "construct " << *e.first << endl;
-    return e; } 
-  
-};
-
-template<bool exec_init,class Problem>
-class TypeSolve : public ForEachType<const Problem*>   {
-public:
-  TypeSolve() : ForEachType<const Problem*>(0,0) {}
-  
-  void SetArgs(const ListOfId *lid) const {
-    SetArgsFormLinear(lid,2);  
-    
-    
-  }  
-  Type_Expr SetParam(const C_F0 & c,const ListOfId *l,size_t & top) const 
-  {   if (c.left() != atype<const C_args*>())
-    CompileError(" Problem  a(...) = invalid type ",c.left());
-  const C_args * ca = dynamic_cast<const C_args *>(c.LeftValue());
-  Problem * pb=new Problem(ca,*l,top);
-  SHOWVERB(cout << "solve:SetParam " << ca << " pb=" << pb << endl);
-  
-  return Type_Expr(this,pb);        
-  
-  } 
-  
-  class SolveInit: public  E_F0 { public:
-    const Problem * a;
-    AnyType operator()(Stack s)  const {
-      a->init(s);       
-      return exec_init ? (*a)(s) : Nothing ;
-    } 
-    SolveInit(const Type_Expr &  te) : a(dynamic_cast<const Problem *>(te.second))
-    {  SHOWVERB(cout << "SolveInit " << te.second << endl);
-    ffassert(a);}
-  };
-  
-  class SolveDel: public  E_F0 { public:
-    const Problem * a;
-    SolveDel(const C_F0 & c) : a(dynamic_cast<const Problem *>(c.LeftValue()))
-    {   
-      SHOWVERB(cout << "SolveDel " << c.left()  << endl);
-      ffassert(a);}
-    
-    AnyType operator()(Stack s)  const { 
-      a->destroy(s);
-      return Nothing;
-    }};
-  
-  Expression Destroy(const C_F0 & c) const  
-  { return new SolveDel(c);}
-  
-  bool ExistDestroy() const {return true;} 
-  
-  C_F0 Initialization(const Type_Expr & e) const 
-  {  return C_F0( new SolveInit(e) ,atype<void>()); }  
-};
-
-
-
-
-class TypeFormLinear: public ForEachType<const FormLinear*> {
-public:
-  TypeFormLinear() : ForEachType<const FormLinear*>(0,0) {}
-  
-  void SetArgs(const ListOfId *lid) const {
-    SetArgsFormLinear(lid,1);  } 
-  
-  Type_Expr SetParam(const C_F0 & c,const ListOfId *l,size_t & top) const 
-  { return Type_Expr(this,CastTo(c));}
-  //  {  return Type_Expr(c.left(),c.LeftValue());  } // 
-  
-  C_F0 Initialization(const Type_Expr & e) const 
-  {  return C_F0(); }  // nothing to initialize 
-  
-};
-
-
-
-template<class K> class Matrice_Creuse  {
-  //  CountPointer<FESpace> Uh,Vh;
-  //pfes  *pUh,*pVh; // pointeur sur la variable stockant FESpace;  
-public:
-  UniqueffId Uh,Vh; // pour la reconstruction 
-  //  const void * pUh,pVh; //  pointeur pour la reconstruction 
-  CountPointer<MatriceCreuse<K> > A;  
-  TypeSolveMat typemat;
-    size_t count;
-  void init() {
-      count=0;
-    A.init();Uh.init();Vh.init();
-    typemat=TypeSolveMat(TypeSolveMat::NONESQUARE);}
-  Matrice_Creuse() { init();}
-  void destroy() {// Correct Oct 2015 FH (avant test a 'envert) !!!!
-    if(count--==0)
-      A.destroy();
-//else count--;
-    //    Uh.destroy();
-    //Vh.destroy();
-  }   
-  Matrice_Creuse( MatriceCreuse<K> * aa)//,const pfes  *ppUh,const pfes  *ppVh)
-    :A(aa){}//,pUh(ppUh),pVh(ppVh),Uh(*ppUh),Vh(*ppVh) {}
-  Matrice_Creuse( MatriceCreuse<K> * aa,const UniqueffId *pUh,const UniqueffId *pVh)//,const pfes  *ppUh,const pfes  *ppVh)
-    :A(aa),Uh(*pUh),Vh(*pVh) {}//,pUh(ppUh),pVh(ppVh),Uh(*ppUh),Vh(*ppVh) {}
-  long N() const {return  A ? A->n : 0;}
-  long M() const { return A ? A->m : 0;}
-  void resize(int n,int m) { if(A) A->resize(n,m);}
-  void increment(){ count++;}
-};
-
-template<class K> class Matrice_Creuse_Transpose;
-
- template<class KA,class KB>   class Matrix_Prod { public:  
-  Matrice_Creuse<KA> *A;
-  Matrice_Creuse<KB> *B;
-  bool ta,tb;
-  Matrix_Prod(Matrice_Creuse<KA> *AA,Matrice_Creuse<KB> *BB) : A(AA),B(BB),ta(false),tb(false) {assert(AA && BB);}
-  Matrix_Prod(Matrice_Creuse_Transpose<KA> AA,Matrice_Creuse<KB> *BB)           : A(AA),B(BB),ta(true),tb(false) {assert(AA && BB);}
-  Matrix_Prod(Matrice_Creuse<KA> *AA,Matrice_Creuse_Transpose<KB> BB)           : A(AA),B(BB),ta(false),tb(true) {assert(AA && BB);}
-  Matrix_Prod(Matrice_Creuse_Transpose<KA> AA,Matrice_Creuse_Transpose<KB> BB) : A(AA),B(BB),ta(true),tb(true) {assert(AA && BB);}
- };
- 
-template<class K>  ostream & operator << (ostream & f,const Matrice_Creuse<K> & A) 
-{ if ( !A.A) f << " unset sparse matrix " << endl;
- else f << *A.A ;
- return f;  }
-
-template<class K>  istream & operator >> (istream & f,Matrice_Creuse<K> & A) 
-{ 
-    if ( WhichMatrix(f)== 2   )
-    {
-      //	A.pUh=0;
-      //A.pVh=0; 
-	A.A.master(new MatriceMorse<K>(f));
-	A.typemat=(A.A->n == A.A->m) ? TypeSolveMat(TypeSolveMat::GMRES) : TypeSolveMat(TypeSolveMat::NONESQUARE); //  none square matrice (morse)
-	
-    }
-    else {  
-	cerr << " unkwon type of matrix " << endl;
-	ExecError("Erreur read matrix ");	
-	A.A =0; }
-    return f;  }
-
-template<class K> class Matrice_Creuse_Transpose  { public:
-  Matrice_Creuse<K> * A;
-  
-  Matrice_Creuse_Transpose(Matrice_Creuse<K> * AA) : A(AA) {assert(A);}
-  operator MatriceCreuse<K> & () const {return *A->A;}
-  operator Matrice_Creuse<K> * () const {return A;}
-};
-
-template<class K> class Matrice_Creuse_inv  { public:
-  Matrice_Creuse<K> * A;
-  Matrice_Creuse_inv(Matrice_Creuse<K> * AA) : A(AA) {assert(A);}
-  operator MatriceCreuse<K> & () const {return *A->A;}
-  operator Matrice_Creuse<K> * () const {return A;}
-};
-
-
-
-
-
-namespace Fem2D {
-  
-  inline void F_Pi_h(R* v, const R2 & P,const baseFElement & K,int i,const R2 & Phat,void * arg)
-  {
-    TabFuncArg &tabe(*(TabFuncArg*)arg);
-    //MeshPoint & mp = *MeshPointStack(tabe.s);
-    MeshPointStack(tabe.s)->set(P,Phat,K);
-    tabe.eval(v);
-    // if (Norme2_2(P-mp.P) > 1e-10) 
-    //  cout << " bug?? F_Pi_h " << endl; 
-    
-  }
-  
-  inline void FoX_1_Pi_h(R* v, const R2 & P,const baseFElement & K,int i,const R2 & Phat,void * arg)
-  {
-    TabFuncArg &tabe(*(TabFuncArg*)arg);
-    MeshPointStack(tabe.s)->set(P,Phat,K);
-    R2 X=tabe.eval_X();
-    MeshPointStack(tabe.s)->set(X.x,X.y);
-    tabe.eval_2(v);
-  }
-  
-  template<class R,typename MC,class FESpace >  bool AssembleVarForm(Stack stack,const typename FESpace::Mesh & Th,
-								     const FESpace & Uh,const FESpace & Vh,bool sym,
-								     MC  * A,KN_<R> * B,const list<C_F0> &largs );
-
-  template<class R,class FESpace>   void AssembleBC(Stack stack,const typename FESpace::Mesh & Th,
-						    const FESpace & Uh,const FESpace & Vh,bool sym,
-						    MatriceCreuse<R>  * A,KN_<R> * B,KN_<R> * X,
-						    const list<C_F0> &largs , double tgv  );
-  
-  
-  template<class R>   void AssembleLinearForm(Stack stack,const Mesh & Th,const FESpace & Vh,KN_<R> * B,const  FormLinear * const l);
-  
-  //  template<class R>   void AssembleBC(Stack stack,const Mesh3 & Th,const FESpace3 & Uh,const FESpace3 & Vh,bool sym,
-  //			      MatriceCreuse<R>  * A,KN_<R> * B,KN_<R> * X, const list<C_F0> &largs , double tgv  );
-  
-  
-  template<class R>   void AssembleLinearForm(Stack stack,const Mesh3 & Th,const FESpace3 & Vh,KN_<R> * B,const  FormLinear * const l);
-  template<class R>   void AssembleBC(Stack stack,const Mesh & Th3,const FESpace & Uh3,const FESpace & Vh3,bool sym,
-				      MatriceCreuse<R>  * A,KN_<R> * B,KN_<R> * X, const  BC_set * bc , double tgv   );
-  
-  template<class R>   void  Element_rhs(const FElement3 & Kv,int ie,int label,const LOperaD &Op,double * p,void * stack,KN_<R> & B,bool all);
-  template<class R>   void  Element_rhs(const FElement3 & Kv,const LOperaD &Op,double * p,void * stack,KN_<R> & B);
-  template<class R>   void  Element_Op(MatriceElementairePleine<R,FESpace3> & mat,const FElement3 & Ku,const FElement3 & Kv,double * p,int ie,int label, void *stack,R3 *B);
-  template<class R>   void  Element_Op(MatriceElementaireSymetrique<R,FESpace3> & mat,const FElement3 & Ku,double * p,int ie,int label, void * stack,R3 *B);
-  
-  template<class R,class FESpace>
-  void AssembleBC(Stack stack,const typename FESpace::Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                  MatriceCreuse<R>  * A,KN_<R> * B,KN_<R> * X, const list<C_F0> &largs , double tgv  );
-  
-  // fin 3d 
-  
-  template<class R>   void  Element_rhs(const FElement & Kv,int ie,int label,const LOperaD &Op,double * p,void * stack,KN_<R> & B,bool all);
-  template<class R>   void  Element_rhs(const FElement & Kv,const LOperaD &Op,double * p,void * stack,KN_<R> & B);
-  template<class R>   void  Element_Op(MatriceElementairePleine<R,FESpace> & mat,const FElement & Ku,const FElement & Kv,double * p,int ie,int label, void *stack,R2 *B);
-  template<class R>   void  Element_Op(MatriceElementaireSymetrique<R,FESpace> & mat,const FElement & Ku,double * p,int ie,int label, void * stack,R2 *B);
-  
-/*template<class R>   void AssembleBilinearForm(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-                            MatriceCreuse<R>  & A, const  FormBilinear * b  );
-*/ // --------- FH 120105                           
-
-  //template<class R>   void AssembleBC(Stack stack,const Mesh & Th,const FESpace & Uh,const FESpace & Vh,bool sym,
-  //                MatriceCreuse<R>  * A,KN_<R> * B,KN_<R> * X, const  BC_set * bc , double tgv   );
-  
-  
-  //------
-
-
-
-}
-
-
-template<class R,class v_fes>
-AnyType OpArraytoLinearForm<R,v_fes>::Op::operator()(Stack stack)  const 
-{
-  typedef v_fes *pfes;
-  typedef typename  v_fes::FESpace FESpace;
-  typedef typename  FESpace::Mesh Mesh;
-  typedef typename  FESpace::FElement FElement;
-  typedef typename  Mesh::Element Element;
-  typedef typename  Mesh::Vertex Vertex;  
-  typedef typename  Mesh::RdHat RdHat;  
-  typedef typename  Mesh::Rd Rd;  
-
-  pfes  &  pp= *GetAny<pfes * >((*l->ppfes)(stack));
-  FESpace * pVh = *pp ;
-  FESpace & Vh = *pVh ;
-  double tgv= 1e30;
-  if (l->nargs[0]) tgv= GetAny<double>((*l->nargs[0])(stack));  
-  long NbOfDF =  &Vh ? Vh.NbOfDF: 0;
-  KN<R> *px=0;
-  if(isptr)
-    {
-     px = GetAny<KN<R> * >((*x)(stack) );
-     if(init ) 
-       px->init(NbOfDF); 
-     if(px->N() != NbOfDF) //add Dec 2009
-	 px->resize(NbOfDF);
-     ffassert(px->N() == NbOfDF);
-   }
-  KN_<R>  xx( px ? *(KN_<R> *) px : GetAny<KN_<R> >((*x)(stack) ));
-  if(zero && NbOfDF )
-   xx=R();
-    
-  if ( & Vh && AssembleVarForm<R,MatriceCreuse<R>,FESpace >(stack,Vh.Th,Vh,Vh,false,0,&xx,l->largs) )
-    AssembleBC<R,FESpace>(stack,Vh.Th,Vh,Vh,false,0,&xx,0,l->largs,tgv);
-  return SetAny<KN_<R> >(xx);
-}
-
-template<class R>
-void SetSolver(Stack stack,bool VF,MatriceCreuse<R> & A, Data_Sparse_Solver & ds) 
-	       /*Stack stack,MatriceCreuse<R> & A,const TypeSolveMat *typemat,bool VF,double eps,int NbSpace,int itmax,
-	       const OneOperator * const precon,int umfpackstrategy, double tgv,
-	       double tol_pivot,double tol_pivot_sym, 
-	       int *param_int, double *param_double, string *param_char, int *perm_r, 
-	       int *perm_c, string *file_param_int, string *file_param_double, string *file_param_char, 
-	       string *file_param_perm_r, string *file_param_perm_c)*/
-{ 
-  using namespace Fem2D;
-  const OneOperator* pprecon= static_cast<const OneOperator*>(ds.precon);
-  if (ds.typemat->profile)
-    {
-      MatriceProfile<R> & AA(dynamic_cast<MatriceProfile<R> &>(A));
-      ffassert(&AA);
-      switch (ds.typemat->t) {
-        
-      case TypeSolveMat::LU       : AA.typesolver=FactorizationLU; break;
-      case TypeSolveMat::CROUT    : AA.typesolver=FactorizationCrout; break;
-      case TypeSolveMat::CHOLESKY :  AA.typesolver=FactorizationCholeski; break;
-      default:
-        cerr << " type resolution " << ds.typemat->t <<" sym=" <<  ds.typemat->profile <<  endl;
-        CompileError("type resolution unknown"); break;       
-      }
-    }
-  else 
-    {
-      typedef typename MatriceMorse<R>::VirtualSolver VirtualSolver;
-      if(verbosity>5) cout << " Morse matrix GC Precond diag" << endl;
-      MatriceMorse<R> & AA(dynamic_cast<MatriceMorse<R> &>(A));
-      ffassert(&AA);
-      //     ffassert(typemat->t==TypeSolveMat::GC);
-     // using Fem2D;
-      switch (ds.typemat->t) {
-      case    TypeSolveMat::GC:   
-        if (pprecon)
-          AA.SetSolverMaster(static_cast<const VirtualSolver *>(
-                                                                new Fem2D::SolveGCPrecon<R>(AA,pprecon,stack,ds.itmax,ds.epsilon)));
-        else 
-          AA.SetSolverMaster(static_cast<const VirtualSolver *>(
-                                                                new SolveGCDiag<R>(AA,ds.itmax,ds.epsilon)));
-        break; 
-      case TypeSolveMat::GMRES :
-        //        InternalError("GMRES solveur to do");
-        if (pprecon)
-          AA.SetSolverMaster(new SolveGMRESPrecon<R>(AA,pprecon,stack,ds.NbSpace,ds.itmax,ds.epsilon));
-        else 
-          AA.SetSolverMaster(new SolveGMRESDiag<R>(AA,ds.NbSpace,ds.itmax,ds.epsilon));
-        break;
-//#ifdef HAVE_LIBUMFPACK         
-        case TypeSolveMat::SparseSolver :
-	  AA.SetSolverMaster(DefSparseSolver<R>::Build( stack,&AA,ds) ); 
-         //   AA.SetSolverMaster(new SolveUMFPack<R>(AA,umfpackstrategy,tgv,epsilon,tol_pivot,tol_pivot_sym));
-        break;
-           
-//#endif         
-        
-      
-      default:
-      
-        if (verbosity >5)
-          cout << "  SetSolver:: no  default solver " << endl;
-        // cerr << " type resolution " << ds.typemat->t << endl;
-        //  CompileError("type resolution inconnue"); break;       
-      }
-      
-    }
-}
-
-template<class R,class v_fes>
-AnyType OpMatrixtoBilinearForm<R,v_fes>::Op::operator()(Stack stack)  const 
-{
-  typedef typename  v_fes::pfes pfes;
-  typedef typename  v_fes::FESpace FESpace;
-  typedef typename  FESpace::Mesh Mesh;
-  typedef typename  FESpace::FElement FElement;
-  typedef typename  Mesh::Element Element;
-  typedef typename  Mesh::Vertex Vertex;  
-  typedef typename  Mesh::RdHat RdHat;  
-  typedef typename  Mesh::Rd Rd;  
-
-  assert(b && b->nargs);// *GetAny<pfes * >
-  pfes  * pUh= GetAny<pfes *>((*b->euh)(stack));
-  pfes  * pVh= GetAny<pfes *>((*b->evh)(stack));
-  const FESpace & Uh =  *(FESpace*) **pUh ;
-  const FESpace & Vh =  *(FESpace*) **pVh ;
-  bool A_is_square= & Uh == & Vh || Uh.NbOfDF == Vh.NbOfDF ;
-
-  // MatriceProfile<R> *pmatpf=0;
-  bool VF=isVF(b->largs);
-//  assert(!VF);
- // bool factorize=false;
-  Data_Sparse_Solver ds;
-  ds.factorize=false;
-  /*
-    long NbSpace = 50; 
-  long itmax=0; 
-  double epsilon=1e-6;
-  double tgv = 1e30;
-  int strategy=0;
-  double tol_pivot=-1;
-  double tol_pivot_sym=-1;
-
-  KN<int> param_int;
-  KN<double> param_double; 
-  string *param_char = NULL;
-  KN<int> perm_r; 
-  KN<int> perm_c;
-  string *file_param_int;  // Add J. Morice 02/09 
-  string *file_param_double; 
-  string* file_param_char;
-  string* file_param_perm_r;
-  string* file_param_perm_c;  
-*/
-  TypeSolveMat tmat=  ( & Uh == & Vh  ? TypeSolveMat::GMRES : TypeSolveMat::NONESQUARE);
-  ds.typemat=&tmat;
-  ds.initmat=true;
-  SetEnd_Data_Sparse_Solver<R>(stack,ds, b->nargs,OpCall_FormBilinear_np::n_name_param);
-  /*  
-  if (b->nargs[0]) initmat= ! GetAny<bool>((*b->nargs[0])(stack));
-  if (b->nargs[1]) typemat= *GetAny<TypeSolveMat *>((*b->nargs[1])(stack));
-  if (b->nargs[2]) ds.epsilon= GetAny<double>((*b->nargs[2])(stack));
-  if (b->nargs[4]) ds.NbSpace= GetAny<long>((*b->nargs[4])(stack));
-  if (b->nargs[6]) ds.tgv= GetAny<double>((*b->nargs[6])(stack));
-  if (b->nargs[7]) factorize= GetAny<bool>((*b->nargs[7])(stack));
-  if (b->nargs[8]) ds.strategy= GetAny<long>((*b->nargs[8])(stack));
-  if (b->nargs[9]) ds.tol_pivot= GetAny<double>((*b->nargs[9])(stack));
-  if (b->nargs[10]) ds.tol_pivot_sym= GetAny<double>((*b->nargs[10])(stack));
-  if (b->nargs[11]) ds.itmax= GetAny<long>((*b->nargs[11])(stack));
-
-  if (b->nargs[12]) ds.param_int= GetAny< KN<int> >((*b->nargs[12])(stack));  // Add J. Morice 02/09 
-  if (b->nargs[13]) ds.param_double= GetAny< KN<double> >((*b->nargs[13])(stack));
-  if (b->nargs[14]) ds.param_char= GetAny< string * >((*b->nargs[14])(stack));  //
-  if (b->nargs[15]) ds.perm_r = GetAny< KN< int > >((*b->nargs[15])(stack));
-  if (b->nargs[16]) ds.perm_c = GetAny< KN< int > >((*b->nargs[16])(stack));  //
-  if (b->nargs[17]) ds.file_param_int= GetAny< string* >((*b->nargs[17])(stack));  // Add J. Morice 02/09 
-  if (b->nargs[18]) ds.file_param_double= GetAny< string* >((*b->nargs[18])(stack));
-  if (b->nargs[19]) ds.file_param_char= GetAny< string* >((*b->nargs[19])(stack));  //
-  if (b->nargs[20]) ds.file_param_perm_r = GetAny< string* >((*b->nargs[20])(stack));
-  if (b->nargs[21]) ds.file_param_perm_c = GetAny< string* >((*b->nargs[21])(stack));  //
- */
-  if (! A_is_square && *ds.typemat != TypeSolveMat::NONESQUARE) 
-   {
-     cout << " -- Error the solver << "<< ds.typemat <<"  is set  on rectangular matrix  " << endl;
-     ExecError("A solver is set on a none square matrix!");
-    ds.typemat= &(tmat =TypeSolveMat::NONESQUARE);
-   }
-    /*
-  const OneOperator *precon = static_cast<const OneOperator *> (ds.precon); //  a changer 
-  if ( ds.precon)
-    {
-     // const  Polymorphic * op=  dynamic_cast<const  Polymorphic *>(precon);
-      //ffassert(op);
-      precon =  ds.precon op->Find("(",ArrayOfaType(atype<KN<double>* >(),false));
-    }
-     */ // change mars 2011
-  //  for the gestion of the PTR. 
-  WhereStackOfPtr2Free(stack)=new StackOfPtr2Free(stack);// FH aout 2007 
-  
-  Matrice_Creuse<R> & A( * GetAny<Matrice_Creuse<R>*>((*a)(stack)));
-  if(init) A.init(); //
-  if( !& Uh || !& Vh) return SetAny<Matrice_Creuse<R>  *>(&A);
-  /*  if  ( (pUh != A.pUh ) || (pVh != A.pVh  || A.typemat->t != typemat->t) )
-    { 
-      A.Uh.destroy();
-      A.Vh.destroy();
-      }*/
-  const Mesh & Th = Uh.Th;
-  bool same=isSameMesh(b->largs,&Uh.Th,&Vh.Th,stack);     
-  if ( same)
-   {
-     A.typemat = *ds.typemat;
-     if ( A.Uh != Uh  || A.Vh != Vh ) 
-       { // reconstruct all the matrix
-	 A.A=0; // to delete  old  matrix ADD FH 16112005 
-	 A.Uh=Uh;
-	 A.Vh=Vh;
-	 if (ds.typemat->profile)
-	   { A.A.master( new MatriceProfile<R>(Vh,VF) ); ffassert( &Uh == & Vh);}
-	 else if (ds.typemat->sym )
-	   {  A.A.master( new  MatriceMorse<R>(Vh,ds.typemat->sym,VF) ); 
-	     ffassert( &Uh == & Vh);}
-	 else 
-	   {
-	     A.A.master( new  MatriceMorse<R>(Vh,Uh,VF) ); // lines corresponding to test functions 
-	   }
-       }
-     *A.A=R(); // reset value of the matrix
-     
-     if ( AssembleVarForm<R,MatriceCreuse<R>,FESpace >( stack,Th,Uh,Vh,ds.typemat->sym,A.A,0,b->largs) )
-       AssembleBC<R,FESpace>( stack,Th,Uh,Vh,ds.typemat->sym,A.A,0,0,b->largs,ds.tgv);
-   }
-  else
-   { // add FH 17 06 2005  int on different meshes. 
-     map<pair<int,int>, R >   AAA;
-     bool bc=AssembleVarForm<R,map<pair<int,int>, R >,FESpace  >( stack,Th,Uh,Vh,ds.typemat->sym,&AAA,0,b->largs);
-     if (ds.typemat->profile)
-        { ExecError(" Sorry, construction of Skyline matrix with different meshes is not implemented! ");}
-      else 
-        { A.A.master( new  MatriceMorse<R>(Vh.NbOfDF,Uh.NbOfDF,AAA,ds.typemat->sym) ); }
-      if (bc)
-           AssembleBC<R>( stack,Th,Uh,Vh,ds.typemat->sym,A.A,0,0,b->largs,ds.tgv);
-    
-   }
-  if( A_is_square && ds.factorize ) {
-    MatriceProfile<R> * pf = dynamic_cast<MatriceProfile<R> *>((MatriceCreuse<R> *) A.A);
-    assert(pf);
-    switch (ds.typemat->t) {
-    case TypeSolveMat::LU: pf->LU(Abs(ds.epsilon));break;
-    case TypeSolveMat::CROUT: pf->crout(Abs(ds.epsilon));break;
-    case TypeSolveMat::CHOLESKY: pf->cholesky(Abs(ds.epsilon));break;
-    default: ExecError("Sorry no factorize for this type for matrix"); 
-    }
-    
-  }    
-  if (A_is_square) 
-    SetSolver(stack,VF,*A.A,ds);
-	      /*stack,*A.A,&typemat,VF,eps,NbSpace,itmax,precon,umfpackstrategy,tgv,tol_pivot,tol_pivot_sym, 
-	      param_int, param_double, param_char, perm_r, perm_c, file_param_int, file_param_double, file_param_char, 
-	      file_param_perm_r, file_param_perm_c );*/
-  
-  return SetAny<Matrice_Creuse<R>  *>(&A);
-  
-}
-
-
-
-bool SetGMRES();
-bool SetCG();
-#ifdef HAVE_LIBUMFPACK
-bool SetUMFPACK();
-#endif
-/*
-template<class R>
-AnyType ProdMat(Stack,Expression ,Expression);
-template<class R> AnyType DiagMat(Stack,Expression ,Expression);
-template<class R> AnyType CopyTrans(Stack stack,Expression emat,Expression eA);
-template<class R> AnyType CopyMat(Stack stack,Expression emat,Expression eA);
-template<class R> AnyType CombMat(Stack stack,Expression emat,Expression combMat);
-template<class R> AnyType MatFull2Sparse(Stack stack,Expression emat,Expression eA);
-*/
-namespace FreeFempp {
-
-template<class R>
-class TypeVarForm { public:
-    aType tFB;                       
-  //    aType tFB3;                       
-    aType tMat;                       
-    aType tMat3;                       
-    aType tFL;                       
-  //aType tFL3;                       
-    aType tTab;                       
-    aType tMatX;  
-    aType tMatTX;  
-    aType tDotStar;
-    aType tBC ;                    
-  // aType tBC3 ;                    
-TypeVarForm() :
-  tFB( atype<const  FormBilinear *>() ),                      
-  //tFB3( atype<const  FormBilinear<v_fes3> *>() ),                      
-  tMat( atype<Matrice_Creuse<R>*>() ),                       
-  //  tMat3( atype<Matrice_Creuse<R,v_fes3>*>() ),                       
-  tFL( atype<const  FormLinear *>() ),                       
-  //tFL3( atype<const  FormLinear<v_fes3> *>() ),                       
-  tTab( atype<KN<R> *>() ),                       
-  tMatX( atype<typename VirtualMatrice<R>::plusAx >() ),  
-  tMatTX( atype<typename VirtualMatrice<R>::plusAtx >() ),  
-  tDotStar(atype< DotStar_KN_<R> >() ),
-  tBC( atype<const  BC_set  *>())                     
-  {  }
-
-
- static TypeVarForm *Global;
-}; 
-   
-}
-#endif
diff --git a/src/fflib/strversionnumber.cpp b/src/fflib/strversionnumber.cpp
index ea75c70..74696ac 100644
--- a/src/fflib/strversionnumber.cpp
+++ b/src/fflib/strversionnumber.cpp
@@ -18,6 +18,6 @@ string StrVersionNumber(){
 //  buffer.precision(8);
 //  buffer<<VersionNumber();
   static char buffer[100];
-  sprintf(buffer," %9f (date Jeu 12 mar 2015 09:16:31 CET)",VersionNumber());
-  return buffer; //.str()+" (date Jeu 12 mar 2015 09:16:31 CET)" ;
+  sprintf(buffer," %9f (date Παρ 13 Μάρ 2015 03:09:57 μμ EET)",VersionNumber());
+  return buffer; //.str()+" (date Παρ 13 Μάρ 2015 03:09:57 μμ EET)" ;
 }
diff --git a/src/lglib/._lg.ypp b/src/lglib/._lg.ypp
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/lglib/._lg.ypp and /dev/null differ
diff --git a/src/lglib/._mymain.cpp b/src/lglib/._mymain.cpp
deleted file mode 100755
index e9604e8..0000000
Binary files a/src/lglib/._mymain.cpp and /dev/null differ
diff --git a/src/lglib/Makefile.in b/src/lglib/Makefile.in
deleted file mode 100644
index 0c6b39b..0000000
--- a/src/lglib/Makefile.in
+++ /dev/null
@@ -1,740 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/lglib
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AM_V_AR = $(am__v_AR_ at AM_V@)
-am__v_AR_ = $(am__v_AR_ at AM_DEFAULT_V@)
-am__v_AR_0 = @echo "  AR      " $@;
-am__v_AR_1 = 
-liblg_a_AR = $(AR) $(ARFLAGS)
-liblg_a_LIBADD =
-am_liblg_a_OBJECTS = lg.tab.$(OBJEXT) mymain.$(OBJEXT)
-liblg_a_OBJECTS = $(am_liblg_a_OBJECTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(liblg_a_SOURCES)
-DIST_SOURCES = $(liblg_a_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-noinst_LIBRARIES = liblg.a
-liblg_a_SOURCES = lg.tab.hpp lg.tab.cpp  mymain.cpp
-AM_CPPFLAGS = -I$(srcdir)/../fflib -I$(srcdir)/../bamglib -I$(srcdir)/../Graphics -I$(srcdir)/../femlib
-BUILT_SOURCES = lg.tab.hpp lg.tab.cpp
-EXTRA_DIST = lg.ypp
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lglib/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/lglib/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-liblg.a: $(liblg_a_OBJECTS) $(liblg_a_DEPENDENCIES) $(EXTRA_liblg_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f liblg.a
-	$(AM_V_AR)$(liblg_a_AR) liblg.a $(liblg_a_OBJECTS) $(liblg_a_LIBADD)
-	$(AM_V_at)$(RANLIB) liblg.a
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lg.tab.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mymain.Po at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
-	distclean-compile distclean-generic distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
-	uninstall-am
-
-
-# <<lg.tab.?pp>> ALH - 10/9/13 - skip dependency on lg.ypp to make sure that lg.tab.?pp are not rebuilt on every new
-# machine (the danger is to generate unnecessary version conflicts) on these automatically generated files
-
-lg.tab.hpp lg.tab.cpp:
-	-rm lg.tab.hpp  lg.tab.cpp lg.tab.cpp.h
-	bison -dtv -p lg  lg.ypp  -o lg.tab.cpp
-	-mv lg.tab.cpp.h  lg.tab.hpp # pour un  pb entre des versions de bison 
-
-libfreefem++.dylib: lg.tab.o ../fflib/libff.a
-	g++ -bundle lg.tab.o  ../fflib/libff.a $(UMFPACKLIB) $(ARPACKLIB) $(BLASLIB) $(LIBS) -o libfreefem++.dylib
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/lglib/lg.ypp.orig b/src/lglib/lg.ypp.orig
deleted file mode 100644
index 2eb7416..0000000
--- a/src/lglib/lg.ypp.orig
+++ /dev/null
@@ -1,981 +0,0 @@
-// \file
-
-%{ 
-    // -*- Mode : c++ -*-
-    //
-    // SUMMARY  :      
-    // USAGE    :        
-    // ORG      : 
-    // AUTHOR   : Frederic Hecht
-    // E-MAIL   : hecht at ann.jussieu.fr
-    //
-    
-    /*
-     
-     This file is part of Freefem++
-     
-     Freefem++ is free software; you can redistribute it and/or modify
-     it under the terms of the GNU Lesser General Public License as published by
-     the Free Software Foundation; either version 2.1 of the License, or
-     (at your option) any later version.
-     
-     Freefem++  is distributed in the hope that it will be useful,
-     but WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-     GNU Lesser General Public License for more details.
-     
-     You should have received a copy of the GNU Lesser General Public License
-     along with Freefem++; if not, write to the Free Software
-     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-     */
-    
-#include "config-wrapper.h"
-#include <iostream>
-#include  <complex>
-#include <string>
-  // for reset cout,cin  in windows  dll
-#ifdef _WIN32
-#include <ext/stdio_filebuf.h>
-#include <iostream>
-#include <cstdio>
-#endif
-
-#include "error.hpp"
-class Iden;
-#include "strversionnumber.hpp"
-#include "InitFunct.hpp"
-#ifdef __MWERKS__
-#ifdef __INTEL__
-#include <malloc.h>
-#else
-#include <alloca.h>
-#endif
-#endif
-#include "RNM.hpp"
-
-#include "AFunction.hpp"
-//  to reserve space to graphical pointer function
-#include "rgraph.hpp"
-#include "fem.hpp"
-#include "FESpacen.hpp" 
-#include "FESpace.hpp" 
-#include "MeshPoint.hpp"
-
-#include "lgfem.hpp" 
-#include "lex.hpp"
-#include "environment.hpp"
-extern long storageused();
-    extern FILE *ThePlotStream;
-    extern KN<String> *pkarg;
-
-class Routine;
-bool load(string s);
-
- template <class R,int d> class FE;
- template <class R,int d,int i> class FE_;
-
-extern mylex *zzzfff;
-// modif FH for window to have 1 dll  for mpi and none mpi ..
-extern  void (*initparallele)(int &, char **&);
-extern  void (*init_lgparallele)();
-<<<<<<< HEAD
-// extern  void (*end_parallele)();
-=======
-extern  void (*end_parallele)();
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-// 
-#ifdef HAVE_LIBARPACK
-  void init_eigenvalue();
-#endif
-   
-  aType dcltype;
-const int nbembtype=10;
-aType rettype[nbembtype];
-Block * routineinblock[nbembtype]; // Add FH july 2005 pb clean on return 
-int kkembtype=-1;
-int inloopcount=0;
-
-/// <<currentblock>> Block class from [[file:../fflib/AFunction.hpp::Block]]
-
-Block *currentblock;
-
-// Add FH july 2005 
-//  problem clean variable after break,continue and return.
-const int sizeStackOfLoop=100; 
-Block * StackOfLoop[sizeStackOfLoop];
-// end ADD
-double CPUcompileInit =0;
-//class pfes;
-C_F0  fespacetype;
-bool fespacecomplex;
-int fespacedim;
-extern int UnShowAlloc;
-int ShowAlloc(const char *s,size_t &);
-// <<yylex>> Connection from grammar to lexer object zzzfff [[file:../fflib/lex.hpp::zzzfff]] of class mylex
-// [[file:../fflib/lex.hpp::class mylex]]. Method mylex::scan() is implemented at [[file:../fflib/lex.cpp::mylex_scan]]
-
-inline int yylex()  {return zzzfff->scan();}
-inline int lineno() {return zzzfff->lineno();}
-
-extern bool withrgraphique;
-
-/// <<fingraphique>>
-
-inline void fingraphique()
- { if(withrgraphique) 
-   { withrgraphique=false;
-    rattente(1);
-    closegraphique();
-  }}
-
-void lgerror (const char* s) ;
-
-
- // mpi ptr to function ... 
-void (*initparallele)(int &argc, char **& argv)=0 ;
-void (*init_lgparallele)()=0;
-<<<<<<< HEAD
-//void (*end_parallele)()=0;
-=======
-void (*end_parallele)()=0;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-%}
-
-
-/* <<YYSTYPE>> definition. <<yylval>> is renamed <<lglval>> by bison at [[file:lg.tab.cpp::lglval]]. It is allocated in
- lg.tab.o */
-%union{
- double dnum;
- long lnum;
- char * str;
- char oper[8];
- CC_F0 cexp;
- Routine   *routine;
- AC_F0 args;
- aType type;
- CListOfInst cinst;
- Block * block; 
- ListOfId *clist_id;
-/* ListCatch * clist_Catchs;*/
-}
-
-/* BISON Declarations */
-
-%type <cinst>   input
-%type <cinst>   instructions
-%type <cexp>   instruction
-%type  <cexp>  try
-%type  <cexp>  catchs
-/* %type  <cexp>  throw */
-%type <cexp>  declaration 
-%type <cexp>  declaration_for
-%type <cexp>  list_of_dcls
-%type <cexp>  fespace_def
-%type <cexp>  fespace_def_list
-%type <cexp>   Expr
-%type <cexp>   no_comma_expr
-%type <cexp>   sub_script_expr
-%type <cexp>   no_ternary_expr
-%type <cexp>   no_set_expr
-%type <cexp>   unary_expr
-%type <cexp>   pow_expr
-%type <cexp>   primary
-%type <oper>   unop
-%type <args>  parameters
-%type <args>  array 
-%type <args>  parameters_list
-%type  <cexp> begin
-%type  <cexp> end
-%type  <clist_id> list_of_id_args
-%type  <clist_id> list_of_id1
-%type <cexp>  spaceIDs
-%type <cexp>  spaceIDa
-%type <cexp>  spaceIDb
-%type <cexp> ID_space
-%type <cexp>  ID_array_space
-%type <args> bornes;
-%type <args>   border_expr;
-%type <type>   type_of_dcl;
-%type <str> id;
-%type <str> fespace123;
-
-/* Add precedence rules to solve dangling else s/r conflict */
-
-%nonassoc IF
-%nonassoc ELSE
-
-%left <oper> ','
-%right <oper> '=' SET
-%left  <oper> LTLT GTGT
-%left  <oper> OR '|' 
-%left  <oper> AND '&'  
-%left  <oper> EQ NE
-%left  <oper>  '<' '>' LE GE 
-%left  <oper>  '+' '-'
-%left  <oper> '*' '/'  '%' DOTSTAR DOTSLASH
-%right <oper> UNARY PLUSPLUS MOINSMOINS '!'
-%right <oper>  '^' '\''
-%right <oper>  '_' 
-%left  <oper>  '(' '[' '.'
-
-%token <oper> ')'  ']' 
- 
-%token <lnum> LNUM
-%token <dnum> DNUM
-%token <dnum> CNUM
-%token <str> ID
-%token <str> FESPACEID
-%token <str> IDPARAM
-%token <str> STRING
-
-%token ENDOFFILE
-%token INCLUDE
-%token LOAD
-%token BIDON 
-
-%token FOR
-%token WHILE
-%token IF
-%token ELSE
-%token BREAK
-%token CONTINUE
-%token RETURN
-%token TRY
-%token CATCH
-%token THROW
-
-%token <type> TYPE
-%token <type> FUNCTION
-%token <str> FESPACE
-%token <str> FESPACE1
-%token <str> FESPACE3
-
-
-%token DOTSTAR
-%token DOTSLASH
-%token AND
-%token OR
-%token EQ
-%token NE
-%token LE
-%token GE
-%token PLUSPLUS
-%token MOINSMOINS
-%token SET
-%token LTLT
-%token PLUSEQ
-%token MOINSEQ
-%token MULEQ
-%token DIVEQ
-%token DOTMULEQ
-%token DOTDIVEQ
-%token GTGT
-%token ARROW
-%token BORDER
-%token CURVE
-%token SOLVE
-
-%% 
-
-start:   input ENDOFFILE {
-    // clean FH  mach 2014
-		        const char *  magicffglut="#!ffglutdata3.1\n";// for complex and vector 3d plot 
-			//FFCS: divert stream to FFCS
-                        if(ThePlotStream) ffapi::fwriteinit(magicffglut,strlen(magicffglut),1,ThePlotStream);	            
-                        size_t sizestack = currentblock->size()+1024 ; //  before close 
-                        $1+=currentblock->close(currentblock);
-                        if(verbosity>2 || mpirank==0) cout << " sizestack + 1024 =" << sizestack << "  ( " << sizestack-1024 <<" )\n" ;   
-                        size_t lg0,lg1;                       
-                        int NbPtr = ShowAlloc("init execution ",lg0); // number of un delele ptr
-<<<<<<< HEAD
-                        debugstack= new queue<pair<const E_Routine*,int> >;
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-                        size_t stu0=storageused(); // get Storage usage
-			UnShowAlloc =0;// add FH for parallee
-                        if(verbosity>2  || mpirank==0) cout << endl;  
-                        { Stack stack = newStack(sizestack);
-                        double CPUcompile= CPUtime();
-                        try {                  
-                          $1.eval(stack);}
-                        catch ( E_exception & e)  {
-                          cerr << e.what() << " ,  mpirank " << mpirank << endl;
-                          return 1; }
-                        catch( Error & err) {
-                          cerr << err.what() << endl;
-			  cerr << " err code " << err.errcode() << " ,  mpirank " << mpirank << endl;
-                          return err.errcode();
-                        }
-                         catch( ...) { cerr << "Strange catch exception ???\n"; 
-                          cerr << " at exec line  " << TheCurrentLine << " ,  mpirank " << mpirank << endl;
-                          return 1; 
-                         }
-
-                        if(verbosity)  cout << "times: compile "<< CPUcompile-CPUcompileInit <<"s, execution " 
-			    <<  CPUtime()-CPUcompile  <<"s,  mpirank:" << mpirank << endl;
-                        deleteStack(stack);
-                        //debugstack.clear() 
-                        } 
-                        fingraphique();
-			//FFCS: divert stream to FFCS
-			if(ThePlotStream) {ffapi::ff_pclose(ThePlotStream); ThePlotStream=0;}
-			UnShowAlloc =1;
-<<<<<<< HEAD
-                        if(debugstack) delete debugstack;
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-                        NbPtr = ShowAlloc("end execution -- ",lg1) - NbPtr;
-                        long stu1 =storageused()-stu0    ;
-                        
-                        
-			    if (NbPtr || (stu1>100000) ) { cout << " ######## We forget of deleting   " << NbPtr
-			                      << " Nb pointer,   " <<  lg1-lg0 << "Bytes " << " ,  mpirank " << mpirank << ", memory leak ="<< stu1 <<  endl;}
-  return 0;}
-;
-
-/*<<input>>*/
-
-input:   instructions /*[[instructions]]*/
-;
-         
-/*<<instructions>>*/
-
-instructions:  instruction /*[[instruction]]*/   {$$=$1;;;}
-        | instructions  instruction   { $$= ($1+=$2) }         
-        ;
-
-/* Function arguments list */
-
-list_of_id_args:   { $$=new ListOfId();}
-            | id                      { $$ = new ListOfId(); $$->push_back(UnId($1))}
-            | id '=' no_comma_expr    { $$ = new ListOfId(); $$->push_back(UnId($1,$3)) }
-            | FESPACE id              { $$ = new ListOfId(); $$->push_back(UnId($2,Find($1),atype<FE<double,2> **>()))}
-            | FESPACE '&' id              { $$ = new ListOfId(); $$->push_back(UnId($3,Find($1),atype<FE<double,2> **>(),true))}
-            | FESPACE3 id              { $$ = new ListOfId(); $$->push_back(UnId($2,Find($1),atype<FE<double,3> **>()))}
-            | FESPACE3 '&' id              { $$ = new ListOfId(); $$->push_back(UnId($3,Find($1),atype<FE<double,3> **>(),true))}
-            | type_of_dcl id          { $$ = new ListOfId(); $$->push_back(UnId($2,C_F0(),$1->right())) }
-            | type_of_dcl '&' id      { $$ = new ListOfId(); $$->push_back(UnId($3,C_F0(),$1,true)) }
-            | '[' list_of_id_args ']' { $$ = new ListOfId(); $$->push_back(UnId($2)) }
-            | list_of_id_args ',' id                     { $$ = $1; $$->push_back(UnId($3)) }
-            | list_of_id_args ',''[' list_of_id_args ']' { $$ = $1; $$->push_back(UnId($4)) }
-            | list_of_id_args ',' id '=' no_comma_expr   { $$ = $1; $$->push_back(UnId($3,$5)) }
-            | list_of_id_args ',' FESPACE id             { $$ = $1; $$->push_back(UnId($4,Find($3),atype<FE<double,2> **>())) }
-            | list_of_id_args ',' FESPACE '&' id             { $$ = $1; $$->push_back(UnId($5,Find($3),atype<FE<double,2> **>(),true)) }
-            | list_of_id_args ',' FESPACE3 id             { $$ = $1; $$->push_back(UnId($4,Find($3),atype<FE<double,3> **>())) }
-            | list_of_id_args ',' FESPACE3 '&' id             { $$ = $1; $$->push_back(UnId($5,Find($3),atype<FE<double,3> **>(),true)) }
-            | list_of_id_args ',' type_of_dcl id         { $$ = $1; $$->push_back(UnId($4,C_F0(),$3->right())) }
-            | list_of_id_args ',' type_of_dcl '&' id     { $$ = $1; $$->push_back(UnId($5,C_F0(),$3,true)) }
-;
-
-list_of_id1:  id                      { $$ = new ListOfId(); $$->push_back(UnId($1)); }
-            | list_of_id1 ',' id      { $$=$1  ; $$->push_back(UnId($3)); }
-;
-   
-/*<<id>>*/
-      
-id: ID | FESPACE|FESPACE3|FESPACE1; 
-
-/* <<list_of_dcls>> */
-
-list_of_dcls:    ID                         {$$=currentblock->NewVar<LocalVariable>($1,dcltype)}   
-              |  ID '='   no_comma_expr     {$$=currentblock->NewVar<LocalVariable>($1,dcltype,$3)}
-              |  ID  '(' parameters_list ')' {$$=currentblock->NewVar<LocalVariable>($1,dcltype,$3);
-                                              $3.destroy()}
-              |  list_of_dcls ',' list_of_dcls  {$$=C_F0($1,$3)}
-                           
-              
-;
-
-
-parameters_list:
-	   no_set_expr {$$=$1} 
-	|  FESPACE  ID  {$$=Find($1)} 
-	|  FESPACE1  ID  {$$=Find($1)} 
-	|  FESPACE3  ID  {$$=Find($1)} 
-	|  ID '=' no_set_expr { $$=make_pair<const char *,const C_F0>($1,$3)} 	
-	| parameters_list ',' no_set_expr { $$ = ($1 += $3) }
-	| parameters_list ',' id '=' no_set_expr { $$= ($1+= make_pair<const char *,const C_F0>($3,$5))}
-; 
-
-/* <<type_of_dcl>> */
-
-type_of_dcl:   TYPE 
-             | TYPE '[' TYPE ']' {$$=TypeArray($1,$3)}
-             | TYPE '[' TYPE ']' '[' TYPE ']' {$$=TypeArray(TypeArray($1,$3),$6)} // Add FH mars 2012 
-             | TYPE '[' TYPE ',' TYPE ']' {$$=TypeArray($1,$3,$5)}
-             | TYPE '[' TYPE ',' TYPE ']' '[' TYPE ']' {$$=TypeArray(TypeArray($1,$3,$5),$8)}
-             | TYPE '<' TYPE '>' {$$=TypeTemplate($1,$3)}
-	     | TYPE '<' TYPE '>' '[' TYPE ']' {$$=TypeArray(TypeTemplate($1,$3),$6)}
-	     | TYPE '<' TYPE '>' '[' TYPE ',' TYPE ']' {$$=TypeArray(TypeTemplate($1,$3),$6,$8)}
-			    
-             
-;
-
-/* <<ID_space>> */
-
-ID_space:
-ID                                  { $$ =  NewFEvariable($1,currentblock,fespacetype,fespacecomplex,fespacedim); }
-  |  ID '[' no_set_expr ']'              { $$ =  NewFEarray($1,currentblock,fespacetype,$3,fespacecomplex,fespacedim); }
-  |  ID '=' no_set_expr                  { $$ =  NewFEvariable($1,currentblock,fespacetype,$3,fespacecomplex,fespacedim) }
-  |  '[' list_of_id1 ']'                 { $$ =  NewFEvariable($2,currentblock,fespacetype,fespacecomplex,fespacedim) }
-  |  '[' list_of_id1 ']' '[' no_set_expr ']'  { $$ =  NewFEarray($2,currentblock,fespacetype,$5,fespacecomplex,fespacedim) }
-  |  '[' list_of_id1 ']' '=' no_set_expr { $$ =  NewFEvariable($2,currentblock,fespacetype,$5,fespacecomplex,fespacedim) }
-; 
-ID_array_space:
- ID '(' no_set_expr ')'              { $$ =  NewFEarray($1,currentblock,fespacetype,$3,fespacecomplex,fespacedim); }
-  |  '[' list_of_id1 ']' '(' no_set_expr ')'  { $$ =  NewFEarray($2,currentblock,fespacetype,$5,fespacecomplex,fespacedim) }
-
-;
-
-/* <<fespace>> */
-
-fespace123: FESPACE { fespacedim=2} |FESPACE1 { fespacedim=1} | FESPACE3 { fespacedim=3};
-fespace:  fespace123 {fespacecomplex=false;  fespacetype = Find($1);}
-        | fespace123 '<' TYPE '>' {
-             if ($3 != typevarreal && $3 != typevarcomplex) lgerror (" type of finite element <real> or <complex>");
-             fespacecomplex=($3==typevarcomplex);
-             fespacetype = Find($1);}
-;        
-spaceIDa  :      ID_array_space {  $$ = $1  } 
-            |    spaceIDa ',' ID_array_space { $$=C_F0($1,$3);} ;
-            
-spaceIDb  :      ID_space {  $$ = $1  } 
-            |    spaceIDb ',' ID_space { $$=C_F0($1,$3);} ;
-
-spaceIDs :    fespace               spaceIDb    { $$=0;  $$ = $2} 
-           |  fespace '[' TYPE ']'  spaceIDa    { $$=0;  $$ = $5}
-;
-
-/* <<fespace_def>> */
-
-fespace_def:
-   ID '(' parameters_list ')'  {$$=currentblock->NewVar<LocalVariableFES,size_t>($1,typeFESpace($3),$3,dimFESpaceImage($3));
-     $3.destroy(); };
-     
-fespace_def_list:  fespace_def
-                 | fespace_def_list ',' fespace_def {$$=C_F0($1,$3)}
-;
-    
-/* <<declaration>> */
-
-declaration:   type_of_dcl {dcltype=$1} list_of_dcls ';' {$$=$3} /* see [[type_of_dcl]] [[list_of_dcls]] */
-             | FESPACEID  fespace_def_list    ';' {$$=$2}  
-             | spaceIDs ';'{ $$=$1} 
-             | FUNCTION ID '=' Expr ';' {$$=currentblock->NewID($1,$2,$4);} 
-             | FUNCTION type_of_dcl ID  '(' list_of_id_args ')' 
-                   {   /* use the stack to store the prev return type*/
-                      assert(kkembtype+1<nbembtype);
-                      rettype[++kkembtype] = $2->right();
-                      routineinblock[kkembtype] = currentblock;
-                      $<routine>5=new Routine($1,$2->right(),$3,$5,currentblock);
-		      // routineinblock[kkembtype]->Add($3,"(",$<routine>5); //pas recursif pour l'instanat test  FH 27 dec 2008
-                     // cout << " \n after new routine \n " << endl;                      
-                      }
-                    '{' instructions'}' 
-                     { currentblock=$<routine>5->Set($9);
-                       currentblock->Add($3,"(",$<routine>5); //pas recursif pour l'instant test  FH 27 dec 2008
-                       kkembtype--;
-                       $$=0;
-                    
-                        }
-             | FUNCTION ID '(' list_of_id_args ')' 
-                      {Block::open(currentblock); $1->SetArgs($4);}
-                   '='   no_comma_expr  ';' 
-                      {  $<cinst>$=currentblock->close(currentblock);
-                         $$=currentblock->NewID($1,$2,$8,*$4);
-                         delete $4; //  FH 23032005
-                         } 
-;              
-
-begin: '{'  {  Block::open(currentblock)};
-end:   '}'  {  $$=currentblock->close(currentblock)};
-
-for_loop:  FOR {ffassert(inloopcount<sizeStackOfLoop);  // modif FH july 2005
-                StackOfLoop[inloopcount++]=currentblock;};
-while_loop:  WHILE {ffassert(inloopcount<sizeStackOfLoop);
-                StackOfLoop[inloopcount++]=currentblock;}; // modif FH july 2005
-                
-
-declaration_for: 
-    type_of_dcl {dcltype=$1; Block::open(currentblock);  }
-               list_of_dcls {$$=$3};
-
-try: TRY { Block::open(currentblock) };
-
-/*<<instruction>>*/
-
-instruction:   ';' {$$=0;} 
-         | INCLUDE  STRING  {zzzfff->input($2);$$= 0; }
-         | LOAD  STRING  {load($2);$$= 0; }
-         |  try  '{' instructions '}' catchs {$$=Try($3,$5,currentblock->close(currentblock));}
-         |  Expr ';' {$$=$1} /*[[Expr]]*/
-         |  declaration  {$$=$1} /*[[declaration]]*/
-         |  for_loop  '(' Expr ';' Expr ';' Expr ')' instruction {inloopcount--; $$=For($3,$5,$7,$9)} 
-         |  for_loop  '(' declaration_for ';' Expr ';' Expr ')' instruction 
-                {inloopcount--; 
-                $$=C_F0(For($3,$5,$7,$9),currentblock->close(currentblock))}
-                 
-         |  while_loop '(' Expr ')' instruction {inloopcount--;$$=While($3,$5)}
-         |  IF '(' Expr ')'   instruction  {$$=FIf($3,$5)}
-         |  IF '(' Expr ')'   instruction  ELSE instruction {$$=FIf($3,$5,$7)}
-         |  begin  instructions end { 
-                      $$=C_F0(new E_block($2,$3),atype<void>()) }
-         |  BORDER  ID   border_expr { /* <<BORDER_ID>> */
-                      $$=0;currentblock->NewID(atype<const E_Border *>(),$2,C_F0(TheOperators,"[border]",$3))} 
-         |  BORDER  ID   '['  array ']' ';' {
-                      $$=0;currentblock->NewID(atype<const E_Border *>(),$2,C_F0(TheOperators,"[border]",$4))} 
-                               
-         |  BREAK ';' {
-                    if(inloopcount) 
-                      $$= C_F0(new E_throw(E_exception::e_break),atype<void>()); 
-                    else lgerror("break not in loop") }
-         |  CONTINUE ';' { 
-                    if(inloopcount)
-                        $$= C_F0(new E_throw(E_exception::e_continue),atype<void>()) ;
-                    else lgerror("continue not in loop")}
-         |  RETURN  Expr ';' { 
-                    if (kkembtype>=0)
-                      $$= C_F0(new E_throw(E_exception::e_return,(rettype[kkembtype]->CastTo($2)).OnReturn()) ,atype<void>());
-                     else lgerror(" return not in routine ") }
-
-;
-catchs:  
-  CATCH '(' '.' '.' '.'  ')' instruction {$$ =  $7; }
-;
-
-bornes: '(' ID '=' Expr ',' Expr ')' {
-   Block::open(currentblock);
-   $$ = currentblock->NewVar<LocalVariable>($2,atype<double*>());
-   $$+= $4;
-   $$+= $6;
-   $$+= currentblock->NewVar<LocalVariable>("IndexBorder",atype<long*>());}
-;
-bornes: '(' ID '=' Expr ',' Expr ';' ID ')' {
-    Block::open(currentblock);
-    $$ = currentblock->NewVar<LocalVariable>($2,atype<double*>());
-    $$+= $4;
-    $$+= $6;
-    $$+= currentblock->NewVar<LocalVariable>($8,atype<long*>());}
-;
-
-/* <<border_expr>> */
-
-border_expr:   bornes instruction {   
-   $$ = ($1 += $2);
-   currentblock->close(currentblock)} 
- ;
-
-/*<<Expr>>*/
-
-Expr:	 
-         no_comma_expr /*[[no_comma_expr]]*/
-       | Expr ',' Expr {$$=C_F0(TheOperators,$2,$1,$3);}
-;
-
-/*<<unop>>*/
-	
-unop:
-	  '-' 
-	| '+' 
-	| '!' 
-	| PLUSPLUS 
-	| MOINSMOINS 
-;
-
-/*<<no_comma_expr>>*/
-
-no_comma_expr:
-      no_set_expr /*[[no_set_expr]]*/
-	| no_set_expr '=' no_comma_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_set_expr PLUSEQ no_comma_expr {$$=C_F0(TheOperators,"+=",$1,$3)}
-	| no_set_expr MOINSEQ no_comma_expr {$$=C_F0(TheOperators,"-=",$1,$3)}
-	| no_set_expr MULEQ no_comma_expr {$$=C_F0(TheOperators,"*=",$1,$3)}
-	| no_set_expr DIVEQ no_comma_expr {$$=C_F0(TheOperators,"/=",$1,$3)}
-	| no_set_expr DOTMULEQ no_comma_expr {$$=C_F0(TheOperators,".*=",$1,$3)}
-	| no_set_expr DOTDIVEQ no_comma_expr {$$=C_F0(TheOperators,"./=",$1,$3)}
-;
-
-/*<<no_set_expr>>*/
-
-no_set_expr:
-	no_ternary_expr /*[[no_ternary_expr]]*/
-	| no_ternary_expr '?' no_ternary_expr ':' no_ternary_expr {$$=C_F0(TheOperators,"?:",$1,$3,$5)}
-        | no_ternary_expr ':' no_ternary_expr {$$=C_F0(TheOperators,"::",$1,$3)}
-	| no_ternary_expr ':' no_ternary_expr ':' no_ternary_expr {$$=C_F0(TheOperators,"::",$1,$3,$5)} 	
-;
-
-/*<<no_ternary_expr>>*/
-
-no_ternary_expr:
-	  unary_expr /*[[unary_expr]]*/
-	| no_ternary_expr '*' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr DOTSTAR no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr DOTSLASH no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr '/' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr '%' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr '+' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr '-' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr LTLT no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr GTGT no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr '&' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr AND no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr '|' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr OR no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr '<' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr LE no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr '>' no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr GE no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr EQ no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	| no_ternary_expr NE no_ternary_expr {$$=C_F0(TheOperators,$2,$1,$3)}
-	
-;
-
-/*<<sub_script_expr>>*/
-
-sub_script_expr:  
-	    no_ternary_expr {$$=$1} 
-    |   ':' {$$=C_F0(TheOperators,":")}			    
-    |   no_ternary_expr ':' no_ternary_expr {$$=C_F0(TheOperators,":",$1,$3)}
-    |   no_ternary_expr ':' no_ternary_expr ':' no_ternary_expr {$$=C_F0(TheOperators,":",$1,$3,$5)} 
-
-;
-  
-/*<<parameters>>*/
-
-parameters:  {$$=0} 
-	|   FESPACE {$$=Find($1)} /*[[file:../fflib/AFunction2.cpp::Find]]*/
-	|   FESPACE1 {$$=Find($1)} 
-	|   FESPACE3 {$$=Find($1)} 
-
-    /* cf [[id]] [[no_set_expr]] */
-	|  id '=' no_set_expr { $$=make_pair<const char *,const C_F0>($1,$3)}
-
-	|   sub_script_expr {$$=$1} /*[[sub_script_expr]]*/
-	| parameters ',' FESPACE { $$ = ($1 += Find($3)) }
-	| parameters ',' FESPACE1 { $$ = ($1 += Find($3)) }
-	| parameters ',' FESPACE3 { $$ = ($1 += Find($3)) }
-	| parameters ',' sub_script_expr { $$ = ($1 += $3) } /*[[sub_script_expr]]*/
-
-    /* cf [[id]] [[no_set_expr]] */
-	| parameters ',' id '=' no_set_expr { $$= ($1+= make_pair<const char *,const C_F0>($3,$5)) }
-; 
-
-array:   no_comma_expr {$$=$1} 
-       | array ',' no_comma_expr {$$ = ($1 += $3) };
-     
-/*<<unary_expr>>*/
-    
-unary_expr:
-    pow_expr /*[[pow_expr]]*/
-  | unop  pow_expr %prec UNARY {$$=C_F0(TheOperators,$1,$2)} /*[[unop]] [[pow_expr]]*/
-;   
-
-/*<<pow_expr>>*/
-
-pow_expr: primary /*[[primary]]*/
-  |      primary  '^' unary_expr   {$$=C_F0(TheOperators,$2,$1,$3)} 
-  |      primary  '_' unary_expr   {$$=C_F0(TheOperators,$2,$1,$3)} 
-  |      primary '\''              {$$=C_F0(TheOperators,$2,$1)} 
-;
-
-/*<<primary>>*/
-
-primary:  
-
-  /* <<primary_ID>> calls [[file:~/ff/draft/src/fflib/AFunction2.cpp::Find]]
-     returns [[file:~/ff/draft/src/fflib/AFunction.hpp::C_F0]] */
-
-           ID           {$$=Find($1);}
-
-  |        LNUM         {$$= CConstant($1)}
-  |        DNUM         {$$= CConstant($1)}
-  |        CNUM         {$$= CConstant(complex<double>(0,$1))}
-  |        STRING {$$= CConstant<const char *>($1)}
-
-  /* <<primary_brackets_parameters>> refers to [[parameters]] and creates an object of class
-     [[file:../fflib/AFunction.hpp::C_F0]] */
-
-  |        primary '('  parameters ')'  {$$=C_F0($1,$2,$3);}
-
-  |        primary '[' sub_script_expr ']'    {$$=C_F0($1,$2,$3)}
-  |        primary '[' sub_script_expr ',' sub_script_expr ']'  {$$=C_F0($1,$2,$3,$5)}
-  |        primary '['  ']'        {$$=C_F0($1,"[]")}
-  |        primary '.'  ID       { $$=C_F0($1,$3) ;}
-  |        FESPACE '.'  ID       { $$=C_F0(Find($1),$3) ;}
-  |        FESPACE '(' parameters ')'     { $$=C_F0(Find($1),$2,$3) ;}
-  |        FESPACE1 '.'  ID       { $$=C_F0(Find($1),$3) ;}
-  |        FESPACE1 '(' parameters ')'     { $$=C_F0(Find($1),$2,$3) ;}
-  |        FESPACE3 '.'  ID       { $$=C_F0(Find($1),$3) ;}
-  |        FESPACE3 '(' parameters ')'     { $$=C_F0(Find($1),$2,$3) ;}
-  |        primary PLUSPLUS      {$$=C_F0(TheRightOperators,$2,$1)} 
-  |        primary MOINSMOINS    {$$=C_F0(TheRightOperators,$2,$1)} 
-  |        TYPE '('  Expr ')' {
-             if ($1->right()->CastingFrom($3.left()) ) 
-                $$=$1->right()->CastTo($3)  ;
-             else { $$=$1->right()->Find("<--",basicAC_F0_wa($3));
-             if (!$$.left()) { cerr << " no wait to change " << $3.left()->right()->name() << " in " << 
-                                        $1->right()->name() << endl;
-                                CompileError(" Error in type(exp) "); }
-             }
-            }
-  |        '(' Expr ')' {$$=$2}
-  |        '[' array  ']' { $$=C_F0(TheOperators,"[]",$2)} 
-
-;
-
-
-%% 
-
-
-#include <fstream>
-using namespace std;
-// bool lgdebug;
-// bool lexdebug;
-void ForDebug();
-void ForDebug()
-{
-  int i=0;
-  i++;
-}
-//extern void ShowAlloc(const char *s, size_t lg);
-//extern void ShowNbAlloc(const char *s);
-void init_lgfem() ;
-void init_lgmesh() ;
-void init_lgmesh3() ;
-void init_algo();
-bool withrgraphique = false;
-
-/// <<Compile>> Called by mainff(). Activates the bison parser by calling yyparse()
-int Compile()
-{
-
-  // see [[YYSTYPE]] [[yylval]] [[lglval]]
-  extern   YYSTYPE *plglval;  // modif FH 
-
-  /// plglval is allocated at [[file:../fflib/global.cpp::plglval]]
-  plglval = &lglval;
-
-  int retvalue=0;
-
-  currentblock=0;
-  Block::open(currentblock);  
-  try {
-    UnShowAlloc =0;
-
-    retvalue=yyparse(); // grammar analysis starting from [[start_symbol]]
-   
-    if(retvalue==0){
-      if(currentblock) 
-        {retvalue=1; if(!mpirank) cerr <<  "Error:a block is not close" << endl; }  
-      else {
-        if( verbosity  ) {
-	      UnShowAlloc =1;
-	      cerr << " CodeAlloc : nb ptr  "<< CodeAlloc::nb << ",  size :"  <<  CodeAlloc::lg 
-              << " mpirank: " <<mpirank <<  endl    ;
-	      if(!mpirank) cerr <<  "Ok: Normal End" << endl;
-	    }
-	}
-    }
-  }
-
-  catch (Error & e) 
-    {
-      retvalue=e.errcode();
-      if(mpirank ==0)
-	cerr << "error " << e.what() 
-	     << "\n code = "<<  retvalue << " mpirank: " <<mpirank  << endl;
-    }
-  catch(std::ios_base::failure & e)
-    {
-      cerr << "std  catch io failure \n what : " << e.what() << endl;; 
-      cerr << " at exec line  " << TheCurrentLine << " mpirank: " <<mpirank  << endl; 
-    }
-  catch(std::exception & e)
-    {
-      cerr << "std  catch exception \n what : " << e.what() << endl;; 
-      cerr << " at exec line  " << TheCurrentLine << " mpirank: " <<mpirank  << endl; 
-      
-    }
-  catch(...)
-    {
-      cerr << "Strange catch exception ???\n"; 
-      cerr << " at exec line  " << TheCurrentLine << " mpirank: " <<mpirank << endl; 
-    }
-  return retvalue; 
-}
-static void SetcppIo()
-{
-
-#ifdef _WIN32XXXX
-  freopen("conin$", "r", stdin);
-  freopen("conout$", "w", stdout);
-  using namespace __gnu_cxx;
-  //  stdio_filebuf<char> * ccout = new stdio_filebuf<char>(stdout, std::ios_base::out);
-  static  stdio_filebuf<char> ccout(stdout, std::ios_base::out);
-  static  stdio_filebuf<char> ccin(stdin, std::ios_base::in);
-   //stdio_filebuf<char> *ccin= new stdio_filebuf<char>(stdin, std::ios_base::in);
-   
-   cout.rdbuf(&ccout);
-   cin.rdbuf(&ccin);
-   cerr.rdbuf(&ccout);
-   cout << " -- SetcppIo --" << endl; 
-#endif
-   ios::sync_with_stdio();
-}
-
-// pour l'environement.
-extern const char *  prognamearg;
-extern  bool echo_edp;
-
-/// Called by mymain() and calls Compile() to run the FF language parser
-int mainff (int  argc, char **argv)
-{
-    
-   ffapi::init(); 
-  if(argc)  
-    prognamearg=argv[0];
-
-    int vvold=verbosity; 
-    if(mpirank !=0) verbosity=0;
-
-  // ALH - 14/10/8 - This breaks FFCS output redirection
-#ifndef ENABLE_FFCS
-  SetcppIo();
-#endif
-
-  GetEnvironment();   
-    vvold=verbosity; 
-    if(mpirank !=0) verbosity=0; 
-  //  size_t lg000;
- // ShowAlloc("begin main ",lg000);
-  int retvalue=0;
-<<<<<<< HEAD
-   ff_atend(fingraphique);
-=======
-
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-   if (initparallele)initparallele(argc,argv);
-
-  CPUcompileInit= CPUtime();
-  withrgraphique = false;
-   atexit(ForDebug);
-//  AllFunctions::maptype  xlocal;
-//  local=&xlocal;
-  lexdebug = false;
-  lgdebug = false;
-
-  char *  cc= new char [1024];
-  //  istream * ccin=0;
-  if ( ! (getprog(cc,argc,argv) >0)  ) 
-    {
-      cout << "-- FreeFem++ v" << StrVersionNumber() << " (error parameter!)\n"  ;
-<<<<<<< HEAD
-      if(ThePlotStream) {ffapi::ff_pclose(ThePlotStream); ThePlotStream=0;}
-=======
-      if(ThePlotStream) {pclose(ThePlotStream); ThePlotStream=0;}  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-      return 1; 
-    }
-   
-  if(verbosity && (mpirank==0)) { 
-      cout << "-- FreeFem++ v" << StrVersionNumber() << endl;
-      if(verbosity>1) cout << "   file :" << cc << " " << " verbosity= " << verbosity << endl;
-  }
-    
-    KN<String> karg(argc);
-    for(int i=0;i< argc;++i)
-	karg[i]=argv[i];
-    pkarg= &karg;
-
-    /// <<zzzfff>>
-    zzzfff = Newlex(cout,echo_edp);
-<<<<<<< HEAD
-    
-=======
-  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  
-/*  
-  ccin= new ifstream(cc);
-  if (argc >1 && (ccin!=0) )  
-     ccin= new ifstream(argv[1]),throwassert(ccin);
-  if (ccin!=0) 
-    zzzfff = new  mylex(*ccin,cout) ;
-  else 
-    zzzfff = new  mylex(cin,cout) ;
-*/    
-//  les motsclefs    
-   zzzfff->Add("include",INCLUDE);
-   zzzfff->Add("load",LOAD);
-   zzzfff->Add("while",WHILE);
-   zzzfff->Add("for",FOR);
-   zzzfff->Add("if",IF);
-   zzzfff->Add("else",ELSE);
-   zzzfff->Add("end",ENDOFFILE);
-   zzzfff->Add("break",BREAK);
-   zzzfff->Add("continue",CONTINUE);
-   zzzfff->Add("return",RETURN);
-   zzzfff->Add("border",BORDER);
-   zzzfff->Add("fespace",FESPACEID);
-   zzzfff->Add("try",TRY);
-   zzzfff->Add("catch",CATCH);
-   zzzfff->Add("throw",THROW);
-//   Init_map_type();
-   if(verbosity>2 || (mpirank==0 ) ) cout << " Load: ";
-   callInitsFunct() ; //  init for dynamique libs ...
-  // init_lgfem() ;
-   init_lgmesh() ;
-   init_lgmesh3() ;
-   init_algo();
-
-#ifdef HAVE_LIBARPACK
-   init_eigenvalue();
-#endif   
-
-   if(init_lgparallele)  init_lgparallele(); 
-  //  callInitsFunct() ; //  init for dynamique libs ...
-
-   if(verbosity>2 || mpirank==0)  cout << endl;
-  zzzfff->input(cc); // [[file:../fflib/lex.cpp::void mylex input]]
-  EnvironmentLoad(); // just before compile
-  verbosity=vvold; 
-    
-  retvalue= Compile(); // [[Compile]]
-   // cout << " xxxxx " <<  retvalue << " " << ThePlotStream << endl;
-<<<<<<< HEAD
-  
-  //if(end_parallele) end_parallele();
-  ff_finalize(); 
-  //  currentblock->close(currentblock).eval(thestack);
- // fingraphique();
-=======
-
-  if(end_parallele) end_parallele();
-
-  //  currentblock->close(currentblock).eval(thestack);
-  fingraphique();
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-  // FFCS: divert stream to FFCS
-  if(ThePlotStream){
-    ffapi::ff_pclose(ThePlotStream);
-    ThePlotStream=0;
-  }
-  Destroylex( zzzfff);
-<<<<<<< HEAD
-  delete [] cc;
-=======
-  
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-   // ClearMem();
-  return retvalue;
-}
-
-/* FFCS: emacs configuration for this file */
- 
-/*!
- * Local Variables:
- * mode:antlr
- * ispell-local-dictionary:"british"
- * coding:utf-8
- * End:
- */
diff --git a/src/libMesh/Makefile.in b/src/libMesh/Makefile.in
deleted file mode 100644
index cf491fc..0000000
--- a/src/libMesh/Makefile.in
+++ /dev/null
@@ -1,720 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-
-# This is not compiled as a separate library because its
-# interconnections with other libraries have not been solved.
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/libMesh
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AM_V_AR = $(am__v_AR_ at AM_V@)
-am__v_AR_ = $(am__v_AR_ at AM_DEFAULT_V@)
-am__v_AR_0 = @echo "  AR      " $@;
-am__v_AR_1 = 
-libMesh_a_AR = $(AR) $(ARFLAGS)
-libMesh_a_LIBADD =
-am_libMesh_a_OBJECTS = chrono.$(OBJEXT) eigenv.$(OBJEXT) \
-	libmesh3.$(OBJEXT) libmesh5.$(OBJEXT) memory.$(OBJEXT)
-libMesh_a_OBJECTS = $(am_libMesh_a_OBJECTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libMesh_a_SOURCES)
-DIST_SOURCES = $(libMesh_a_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-noinst_LIBRARIES = libMesh.a
-libMesh_a_SOURCES = \
-chrono.c eigenv.c libmesh3.c  libmesh5.c memory.c \
-chrono.h	eigenv.h	libmesh3.h	libmesh5.h	memory.h
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libMesh/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/libMesh/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-libMesh.a: $(libMesh_a_OBJECTS) $(libMesh_a_DEPENDENCIES) $(EXTRA_libMesh_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libMesh.a
-	$(AM_V_AR)$(libMesh_a_AR) libMesh.a $(libMesh_a_OBJECTS) $(libMesh_a_LIBADD)
-	$(AM_V_at)$(RANLIB) libMesh.a
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/chrono.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/eigenv.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmesh3.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmesh5.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/memory.Po at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
-	distclean-compile distclean-generic distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
-	uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/medit/._keyboard.c b/src/medit/._keyboard.c
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/medit/._keyboard.c and /dev/null differ
diff --git a/src/medit/._mouse.c b/src/medit/._mouse.c
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/medit/._mouse.c and /dev/null differ
diff --git a/src/medit/._sproto.h b/src/medit/._sproto.h
deleted file mode 100644
index 14f037e..0000000
Binary files a/src/medit/._sproto.h and /dev/null differ
diff --git a/src/medit/Makefile.in b/src/medit/Makefile.in
deleted file mode 100644
index de813e8..0000000
--- a/src/medit/Makefile.in
+++ /dev/null
@@ -1,844 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-EXTRA_PROGRAMS = ffmedit$(EXEEXT)
-subdir = src/medit
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_ffmedit_OBJECTS = animat.$(OBJEXT) cube.$(OBJEXT) image.$(OBJEXT) \
-	listnum.$(OBJEXT) mouse.$(OBJEXT) persp.$(OBJEXT) \
-	stream.$(OBJEXT) zaldy2.$(OBJEXT) bbfile.$(OBJEXT) \
-	dlists.$(OBJEXT) inmsh2.$(OBJEXT) material.$(OBJEXT) \
-	normal.$(OBJEXT) tiles.$(OBJEXT) camera.$(OBJEXT) \
-	ellipse.$(OBJEXT) inout.$(OBJEXT) medit.$(OBJEXT) \
-	param.$(OBJEXT) psfile.$(OBJEXT) transform.$(OBJEXT) \
-	cenrad.$(OBJEXT) geometry.$(OBJEXT) inout_morice.$(OBJEXT) \
-	menus.$(OBJEXT) parsar.$(OBJEXT) scene.$(OBJEXT) \
-	util.$(OBJEXT) clip.$(OBJEXT) gisfil.$(OBJEXT) \
-	inout_popenbinaire.$(OBJEXT) mesh.$(OBJEXT) parsop.$(OBJEXT) \
-	scissor.$(OBJEXT) vector.$(OBJEXT) clipvol.$(OBJEXT) \
-	hash.$(OBJEXT) items.$(OBJEXT) mlists.$(OBJEXT) \
-	particle.$(OBJEXT) sftcpy.$(OBJEXT) view.$(OBJEXT) \
-	critip.$(OBJEXT) ilists.$(OBJEXT) keyboard.$(OBJEXT) \
-	morphing.$(OBJEXT) path.$(OBJEXT) status.$(OBJEXT) \
-	zaldy1.$(OBJEXT)
-ffmedit_OBJECTS = $(am_ffmedit_OBJECTS)
-ffmedit_LDADD = $(LDADD)
-am__DEPENDENCIES_1 =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(ffmedit_SOURCES)
-DIST_SOURCES = $(ffmedit_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-CXXLD = $(STATICTOOL) $(CXX)
-bin_PROGRAMS = $(MEDITPROG)
-EXTRA_DIST = picking.c 
-ffmedit_SOURCES = animat.c cube.c image.c listnum.c mouse.c persp.c stream.c zaldy2.c bbfile.c dlists.c inmsh2.c		\
-material.c normal.c tiles.c camera.c ellipse.c inout.c medit.c param.c psfile.c transform.c cenrad.c geometry.c		\
-inout_morice.c menus.c parsar.c scene.c util.c clip.c gisfil.c inout_popenbinaire.c mesh.c parsop.c scissor.c vector.c	\
-clipvol.c hash.c items.c mlists.c particle.c sftcpy.c view.c critip.c ilists.c keyboard.c morphing.c path.c status.c	\
-zaldy1.c chrono.h extern.h image.h mesh.h eigenv.h grafic.h medit.h sproto.h
-
-LDADD = picking.$(OBJEXT) ../libMesh/libMesh.a $(LIBSGLUT) -lm
-AM_CPPFLAGS = -I$(srcdir)/../libMesh
-BUILT_SOURCES = compil.date
-#.PHONY: compil.date
-
-# ALH - during a parallel make, we should make sure that picking.o is not used before being made by a different
-# thread. If I understand things correctly, picking.c should not be compiled with the regular CFLAGS options.
-ffmedit_DEPENDENCIES = picking.$(OBJEXT)
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/medit/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/medit/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-	fi; \
-	for p in $$list; do echo "$$p $$p"; done | \
-	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p \
-	  ; then echo "$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n;h' \
-	    -e 's|.*|.|' \
-	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
-	sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
-	    else { print "f", $$3 "/" $$4, $$1; } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	    test -z "$$files" || { \
-	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	    } \
-	; done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' \
-	`; \
-	test -n "$$list" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-ffmedit$(EXEEXT): $(ffmedit_OBJECTS) $(ffmedit_DEPENDENCIES) $(EXTRA_ffmedit_DEPENDENCIES) 
-	@rm -f ffmedit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ffmedit_OBJECTS) $(ffmedit_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/animat.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/bbfile.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/camera.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cenrad.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/clip.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/clipvol.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/critip.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/cube.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dlists.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ellipse.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/geometry.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gisfil.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hash.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ilists.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/image.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/inmsh2.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/inout.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/inout_morice.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/inout_popenbinaire.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/items.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/keyboard.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/listnum.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/material.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/medit.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/menus.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mesh.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mlists.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/morphing.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mouse.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/normal.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/param.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/parsar.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/parsop.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/particle.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/path.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/persp.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/psfile.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/scene.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/scissor.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sftcpy.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/status.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/stream.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tiles.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transform.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/util.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vector.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/view.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zaldy1.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zaldy2.Po at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
-	clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
-	distclean distclean-compile distclean-generic distclean-tags \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-binPROGRAMS install-data install-data-am \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
-	ps ps-am tags tags-am uninstall uninstall-am \
-	uninstall-binPROGRAMS
-
-compil.date: $(ffmedit_SOURCES)
-	echo "#define COMPIL " '"' `date` '(with ff++ $(VERSION))''"' > compil.date
-picking.$(OBJEXT):picking.c
-	${CC} -c $< $(CNOFLAGS) -o $@ 
-
-###pinking.no-optffmedit$(EXEEXT):picking.c
-###	rm picking.$(OBJEXT)
-###	$(MAKE) picking.o $(MEDITPROG) CFLAGS="$(CNOFLAGS)"
-###	touch pinking.no-optffmedit$(EXEEXT)
-###pinking.no-opt:picking.c
-###	touch pinking.no-opt
-###clean-local:
-###	-rm pinking.no-opt pinking.no-optffmedit$(EXEEXT)
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/mpi/._parallelempi.cpp b/src/mpi/._parallelempi.cpp
deleted file mode 100644
index e9604e8..0000000
Binary files a/src/mpi/._parallelempi.cpp and /dev/null differ
diff --git a/src/mpi/Makefile.in b/src/mpi/Makefile.in
deleted file mode 100644
index fddf9f6..0000000
--- a/src/mpi/Makefile.in
+++ /dev/null
@@ -1,899 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-# change FH mars 2010 for sgi mpiu .... 
-
-# FFCS - we need to call MPICXX directly because Windows options are too different to be detailed to the FF configuration script.
-
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-EXTRA_PROGRAMS = FreeFem++-mpi$(EXEEXT)
-subdir = src/mpi
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_FreeFem___mpi_OBJECTS = sansrgraph.$(OBJEXT) mymain.$(OBJEXT) \
-	parallelempi.$(OBJEXT) lg.tab.$(OBJEXT) ffapi.$(OBJEXT)
-FreeFem___mpi_OBJECTS = $(am_FreeFem___mpi_OBJECTS)
-FreeFem___mpi_LDADD = $(LDADD)
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-SCRIPTS = $(bin_SCRIPTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-SOURCES = $(FreeFem___mpi_SOURCES)
-DIST_SOURCES = $(FreeFem___mpi_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @MPICXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-
-# To create statically linked executables (see configure.ac)
-CXXLD = $(STATICTOOL) $(CXX)
-
-# MPI may not be installed. Checked in configure.ac
-bin_PROGRAMS = $(MPIPROG)
-bin_SCRIPTS = $(MPISCRIPT)
-EXTRA_SCRIPTS = ff-mpirun
-EXTRA_DIST = ff-mpirun.in
-
-# FFCS: visualization stream redirection
-FreeFem___mpi_SOURCES = ../Graphics/sansrgraph.cpp ../lglib/mymain.cpp parallelempi.cpp ../lglib/lg.tab.cpp	\
-	../fflib/ffapi.cpp
-
-FreeFem___mpi_DEPENDENCIES = ../fflib/libff.a
-LDADD = ../fflib/libff.a @UMFPACKLIBS@ @ARPACKLIBS@ @BLASLIBS@ @MPI_LIB@
-AM_CXXFLAGS = -DPARALLELE
-AM_CPPFLAGS = -I$(srcdir)/../fflib -I$(srcdir)/../Graphics -I$(srcdir)/../femlib @MPI_INCLUDE@
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/mpi/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/mpi/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-	fi; \
-	for p in $$list; do echo "$$p $$p"; done | \
-	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p \
-	  ; then echo "$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n;h' \
-	    -e 's|.*|.|' \
-	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
-	sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
-	    else { print "f", $$3 "/" $$4, $$1; } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	    test -z "$$files" || { \
-	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	    } \
-	; done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' \
-	`; \
-	test -n "$$list" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-FreeFem++-mpi$(EXEEXT): $(FreeFem___mpi_OBJECTS) $(FreeFem___mpi_DEPENDENCIES) $(EXTRA_FreeFem___mpi_DEPENDENCIES) 
-	@rm -f FreeFem++-mpi$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(FreeFem___mpi_OBJECTS) $(FreeFem___mpi_LDADD) $(LIBS)
-install-binSCRIPTS: $(bin_SCRIPTS)
-	@$(NORMAL_INSTALL)
-	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-	fi; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n' \
-	    -e 'h;s|.*|.|' \
-	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
-	      if (++n[d] == $(am__install_max)) { \
-		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
-	    else { print "f", d "/" $$4, $$1 } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	     test -z "$$files" || { \
-	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	     } \
-	; done
-
-uninstall-binSCRIPTS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	       sed -e 's,.*/,,;$(transform)'`; \
-	dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffapi.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lg.tab.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mymain.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/parallelempi.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sansrgraph.Po at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-sansrgraph.o: ../Graphics/sansrgraph.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sansrgraph.o -MD -MP -MF $(DEPDIR)/sansrgraph.Tpo -c -o sansrgraph.o `test -f '../Graphics/sansrgraph.cpp' || echo '$(srcdir)/'`../Graphics/sansrgraph.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/sansrgraph.Tpo $(DEPDIR)/sansrgraph.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/sansrgraph.cpp' object='sansrgraph.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sansrgraph.o `test -f '../Graphics/sansrgraph.cpp' || echo '$(srcdir)/'`../Graphics/sansrgraph.cpp
-
-sansrgraph.obj: ../Graphics/sansrgraph.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sansrgraph.obj -MD -MP -MF $(DEPDIR)/sansrgraph.Tpo -c -o sansrgraph.obj `if test -f '../Graphics/sansrgraph.cpp'; then $(CYGPATH_W) '../Graphics/sansrgraph.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/sansrgraph.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/sansrgraph.Tpo $(DEPDIR)/sansrgraph.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/sansrgraph.cpp' object='sansrgraph.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sansrgraph.obj `if test -f '../Graphics/sansrgraph.cpp'; then $(CYGPATH_W) '../Graphics/sansrgraph.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/sansrgraph.cpp'; fi`
-
-mymain.o: ../lglib/mymain.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mymain.o -MD -MP -MF $(DEPDIR)/mymain.Tpo -c -o mymain.o `test -f '../lglib/mymain.cpp' || echo '$(srcdir)/'`../lglib/mymain.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mymain.Tpo $(DEPDIR)/mymain.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../lglib/mymain.cpp' object='mymain.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mymain.o `test -f '../lglib/mymain.cpp' || echo '$(srcdir)/'`../lglib/mymain.cpp
-
-mymain.obj: ../lglib/mymain.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mymain.obj -MD -MP -MF $(DEPDIR)/mymain.Tpo -c -o mymain.obj `if test -f '../lglib/mymain.cpp'; then $(CYGPATH_W) '../lglib/mymain.cpp'; else $(CYGPATH_W) '$(srcdir)/../lglib/mymain.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mymain.Tpo $(DEPDIR)/mymain.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../lglib/mymain.cpp' object='mymain.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mymain.obj `if test -f '../lglib/mymain.cpp'; then $(CYGPATH_W) '../lglib/mymain.cpp'; else $(CYGPATH_W) '$(srcdir)/../lglib/mymain.cpp'; fi`
-
-lg.tab.o: ../lglib/lg.tab.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lg.tab.o -MD -MP -MF $(DEPDIR)/lg.tab.Tpo -c -o lg.tab.o `test -f '../lglib/lg.tab.cpp' || echo '$(srcdir)/'`../lglib/lg.tab.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lg.tab.Tpo $(DEPDIR)/lg.tab.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../lglib/lg.tab.cpp' object='lg.tab.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lg.tab.o `test -f '../lglib/lg.tab.cpp' || echo '$(srcdir)/'`../lglib/lg.tab.cpp
-
-lg.tab.obj: ../lglib/lg.tab.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT lg.tab.obj -MD -MP -MF $(DEPDIR)/lg.tab.Tpo -c -o lg.tab.obj `if test -f '../lglib/lg.tab.cpp'; then $(CYGPATH_W) '../lglib/lg.tab.cpp'; else $(CYGPATH_W) '$(srcdir)/../lglib/lg.tab.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/lg.tab.Tpo $(DEPDIR)/lg.tab.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../lglib/lg.tab.cpp' object='lg.tab.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o lg.tab.obj `if test -f '../lglib/lg.tab.cpp'; then $(CYGPATH_W) '../lglib/lg.tab.cpp'; else $(CYGPATH_W) '$(srcdir)/../lglib/lg.tab.cpp'; fi`
-
-ffapi.o: ../fflib/ffapi.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ffapi.o -MD -MP -MF $(DEPDIR)/ffapi.Tpo -c -o ffapi.o `test -f '../fflib/ffapi.cpp' || echo '$(srcdir)/'`../fflib/ffapi.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ffapi.Tpo $(DEPDIR)/ffapi.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../fflib/ffapi.cpp' object='ffapi.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ffapi.o `test -f '../fflib/ffapi.cpp' || echo '$(srcdir)/'`../fflib/ffapi.cpp
-
-ffapi.obj: ../fflib/ffapi.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ffapi.obj -MD -MP -MF $(DEPDIR)/ffapi.Tpo -c -o ffapi.obj `if test -f '../fflib/ffapi.cpp'; then $(CYGPATH_W) '../fflib/ffapi.cpp'; else $(CYGPATH_W) '$(srcdir)/../fflib/ffapi.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ffapi.Tpo $(DEPDIR)/ffapi.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../fflib/ffapi.cpp' object='ffapi.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ffapi.obj `if test -f '../fflib/ffapi.cpp'; then $(CYGPATH_W) '../fflib/ffapi.cpp'; else $(CYGPATH_W) '$(srcdir)/../fflib/ffapi.cpp'; fi`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(SCRIPTS)
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS install-binSCRIPTS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
-	clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
-	distclean distclean-compile distclean-generic distclean-tags \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-binPROGRAMS install-binSCRIPTS install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
-	uninstall-am uninstall-binPROGRAMS uninstall-binSCRIPTS
-
-ff-mpirun:ff-mpirun.in Makefile
-	../../config.status  --file=ff-mpirun:ff-mpirun.in
-	chmod a+x  ff-mpirun
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/mpi/parallelempi.cpp.orig b/src/mpi/parallelempi.cpp.orig
deleted file mode 100644
index 1bde599..0000000
--- a/src/mpi/parallelempi.cpp.orig
+++ /dev/null
@@ -1,2661 +0,0 @@
-#include <config.h>
-#include <fstream>
-#include <iostream>
-#include <cfloat>
-#include <cmath>
-#include <cstring>
-#include <complex>
-#include<stdlib.h>
-using namespace std;
-#include "error.hpp"
-#include "AFunction.hpp"
-// FH: I have move AFunction_ext.hpp  to fflib dir.
-#include "AFunction_ext.hpp" 
-// Add J. Morice for AFunction_ext.hpp 
-#include "ufunction.hpp"
-using namespace std;  
-#include "rgraph.hpp"
-#include "RNM.hpp"
-// after RNM   otherwise 
-// trouble with index in RNM (I do no understander FH)
-#include <set>
-#include <vector>
-#include <map>
-
-#include "fem.hpp"
-
-
-#include "FESpacen.hpp" 
-#include "FESpace.hpp" 
-
-#include "MatriceCreuse_tpl.hpp"
-#include "MeshPoint.hpp"
-#include "Mesh2dn.hpp"
-#include "Mesh3dn.hpp"
-#include "Operator.hpp" 
-#include "lex.hpp"
-#include "libmesh5.h"
-#include "lgfem.hpp"
-#include "lgmesh3.hpp"
-#include "lgsolver.hpp"
-#include "problem.hpp"
-
-//FFCS redirection
-#include "../fflib/ffapi.hpp"
-
-#undef MPICH_SKIP_MPICXX
-#define  MPICH_SKIP_MPICXX
-#undef MPICH_IGNORE_CXX_SEEK
-#define MPICH_IGNORE_CXX_SEEK
-#include <mpi.h>
-
-// Remark on mipich  MPI_Comm, MPI_Resquest, MPI_Group, MPI_Op are int 
-//  => encapsulation
-
-//static long verbosity=1000;
-template<class MPI_type,int DIFF>
-struct fMPI { 
-  MPI_type v; 
-  operator  MPI_type &() {return v;}
-  operator  MPI_type *() {return &v;}
-  operator  MPI_type () const  {return v;}
-  
-  // MPI_type * operator  &() {return &v;}
-  void operator=(const MPI_type vv) { v=vv;}
-  fMPI(const MPI_type vv=0) : v(vv){}
-  bool operator!=(MPI_type vv) const {return vv !=v;}
-  bool operator==(MPI_type vv) const {return vv ==v;}
-  
-};
-
-// the encapsulation for the for MPI type  (int on mpich )
-
-typedef fMPI<MPI_Comm,1> fMPI_Comm;
-typedef fMPI<MPI_Group,2> fMPI_Group;
-typedef fMPI<MPI_Request,3> fMPI_Request;
-typedef fMPI<MPI_Op,4> fMPI_Op;
-
-
-
-// end of encapsulation ..
-
-// to send a sparse matrix we send header, line array ,colmun array, value array.
-//  end afer the fist resquest we need to do allocation.
-// so in this cas the communacatio is done in
-// 2 step  
-//    1 the header, 
-//       alloc time 
-//    2 the  message 
-//  a couple request, pointer. 
-//    Not use of IPROBE because probelem of wait. 
-class MPIrank; 
-class DoOnWaitMPI_Request ; 
-
-map<MPI_Request*,DoOnWaitMPI_Request *> ToDoOnWaitMPI_Request;
-
-void GetPendingWait() ;
-
-
-template<class T> struct MPI_TYPE {static const MPI_Datatype  TYPE(){return MPI_BYTE;}};;
-template<> struct MPI_TYPE<long>      {static const MPI_Datatype  TYPE(){return MPI_LONG;}};
-template<> struct MPI_TYPE<int>      {static const MPI_Datatype TYPE(){return MPI_INT;}};
-template<> struct MPI_TYPE<double>    {static const MPI_Datatype TYPE(){return MPI_DOUBLE;}};
-template<> struct MPI_TYPE<char>    {static const MPI_Datatype TYPE(){return MPI_BYTE;}};
-
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-template<> struct MPI_TYPE<Complex>   {static const MPI_Datatype TYPE(){return MPI_DOUBLE_COMPLEX;}};
-#endif
-template<class T> struct MPI_WHAT {};
-template<> struct MPI_WHAT<long>      {static const int WHAT=101;};
-template<> struct MPI_WHAT<double>    {static const int WHAT=102;};
-template<> struct MPI_WHAT<Complex>   {static const int WHAT=103;};
-template<> struct MPI_WHAT<KN<long> *>   {static const int WHAT=104;};
-template<> struct MPI_WHAT<KN<double>* >   {static const int WHAT=105;};
-template<> struct MPI_WHAT<KN<Complex>* >   {static const int WHAT=106;};
-
-template<class T> struct MPI_TAG {};
-template<> struct MPI_TAG<long>   {static const int TAG=5;};
-template<> struct MPI_TAG<double>    {static const int TAG=4;};
-template<> struct MPI_TAG<Complex >   {static const int TAG=6;};
-template<> struct MPI_TAG<KN<long>* >   {static const int TAG=11;};
-template<> struct MPI_TAG<KN<double>* >   {static const int TAG=12;};
-template<> struct MPI_TAG<KN<Complex>* >   {static const int TAG=13;};
-template<> struct MPI_TAG<Mesh *>   {static const int TAG=1000;};
-template<> struct MPI_TAG<Mesh3 *>   {static const int TAG=1010;};
-template<> struct MPI_TAG<Matrice_Creuse<double> *>   {static const int TAG=1020;};
-template<> struct MPI_TAG<Matrice_Creuse<Complex> *>   {static const int TAG=1030;};
-
-void f_initparallele(int &, char **&);
-void f_init_lgparallele();  
-
-extern long mpirank ;
-extern long mpisize ;
-
-//  for syncro communication
-MPI_Request *  Syncro_block = reinterpret_cast<MPI_Request * > (1); 
-
-const size_t sizempibuf = 1024*320;
-
-template<class R> 
-long  WSend( R * v,int l,int who,int tag,MPI_Comm comm,MPI_Request *rq)
-{
-  long ret=0;
-  MPI_Request rq0,*request=&rq0;
-  if(verbosity>100)
-    cout << mpirank<< " send to " << who << " tag " << tag << " " << rq << " " <<  comm << " syncro "<<  (rq == Syncro_block) <<endl;
-  if(rq == Syncro_block) 
-    ret=MPI_Send((void *) v,l, MPI_TYPE<R>::TYPE() , who, tag,comm);
-  else
-    {
-      ret=MPI_Isend((void *) v,l, MPI_TYPE<R>::TYPE() , who, tag,comm,request);
-      if(rq) *rq=*request;
-      else MPI_Request_free(request); 
-    }
-    return ret;
-}
-
-template<class T>
-void CheckContigueKN(const KN_<T> &t)
-{
-    if( t.step != 1 && t.N()>1) {
-	cout<< " step= "<< t.step << " size " << t.N() << " " << & t[0] << " " << & t[1] << endl;
-	ExecError("Sorry the array is not contigue (step != 1) ");
-    }
-}
-template<> 
-long  WSend<Complex> ( Complex * v,int n,int who,int tag,MPI_Comm comm,MPI_Request *rq)
-{
-  long ret=0;
-  MPI_Request rq0,*request=&rq0;
-  if(verbosity>100)
-    cout << mpirank<< " send to " << who << " tag " << tag << " " << rq << " " <<  comm << " syncro "<<  (rq == Syncro_block) << endl;
-  if(rq == Syncro_block) 
-    {
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-      ret=MPI_Send(reinterpret_cast<void*> (v) , n, MPI_DOUBLE_COMPLEX, who, tag,comm);
-#else
-      n *=2;
-      ret=  MPI_Send(reinterpret_cast<void*> (v), n, MPI_DOUBLE, who, tag,comm);
-#endif	  
-    }
-  else
-    {
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-      ret=MPI_Isend(reinterpret_cast<void*> (v) , n, MPI_DOUBLE_COMPLEX, who, tag,comm,request);
-#else
-      n *=2;
-      ret=MPI_Isend(reinterpret_cast<void*> (v), n, MPI_DOUBLE, who, tag,comm,request);
-      n /= 2;
-#endif
-      if(rq) *rq=*request;
-      else MPI_Request_free(request);
-      } 
-  return ret;
-}
-
-template<class R> 
-long  WRecv(R * v,int n,int who,int tag,MPI_Comm comm,MPI_Request *rq)
-{
-  MPI_Status status;
-  if(rq && (rq != Syncro_block)) 
-    return MPI_Irecv(reinterpret_cast<void*> (v),n, MPI_TYPE<R>::TYPE() , who, tag,comm,rq);
-  else 
-    return MPI_Recv(reinterpret_cast<void*> (v),n, MPI_TYPE<R>::TYPE() , who, tag,comm,&status);
-}
-
-template<> 
-long  WRecv<Complex> (Complex * v,int n,int who,int tag,MPI_Comm comm,MPI_Request *rq)
-{
-  MPI_Status status;
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-  if(rq && (rq != Syncro_block)) 
-    return MPI_Irecv(reinterpret_cast<void*> (v), n, MPI_DOUBLE_COMPLEX, who, tag,comm,rq);
-  else 
-    return MPI_Recv(reinterpret_cast<void*> (v), n, MPI_DOUBLE_COMPLEX, who, tag,comm,&status);
-#else
-  n *=2;
-  if(rq && (rq != Syncro_block)) 
-    return  MPI_Irecv(reinterpret_cast<void*> (v), n, MPI_DOUBLE, who, tag,comm,rq);
-  else 
-       return MPI_Recv(reinterpret_cast<void*> (v), n, MPI_DOUBLE, who, tag,comm,&status);
-#endif
-}
-			 
-template<class R> 
-void  WBcast(R * v,int  n,int who,MPI_Comm comm)  
-{
-  assert(v && n>0);
-  MPI_Bcast(reinterpret_cast<void*> (v), n, MPI_TYPE<R>::TYPE(), who,comm);
-}
-
-template<> 
-void  WBcast<Complex>(Complex * v,int  n,int who,MPI_Comm comm)  
-{
-  assert(v && n>0);
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-    MPI_Bcast(reinterpret_cast<void*> (v), n, MPI_DOUBLE_COMPLEX /*MPI_TYPE<R>::TYPE()*/, who,comm);
-#else
-  n *=2;
-  MPI_Bcast(reinterpret_cast<void*> (v), n, MPI_DOUBLE, who,comm);
-#endif
-}
-
-			 
-
-
-
-struct MPIrank {
-  
-  int who; 
-  MPI_Comm comm; 
-  MPI_Request *rq; 
-  // mutable bool block;  
-  
-  MPIrank(int i=0,MPI_Comm com=MPI_COMM_WORLD, MPI_Request *rqq=0) 
-    : who(i) , comm(com),rq(rqq) 
-  {
-	int n;
-	MPI_Comm_size(comm, &n);
-	// cout <<" who = " << who << " ******** " << n << " "<< ((-2 < who) && (who < n))  << endl;
-	// ffassert( (-2 < who) && (who < n) ); // plant sans raison ...
-  } 
-  
-  
-  
-  long Send(double a)const  {return WSend(&a, 1, who, MPI_TAG< double >::TAG,comm,rq); }
-  long Send(long a)const  {return WSend(&a, 1, who, MPI_TAG< long >::TAG,comm,rq); }
-  long Send(Complex a)const  {return WSend(&a, 1, who, MPI_TAG< Complex >::TAG,comm,rq); }
-  
-  long Recv(double & a) const { return  WRecv(&a, 1,  who, MPI_TAG< double >::TAG ,comm,rq);}
-  long Recv(long & a) const { return  WRecv(&a, 1,  who, MPI_TAG< long >::TAG ,comm,rq);}
-  long Recv(Complex & a) const { return  WRecv(&a, 1,  who, MPI_TAG< Complex >::TAG ,comm,rq);}
-  
-  const MPIrank & Bcast(double & a) const {WBcast(&a, 1, who,comm); return *this; }
-  const MPIrank & Bcast(long & a) const {WBcast(&a, 1, who,comm); return *this; }
-  const MPIrank & Bcast(Complex & a) const {WBcast(&a, 1, who,comm); return *this; }
-  
-  
-  
-  template<class R>
-  long Recv(KN<R> & a) const {
-    assert(&a);
-      CheckContigueKN(a);
-  
-    if(verbosity>99)
-      cout << " ---- " << who  << "  >> " << & a << " " << a.N() << " " << a.step << " " << MPI_TAG<KN<R>* >::TAG 
-	       <<" from " << mpirank << "  "<<  (R *) a << endl;
-    int n= a.N();
-    long ll=WRecv((R *) a, n, who, MPI_TAG<KN<R>* >::TAG ,comm,rq);
-    if(verbosity>99)
-      cout << " ++++ " << who  << "  >> " << & a << " " << a.N() << " " << MPI_TAG<KN<R>* >::TAG 
-	   <<" from  " << mpirank << "  "<<  (R *) a << endl;
-    ffassert(a.N()==n);
-    return ll;
-  }
-  
-  template<class R>
-  long Send(const KN<R> *aa)const  {
-    const KN<R> & a=*aa;
-    ffassert(&a); 
-    int n= a.N();
-    CheckContigueKN(*aa);
-    if(verbosity>99)
-	  cout << " .... " << who  << "  >> " << & a << " " << a.N() << " " << a.step<< " " << MPI_TAG<KN<R>* >::TAG 
-	       <<" from  " << mpirank << "  "<<  (R *) a << endl;
-    return WSend((R *) a,n,who,MPI_TAG<KN<R>* >::TAG,comm,rq);
-  }
-  
-  template<class R> 
-  const MPIrank & Bcast(const KN<R> &a) const  {
-    //const KN<R> & a=*aa;
-    assert(&a); 
-    int n= a.N();
-    CheckContigueKN(a);
-
-    WBcast((R *) a, n, who,comm);
-    ffassert(a.N()==n);
-    return *this;
-  }
-  
-  
-  const MPIrank & Bcast(Fem2D::Mesh *&  a) const {
-    if(verbosity>1) 
-      cout << " MPI Bcast  (mesh *) " << a << endl;
-    Serialize  *buf=0;
-    long nbsize=0;
-    if(  who == mpirank)  
-      {
-	buf =new Serialize((*a).serialize());
-	nbsize =  buf->size();
-      }
-    WBcast( &nbsize, 1,  who,comm);
-    if (who != mpirank)
-      buf= new Serialize(nbsize,Fem2D::Mesh::magicmesh);
-    assert(nbsize);
-    if(verbosity>2) 
-      cout << " size to bcast : " << nbsize << " mpirank : " << mpirank << endl;
-    
-    WBcast( (char *)(*buf),nbsize,  who,comm);     
-        
-    if(who != mpirank)
-      {
-	if (a) (*a).decrement();
-	a= new Fem2D::Mesh(*buf);
-	Fem2D::R2 Pn,Px;
-	a->BoundingBox(Pn,Px);
-	a->quadtree=new Fem2D::FQuadTree(a,Pn,Px,a->nv);
-      }   
-    delete buf;      
-    return *this;
-   }
-  
-  const MPIrank & Bcast(Fem2D::Mesh3 *&  a) const {
-    if(verbosity>1) 
-      cout << " MPI Bcast  (mesh3 *) " << a << endl;
-    Serialize  *buf=0;
-    long  nbsize=0;
-    if(  who == mpirank)  
-      {
-	buf =new Serialize((*a).serialize());
-	nbsize =  buf->size();
-      }
-    WBcast( &nbsize, 1,  who,comm);
-    if (who != mpirank)
-      buf= new Serialize(nbsize,Fem2D::GenericMesh_magicmesh);
-    assert(nbsize);
-    if(verbosity>2) 
-      cout << " size to bcast : " << nbsize << " mpirank : " << mpirank << endl;
-    
-    WBcast( (char *)(*buf),nbsize,  who,comm);     
-    
-	if(who != mpirank)
-	  {
-	    if (a) (*a).decrement();
-	    a= new Fem2D::Mesh3(*buf);
-	    a->BuildGTree();
-	  }   
-	delete buf;      
-	return *this;
-  }
-  
-  template<class R>
-  const MPIrank & Bcast(Matrice_Creuse<R> &  a) const
-    {
-      if(verbosity>1) 
-	cout << mpirank <<  ":  MPI Bcast " << who << "  (Matrice_Creuse &) " << &a << " " << a.A << endl;
-      MatriceMorse<R> *mA=0;
-      int ldata[4]={0,0,0,0};
-      if(  who == mpirank)  
-	{
-	  if(a.A)
-	    {
-	      mA= a.A->toMatriceMorse();
-	      ldata[0]=mA->n;
-	      ldata[1]=mA->m;
-	      ldata[2]=mA->nbcoef;
-	      ldata[3]=mA->symetrique;
-	      // cout << mpirank << " ldata " << ldata[0] << " " << ldata[1] <<" " << ldata[2] << " " <<ldata[3] << endl;
-	    }
-	}
-      int n4=4;
-      WBcast( ldata,n4, who,comm); 
-      //cout << mpirank << " after 4 " " ldata " << ldata[0] << " " << ldata[1] <<" " << ldata[2] << " " <<ldata[3] << endl;
-      int n1= ldata[0]+1;
-      if(  who != mpirank && ldata[0] )
-	mA= new MatriceMorse<R>(ldata[0],ldata[1],ldata[2],ldata[3]); 
-      if(ldata[0]) 
-	  {
-	    // cout << mpirank << " " << who << " lg  " << mA->lg << " " << n1 << endl;
-	    WBcast(  mA->lg,n1, who,comm);     
-	    //cout << mpirank << " " << who << " cl  " << mA->cl << " " <<  mA->nbcoef << endl;
-	    WBcast(  mA->cl,mA->nbcoef, who,comm);     
-	    //cout << mpirank << " " << who << " a  " << mA->a << " " <<  mA->nbcoef << endl;
-	    WBcast( mA->a,mA->nbcoef , who,comm);  
-	  }
-      if(  who != mpirank) 
-	a.A.master(mA);
-      else 
-	delete mA;      
-      return *this;
-    }
-  
-  // version asyncrone or syncrone  Now 2010 ...
-  template<class R>   long Send(Matrice_Creuse<R> * const &  a) const ;
-  template<class R>   long Recv(Matrice_Creuse<R>  &  a) const ;
-  long Send(Fem2D::Mesh *  a) const ;
-  long Send (Fem2D::Mesh3 *  a) const ;
-  long Recv(Fem2D::Mesh *& a)  const;  
-  long Recv(Fem2D::Mesh3 *& a) const; 
-
-  operator int () const { return who;}     
-};
-
-
-
-
-// for MPI_WAIT_resquets (complex MPI asyncrone MPI recv request ) ..
-class DoOnWaitMPI_Request :public   MPIrank
-{  
-    
-public:
-    bool sync;
-    DoOnWaitMPI_Request( MPIrank  mpr) : MPIrank(mpr),sync((rq==0 || rq == Syncro_block)) {}
-    virtual  bool Do(MPI_Request *rrq) =0; // false -> end 
-    bool  DoSR() { // do the  Send/Recv Op. 
-	bool ret=false;
-	if(verbosity>100)
-	  cout << mpirank << "   --- Do Send/Recv :  "  << " " << rq << " " << sync <<  endl;
-	if(sync) //  wait ...
-	  { bool c=1; 
-	    if(verbosity>100)
-	      cout << mpirank << "   --- Do way :  " << c << " " << rq << endl;
-	    while (c)
-	      {
-		c=Do(rq); 
-		if(verbosity>100)
-		  cout << mpirank << "   --- Do return :  " << c << " " << rq << endl;
-	      }
-	    
-	    ret=true;// clean 
-	  } 
-	else 
-	  ToDoOnWaitMPI_Request[rq]=this; // add request for WAIT ..
-	return ret;
-    }
-    virtual ~DoOnWaitMPI_Request(){}
-private:
-    DoOnWaitMPI_Request(const DoOnWaitMPI_Request & );
-     DoOnWaitMPI_Request & operator=( DoOnWaitMPI_Request & );
-};
-
-
-
-void DoOnWaitMPIRequest(MPI_Request *rq)
-{
-  if( rq  )
-    { 
-	map<MPI_Request*,DoOnWaitMPI_Request *>:: iterator drd = ToDoOnWaitMPI_Request.find(rq) ;
-	if(drd != ToDoOnWaitMPI_Request.end())
-	  {
-	    if(verbosity>100)
-	      cout << " Do on DoOnWaitMPIRequest " << rq  << " "  << endl; 
-	    if( !drd->second->Do(rq) )
-	      {
-		delete drd->second;
-		ToDoOnWaitMPI_Request.erase(drd); // finish ... 
-	      }
-
-	  }
-	
-    }
-
-}
-
-void DeSerialize(Serialize * sTh,Fem2D::Mesh ** ppTh)
-{
-      if ( *ppTh ) (**ppTh).decrement();
-   // cout << " ####"<< sTh << endl;
-      Fem2D::Mesh * pTh= new Fem2D::Mesh(*sTh);
-   // cout << " ####\n";
-      *ppTh=pTh;
- 
-      Fem2D::R2 Pn,Px;
-      pTh->BoundingBox(Pn,Px);
-      pTh->quadtree=new Fem2D::FQuadTree(pTh,Pn,Px,pTh->nv);
-}
-
-void DeSerialize(Serialize * sTh,Fem2D::Mesh3 ** ppTh)
-{
-      if ( *ppTh )  (**ppTh).decrement();
-      Fem2D::Mesh3 * pTh= new Fem2D::Mesh3(*sTh);
-      pTh->BuildGTree();
-      *ppTh=pTh;
-}
-
-
-template<class R>
-class RevcWMatd : public DoOnWaitMPI_Request
-{
-public:  
-  typedef Matrice_Creuse<R> Mat;
-  Matrice_Creuse<R> * pmat;
-  MatriceMorse<R> *mA;
-  int state;
-  int ldata[4];
-  RevcWMatd(const MPIrank *mpirank,Mat * pm)
-    : DoOnWaitMPI_Request(*mpirank),
-      pmat(pm),mA(0),state(0)
-  {
-    int tag = MPI_TAG<Matrice_Creuse<R>* >::TAG;
-    int ll=WRecv( ldata,4, who, tag,comm,rq);
-    ffassert(ll == MPI_SUCCESS);
-
-  }
-  
-  bool  Do(MPI_Request *rrq)
-  {
-    state++;
-    int tag=MPI_TAG<Mat *>::TAG;
-    if(verbosity>100)
-      cout << mpirank << "  ---R: ldata " << ldata[0] << " " << ldata[1] <<" " << ldata[2] << " " <<ldata[3] << " " << state << endl;
-    
-    int ll=0;
-    switch (state)
-      {
-      case 1:
-	mA =  new MatriceMorse<R>(ldata[0],ldata[1],ldata[2],ldata[3]); 
-	ll=WRecv(  mA->lg,mA->n+1,   who, tag+1,comm,rq);
-	break;
-      case 2:
-	ll=WRecv(  mA->cl,mA->nbcoef,  who, tag+2,comm,rq);
-	break;
-      case 3:
-	ll=WRecv(  mA->a,mA->nbcoef,  who, tag+3,comm,rq);
-	break;
-      default:
-	pmat->A.master(mA);
-	mA=0;
-	return false;
-	break;
-      }
-    ffassert(ll == MPI_SUCCESS);
-    return true; // OK 
-  }
-  ~RevcWMatd() {
-    if(mA) delete mA; 
-  }	
-  
-};
-
-template<class R>
-class SendWMatd : public DoOnWaitMPI_Request
-{
-public:  
-  typedef Matrice_Creuse<R> Mat;
-  Matrice_Creuse<R> * pmat;
-  MatriceMorse<R> *mA;
-  int state;
-  int ldata[4];
-  SendWMatd(const MPIrank *mpirank,Mat * pm)
-    : DoOnWaitMPI_Request(*mpirank),
-      pmat(pm),mA(0),state(0)
-  {
-    mA=pmat->A->toMatriceMorse();
-    ldata[0]=mA->n;
-    ldata[1]=mA->m;
-    ldata[2]=mA->nbcoef;
-    ldata[3]=mA->symetrique;
-    int tag = MPI_TAG<Matrice_Creuse<R>* >::TAG;
-    int ll=WSend( ldata,4, who, tag,comm,rq);
-    ffassert(ll == MPI_SUCCESS) ;
-  }
-  bool  Do(MPI_Request *rrq)
-  {
-    state++;
-    int tag=MPI_TAG<Mat *>::TAG;
-    if(verbosity>100)
-      cout << mpirank << "  ---S  ldata " << ldata[0] << " " << ldata[1] <<" " << ldata[2] << " " <<ldata[3] << endl;
-    
-    int ll=0;
-    switch (state)
-      {
-      case 1:
-	ll=WSend(  mA->lg,mA->n+1,  who, tag+1,comm,rq);     
-	break;
-      case 2:
-	ll=WSend( mA->cl,mA->nbcoef,  who, tag+2,comm,rq);  
-	break;
-      case 3:
-	ll=WSend(  mA->a,mA->nbcoef,   who, tag+3,comm,rq);  
-	break;
-      default:
-	delete mA;
-	mA=0;
-	return false;
-	break;
-      }
-    ffassert(ll == MPI_SUCCESS);
-    return true; // OK 
-  }
-  ~SendWMatd() {
-    if(mA) delete mA; 
-  }	
-  
-};
-
-
-template<class Mesh>
-class RevcWMeshd : public DoOnWaitMPI_Request,Serialize  
-{
-public:  
-  Mesh ** ppTh;
-  int state;
-  RevcWMeshd(const MPIrank *mpirank,Mesh ** ppThh)
-    : DoOnWaitMPI_Request(*mpirank),Serialize(sizempibuf,Fem2D::Mesh::magicmesh),
-      ppTh(ppThh),state(0)
-  {
-    int tag=MPI_TAG<Mesh *>::TAG;
-    if(verbosity>100)
-      cout << " -- RevcWMeshd   " << rq << " " << comm << " " << p << endl; 
-    char * pp = p-sizeof(long);
-    int ll=WRecv(pp, sizempibuf,  who, tag,comm,rq); // wait first part ..
-    // cout << mpirank << " ++ ll= " << ll << " pp= " << pp << endl;
-  }
-  
-  bool  Do(MPI_Request *rrq)
-  {
-    int tag=MPI_TAG<Mesh *>::TAG;
-    ffassert(rq == rrq);
-    long l = * (long *) (void *) p ;
-    long l1 = l -( sizempibuf-sizeof(long));
-    if(verbosity>100)
-      cout << mpirank << " Do RevcWMeshd " <<  l  <<" " << state << "  cont  : " <<  (l1 >0)  << " " << rq << " " << comm << endl; 
-    
-    if(0==state++ &&  l1>0 ) // recv first part ..
-      {
-	if(verbosity>100)
-	  cout << mpirank << " + Do RevcWMeshd " <<  l  <<" " << state << "  cont  : " <<  ( l > sizempibuf) <<  " " << rq << " " << l-sizempibuf << " p = " << (void *) p <<  endl; 
-	resize(l);
-	int ll=WRecv(p-sizeof(long)+sizempibuf,l1,  who, tag+state,comm,rq);
-	return true;// continue .. 	
-      }
-    else resize(l);
-    // we have the all buffer => DeSerialize
-    DeSerialize(this,ppTh);      
-    count()=0; 
-    if(verbosity>100) 
-      cout << "    " << mpirank << " recived from " << who << " serialized " << what <<   ", l=" 
-	   << l << ", tag=" << tag << " rq = " << rq << " "  << *ppTh << endl;
-    
-    return false; // OK 
-  }
-  ~RevcWMeshd() {count()=0;}	
-  
-};
-
-template<class Mesh>
-class SendWMeshd : public DoOnWaitMPI_Request,Serialize  
-{
-public:  
-  Mesh ** ppTh;
-  int state;
-  SendWMeshd(const MPIrank *mpirank,Mesh ** ppThh)
-    : DoOnWaitMPI_Request(*mpirank),Serialize((**ppThh).serialize()),
-      ppTh(ppThh),state(0)
-  {
-    int tag=MPI_TAG<Mesh *>::TAG;
-    if(verbosity>100)
-      cout << " -- SendWMeshd   " << rq << " " << comm << " " << p << endl; 
-    char * pp = p-sizeof(long);
-    count()=lg; // store length in count 
-    size_t ls=lg+sizeof(long);
-    if (ls<=sizempibuf)
-      WSend(pp,ls, who, tag,comm,rq);
-    else 
-      WSend(pp,sizempibuf,who, tag,comm,rq);
-  }
-  
-  bool  Do(MPI_Request *rrq)
-  {
-    int tag=MPI_TAG<Mesh *>::TAG;
-    char * pp = p-sizeof(long);
-    long l1 = lg -(sizempibuf- sizeof(long));
-    if(verbosity>100)
-      cout << mpirank << " Do SendWMeshd " <<  lg  <<" " << state << "  cont  : " <<  (l1 >0)  << " " << rq << " " << comm << endl; 
-    
-    if(0==state++ &&  l1>0 ) // send the second part 
-      {
-	int ll=WSend(pp+sizempibuf,l1,  who, tag+state,comm,rq);
-	return true;// Fini
-      }
-    return false; // OK 
-  }
-
-  ~SendWMeshd() {count()=0;}
-  
-};
-
-
-template<class R>
-  long MPIrank::Send(Matrice_Creuse<R> * const &  a) const 
-  {
-    if(0)
-      {
-	if(verbosity>100) 
-	  cout << " MPI << (Matrice_Creuse *) " << a << endl;
-	ffassert(rq==0 || rq == Syncro_block) ; // 
-	int tag = MPI_TAG<Matrice_Creuse<R>* >::TAG;		       
-	MatriceMorse<R> *mA=a->A->toMatriceMorse();
-	int ldata[4];
-	ldata[0]=mA->n;
-	ldata[1]=mA->m;
-	ldata[2]=mA->nbcoef;
-	ldata[3]=mA->symetrique;
-	
-	if(verbosity>100)
-	  cout << " ldata " << ldata[0] << " " << ldata[1] <<" " << ldata[2] << " " <<ldata[3] << endl;
-	int ll=0;
-	ll=WSend( ldata,4, who, tag,comm,rq);
-	if(ll == MPI_SUCCESS) 
-	  ll=WSend(  mA->lg,mA->n+1,  who, tag+1,comm,rq);     
-	if(ll == MPI_SUCCESS) 
-	  ll=WSend( mA->cl,mA->nbcoef,  who, tag+2,comm,rq);  
-	if(ll == MPI_SUCCESS) 
-	  ll=WSend(  mA->a,mA->nbcoef,   who, tag+3,comm,rq);  
-	delete mA;
-	return ll;
-      }
-    else
-      {
-	SendWMatd<R> *rwm= new SendWMatd<R>(this,a);
-	if( rwm->DoSR() ) delete rwm;
-	return MPI_SUCCESS;
-      }
-  }
-
-  template<class R>
-  long MPIrank::Recv(Matrice_Creuse<R>  &  a) const 
-  {
-    if(0)
-      {
-	if(verbosity>100) 
-	  cout << " MPI << (Matrice_Creuse ) " << a << endl;
-	ffassert(rq==0 || rq == Syncro_block) ; // 
-	int tag =  MPI_TAG<Matrice_Creuse<R>* >::TAG;		       
-	int ldata[4];	
-	int ll=0;
-	ll=WRecv( ldata,4, who, tag,comm,rq);
-	MatriceMorse<R> *mA= new MatriceMorse<R>(ldata[0],ldata[1],ldata[2],ldata[3]); 
-	if(ll == MPI_SUCCESS) 
-	  ll=WRecv(  mA->lg,mA->n+1,   who, tag+1,comm,rq);     
-	if(ll == MPI_SUCCESS) 
-	  ll=WRecv(  mA->cl,mA->nbcoef,  who, tag+2,comm,rq);     
-	if(ll == MPI_SUCCESS) 
-	  ll=WRecv(  mA->a,mA->nbcoef,  who, tag+3,comm,rq);  
-	a.A.master(mA);
-	return ll;
-      }
-    else
-      {
-	RevcWMatd<R> *rwm= new RevcWMatd<R>(this,&a);
-        if( rwm->DoSR() ) delete rwm;
-        return MPI_SUCCESS;	
-      }
-  }
-
-
-long MPIrank::Send(Fem2D::Mesh *  a) const {
-    if(verbosity>100) 
-      cout << " MPI << (mesh *) " << a << endl;
-    ffassert(a);
-    SendWMeshd<Mesh> *rwm= new SendWMeshd<Mesh>(this,&a);
-    //cout << " ... "<< endl;
-    if( rwm->DoSR() ) delete rwm;
-    return MPI_SUCCESS;
-  }
-long MPIrank::Send (Fem2D::Mesh3 *  a) const {
-    if(verbosity>100) 
-      cout << " MPI << (mesh3 *) " << a << endl;
-    ffassert(a);
-    SendWMeshd<Mesh3> *rwm= new SendWMeshd<Mesh3>(this,&a);
-    if( rwm->DoSR() ) delete rwm;
-    return MPI_SUCCESS;
-  }
-
-/*
-long MPIrank::Send(Fem2D::Mesh *  a) const {
-    if(verbosity>100) 
-      cout << " MPI << (mesh *) " << a << endl;
-    ffassert(a);
-    Serialize  buf=(*a).serialize();       
-    buf.mpisend(*this,MPI_TAG<Mesh *>::TAG,static_cast<const void *>(this));
-    return MPI_SUCCESS;
-  }
-long MPIrank::Send (Fem2D::Mesh3 *  a) const {
-    if(verbosity>100) 
-      cout << " MPI << (mesh3 *) " << a << endl;
-    ffassert(a);
-    Serialize  buf=(*a).serialize();       
-    buf.mpisend(*this,MPI_TAG<Mesh3 *>::TAG,static_cast<const void *>(this));
-    return MPI_SUCCESS;
-  }
-*/
-
-// new version asyncrone ...  Now 2010 ... 
-long MPIrank::Recv(Fem2D::Mesh *& a) const  {
-    if(verbosity>100) 
-	cout << " MPI >> (mesh *) &" << a << " " << &a << endl;
-    RevcWMeshd<Mesh> *rwm= new RevcWMeshd<Mesh>(this,&a);
-    if( rwm->DoSR() ) delete rwm;
-    if((rq==0 || rq == Syncro_block))  
-      ffassert( a );
-    return MPI_SUCCESS;
-}
-
-long MPIrank::Recv(Fem2D::Mesh3 *& a) const  {
-    if(verbosity>100) 
-      cout << " MPI >> (mesh3 *) &" << a << " " << &a << endl;
-    RevcWMeshd<Mesh3> *rwm= new RevcWMeshd<Mesh3>(this,&a);
-    if( rwm->DoSR() ) delete rwm;
-    if((rq==0 || rq == Syncro_block))  
-      ffassert( a );
-    return MPI_SUCCESS;
-}
-
-
-void Serialize::mpisend(const MPIrank & rank,long tag,const void * vmpirank)
-{
-  const MPIrank * mpirank=static_cast<const MPIrank *> (vmpirank);
-  MPI_Comm comm=mpirank->comm;
-  MPI_Request *rq=mpirank->rq;
-  ffassert(rq==0 || rq == Syncro_block);
-  char * pp = p-sizeof(long);
-  long countsave=count(); // save count 
-  count()=lg; // store length in count 
-  int l=lg+sizeof(long);
-  if(verbosity>100) 
-    cout << " -- send from  " << mpirank << " to " << rank << " serialized " << what 
-	 <<   ", l=" << l << ", tag=" << tag << " " << (l < sizempibuf) << endl;
-  if (l <=sizempibuf)
-    WSend(pp,l, rank, tag,comm,rq);
-  else {
-    WSend(pp,sizempibuf,  rank, tag,comm,rq);
-    WSend(pp+sizempibuf,l-sizempibuf, rank, tag+1,comm,rq);
-  }
-  if(verbosity>100) 
-    cout << "    ok send is arrived " << endl;      
-  count()=countsave; // restore count 
-}
-
-
-Serialize::Serialize(const MPIrank & rank,const char * wht,long tag,const void * vmpirank)
-  :what(wht) 
-{
-  const MPIrank * mpirank=static_cast<const MPIrank *> (vmpirank);
-  MPI_Comm comm=mpirank->comm;
-  MPI_Request *rq=mpirank->rq;
-  
-  if(verbosity>100) 
-    cout << " -- waiting " << mpirank << " from  " << rank << " serialized " << what 
-	 << " tag = " << tag <<  endl;
-  if(!(rq==0 || rq == Syncro_block))
-    {
-      ExecError("Not async recv of complex  objet!  Sorry to hard to code (FH!).");
-      ffassert(rq==0 || rq == Syncro_block); 
-    }
-      
- 
-  char * buf= new char [sizempibuf];
-  WRecv(buf, sizempibuf,  rank, tag,comm,rq);
-  lg = * (long *) (void *) buf;
-  int l=lg+sizeof(long);
-  char * pp= new char[l]  ;
-  if ( l <= sizempibuf) 
-    memcpy(pp,buf,l);
-  else 
-    {
-      memcpy(pp,buf,sizempibuf);
-      WRecv(pp+sizempibuf,l-sizempibuf,  rank, tag+1,comm,rq)  ;       
-    }
-  
-  if(verbosity>100) 
-    cout << "    " << mpirank << " recived from " << rank << " serialized " << what <<   ", l=" 
-	 << l << ", tag=" << tag << endl;
-  delete [] buf;
-  p=pp+sizeof(long);
-  count()=0;
-  
-}
-
-template<class A>
-struct Op_Readmpi : public binary_function<MPIrank,A*,MPIrank> {
-  static MPIrank  f(MPIrank const  & f,A *  const  & a)  
-  { 
-    f.Recv(*a);
-    return f;
-  }
-};
-
-template<class A>
-struct Op_Recvmpi : public binary_function<MPIrank,A*,long> {
-  static MPIrank  f(MPIrank const  & f,A *  const  & a)  
-  { 
-    ffassert(f.rq ==0 || f.rq == Syncro_block); // Block 
-    return f.Recv(*a);
-    
-  }
-};
-template<class A>
-struct Op_IRecvmpi : public binary_function<MPIrank,A*,long> {
-  static MPIrank  f(MPIrank const  & f,A *  const  & a)  
-  { 
-    ffassert(f.rq !=0 || f.rq != Syncro_block); // no Block 
-    return f.Recv(*a);
-    
-  }
-};
-
-
-template<class A>
-struct Op_Writempi : public binary_function<MPIrank,A,MPIrank> {
-  static MPIrank  f(MPIrank const  & f,A   const  &  a)  
-  { 
-    f.Send(a);
-    return f;
-  }
-};
-
-
-template<class A>
-struct Op_Bcastmpi : public binary_function<MPIrank,A*,MPIrank> {
-  static MPIrank  f(MPIrank const  & f,A *  const  & a)  
-  { 
-    f.Bcast(*a);
-    return f;
-   }
-};
-
-template<class A>
-struct Op_ISendmpi : public binary_function<MPIrank,A,long> {
-  static MPIrank  f(MPIrank const  & f,A   const  & a)  
-  { 
-    ffassert(f.rq != Syncro_block); 
-    return f.Send(a);
-  }
-};
-template<class A>
-struct Op_Sendmpi : public binary_function<MPIrank,A,long> {
-  static MPIrank  f(MPIrank const  & f,A  const  & a)  
-  { 
-	MPIrank ff(f.who,f.comm,Syncro_block); 
-	return ff.Send(a);
-  }
-};
-
-
-template<class R>
-struct Op_All2All : public binary_function<KN_<R>,KN_<R>,long> {
-  static long  f( KN_<R>  const  & s, KN_<R>  const  &r)  
-  { 
-      CheckContigueKN(s);
-      CheckContigueKN(r);
-
-    MPI_Comm comm=MPI_COMM_WORLD;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); /* local */ 
-    int chunk = s.N()/mpisizew;
-    ffassert(s.N()==mpisizew*chunk && r.N()==s.N());
-    
-    return MPI_Alltoall( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			 (void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(), comm);	
-  }
-};
-
-
-template<class R>
-struct Op_Allgather1 : public binary_function<R*,KN_<R>,long> {
-  static long  f( R*  const  & s, KN_<R>  const  &r)  
-    { 
-      MPI_Comm comm=MPI_COMM_WORLD;
-      int mpisizew;
-	CheckContigueKN(r);
-
-      MPI_Comm_size(comm, &mpisizew); /* local */ 
-      int chunk = 1;
-      ffassert(r.N()==mpisizew);
-      
-      return MPI_Allgather( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			    (void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(), comm);	
-    }
-};
-
-template<class R>
-struct Op_Allgather : public binary_function<KN_<R>,KN_<R>,long> {
-  static long  f( KN_<R>  const  & s, KN_<R>  const  &r)  
-    { 
-	CheckContigueKN(s);
-	CheckContigueKN(r);
-
-      MPI_Comm comm=MPI_COMM_WORLD;
-      int mpisizew;
-      MPI_Comm_size(comm, &mpisizew); /* local */ 
-      int chunk = r.N()/mpisizew;
-      ffassert(r.N()==mpisizew*chunk && chunk == s.N());
-      return MPI_Allgather( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			    (void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(), comm);	
-    }
-};
-
-template<class R>
-struct Op_All2All3 : public ternary_function<KN_<R>,KN_<R>,fMPI_Comm,long> {
-  static long  f(Stack, KN_<R>  const  & s, KN_<R>  const  &r,fMPI_Comm const & cmm )  
-    { 
-	CheckContigueKN(s);
-	CheckContigueKN(r);
-
-      MPI_Comm comm=cmm;
-      int mpisizew;
-      MPI_Comm_size(comm, &mpisizew); /* local */ 
-      int chunk = s.N()/mpisizew;
-      ffassert(s.N()==mpisizew*chunk && r.N()==s.N());
-      
-      return MPI_Alltoall( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			   (void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(), comm);	
-    }
-};
-
-template<class R>
-struct Op_Allgather3 : public ternary_function<KN_<R>,KN_<R>,fMPI_Comm,long> {
-  static long  f(Stack, KN_<R>  const  & s, KN_<R>  const  &r,fMPI_Comm const & cmm)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    MPI_Comm comm=cmm;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); /* local */ 
-    int chunk = r.N()/mpisizew;    // bug corrected by J. Morice
-    //ffassert(s.N()==mpisizew*chunk && r.N()==s.N());
-    ffassert(s.N()==chunk && r.N()==s.N()*mpisizew);
-	
-    return MPI_Allgather( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			  (void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(), comm);	
-  }
-};
-
-
-template<class R>
-struct Op_Allgather13 : public ternary_function<R*,KN_<R>,fMPI_Comm,long> {
-  static long  f(Stack, R*  const  & s, KN_<R>  const  &r,fMPI_Comm const & cmm)  
-  { 
-      
-      CheckContigueKN(r);
-
-    MPI_Comm comm=cmm;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); /* local */ 
-    int chunk = 1;    // bug corrected by J. Morice
-    //ffassert(s.N()==mpisizew*chunk && r.N()==s.N());
-    ffassert( r.N()==mpisizew);
-	
-    return MPI_Allgather( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			  (void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(), comm);	
-  }
-};
-// Add J. Morice
-
-template<class R>
-long  Op_All2Allv( KN_<R>  const  & s, KN_<R>  const  &r, KN_<long> const &sendcnts, KN_<long> const &sdispls, KN_<long> const &recvcnts, KN_<long> const &rdispls)  
-{ 
-    CheckContigueKN(s);
-    CheckContigueKN(r);
-
-  MPI_Comm comm=MPI_COMM_WORLD;
-  int mpirankv=MPI_UNDEFINED;
-  MPI_Comm_rank(comm, &mpirankv); 
-  
-  int mpisizew;
-  MPI_Comm_size(comm, &mpisizew); /* local */ 
-  ffassert( sendcnts.N() == sdispls.N() && sendcnts.N() == recvcnts.N() && sendcnts.N() == rdispls.N() && sendcnts.N() == mpisizew );
-  
-  KN<int> INTsendcnts(sendcnts.N());
-  KN<int> INTsdispls(sdispls.N());
-  KN<int> INTrecvcnts(recvcnts.N());
-  KN<int> INTrdispls(rdispls.N());
-  
-  for(int ii=0; ii< sendcnts.N(); ii++){
-    INTsendcnts[ii] = sendcnts[ii];
-    INTsdispls[ii]  = sdispls[ii];
-    INTrecvcnts[ii]  = recvcnts[ii];
-    INTrdispls[ii]  = rdispls[ii];
-  }
-  
-  return MPI_Alltoallv( (void *) (R*) s, INTsendcnts, INTsdispls, MPI_TYPE<R>::TYPE(),
-			(void *) (R*) r, INTrecvcnts, INTrdispls, MPI_TYPE<R>::TYPE(), comm);	
-}
-
-
-
-template<class R>
-struct Op_Allgatherv : public quad_function<KN_<R>,KN_<R>,KN_<long>,KN_<long>,long> {
-  static long f( Stack ,KN_<R>  const  & s, KN_<R>  const  &r, KN_<long> const & recvcount, KN_<long> const & displs)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    MPI_Comm comm=MPI_COMM_WORLD;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); 
-    ffassert( recvcount.N() == displs.N() && recvcount.N() == mpisizew);
-    long sum=0;
-    for(int ii=0; ii< recvcount.N(); ii++)
-      sum+=recvcount[ii];
-    ffassert( sum == r.N() );
-    
-    KN<int> INTrecvcount(recvcount.N());
-    KN<int> INTdispls(displs.N());
-    for(int ii=0; ii< recvcount.N(); ii++){
-      INTrecvcount[ii]= recvcount[ii];
-      INTdispls[ii]= displs[ii];
-    }
-    return MPI_Allgatherv( (void *) (R*) s, s.N(), MPI_TYPE<R>::TYPE(),
-			   (void *) (R*) r, INTrecvcount, INTdispls,MPI_TYPE<R>::TYPE(), comm);	
-  }
-};
-
-template<class R>
-long  Op_All2All3v(KN_<R>  const  & s, KN_<R>  const  &r,fMPI_Comm const & cmm, KN_<long> const &sendcnts, KN_<long> const &sdispls, KN_<long> const &recvcnts, KN_<long> const &rdispls )  
-{ 
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  MPI_Comm comm=cmm;
-  int mpirankv=MPI_UNDEFINED;
-  MPI_Comm_rank(comm, &mpirankv); 
-      
-  int mpisizew;
-  MPI_Comm_size(comm, &mpisizew); /* local */ 
-  ffassert( sendcnts.N() == sdispls.N() && sendcnts.N() == recvcnts.N() && sendcnts.N() == rdispls.N() && sendcnts.N() == mpisizew );
-      
-  //ffassert(s.N()==sendcnts[mpirankv] && r.N()==recvbuf[mpirankv]);
-      
-  KN<int> INTsendcnts(sendcnts.N());
-  KN<int> INTsdispls(sdispls.N());
-  KN<int> INTrecvcnts(recvcnts.N());
-  KN<int> INTrdispls(rdispls.N());
-      
-  for(int ii=0; ii< sendcnts.N(); ii++){
-    INTsendcnts[ii] = sendcnts[ii];
-    INTsdispls[ii]  = sdispls[ii];
-    INTrecvcnts[ii]  = recvcnts[ii];
-    INTrdispls[ii]  = rdispls[ii];
-  }
-
-  return MPI_Alltoallv( (void *) (R*) s, INTsendcnts, INTsdispls, MPI_TYPE<R>::TYPE(),
-			(void *) (R*) r, INTrecvcnts, INTrdispls, MPI_TYPE<R>::TYPE(), comm);	
-}
-
-
-template<class R>
-long Op_Allgatherv3(KN_<R>  const  & s, KN_<R>  const  &r,fMPI_Comm const & cmm, KN_<long> const & recvcount, KN_<long> const & displs)
-{ 
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  MPI_Comm comm=cmm;
-  int mpisizew;
-  MPI_Comm_size(comm, &mpisizew); 
-  ffassert( recvcount.N() == displs.N() && recvcount.N() == mpisizew);
-  long sum=0;
-  for(int ii=0; ii< recvcount.N(); ii++)
-    sum+=recvcount[ii];
-  ffassert( sum == r.N() );
-  KN<int> INTrecvcount(recvcount.N());
-  KN<int> INTdispls(displs.N());
-  for(int ii=0; ii< recvcount.N(); ii++){
-    INTrecvcount[ii]= recvcount[ii];
-    INTdispls[ii]= displs[ii];
-  }
-
-  return MPI_Allgatherv( (void *) (R*) s, s.N(), MPI_TYPE<R>::TYPE(),
-			 (void *) (R*) r, INTrecvcount, INTdispls,MPI_TYPE<R>::TYPE(), comm);	
-}
-
-
-template<class R>
-struct Op_Scatter1 : public   ternary_function<KN_<R>, R* ,MPIrank,long> {
-  static long  f(Stack, KN_<R>  const  & s, R*  const  &r,  MPIrank const & root)  
-  { 
-      CheckContigueKN(s);
-      
-
-    int mpisizew;
-    MPI_Comm_size(root.comm, &mpisizew); 
-    int chunk = 1;
-   // ffassert(s.N()==mpisizew*chunk);
-    
-    return MPI_Scatter( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			(void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(),root.who,root.comm);	
-  }
-};
-
-
-// Fin add J. Morice
-
-
-template<class R>
-struct Op_Scatter3 : public   ternary_function<KN_<R>,KN_<R>,MPIrank,long> {
-  static long  f(Stack, KN_<R>  const  & s, KN_<R>  const  &r,  MPIrank const & root)  
-  { 
-    
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    int mpisizew;
-    MPI_Comm_size(root.comm, &mpisizew); 
-    int chunk = r.N(); // FH  correct  jan 2012 ... 
-    // ffassert(s.N()==mpisizew*chunk && r.N()==chunk);
-    
-    return MPI_Scatter( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			(void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(),root.who,root.comm);	
-  }
-};
-
-// Add J. Morice
-template<class R>
-//struct Op_Scatterv3 : public   penta_function< KN_<R>, KN_<R>, MPIrank, KN_<long>, KN_<long>, long> {
-long Op_Scatterv3( KN_<R>  const  & s, KN_<R>  const  &r,  MPIrank const & root, KN_<long> const &sendcnts, KN_<long> const &displs)  
-{ 
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  int mpirankv=MPI_UNDEFINED;
-  if(root.comm != MPI_COMM_NULL)
-    MPI_Comm_rank(root.comm, &mpirankv); 
-  
-  int mpisizew;
-  MPI_Comm_size(root.comm, &mpisizew); /* local */ 
-  KN<int> INTsendcnts(mpirankv == root.who ? sendcnts.N() : 0);
-  KN<int> INTdispls(mpirankv == root.who ? sendcnts.N() : 0);
-  for(int ii=0; ii< INTsendcnts.N(); ii++){
-    INTsendcnts[ii]= sendcnts[ii];
-    INTdispls[ii]= displs[ii];
-  }
-  
-  return MPI_Scatterv( (void *) (R*) s, INTsendcnts, INTdispls, MPI_TYPE<R>::TYPE(),
-		       (void *) (R*) r, r.N(), MPI_TYPE<R>::TYPE(),root.who,root.comm);
-}
-
-// fin J. Morice
-
-template<class R>
-struct Op_ReduceMat  : public   quad_function<Matrice_Creuse<R>*,Matrice_Creuse<R> *,MPIrank,fMPI_Op,long> {
-    static long  f(Stack, Matrice_Creuse<R>*  const  & s,Matrice_Creuse<R>*  const  &r,  MPIrank const & root, fMPI_Op const &op)  
-    { 
-	ffassert( r && s);
-	MatriceCreuse<R> * sA=s->A;
-	MatriceCreuse<R> * rA=r->A;
-	ffassert( sA && rA); 
-	MatriceMorse<R> & sM = *dynamic_cast<MatriceMorse<R>* > (sA);
-	MatriceMorse<R> & rM = *dynamic_cast<MatriceMorse<R>* > (rA);
-	ffassert( &sM && &rM);
-	int chunk = sM.nbcoef;
-	ffassert(chunk==rM.nbcoef);
-	
-	return MPI_Reduce( (void *)  sM.a,(void *)  rM.a, chunk , MPI_TYPE<R>::TYPE(),op,root.who,root.comm);	
-    }
-};
-template<class R>
-struct Op_AllReduceMat  : public   quad_function<Matrice_Creuse<R>*,Matrice_Creuse<R> *,fMPI_Comm,fMPI_Op,long> {
-    static long  f(Stack, Matrice_Creuse<R>*  const  & s,Matrice_Creuse<R>*  const  &r,  fMPI_Comm const & comm, fMPI_Op const &op)  
-    { 
-	ffassert( r && s);
-	MatriceCreuse<R> * sA=s->A;
-	MatriceCreuse<R> * rA=r->A;
-	ffassert( &sA );
-
-	MatriceMorse<R> & sM = *dynamic_cast<MatriceMorse<R>* > (sA);
-        ffassert( &sM );
-	if( ! rA ) { // build a zero matric copy of sM
-	    MatriceMorse<R> *rm=new MatriceMorse<R>(sM.n,sM.m,sM.nbcoef,sM.symetrique,0,sM.lg,sM.cl);
-	    *rm=R(); // set the matrix to Zero ..
-	    r->A.master(rm);
-	    rA=r->A;
-	    
-	}
-	ffassert( sA && rA); 
-	
-	MatriceMorse<R> & rM = *dynamic_cast<MatriceMorse<R>* > (rA);
-	
-	ffassert( &sM && &rM);
-	int chunk = sM.nbcoef;
-	ffassert(chunk==rM.nbcoef);
-	
-	return MPI_Allreduce( (void *)  sM.a,(void *)  rM.a, chunk , MPI_TYPE<R>::TYPE(),op,comm);	
-    }
-};
-
-
-
-template<class R>
-struct Op_Reduce  : public   quad_function<KN_<R>,KN_<R>,MPIrank,fMPI_Op,long> {
-  static long  f(Stack, KN_<R>  const  & s, KN_<R>  const  &r,  MPIrank const & root, fMPI_Op const &op)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    int chunk = s.N();
-    ffassert(chunk==r.N());
-    
-    return MPI_Reduce( (void *) (R*) s,(void *) (R*) r, chunk , MPI_TYPE<R>::TYPE(),op,root.who,root.comm);	
-  }
-};
-
-template<class R>
-struct Op_AllReduce  : public   quad_function<KN_<R>,KN_<R>,fMPI_Comm,fMPI_Op,long> {
-  static long  f(Stack, KN_<R>  const  & s, KN_<R>  const  &r,  fMPI_Comm const & comm,fMPI_Op const &op)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    int chunk = s.N();
-    ffassert(chunk==r.N());
-    return MPI_Allreduce( (void *) (R*) s,(void *) (R*) r, chunk , MPI_TYPE<R>::TYPE(),op,comm);	
-  }
-};
-
-template<class R>
-struct Op_AllReduce1  : public   quad_function<R *,R *,fMPI_Comm,fMPI_Op,long> {
-    static long  f(Stack, R *  const  & s, R *  const  &r,  fMPI_Comm const & comm,fMPI_Op const &op)  
-    { 
-	int chunk = 1;
-	return MPI_Allreduce( (void *) (R*) s,(void *) (R*) r, 1 , MPI_TYPE<R>::TYPE(),op,comm);	
-    }
-};
-/*
-template<class R>
-struct Op_Reducescatter  : public   quad_function<KN_<R>,KN_<R>,fMPI_Comm,fMPI_Op,long> {
-    static long  f(Stack, KN_<R>  const  & s, KN_<R>  const  &r,  fMPI_Comm const & comm,fMPI_Op const &op)  
-    { 
-	int chunk = s.N();
-	ffassert(chunk==r.N());
-        //    chunk est un tableau ????
-	MPI_Op oop = reinterpret_cast<MPI_Op> (op);
-	return MPI_Reduce_scatter( (void *) (R*) s,(void *) (R*) r, chunk , MPI_TYPE<R>::TYPE(),op,comm);	
-    }
-};*/
-
-template<class R>
-struct Op_Reduce1  : public   quad_function<R*,R*,MPIrank,fMPI_Op,long> {
-  static long  f(Stack, R*  const  & s, R*  const  &r,  MPIrank const & root, fMPI_Op const &op)  
-  { 
-    int chunk = 1;
-    return MPI_Reduce( (void *) (R*) s,(void *) (R*) r, chunk , MPI_TYPE<R>::TYPE(),op,root.who,root.comm);	
-  }
-};
-
-// Add J. Morice
-template<class R>
-struct Op_Gather1 : public   ternary_function<R*,KN_<R>,MPIrank,long> {
-    static long  f(Stack, R* const  & s, KN_<R>  const  &r,  MPIrank const & root)  
-  { 
-    
-    int mpisizew,myrank;
-    MPI_Comm_size(root.comm, &mpisizew); 
-    MPI_Comm_rank( root.comm, &myrank)  ;
-    int chunk = 1;
-    // ffassert( (myrank != root.who) || (r.N()>=mpisizew*chunk) );
-    
-    return MPI_Gather( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			   (void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(),root.who,root.comm);	
-  }
-};
-
-// Fin Add J. Morice
-
-
-template<class R>
-struct Op_Gather3 : public   ternary_function<KN_<R>,KN_<R>,MPIrank,long> {
-    static long  f(Stack, KN_<R>  const  & s, KN_<R>  const  &r,  MPIrank const & root)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-      int mpisizew,myrank;
-      MPI_Comm_size(root.comm, &mpisizew); 
-      MPI_Comm_rank(root.comm, &myrank)  ;
-
-    int chunk = s.N();
-    //  cout << myrank << " " << root.who << " " << r.N() << " "<< s.N() << " " << chunk << " " << mpisizew << endl;
-    //ffassert( (myrank != root.who) || (r.N()==mpisizew*chunk) );
-    
-    return MPI_Gather( (void *) (R*) s, chunk, MPI_TYPE<R>::TYPE(),
-			   (void *) (R*) r, chunk, MPI_TYPE<R>::TYPE(),root.who,root.comm);	
-  }
-};
-
-// Add by J. Morice
-
-template<class R>
-//struct Op_Gatherv3 : public penta_function<KN_<R>,KN_<R>, MPIrank, KN_<long>, KN_<long>, long> {
-long  Op_Gatherv3(KN_<R>  const  & s, KN_<R>  const  &r,  MPIrank const & root, KN_<long> const & recvcount, KN_<long> const & displs)  
-{ 
-    
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  int mpirankw;
-  MPI_Comm_rank(root.comm, &mpirankw); 
-  int mpisizew;
-  MPI_Comm_size(root.comm, &mpisizew); 
-  KN<int> INTrecvcount(mpirankw == root.who ? recvcount.N() : 0);
-  KN<int> INTdispls(mpirankw == root.who ? recvcount.N() : 0);
-  for(int ii=0; ii< INTrecvcount.N(); ii++){
-    INTrecvcount[ii]= recvcount[ii];
-    INTdispls[ii]= displs[ii];
-  }
-  
-  return MPI_Gatherv( (void *) (R*) s, s.N(), MPI_TYPE<R>::TYPE(),
-		      (void *) (R*) r, INTrecvcount, INTdispls,MPI_TYPE<R>::TYPE(),root.who,root.comm);	
-}
-
-// Fin Add J. Morice
-
-
-// Add J. Morice communications entre processeurs complex
-
-template<>
-struct Op_All2All<Complex> : public binary_function<KN_<Complex>,KN_<Complex>,long> {
-  static long  f( KN_<Complex>  const  & s, KN_<Complex>  const  &r)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    MPI_Comm comm=MPI_COMM_WORLD;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); /* local */ 
-    int chunk = s.N()/mpisizew;
-    ffassert(s.N()==mpisizew*chunk && r.N()==s.N());
-   
-#ifdef HAVE_MPI_DOUBLE_COMPLEX 
-    return MPI_Alltoall( (void *) (Complex*) s, chunk, MPI_DOUBLE_COMPLEX,
-			 (void *) (Complex*) r, chunk, MPI_DOUBLE_COMPLEX, comm);	
-#else
-    chunk*=2;
-    return MPI_Alltoall( reinterpret_cast<void*> ( (Complex*) s), chunk, MPI_DOUBLE,
-			 reinterpret_cast<void*> ( (Complex*) r), chunk, MPI_DOUBLE, comm);	
-#endif
-  }
-};
-
-template<>
-struct Op_Allgather1<Complex> : public binary_function<Complex *,KN_<Complex>,long> {
-  static long  f( Complex *  const  & s, KN_<Complex>  const  &r)  
-  { 
-      CheckContigueKN(r);
-      
-
-    MPI_Comm comm=MPI_COMM_WORLD;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); /* local */ 
-    int chunk = 1;    
-    ffassert( r.N()== mpisizew);
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-    return MPI_Allgather( (void *) (Complex*) s, chunk, MPI_DOUBLE_COMPLEX,
-			  (void *) (Complex*) r, chunk, MPI_DOUBLE_COMPLEX, comm);
-#else
-    chunk*=2;
-    return MPI_Allgather( reinterpret_cast<void*> ( (Complex*) s), chunk, MPI_DOUBLE,
-			  reinterpret_cast<void*> ( (Complex*) r), chunk, MPI_DOUBLE, comm);
-#endif
-  }
-};
-
-
-template<>
-struct Op_Allgather<Complex> : public binary_function<KN_<Complex>,KN_<Complex>,long> {
-  static long  f( KN_<Complex>  const  & s, KN_<Complex>  const  &r)  
-    { 
-	CheckContigueKN(r);
-	CheckContigueKN(s);
-
-      MPI_Comm comm=MPI_COMM_WORLD;
-      int mpisizew;
-      MPI_Comm_size(comm, &mpisizew); /* local */ 
-      int chunk = r.N()/mpisizew;
-      ffassert( r.N()==chunk*mpisizew && chunk==s.N() );
-#ifdef HAVE_MPI_DOUBLE_COMPLEX 
-      return MPI_Allgather( (void *) (Complex*) s, chunk, MPI_DOUBLE_COMPLEX,
-			    (void *) (Complex*) r, chunk, MPI_DOUBLE_COMPLEX, comm);
-#else
-      chunk*=2;
-      return MPI_Allgather( reinterpret_cast<void*> (  (Complex*) s), chunk, MPI_DOUBLE,
-			    reinterpret_cast<void*> ( (Complex*) r), chunk, MPI_DOUBLE, comm);
-#endif
-    }
-};
-
-template<>
-struct Op_All2All3<Complex> : public ternary_function<KN_<Complex>,KN_<Complex>,fMPI_Comm,long> {
-  static long  f(Stack, KN_<Complex>  const  & s, KN_<Complex>  const  &r,fMPI_Comm const & cmm )  
-    { 
-	CheckContigueKN(r);
-	CheckContigueKN(s);
-
-      MPI_Comm comm=cmm;
-      int mpisizew;
-      MPI_Comm_size(comm, &mpisizew); /* local */ 
-      int chunk = s.N()/mpisizew;
-      ffassert(s.N()==mpisizew*chunk && r.N()==s.N());
-#ifdef HAVE_MPI_DOUBLE_COMPLEX       
-      return MPI_Alltoall( (void *) (Complex*) s, chunk, MPI_DOUBLE_COMPLEX,
-			   (void *) (Complex*) r, chunk, MPI_DOUBLE_COMPLEX, comm);
-#else
-      chunk*=2;
-      return MPI_Alltoall( (void *) (Complex*) s, chunk, MPI_DOUBLE,
-			   (void *) (Complex*)  (r), chunk, MPI_DOUBLE, comm);
-#endif	
-    }
-};
-
-template<>
-struct Op_Allgather3<Complex> : public ternary_function<KN_<Complex>,KN_<Complex>,fMPI_Comm,long> {
-  static long  f(Stack, KN_<Complex>  const  & s, KN_<Complex>  const  &r,fMPI_Comm const & cmm)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    MPI_Comm comm=cmm;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); /* local */ 
-    int chunk = r.N()/mpisizew;    // bug corrected by J. Morice
-    //ffassert(s.N()==mpisizew*chunk && r.N()==s.N());
-    ffassert(s.N()==chunk && r.N()==s.N()*mpisizew);
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-    return MPI_Allgather( (void *) (Complex*) s, chunk, MPI_DOUBLE_COMPLEX,
-			  (void *) (Complex*) r, chunk, MPI_DOUBLE_COMPLEX, comm);
-#else
-    chunk*=2;
-    return MPI_Allgather( (void *) (Complex*) (s), chunk, MPI_DOUBLE,
-			 (void *) (Complex*) (r), chunk, MPI_DOUBLE, comm);
-#endif
-  }
-};
-
-template<>
-struct Op_Allgather13<Complex> : public ternary_function<Complex *,KN_<Complex>,fMPI_Comm,long> {
-  static long  f(Stack, Complex *  const  & s, KN_<Complex>  const  &r,fMPI_Comm const & cmm)  
-  { 
-      CheckContigueKN(r);
-     
-
-    MPI_Comm comm=cmm;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); /* local */ 
-    int chunk = 1;    
-    ffassert( r.N()==mpisizew);
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-    return MPI_Allgather( (void *) (Complex*) s, chunk, MPI_DOUBLE_COMPLEX,
-			  (void *) (Complex*) r, chunk, MPI_DOUBLE_COMPLEX, comm);
-#else
-    chunk*=2;
-    return MPI_Allgather((void *) (Complex*)(s), chunk, MPI_DOUBLE,
-			   (void *) (Complex*) (r), chunk, MPI_DOUBLE, comm);
-#endif
-  }
-};
-
-
-template<>
-long  Op_All2Allv<Complex>( KN_<Complex>  const  & s, KN_<Complex>  const  &r, KN_<long> const &sendcnts, KN_<long> const &sdispls, KN_<long> const &recvcnts, KN_<long> const &rdispls)  
-{ 
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  MPI_Comm comm=MPI_COMM_WORLD;
-  int mpirankv=MPI_UNDEFINED;
-  MPI_Comm_rank(comm, &mpirankv); 
-  
-  int mpisizew;
-  MPI_Comm_size(comm, &mpisizew); /* local */ 
-  ffassert( sendcnts.N() == sdispls.N() && sendcnts.N() == recvcnts.N() && sendcnts.N() == rdispls.N() && sendcnts.N() == mpisizew );
-  
-  KN<int> INTsendcnts(sendcnts.N());
-  KN<int> INTsdispls(sdispls.N());
-  KN<int> INTrecvcnts(recvcnts.N());
-  KN<int> INTrdispls(rdispls.N());
-  
-  
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-  for(int ii=0; ii< sendcnts.N(); ii++){
-    INTsendcnts[ii] = sendcnts[ii];
-    INTsdispls[ii]  = sdispls[ii];
-    INTrecvcnts[ii]  = recvcnts[ii];
-    INTrdispls[ii]  = rdispls[ii];
-  }
-  return MPI_Alltoallv( (void *) (Complex*) s, INTsendcnts, INTsdispls, MPI_DOUBLE_COMPLEX,
-			(void *) (Complex*) r, INTrecvcnts, INTrdispls, MPI_DOUBLE_COMPLEX, comm);	
-#else
-  for(int ii=0; ii< sendcnts.N(); ii++){
-    INTsendcnts[ii] = 2*sendcnts[ii];
-    INTsdispls[ii]  = 2*sdispls[ii];
-    INTrecvcnts[ii] = 2*recvcnts[ii];
-    INTrdispls[ii]  = 2*rdispls[ii];
-  }
-  return MPI_Alltoallv( reinterpret_cast<void*> ( (Complex*) s), INTsendcnts, INTsdispls, MPI_DOUBLE,
-			reinterpret_cast<void*> ( (Complex*) r), INTrecvcnts, INTrdispls, MPI_DOUBLE, comm);
-#endif
-}
-
-
-
-template<>
-struct Op_Allgatherv<Complex> : public quad_function<KN_<Complex>,KN_<Complex>,KN_<long>,KN_<long>,long> {
-  static long f( Stack ,KN_<Complex>  const  & s, KN_<Complex>  const  &r, KN_<long> const & recvcount, KN_<long> const & displs)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    MPI_Comm comm=MPI_COMM_WORLD;
-    int mpisizew;
-    MPI_Comm_size(comm, &mpisizew); 
-    ffassert( recvcount.N() == displs.N() && recvcount.N() == mpisizew);
-    long sum=0;
-    for(int ii=0; ii< recvcount.N(); ii++)
-      sum+=recvcount[ii];
-    ffassert( sum == r.N() );
-  
-  
-    KN<int> INTrecvcount(recvcount.N());
-    KN<int> INTdispls(displs.N());
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-    for(int ii=0; ii< recvcount.N(); ii++){
-      INTrecvcount[ii]= recvcount[ii];
-      INTdispls[ii]= displs[ii];
-    }
-    return MPI_Allgatherv( (void *) (Complex*)s, s.N(), MPI_DOUBLE_COMPLEX,
-			   (void *) (Complex*)r, INTrecvcount, INTdispls,MPI_DOUBLE_COMPLEX, comm);
-#else
-    for(int ii=0; ii< recvcount.N(); ii++){
-      INTrecvcount[ii]= 2*recvcount[ii];
-      INTdispls[ii]= 2*displs[ii];
-    }
-    return MPI_Allgatherv( reinterpret_cast<void*> ( (Complex*) s), 2*s.N(), MPI_DOUBLE,
-			   reinterpret_cast<void*> ( (Complex*) r), INTrecvcount, INTdispls,MPI_DOUBLE, comm);
-#endif	
-  }
-};
-
-template<>
-long  Op_All2All3v<Complex>(KN_<Complex>  const  & s, KN_<Complex>  const  &r,fMPI_Comm const & cmm, KN_<long> const &sendcnts, KN_<long> const &sdispls, KN_<long> const &recvcnts, KN_<long> const &rdispls )  
-{ 
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  MPI_Comm comm=cmm;
-  int mpirankv=MPI_UNDEFINED;
-  MPI_Comm_rank(comm, &mpirankv); 
-      
-  int mpisizew;
-  MPI_Comm_size(comm, &mpisizew); /* local */ 
-  ffassert( sendcnts.N() == sdispls.N() && sendcnts.N() == recvcnts.N() && sendcnts.N() == rdispls.N() && sendcnts.N() == mpisizew );
-      
-  //ffassert(s.N()==sendcnts[mpirankv] && r.N()==recvbuf[mpirankv]);
-      
-  KN<int> INTsendcnts(sendcnts.N());
-  KN<int> INTsdispls(sdispls.N());
-  KN<int> INTrecvcnts(recvcnts.N());
-  KN<int> INTrdispls(rdispls.N());
-    
-#ifdef HAVE_MPI_DOUBLE_COMPLEX  
-  for(int ii=0; ii< sendcnts.N(); ii++){
-    INTsendcnts[ii] = sendcnts[ii];
-    INTsdispls[ii]  = sdispls[ii];
-    INTrecvcnts[ii]  = recvcnts[ii];
-    INTrdispls[ii]  = rdispls[ii];
-  }
-
-  return MPI_Alltoallv( (void *) (Complex*)s, INTsendcnts, INTsdispls, MPI_DOUBLE_COMPLEX,
-			(void *) (Complex*)r, INTrecvcnts, INTrdispls, MPI_DOUBLE_COMPLEX, comm);	
-#else
-  for(int ii=0; ii< sendcnts.N(); ii++){
-    INTsendcnts[ii] = 2*sendcnts[ii];
-    INTsdispls[ii]  = 2*sdispls[ii];
-    INTrecvcnts[ii]  = 2*recvcnts[ii];
-    INTrdispls[ii]  = 2*rdispls[ii];
-  }
-
-  return MPI_Alltoallv( reinterpret_cast<void*> ( (Complex*) s), INTsendcnts, INTsdispls, MPI_DOUBLE,
-			reinterpret_cast<void*> ( (Complex*) r), INTrecvcnts, INTrdispls, MPI_DOUBLE, comm);
-#endif
-}
-
-
-template<>
-long Op_Allgatherv3<Complex>(KN_<Complex>  const  & s, KN_<Complex>  const  &r,fMPI_Comm const & cmm, KN_<long> const & recvcount, KN_<long> const & displs)
-{ 
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  MPI_Comm comm=cmm;
-  int mpisizew;
-  MPI_Comm_size(comm, &mpisizew); 
-  ffassert( recvcount.N() == displs.N() && recvcount.N() == mpisizew);
-  long sum=0;
-  for(int ii=0; ii< recvcount.N(); ii++)
-    sum+=recvcount[ii];
-  ffassert( sum == r.N() );
-  KN<int> INTrecvcount(recvcount.N());
-  KN<int> INTdispls(displs.N());
-  
-#ifdef HAVE_MPI_DOUBLE_COMPLEX 
-  for(int ii=0; ii< recvcount.N(); ii++){
-    INTrecvcount[ii]= recvcount[ii];
-    INTdispls[ii]= displs[ii];
-  }
-
-  return MPI_Allgatherv( (void *) (Complex*)s, s.N(), MPI_DOUBLE_COMPLEX,
-			 (void *) (Complex*)r, INTrecvcount, INTdispls,MPI_DOUBLE_COMPLEX, comm);	
-
-#else
-  for(int ii=0; ii< recvcount.N(); ii++){
-    INTrecvcount[ii]= 2*recvcount[ii];
-    INTdispls[ii]= 2*displs[ii];
-  }
-
-  return MPI_Allgatherv( reinterpret_cast<void*> ( (Complex*) s), 2*s.N(), MPI_DOUBLE,
-			 reinterpret_cast<void*> ( (Complex*) r), INTrecvcount, INTdispls,MPI_DOUBLE, comm);
-#endif
-
-}
-
-template<>
-struct Op_Scatter1<Complex> : public   ternary_function<KN_<Complex>,Complex *,MPIrank,long> {
-  static long  f(Stack, KN_<Complex> const  & s, Complex *  const  &r,  MPIrank const & root)  
-  { 
-     
-      CheckContigueKN(s);
-
-    int mpisizew;
-    MPI_Comm_size(root.comm, &mpisizew); 
-    int chunk = 1;
-    // ffassert(s.N()==mpisizew*chunk ); fait dans mpi
-#ifdef HAVE_MPI_DOUBLE_COMPLEX      
-    return MPI_Scatter( (void *) (Complex*)s, chunk, MPI_DOUBLE_COMPLEX,
-			(void *) (Complex*)r, chunk, MPI_DOUBLE_COMPLEX,root.who,root.comm);	
-#else
-    chunk*=2;
-    return MPI_Scatter( reinterpret_cast<void*> ( (Complex*) s), chunk, MPI_DOUBLE,
-			reinterpret_cast<void*> ( (Complex*) r), chunk, MPI_DOUBLE,root.who,root.comm);
-#endif
-  }
-};
-
-
-template<>
-struct Op_Scatter3<Complex> : public   ternary_function<KN_<Complex>,KN_<Complex>,MPIrank,long> {
-  static long  f(Stack, KN_<Complex>  const  & s, KN_<Complex>  const  &r,  MPIrank const & root)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    int mpisizew;
-    MPI_Comm_size(root.comm, &mpisizew); 
-    int chunk = r.N();// correct 2012 FH
-   // ffassert(s.N()==mpisizew*chunk && r.N()==chunk);
-#ifdef HAVE_MPI_DOUBLE_COMPLEX      
-    return MPI_Scatter( (void *) (Complex*)s, chunk, MPI_DOUBLE_COMPLEX,
-			(void *) (Complex*)r, chunk, MPI_DOUBLE_COMPLEX,root.who,root.comm);	
-#else
-    chunk*=2;
-    return MPI_Scatter( reinterpret_cast<void*> ( (Complex*) s), chunk, MPI_DOUBLE,
-			reinterpret_cast<void*> ( (Complex*) r), chunk, MPI_DOUBLE,root.who,root.comm);
-#endif
-  }
-};
-
-template<>
-long Op_Scatterv3<Complex>( KN_<Complex>  const  & s, KN_<Complex>  const  &r,  MPIrank const & root, KN_<long> const &sendcnts, KN_<long> const &displs)  
-{ 
-  
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  int mpirankv=MPI_UNDEFINED;
-  if(root.comm != MPI_COMM_NULL)
-    MPI_Comm_rank(root.comm, &mpirankv); 
-  
-  int mpisizew;
-  MPI_Comm_size(root.comm, &mpisizew); /* local */ 
-  //  ffassert( sendcnts.N() == displs.N() && sendcnts.N() == mpisizew );
-  // size control 
-  // ffassert( r.N() == sendcnts[mpirankv] );
-  long sumsize=0;
-  for(int ii=0; ii<sendcnts.N(); ii++){
-    sumsize += sendcnts[ii];
-  }
-  //ffassert( s.N() == sumsize );
-  
-  KN<int> INTsendcnts(sendcnts.N());
-  KN<int> INTdispls(displs.N());
-#ifdef HAVE_MPI_DOUBLE_COMPLEX  
-  for(int ii=0; ii< sendcnts.N(); ii++){
-    INTsendcnts[ii]= sendcnts[ii];
-    INTdispls[ii]= displs[ii];
-  }
-
-  return MPI_Scatterv( (void *) (Complex*)s, INTsendcnts, INTdispls, MPI_DOUBLE_COMPLEX,
-		       (void *) (Complex*)r, r.N(), MPI_DOUBLE_COMPLEX,root.who,root.comm);
-#else
-  for(int ii=0; ii< sendcnts.N(); ii++){
-    INTsendcnts[ii]= 2*sendcnts[ii];
-    INTdispls[ii]= 2*displs[ii];
-  }
-
-  return MPI_Scatterv( reinterpret_cast<void*> ( (Complex*) s), INTsendcnts, INTdispls, MPI_DOUBLE,
-		       reinterpret_cast<void*> ( (Complex*) r), 2*r.N(), MPI_DOUBLE,root.who,root.comm);
-#endif
-
-}
-
-
-template<>
-struct Op_Reduce<Complex>  : public   quad_function<KN_<Complex>,KN_<Complex>,MPIrank,fMPI_Op,long> {
-  static long  f(Stack, KN_<Complex>  const  & s, KN_<Complex>  const  &r,  MPIrank const & root, fMPI_Op const &op)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    int chunk = s.N();
-    ffassert(chunk==r.N());
-#ifdef HAVE_MPI_DOUBLE_COMPLEX     
-    return MPI_Reduce( (void *) (Complex*)s,(void *) (Complex*)r, chunk , MPI_DOUBLE_COMPLEX,op,root.who,root.comm);
-#else
-    chunk*=2;
-    return MPI_Reduce( reinterpret_cast<void*> ( (Complex*) s), reinterpret_cast<void*> ( (Complex*) r), chunk , MPI_DOUBLE,op,root.who,root.comm);
-#endif	
-  }
-};
-
-template<>
-struct Op_AllReduce<Complex>  : public   quad_function<KN_<Complex>,KN_<Complex>,fMPI_Comm,fMPI_Op,long> {
-  static long  f(Stack, KN_<Complex>  const  & s, KN_<Complex>  const  &r,  fMPI_Comm const & comm,fMPI_Op const &op)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-    int chunk = s.N();
-    ffassert(chunk==r.N());
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-    return MPI_Allreduce( (void *) (Complex*)s,(void *) (Complex*)r, chunk , MPI_DOUBLE_COMPLEX,op,comm);
-#else
-    chunk *=2;
-    return MPI_Allreduce( reinterpret_cast<void*> ( (Complex*) s), reinterpret_cast<void*> ( (Complex*) r), chunk , MPI_DOUBLE,op,comm);
-#endif	
-  }
-};
-// /*
-// template<>
-// struct Op_Reducescatter  : public   quad_function<KN_<Complex>,KN_<Complex>,fMPI_Comm,fMPI_Op,long> {
-//     static long  f(Stack, KN_<Complex>  const  & s, KN_<Complex>  const  &r,  fMPI_Comm const & comm,fMPI_Op const &op)  
-//     { 
-// 	int chunk = s.N();
-// 	ffassert(chunk==r.N());
-//         //    chunk est un tableau ????
-// 	MPI_Op oop = reinterpret_cast<MPI_Op> (op);
-// 	return MPI_Reduce_scatter( (void *) (Complex*)s,(void *) (Complex*)r, chunk , MPI_DOUBLE_COMPLEX,op,comm);	
-//     }
-// };*/
-
-template<>
-struct Op_Reduce1<Complex>  : public   quad_function<Complex*,Complex*,MPIrank,fMPI_Op,long> {
-  static long  f(Stack, Complex*  const  & s, Complex*  const  &r,  MPIrank const & root, fMPI_Op const &op)  
-  { 
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-    int chunk = 1;
-    return MPI_Reduce( (void *) s, (void *) r, chunk , MPI_DOUBLE_COMPLEX,op,root.who,root.comm);
-#else
-    int chunk = 2;
-    return MPI_Reduce( reinterpret_cast<void*> ( (Complex*) s), reinterpret_cast<void*> ( (Complex*) r), chunk , MPI_DOUBLE,op,root.who,root.comm);
-#endif
-  }
-};
-
-// Add J. Morice
-template<>
-struct Op_Gather1<Complex> : public   ternary_function<Complex* ,KN_<Complex>,MPIrank,long> {
-    static long  f(Stack, Complex * const  & s, KN_<Complex>  const  &r,  MPIrank const & root)  
-  { 
-    
-      CheckContigueKN(r);
-      
-
-      int mpisizew,myrank;
-      MPI_Comm_size(root.comm, &mpisizew); 
-      MPI_Comm_rank( root.comm, &myrank)  ;
-      
-    int chunk = 1;
-   // ffassert( (myrank != root.who) || (r.N()>=mpisizew*chunk) );
-#ifdef HAVE_MPI_DOUBLE_COMPLEX  
-       
-    return MPI_Gather( (void *) (Complex*) s, chunk, MPI_DOUBLE_COMPLEX,
-			   (void *) (Complex*) r, chunk, MPI_DOUBLE_COMPLEX, root.who, root.comm);
-#else
-    chunk = 2;
-    return MPI_Gather( reinterpret_cast<void*> ( (Complex*) s), chunk, MPI_DOUBLE,
-		       reinterpret_cast<void*> ( (Complex*) r), chunk, MPI_DOUBLE, root.who, root.comm);
-#endif	
-  }
-};
-
-// Fin Add J. Morice
-
-
-template<>
-struct Op_Gather3<Complex> : public   ternary_function<KN_<Complex>,KN_<Complex>,MPIrank,long> {
-    static long  f(Stack, KN_<Complex>  const  & s, KN_<Complex>  const  &r,  MPIrank const & root)  
-  { 
-      CheckContigueKN(r);
-      CheckContigueKN(s);
-
-      int mpisizew,myrank;
-      MPI_Comm_size(root.comm, &mpisizew); 
-      MPI_Comm_rank( root.comm, &myrank)  ;
-
-    int chunk = s.N();
-    // ffassert( (myrank != root.who) || (r.N()>=mpisizew*chunk) );
-#ifdef HAVE_MPI_DOUBLE_COMPLEX    
-       
-    return MPI_Gather( (void *) (Complex*)s, chunk, MPI_DOUBLE_COMPLEX,
-			   (void *) (Complex*)r, chunk, MPI_DOUBLE_COMPLEX,root.who,root.comm);	
-#else
-    chunk *= 2; 
-    return MPI_Gather( reinterpret_cast<void*> ( (Complex*) s), chunk, MPI_DOUBLE,
-		       reinterpret_cast<void*> ( (Complex*) r), chunk, MPI_DOUBLE,root.who,root.comm);
-#endif
-  }
-};
-
-
-template<>
-//struct Op_Gatherv3 : public penta_function<KN_<Complex>,KN_<Complex>, MPIrank, KN_<long>, KN_<long>, long> {
-long  Op_Gatherv3<Complex>(KN_<Complex>  const  & s, KN_<Complex>  const  &r,  MPIrank const & root, KN_<long> const & recvcount, KN_<long> const & displs)  
-{ 
-    CheckContigueKN(r);
-    CheckContigueKN(s);
-
-  int mpirankw;
-  MPI_Comm_rank(root.comm, &mpirankw); 
-  int mpisizew;
-  MPI_Comm_size(root.comm, &mpisizew); 
-  //ffassert((mpirankw != root.who) || ( recvcount.N() == displs.N() && recvcount.N() == mpisizew));
-  
-  if( mpirankw == root.who){
-    long sum=0;
-    for(int ii=0; ii< recvcount.N(); ii++)
-      sum+=recvcount[ii];
-    ffassert( sum == r.N() );
-  }
-  KN<int> INTrecvcount(recvcount.N());
-  KN<int> INTdispls(displs.N());
-#ifdef HAVE_MPI_DOUBLE_COMPLEX   
-  for(int ii=0; ii< recvcount.N(); ii++){
-    INTrecvcount[ii]= recvcount[ii];
-    INTdispls[ii]= displs[ii];
-  }
-  return MPI_Gatherv( (void *) (Complex*)s, s.N(), MPI_DOUBLE_COMPLEX,
-		      (void *) (Complex*)r, INTrecvcount, INTdispls,MPI_DOUBLE_COMPLEX,root.who,root.comm);
-#else
-  for(int ii=0; ii< recvcount.N(); ii++){
-    INTrecvcount[ii]= 2*recvcount[ii];
-    INTdispls[ii]= 2*displs[ii];
-  }
-  return MPI_Gatherv( reinterpret_cast<void*> ( (Complex*) s), 2*s.N(), MPI_DOUBLE,
-		      reinterpret_cast<void*> ( (Complex*) r), INTrecvcount, INTdispls,MPI_DOUBLE,root.who,root.comm);
-#endif
-}
-
-// Fin Add J. Morice communication entre complexe
-
-MPIrank mpiwho(long i) { return MPIrank(i);}
-MPIrank mpiwho(long i,fMPI_Comm comm) { return MPIrank(i,comm,Syncro_block);}
-MPIrank mpiwho(fMPI_Comm comm,long i) { return MPIrank(i,comm,Syncro_block);}
-MPIrank mpiwhob(long i) { return MPIrank(i);}
-MPIrank mpiwhob(long i,fMPI_Comm comm) { return MPIrank(i,comm,Syncro_block);}
-
-MPIrank mpiwho_(const long &i,const fMPI_Comm &comm,fMPI_Request * const &rq) { return MPIrank(i,comm,*rq);}
-MPIrank mpiwho_(const long &i,fMPI_Request * const &rq) { return MPIrank(i, MPI_COMM_WORLD ,*rq);}
-
-long mpiWait(fMPI_Request * frq) { 
- MPI_Request * rq= *frq; 
- MPI_Status status;
- long res=MPI_SUCCESS;
-  while(rq && *rq!=MPI_REQUEST_NULL)
-    {
-      res = MPI_Wait(rq,&status); 
-      DoOnWaitMPIRequest(rq);
-    }
-    return res;  
-
-}
-
-long mpiBarrier(fMPI_Comm * comm) 
-{    
-  return MPI_Barrier(*comm);
-}
-
-
-
-long mpiWaitAny(KN<MPI_Request>* rq)
-{ 
-  MPI_Status status;
-  int index;
-  //cout << "mpiWaitAny " <<rq->N() << " in "  <<  endl ;
-  do {
-      MPI_Waitany(rq->N(),*rq,&index,&status);
-      DoOnWaitMPIRequest(&(*rq)[index]);
-  }  while( (MPI_UNDEFINED!= index) &&  ((*rq)[index]!=MPI_REQUEST_NULL));
-    
-  //cout << "mpiWaitAny " <<rq->N() << " out " << index <<  endl ;
-  return index;
-}
-
-MPIrank * set_copympi( MPIrank* const & a,const MPIrank & b){ *a=b;return a;}
- 
-
-long mpiSize(fMPI_Comm  cmm) { 
-    int s=0;
- //   fMPI_Comm_rank(MPI_COMM_WORLD, &s); /* local */ 
-    if(cmm !=  (MPI_Comm) MPI_COMM_NULL)
-    MPI_Comm_size(cmm, &s); /* local */ 
-    return s;
-}
-long mpiRank(fMPI_Comm  cmm) { 
-    int s=MPI_UNDEFINED;
-    if(cmm != (MPI_Comm)MPI_COMM_NULL)
-    MPI_Comm_rank(cmm, &s); /* local */ 
- //   MPI_Comm_size(MPI_COMM_WORLD, &s); /* local */ 
-    return s;
-}
-
-AnyType InitializeGroup(Stack stack,const AnyType &x){
-    MPI_Group *g=*PGetAny<fMPI_Group>(x);
-    *g=MPI_GROUP_NULL;
-     MPI_Comm_group(MPI_COMM_WORLD, g);
-    return  g;
-}
-AnyType DeleteGroup(Stack stack,const AnyType &x){
-    MPI_Group *g=*PGetAny<fMPI_Group>(x);
-    if(g && (*g != MPI_GROUP_NULL))MPI_Group_free(g);
-    return  Nothing;
-}
-AnyType InitializeComm(Stack stack,const AnyType &x){
-    MPI_Comm *comm= *PGetAny<fMPI_Comm>(x);
-    *comm=MPI_COMM_NULL;
-    MPI_Comm_dup(MPI_COMM_WORLD, comm);
-    return  comm;
-}
-AnyType DeleteComm(Stack stack,const AnyType &x){
-    MPI_Comm *comm= *PGetAny<fMPI_Comm>(x);
-    if(comm && (*comm != MPI_COMM_NULL && *comm != MPI_COMM_WORLD))// add MPI_COMM_WORLD FH 11/2010 FH
-      MPI_Comm_free(comm);
-    return  Nothing;
-}
-AnyType InitializeRequest(Stack stack,const AnyType &x){
-    MPI_Request *comm=*PGetAny<fMPI_Request>(x);
-    *comm=MPI_REQUEST_NULL;
-    
-    return  comm;
-}
-AnyType DeleteRequest(Stack stack,const AnyType &x){
-    MPI_Request *comm=*PGetAny<fMPI_Request>(x);
-    if(comm && ( *comm!=MPI_REQUEST_NULL )) MPI_Request_free(comm);
-    return  Nothing;
-}
-//  Hack to Bypass a bug in freefem FH  ... 
-template<> 
-class ForEachType<MPI_Group>:  public basicForEachType{public:// correction july 2009..... FH  Hoooo....  (Il y a un bug DUR DUR FH  ...) 
-    ForEachType(Function1 iv=0,Function1 id=0,Function1 OOnReturn=0):basicForEachType(typeid(MPI_Group),sizeof(MPI_Group),0,0,iv,id,OOnReturn) { }
-};
-
-template<> 
-class ForEachType<fMPI_Comm>:  public basicForEachType{public:// coorection july 2009..... FH  Hoooo....  (Il y a un bug DUR DUR FH  ...) 
-    ForEachType(Function1 iv=0,Function1 id=0,Function1 OOnReturn=0):basicForEachType(typeid(fMPI_Comm),sizeof(fMPI_Comm),0,0,iv,id,OOnReturn) {}
-};
-
-template<> 
-class ForEachType<fMPI_Request>:  public basicForEachType{public:// correction july 2009..... FH  Hoooo....  (Il y a un bug DUR DUR FH  ...) 
-    ForEachType(Function1 iv=0,Function1 id=0,Function1 OOnReturn=0):basicForEachType(typeid(fMPI_Request),sizeof(fMPI_Request),0,0,iv,id,OOnReturn) {}
-};
-// end Hack  ... 
-
-
-fMPI_Group* def_group( fMPI_Group* const & a,fMPI_Comm * const &comm, KN_<long>  const & b)
-{
-  MPI_Group group;
-  MPI_Comm_group(*comm,& group); 
-  KN<int> ranks(b);
-  MPI_Group_incl(group, ranks.N(),(int *) ranks, *a);
-  MPI_Group_free(&group) ;
-  // ici def a .. 
-  //  ffassert(0); //   A AFAIRE  //  pour arete le programm 
-  return a;}
-
-fMPI_Group* def_group( fMPI_Group* const & a, KN_<long>  const & b)
-{
-    MPI_Group group;
-    MPI_Comm comm=MPI_COMM_WORLD;
-    MPI_Comm_group(comm,& group); 
-    KN<int> ranks(b);
-    MPI_Group_incl(group, ranks.N(),(int *) ranks, *a);
-    MPI_Group_free(&group) ;
-    // ici def a .. 
-    //  ffassert(0); //   A AFAIRE  //  pour arete le programm 
-return a;}
-
-fMPI_Group* def_group( fMPI_Group* const & a,fMPI_Comm * const &comm)
-{
-  MPI_Comm_group(*comm,*a); 
-  return a;}
-
-fMPI_Comm* def_comm( fMPI_Comm* const & a,fMPI_Group* const & g)
-{
-    int ok=MPI_Comm_create(MPI_COMM_WORLD,*g,*a); 
-    return a;
-}
-
-fMPI_Comm* def_comm( fMPI_Comm* const & a,fMPI_Comm* const & b,fMPI_Group* const & g)
-{
-    MPI_Comm_create(*b,*g,*a); 
-    return a;
-}
-
-fMPI_Group* def_group( fMPI_Group* const & a,fMPI_Group  * const & group,KN_<long>  const & b)
-{
-  
-  KN<int> ranks(b);
-  MPI_Group_incl(*group, ranks.N(), (int *) ranks, *a);
-  // ici def a .. 
-  //  ffassert(0); //   A AFAIRE  //  pour arete le programm 
-  return a;
-}
-
-struct Def_def_Commsplit  : public  quad_function<fMPI_Comm*,fMPI_Comm*,long,long, fMPI_Comm*> 
-{
-    static fMPI_Comm * f(Stack,fMPI_Comm* const & a,fMPI_Comm* const & comm,const long &color ,const long &key  )
-    {    
-	MPI_Comm_split(*comm,color, key, *a);
-	return a;
-    }
-};
-
-fMPI_Comm * mpiCommsplit(fMPI_Comm* const & a,const MPIrank &p1,const long &key  )
-{    
-    MPI_Comm_split(p1.comm, p1.who, key, *a);
-    return a;
-}
-
-
-
-
-struct Def_def_Intercommcreate  : public  quad_function<fMPI_Comm*,MPIrank,MPIrank,long, fMPI_Comm*> 
-{
-static fMPI_Comm * f(Stack,fMPI_Comm* const & a, MPIrank const & p1, MPIrank const & p2, long const & tag )
-{
-    int err;
-    err=MPI_Intercomm_create(p1.comm, p1.who, p2.comm,p2.who,tag, *a);     
-    return a;	
-}
-};
-
-fMPI_Comm * def_intercommmerge(fMPI_Comm* const & a,fMPI_Comm* const & b, const long & high)
-{
-    MPI_Intercomm_merge(*b, high, *a);
-    return a;
-}
-
-
-template<typename K,typename KK>
-AnyType ClearReturnpKK(Stack stack, const AnyType & a)
-{
-  // a ne faire que pour les variables local au return...
-  //  pour l'instant on copie pour fqire mqrche 
-  // a repense  FH  mqi 2009....
-    KK * m = GetAny<KK * >(a);
-    //   KN<K> *cm=new KN<K>(true, *m); bug quant KN est une variable global
-    // KN<K> *cm=new KN<K>( *m); // on duplique le tableau comme en C++  (dur dur ?????? FH)
-    m->increment();
-    Add2StackOfPtr2FreeRC(stack,m);
-    if(verbosity>400)
-	cout << "ClearReturnpKK:: increment + Add2StackOfPtr2FreeRC nb ref  " <<  -m->next  << endl;
-    return m;
-}
-
-template<typename K,typename KK,typename KK_>
-AnyType ClearReturnpKK_(Stack stack, const AnyType & a)
-{
-  // il faut faire un copie du tableau 
-  KK_ * m = GetAny<KK_ * >(a);
-  KK *cm=new KK(*m); 
-  
-  Add2StackOfPtr2Free(stack,cm);// detruire la copie 
-  if(verbosity>400)
-    cout << "ClearReturnpKK_:: copie  Add2StackOfPtr2Free "  << endl;
-  return (KK_ *) cm;
-}
-template<typename K,typename KK,typename KK_>
-AnyType ClearReturnKK_(Stack stack, const AnyType & a)
-{
-  // il faut faire un copie du tableau 
-  KK_  m = GetAny<KK_>(a);
-  KK *cm=new KK(m); 
-  
-  Add2StackOfPtr2Free(stack,cm);// detruire la copie 
-  if(verbosity>400)
-    cout << "ClearReturnKK_:: copie  Add2StackOfPtr2Free   "  << endl;
-    return SetAny<KK_>(*cm);
-}
-//template<class RR,class A,class B>  fMPI_Request*,KN<MPI_Request>*,long
-fMPI_Request * get_elementp_( KN<MPI_Request> * const & a,const long & b){ 
-  if( a==0 || b<0 || a->N() <= b) 
-    { cerr << " Out of bound  0 <=" << b << " < "  << a->N() << " KN<MPI_Request> * " << endl;
-      ExecError("Out of bound in operator []");}
-  return  reinterpret_cast<fMPI_Request *> (&((*a)[b]));}// bofBof ... 
-
-KN<MPI_Request> * set_init0( KN<MPI_Request> * const & a,const long & b)
-   { 
-     a->init(b);
-     for(int i=0;i<b;++i)
-       (*a)[i]=MPI_REQUEST_NULL;
-     return a;
-   }
-bool toBool(fMPI_Comm *comm)
-{
-  return (comm && (*comm != (MPI_Comm)MPI_COMM_NULL)); 
-}
-void * topVoid(fMPI_Comm *comm) {    return comm; }
-
-template<typename T>
-class Quad_Op : public E_F0 {
-  typedef typename T::result_type R;
-  typedef typename T::first_argument_type A;
-  typedef typename T::second_argument_type B;
-  typedef typename T::third_argument_type C;
-  typedef typename T::fourth_argument_type D;
-  
-  typedef  typename T::result_type Result;
-  Expression a,b,c,d;
-public:
-  AnyType operator()(Stack s)  const 
-  {return  SetAny<R>(static_cast<R>(T::f(s, GetAny<A>((*a)(s)) ,
-					 GetAny<B>((*b)(s)) ,
-					 GetAny<C>((*c)(s)),
-					   GetAny<D>((*d)(s))
-					 )));}
-  Quad_Op(Expression aa,Expression bb,Expression cc,Expression dd) : a(aa),b(bb),c(cc),d(dd) {} 
-  bool MeshIndependent() const {
-    return a->MeshIndependent() && b->MeshIndependent() && c->MeshIndependent()  && d->MeshIndependent();}
-};
-
-
-// Fin add J. Morice
-<<<<<<< HEAD
-
-void f_end_parallele()
-{
-    /// FFCS: MPI_Finalize() needs to be called later than this (in
-    /// ffcs/src/server.cpp)
-    ffapi::mpi_finalize();
-    if(mpirank==0 || verbosity>2) cout << "FreeFem++-mpi finalize correctly .\n" << flush ;
-    else if(verbosity>5)  cout << '.' << endl ;
-}
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-void f_initparallele(int &argc, char **& argv)
-{
-  /// FFCS: MPI_Init() needs to be called earlier (in ffcs/src/server.cpp)
-  ffapi::mpi_init(argc,argv);
-  
-  int mpirank1,mpisize1;
-  MPI_Comm_rank(MPI_COMM_WORLD, &mpirank1); /* local */ 
-  MPI_Comm_size(MPI_COMM_WORLD, &mpisize1); /* local */ 
-  
-  mpirank = mpirank1;//MPI::COMM_WORLD.Get_rank();
-  mpisize =mpisize1;// MPI::COMM_WORLD.Get_size();
-  if(verbosity> 2 || (mpirank ==0))
-  cout << "initparallele rank " <<  mpirank << " on " << mpisize << endl;
-<<<<<<< HEAD
-  ff_atend(f_end_parallele); // set end MPI // 
-=======
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-}
-
-double ffMPI_Wtime() {return MPI_Wtime();}
-double ffMPI_Wtick() {return MPI_Wtick();}
-
-void f_init_lgparallele()
-  {
-    if(verbosity && mpirank == 0) cout << "parallelempi ";
-    using namespace Fem2D;
-    Dcl_TypeandPtr<MPIrank>(0);
-    
-    Dcl_TypeandPtr<fMPI_Group>(0,0,InitializeGroup,DeleteGroup); 
-    Dcl_TypeandPtr<fMPI_Comm>(0,0,InitializeComm,DeleteComm);  
-    Dcl_Type<fMPI_Op>(); 
-    Dcl_TypeandPtr<fMPI_Request>(0,0,InitializeRequest,DeleteRequest); // bof bof ... 
-    Dcl_TypeandPtr_<KN_<MPI_Request> ,KN<MPI_Request>*  > 
-      (0,0,0,::Destroy<KN<MPI_Request> >,
-       ::ClearReturnKK_<MPI_Request,KN<MPI_Request>,KN_<MPI_Request> >,
-       ::ClearReturnpKK<MPI_Request,KN<MPI_Request> >);
-      
-    zzzfff->Add("mpiGroup",atype<fMPI_Group*>());
-    zzzfff->Add("mpiComm",atype<fMPI_Comm*>());
-    zzzfff->Add("mpiRequest",atype<fMPI_Request*>());
-    
-    map_type_of_map[make_pair(atype<long>(),atype<fMPI_Request>())]=atype<KN<MPI_Request>*>(); // vector
-    
-    
-    map_type[typeid(MPIrank).name()]->AddCast(new E_F1_funcT<MPIrank,MPIrank*>(UnRef<MPIrank>));
-    map_type[typeid(fMPI_Group).name()]->AddCast(new E_F1_funcT<fMPI_Group,fMPI_Group*>(UnRef<fMPI_Group>));
-    map_type[typeid(fMPI_Comm).name()]->AddCast(new E_F1_funcT<fMPI_Comm,fMPI_Comm*>(UnRef<fMPI_Comm>));
-    map_type[typeid(bool).name()]->AddCast(new OneOperator1<bool,fMPI_Comm*>(toBool));
-    map_type[typeid(void*).name()]->AddCast(new OneOperator1<void *,fMPI_Comm*>(topVoid));
-      
-      
-    TheOperators->Add("<-", 
-		      new OneOperator2_<MPIrank*,MPIrank*,MPIrank>(&set_copympi));
-    
-    // constructor example ... 
-    TheOperators->Add("<-", 
-		      new OneOperator2_<fMPI_Group*,fMPI_Group*,KN_<long> >(&def_group),
-		      new OneOperator3_<fMPI_Group*,fMPI_Group*,fMPI_Group*,KN_<long> >(&def_group),
-		      new OneOperator3_<fMPI_Group*,fMPI_Group*,fMPI_Comm*,KN_<long> >(&def_group),
-		      new OneOperator2_<fMPI_Group*,fMPI_Group*,fMPI_Comm*>(&def_group));
-      
-      
-       /*
-       fMPI_Comm * mpiCommsplit(fMPI_Comm* const & a,const MPIrank &p1,const long &rk  )
-       fMPI_Comm * def_intercommmerge(fMPI_Comm* const & a,fMPI_Comm* const & b, const long & high)
-	fMPI_Comm * def_Intercommcreate(fMPI_Comm* const & a, MPIrank const & p1, MPIrank const & p2, long const & tag )
-	 quad_function<fMPI_Comm*,MPIrank,MPIrank,long, fMPI_Comm* >
-       
-       */
-      TheOperators->Add("<-", 
-			new OneOperator2_<fMPI_Comm*,fMPI_Comm*,fMPI_Group* >(&def_comm),
-			new OneOperator3_<fMPI_Comm*,fMPI_Comm*,fMPI_Comm*,fMPI_Group* >(&def_comm),
-			new OneOperator3_<fMPI_Comm*,fMPI_Comm*,MPIrank,long >(&mpiCommsplit),
-			new OneOperator3_<fMPI_Comm*,fMPI_Comm*,fMPI_Comm*,long >(&def_intercommmerge),
-			new OneQuadOperator< Def_def_Intercommcreate, Quad_Op<Def_def_Intercommcreate>  >,
-			new OneQuadOperator< Def_def_Commsplit, Quad_Op<Def_def_Commsplit>  >
-			
-			); 
-      
-    /*  code edp
-	int[int] procs=[1,2,3];
-	mpiGroup toto(procs);
-	mpiComm comm(toto);
-	
-    */
-      
-    
-    Global.Add("processor","(",new OneOperator1<MPIrank,long>(mpiwho));
-    Global.Add("processor","(",new OneOperator2<MPIrank,long,fMPI_Comm>(mpiwho));
-      Global.Add("processor","(",new OneOperator2<MPIrank,fMPI_Comm,long>(mpiwho));
-   
-    Global.Add("processorblock","(",new OneOperator1<MPIrank,long>(mpiwhob));
-    Global.Add("processorblock","(",new OneOperator2<MPIrank,long,fMPI_Comm>(mpiwhob));
-    
-    TheOperators->Add(">>",
-		      new OneBinaryOperator<Op_Readmpi<double> >,
-		      new OneBinaryOperator<Op_Readmpi<Complex> >,
-		      new OneBinaryOperator<Op_Readmpi<long> > ,
-		      new OneBinaryOperator<Op_Readmpi<KN<double> > > ,
-		      new OneBinaryOperator<Op_Readmpi<KN<long> > > ,
-		       new OneBinaryOperator<Op_Readmpi<KN<Complex> > > ,
-		      new OneBinaryOperator<Op_Readmpi<Mesh *> > ,
-		      new OneBinaryOperator<Op_Readmpi<Mesh3 *> > ,
-		      new OneBinaryOperator<Op_Readmpi<Matrice_Creuse<R> > > ,
-		      new OneBinaryOperator<Op_Readmpi<Matrice_Creuse<Complex> > > 
-		      );
-    
-     TheOperators->Add("<<",
-		       new OneBinaryOperator<Op_Writempi<double> >,
-		       new OneBinaryOperator<Op_Writempi<Complex> >,
-		       new OneBinaryOperator<Op_Writempi<long> > ,
-		       new OneBinaryOperator<Op_Writempi<KN<double> * > > ,
-		       new OneBinaryOperator<Op_Writempi<KN<long> * > > ,
-		       new OneBinaryOperator<Op_Writempi<KN<Complex> * > > ,
-		       new OneBinaryOperator<Op_Writempi<Mesh *> > ,
-		       new OneBinaryOperator<Op_Writempi<Mesh3 *> > ,
-		       new OneBinaryOperator<Op_Writempi<Matrice_Creuse<R> * > > ,
-		       new OneBinaryOperator<Op_Writempi<Matrice_Creuse<Complex>* > > 
-		       
-		       );
-     
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<double> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<long> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<Complex> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<KN<double> *> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<KN<long> *> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<KN<Complex> *> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<Mesh *> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<Mesh3 *> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<Matrice_Creuse<R> *> >);
-     Global.Add("Send","(", new OneBinaryOperator<Op_Sendmpi<Matrice_Creuse<Complex> *> >);
-     
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<double> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<long> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<Complex> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<KN<double> *> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<KN<long> *> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<KN<Complex> *> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<Mesh *> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<Mesh3 *> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<Matrice_Creuse<R> *> >);
-     Global.Add("Isend","(", new OneBinaryOperator<Op_ISendmpi<Matrice_Creuse<Complex> *> >);
-     
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<double> >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<long> >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<Complex> >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<KN<double> > >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<KN<long> > >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<KN<Complex> > >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<Mesh *> >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<Mesh3 *> >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<Matrice_Creuse<R> > >);
-      Global.Add("Recv","(", new OneBinaryOperator<Op_Recvmpi<Matrice_Creuse<Complex> > >);
-      
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<double> >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<long> >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<Complex> >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<KN<double> > >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<KN<long> > >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<KN<Complex> > >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<Mesh *> >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<Mesh3 *> >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<Matrice_Creuse<R> > >);
-      Global.Add("Irecv","(", new OneBinaryOperator<Op_IRecvmpi<Matrice_Creuse<Complex> > >);
-      
-    
-      
-      
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<double> >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<Complex> >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<long> >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<KN<double> > >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<KN<long> > >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<KN<Complex> > >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<Mesh *> >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<Mesh3 *> >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<Matrice_Creuse<R> > >);
-      Global.Add("broadcast","(",new OneBinaryOperator<Op_Bcastmpi<Matrice_Creuse<Complex> > >);
-      
-      Global.Add("mpiAlltoall","(",new OneBinaryOperator<Op_All2All< long > >);
-      Global.Add("mpiAlltoall","(",new OneBinaryOperator<Op_All2All< double > >);
-      Global.Add("mpiAllgather","(",new OneBinaryOperator<Op_Allgather< long > >);
-      Global.Add("mpiAllgather","(",new OneBinaryOperator<Op_Allgather< double > >);
-      Global.Add("mpiAlltoall","(",new OneTernaryOperator3<Op_All2All3< long > >);
-      Global.Add("mpiAlltoall","(",new OneTernaryOperator3<Op_All2All3< double > >);
-      Global.Add("mpiAllgather","(",new OneTernaryOperator3<Op_Allgather3< long > >);
-      Global.Add("mpiAllgather","(",new OneTernaryOperator3<Op_Allgather3< double > >);
-      
-      Global.Add("mpiAllgather","(",new OneBinaryOperator<Op_Allgather1< long > >);   // Add J. Morice
-      Global.Add("mpiAllgather","(",new OneBinaryOperator<Op_Allgather1< double > >); // Add J. Morice
-
-      Global.Add("mpiAllgather","(",new OneTernaryOperator3<Op_Allgather13< long > >);  // Add J. Morice
-      Global.Add("mpiAllgather","(",new OneTernaryOperator3<Op_Allgather13< double > >);// Add J. Morice
-      
-      Global.Add("mpiScatter","(",new OneTernaryOperator3<Op_Scatter1< long > >);    // Add J. Morice
-      Global.Add("mpiScatter","(",new OneTernaryOperator3<Op_Scatter1< double > >);  // Add J. Morice
-      Global.Add("mpiScatter","(",new OneTernaryOperator3<Op_Scatter3< long > >);
-      Global.Add("mpiScatter","(",new OneTernaryOperator3<Op_Scatter3< double > >);
-
-      Global.Add("mpiGather","(",new OneTernaryOperator3<Op_Gather1< long > >);   // Add J. Morice
-      Global.Add("mpiGather","(",new OneTernaryOperator3<Op_Gather1< double > >); // Add J. Morice
-      Global.Add("mpiGather","(",new OneTernaryOperator3<Op_Gather3< long > >); // correction J. Morice Scatter --> Gather
-      Global.Add("mpiGather","(",new OneTernaryOperator3<Op_Gather3< double > >);
-      
-      // Add J. Morice communication with vector of different size    
-      Global.Add("mpiAlltoallv","(",new OneOperator6_<long, KN_<double>, KN_<double>, KN_<long>, KN_<long>, KN_<long>, KN_<long> >( Op_All2Allv<double> ) );
-      Global.Add("mpiAlltoallv","(",new OneOperator6_<long, KN_<long>, KN_<long>, KN_<long>, KN_<long>, KN_<long>, KN_<long> >( Op_All2Allv<long> ) );
-      
-      Global.Add("mpiAlltoallv","(",new OneOperator7_<long, KN_<long>, KN_<long>, fMPI_Comm, KN_<long>, KN_<long>, KN_<long>, KN_<long> >( Op_All2All3v<long> ) ); 
-      Global.Add("mpiAlltoallv","(",new OneOperator7_<long, KN_<double>, KN_<double>, fMPI_Comm, KN_<long>, KN_<long>, KN_<long>, KN_<long> >( Op_All2All3v<double> ) ); 
-
-      Global.Add("mpiAllgatherv","(",new OneQuadOperator<Op_Allgatherv< long >, Quad_Op<Op_Allgatherv< long > > > );
-      Global.Add("mpiAllgatherv","(",new OneQuadOperator<Op_Allgatherv< double >, Quad_Op<Op_Allgatherv< double > > >);
-      Global.Add("mpiAllgatherv","(",new OneOperator5_<long, KN_<long>, KN_<long>, fMPI_Comm, KN_<long>, KN_<long> >(Op_Allgatherv3< long >) );
-      Global.Add("mpiAllgatherv","(",new OneOperator5_<long, KN_<double>, KN_<double>, fMPI_Comm, KN_<long>, KN_<long> >(Op_Allgatherv3< double >) );
-
-      Global.Add("mpiScatterv","(",new OneOperator5_<long, KN_<long>, KN_<long>, MPIrank, KN_<long>, KN_<long> >(Op_Scatterv3< long >) );
-      Global.Add("mpiScatterv","(",new OneOperator5_<long, KN_<double>, KN_<double>, MPIrank, KN_<long>, KN_<long> >(Op_Scatterv3< double >) );
-
-      Global.Add("mpiGatherv","(",new OneOperator5_<long, KN_<long>, KN_<long>, MPIrank, KN_<long>, KN_<long> >( Op_Gatherv3< long > ) );
-      Global.Add("mpiGatherv","(",new OneOperator5_<long, KN_<double>, KN_<double>, MPIrank, KN_<long>, KN_<long> >( Op_Gatherv3< double > ) );
-      // Fin Add J. Morice
-
-      Global.Add("mpiReduce","(",new OneQuadOperator<Op_Reduce< double >, Quad_Op<Op_Reduce< double > > >);
-      Global.Add("mpiReduce","(",new OneQuadOperator<Op_Reduce1< double >, Quad_Op<Op_Reduce1< double > > >);
-      Global.Add("mpiAllReduce","(",new OneQuadOperator<Op_AllReduce< double >, Quad_Op<Op_AllReduce< double > > >);
-      Global.Add("mpiAllReduce","(",new OneQuadOperator<Op_AllReduce1< double >, Quad_Op<Op_AllReduce1< double > > >); // add FH jan 2011 
-      //    Global.Add("mpiReduceScatter","(",new OneQuadOperator<Op_Reducescatter< double >, Quad_Op<Op_Reducescatter< double > > >);
-
-      // Add J. Morice
-      Global.Add("mpiReduce","(",new OneQuadOperator<Op_Reduce< long >, Quad_Op<Op_Reduce< long > > >);
-      Global.Add("mpiReduce","(",new OneQuadOperator<Op_Reduce1< long >, Quad_Op<Op_Reduce1< long > > >);
-      Global.Add("mpiAllReduce","(",new OneQuadOperator<Op_AllReduce< long >, Quad_Op<Op_AllReduce< long > > >);
-      Global.Add("mpiAllReduce","(",new OneQuadOperator<Op_AllReduce1< long >, Quad_Op<Op_AllReduce1< long > > >); // add FH jan 2011 
-      //    Global.Add("mpiReduceScatter","(",new OneQuadOperator<Op_Reducescatter< long >, Quad_Op<Op_Reducescatter< long > > >);
-      // fin Add J. Morice
-
-      // Add J. Morice :: complex communication between processor 
-      Global.Add("mpiAlltoall","(",new OneBinaryOperator<Op_All2All< Complex > >);
-      Global.Add("mpiAllgather","(",new OneBinaryOperator<Op_Allgather< Complex > >);    
-      Global.Add("mpiAlltoall","(",new OneTernaryOperator3<Op_All2All3< Complex > >);     
-      Global.Add("mpiAllgather","(",new OneTernaryOperator3<Op_Allgather3< Complex > >);
-        
-      Global.Add("mpiAllgather","(",new OneBinaryOperator<Op_Allgather1< Complex > >);
-      Global.Add("mpiAllgather","(",new OneTernaryOperator3<Op_Allgather13< Complex > >);
-
-      Global.Add("mpiScatter","(",new OneTernaryOperator3<Op_Scatter3< Complex > >);
-      Global.Add("mpiGather","(",new OneTernaryOperator3<Op_Gather3< Complex > >);
-
-      Global.Add("mpiScatter","(",new OneTernaryOperator3<Op_Scatter1< Complex > >);
-      Global.Add("mpiGather","(",new OneTernaryOperator3<Op_Gather1< Complex > >);
-      
-      // Add J. Morice communication with vector of different size    
-      Global.Add("mpiAlltoallv","(",new OneOperator6_<long, KN_<Complex>, KN_<Complex>, KN_<long>, KN_<long>, KN_<long>, KN_<long> >( Op_All2Allv<Complex> ) );   
-      Global.Add("mpiAlltoallv","(",new OneOperator7_<long, KN_<Complex>, KN_<Complex>, fMPI_Comm, KN_<long>, KN_<long>, KN_<long>, KN_<long> >( Op_All2All3v<Complex> ) ); 
-      Global.Add("mpiAllgatherv","(",new OneQuadOperator<Op_Allgatherv< Complex>, Quad_Op<Op_Allgatherv< Complex > > >);
-   
-      Global.Add("mpiAllgatherv","(",new OneOperator5_<long, KN_<Complex>, KN_<Complex>, fMPI_Comm, KN_<long>, KN_<long> >(Op_Allgatherv3< Complex >) );
-      Global.Add("mpiScatterv","(",new OneOperator5_<long, KN_<Complex>, KN_<Complex>, MPIrank, KN_<long>, KN_<long> >(Op_Scatterv3< Complex >) );
-      Global.Add("mpiGatherv","(",new OneOperator5_<long, KN_<Complex>, KN_<Complex>, MPIrank, KN_<long>, KN_<long> >( Op_Gatherv3< Complex > ) );
-     
-   
-    
-      Global.Add("mpiReduce","(",new OneQuadOperator<Op_ReduceMat< Complex >, Quad_Op<Op_ReduceMat< Complex > > >);// add FH april 2011
-      Global.Add("mpiReduce","(",new OneQuadOperator<Op_ReduceMat< double >, Quad_Op<Op_ReduceMat< double > > >);// add FH april 2011
-      Global.Add("mpiAllReduce","(",new OneQuadOperator<Op_AllReduceMat< Complex >, Quad_Op<Op_AllReduceMat< Complex > > >);// add FH april 2011
-      Global.Add("mpiAllReduce","(",new OneQuadOperator<Op_AllReduceMat< double >, Quad_Op<Op_AllReduceMat< double > > >);// add FH april 2011
-    
-      Global.Add("mpiReduce","(",new OneQuadOperator<Op_Reduce< Complex >, Quad_Op<Op_Reduce< Complex > > >);
-      Global.Add("mpiReduce","(",new OneQuadOperator<Op_Reduce1< Complex >, Quad_Op<Op_Reduce1< Complex > > >);
-      Global.Add("mpiAllReduce","(",new OneQuadOperator<Op_AllReduce< Complex >, Quad_Op<Op_AllReduce< Complex > > >);
-#ifdef HAVE_MPI_DOUBLE_COMPLEX
-    Global.Add("mpiAllReduce","(",new OneQuadOperator<Op_AllReduce1< Complex >, Quad_Op<Op_AllReduce1< Complex > > >);// add FH jan 2011 
-#endif
-      // Fin Add J. Morice :: complex communication between processor 
-      
-      Global.New("mpirank",CConstant<long>(mpirank));
-      Global.New("mpisize",CConstant<long>(mpisize));
-     static long mpiUndefined=MPI_UNDEFINED, mpiAnySource =  MPI_ANY_SOURCE,mpiAnyTag=MPI_ANY_TAG ;
-     static fMPI_Comm fmpiWorld=MPI_COMM_WORLD;
-     
-     Global.New("mpiUndefined",CConstant<long>(mpiUndefined));
-     Global.New("mpiAnySource",CConstant<long>(mpiAnySource));
-      Global.New("mpiAnyTag",CConstant<long>(mpiAnyTag));
-      
-      
-      
-      Global.New("mpiCommWorld",CConstant<fMPI_Comm*>(&fmpiWorld));   
-      // add FH 
-      
-      
-     Global.Add("mpiWtime","(",new OneOperator0<double>(ffMPI_Wtime));    
-     Global.Add("mpiWtick","(",new OneOperator0<double>(ffMPI_Wtick));    
-     Global.Add("processor","(",new OneOperator3_<MPIrank,long,fMPI_Comm,fMPI_Request*>(mpiwho_));
-     Global.Add("processor","(",new OneOperator2_<MPIrank,long,fMPI_Request*>(mpiwho_));
-     Global.Add("mpiWait","(",new OneOperator1<long,fMPI_Request*>(mpiWait));
-     Global.Add("mpiWaitAny","(",new OneOperator1<long,KN<MPI_Request>*>(mpiWaitAny));
-     Global.Add("mpiSize","(",new OneOperator1<long,fMPI_Comm>(mpiSize)); 
-     Global.Add("mpiRank","(",new OneOperator1<long,fMPI_Comm>(mpiRank)); 
-      Global.Add("mpiBarrier","(",new OneOperator1<long,fMPI_Comm*>(mpiBarrier)); 
-      
-      static   fMPI_Op op_max(MPI_MAX);
-      static   fMPI_Op op_min(MPI_MIN);
-      static   fMPI_Op op_sum(MPI_SUM);
-      static   fMPI_Op op_prod(MPI_PROD);
-      static   fMPI_Op op_land(MPI_LAND);
-      
-      static   fMPI_Op op_lor(MPI_LOR);
-      static   fMPI_Op op_lxor(MPI_LXOR);
-      static   fMPI_Op op_band(MPI_BAND);
-      static   fMPI_Op op_bor(MPI_BOR);
-      static   fMPI_Op op_bxor(MPI_BXOR);
-      static   fMPI_Op op_maxloc(MPI_MAXLOC);
-      static   fMPI_Op op_minloc(MPI_MINLOC);
-      
-      Global.New("mpiMAX",CConstant<fMPI_Op>(op_max));
-      Global.New("mpiMIN",CConstant<fMPI_Op>(op_min));
-      Global.New("mpiSUM",CConstant<fMPI_Op>(op_sum));
-      Global.New("mpiPROD",CConstant<fMPI_Op>(op_prod));
-      Global.New("mpiLAND",CConstant<fMPI_Op>(op_land));
-      
-      Global.New("mpiLOR",CConstant<fMPI_Op>(op_lor));
-      Global.New("mpiLXOR",CConstant<fMPI_Op>(op_lxor));
-      Global.New("mpiBAND",CConstant<fMPI_Op>(op_band));
-      Global.New("mpiBXOR",CConstant<fMPI_Op>(op_bxor));
-      //  sur des pair bof bof ...
-      Global.New("mpiMAXLOC",CConstant<fMPI_Op>(op_maxloc));
-      Global.New("mpiMINLOC",CConstant<fMPI_Op>(op_minloc));
-      
-      
-      TheOperators->Add("<-", 
-			new OneOperator2_<KN<MPI_Request> *,KN<MPI_Request> *,long>(&set_init0)
-			);
-      atype<KN<MPI_Request>* >()->Add("[","",new OneOperator2_<fMPI_Request*,KN<MPI_Request>*,long >(get_elementp_));    
-      
-  }
-<<<<<<< HEAD
-
-=======
-void f_end_parallele()
-{
-  /// FFCS: MPI_Finalize() needs to be called later than this (in
-  /// ffcs/src/server.cpp)
-  ffapi::mpi_finalize();
-    if(mpirank==0 || verbosity>2) cout << "FreeFem++-mpi finalize correctly .\n" << flush ; 
-    else if(verbosity>5)  cout << '.' << endl ;
-}
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-// set the 3 ptr 
-extern void (*initparallele)(int &argc, char **& argv) ;
-extern void (*init_lgparallele)();
-<<<<<<< HEAD
-//extern void (*end_parallele)();
-=======
-extern void (*end_parallele)();
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-
-
-void init_ptr_parallelepmi();
-void init_ptr_parallelepmi(){
-initparallele=&f_initparallele ;
-init_lgparallele=&f_init_lgparallele;
-<<<<<<< HEAD
-//end_parallele=&f_end_parallele;
-=======
-end_parallele=&f_end_parallele;
->>>>>>> d7a136b09f1c01d1cc9bd901543adf3b853cf5cd
-};
diff --git a/src/nw/Makefile.in b/src/nw/Makefile.in
deleted file mode 100644
index 8e59c23..0000000
--- a/src/nw/Makefile.in
+++ /dev/null
@@ -1,1011 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makefile using Automake + Autoconf
-# ----------------------------------
-# $Id$
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = FreeFem++$(EXEEXT) FreeFem++-nw$(EXEEXT) @FFGLUTPROG@
-EXTRA_PROGRAMS = ffglut$(EXEEXT)
-subdir = src/nw
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acmacros.m4 \
-	$(top_srcdir)/acoptim.m4 $(top_srcdir)/ax_lib_hdf5.m4 \
-	$(top_srcdir)/ax_lib_gsl.m4 $(top_srcdir)/acmpi.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_FreeFem___OBJECTS = sansrgraph.$(OBJEXT) \
-	parallelempi-empty.$(OBJEXT) ffapi.$(OBJEXT)
-FreeFem___OBJECTS = $(am_FreeFem___OBJECTS)
-FreeFem___LDADD = $(LDADD)
-am_FreeFem___nw_OBJECTS = sansrgraph.$(OBJEXT) \
-	parallelempi-empty.$(OBJEXT) ffapi.$(OBJEXT)
-FreeFem___nw_OBJECTS = $(am_FreeFem___nw_OBJECTS)
-FreeFem___nw_LDADD = $(LDADD)
-am_ffglut_OBJECTS = ffglut.$(OBJEXT) gggg.$(OBJEXT) \
-	ffthreads.$(OBJEXT) fem.$(OBJEXT) Mesh3dn.$(OBJEXT) \
-	Mesh2dn.$(OBJEXT) Mesh1dn.$(OBJEXT) GQuadTree.$(OBJEXT) \
-	FQuadTree.$(OBJEXT) Drawing.$(OBJEXT) mshptg.$(OBJEXT) \
-	ffapi.$(OBJEXT)
-ffglut_OBJECTS = $(am_ffglut_OBJECTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_ at AM_V@)
-am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(FreeFem___SOURCES) $(FreeFem___nw_SOURCES) \
-	$(ffglut_SOURCES)
-DIST_SOURCES = $(FreeFem___SOURCES) $(FreeFem___nw_SOURCES) \
-	$(ffglut_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ADD_PACKAGE_NAME = @ADD_PACKAGE_NAME@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-ARPACKLIB = @ARPACKLIB@
-ARPACKLIBS = @ARPACKLIBS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BAMGPROG = @BAMGPROG@
-BLASINC = @BLASINC@
-BLASLIBS = @BLASLIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CFLAGSF77 = @CFLAGSF77@
-CNOFLAGS = @CNOFLAGS@
-COMPILE_OPENBLAS = @COMPILE_OPENBLAS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXX11FLAGS = @CXX11FLAGS@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DOCPDF = @DOCPDF@
-DOCPS = @DOCPS@
-DOCPSGZ = @DOCPSGZ@
-DOWNLOADCOMPILE = @DOWNLOADCOMPILE@
-DOWNLOADED_BLAS = @DOWNLOADED_BLAS@
-DOWNLOADED_BLAS_BUILT_SOURCES = @DOWNLOADED_BLAS_BUILT_SOURCES@
-DOWNLOAD_ARPACK = @DOWNLOAD_ARPACK@
-DOWNLOAD_FFTW = @DOWNLOAD_FFTW@
-DOWNLOAD_UMFPACK = @DOWNLOAD_UMFPACK@
-DYLIB_SUFFIX = @DYLIB_SUFFIX@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EIGENOBJ = @EIGENOBJ@
-ENABLE_FFCS = @ENABLE_FFCS@
-EPSTOPDF = @EPSTOPDF@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FC = @FC@
-FCFLAGS = @FCFLAGS@
-FFGLUTNAME = @FFGLUTNAME@
-FFGLUTPROG = @FFGLUTPROG@
-FFLAGS = @FFLAGS@
-FFMETIS_CFLAGS = @FFMETIS_CFLAGS@
-FF_LAPACKdir = @FF_LAPACKdir@
-FF_MALLOC_H = @FF_MALLOC_H@
-FF_SECOND = @FF_SECOND@
-FF_UMFPACK_CONFIG = @FF_UMFPACK_CONFIG@
-FLIBS = @FLIBS@
-FNOFLAGS = @FNOFLAGS@
-G2CLIB = @G2CLIB@
-GCCNOCYGWIN = @GCCNOCYGWIN@
-GREP = @GREP@
-GSL_CFLAGS = @GSL_CFLAGS@
-GSL_CONFIG = @GSL_CONFIG@
-GSL_LIBS = @GSL_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_VERSION = @HDF5_VERSION@
-HISTORY = @HISTORY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNEL_VERSION = @KERNEL_VERSION@
-LAPACKLIBS = @LAPACKLIBS@
-LAPACK_arpack_LIB = @LAPACK_arpack_LIB@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBC_VERSION = @LIBC_VERSION@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSGLUT = @LIBSGLUT@
-LIBSNOCONSOLE = @LIBSNOCONSOLE@
-LIBSPTHREAD = @LIBSPTHREAD@
-LOAD_COMPILE = @LOAD_COMPILE@
-LOAD_TESTS = @LOAD_TESTS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MEDITPROG = @MEDITPROG@
-MKDIR_P = @MKDIR_P@
-MPICC = @MPICC@
-MPICXX = @MPICXX@
-MPIF77 = @MPIF77@
-MPIFC = @MPIFC@
-MPIPROG = @MPIPROG@
-MPIRUN = @MPIRUN@
-MPISCRIPT = @MPISCRIPT@
-MPI_INCLUDE = @MPI_INCLUDE@
-MPI_INC_DIR = @MPI_INC_DIR@
-MPI_LIB = @MPI_LIB@
-MPI_LIBC = @MPI_LIBC@
-MPI_LIBFC = @MPI_LIBFC@
-MPI_LIB_DIRS = @MPI_LIB_DIRS@
-NO_RANGE_CHECK = @NO_RANGE_CHECK@
-OBJEXT = @OBJEXT@
-OPTIM_TYPE = @OPTIM_TYPE@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PASTIX_HOSTARCH = @PASTIX_HOSTARCH@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RANLIN = @RANLIN@
-SCOTCH_INCLUDE = @SCOTCH_INCLUDE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIZEOF_INT = @SIZEOF_INT@
-SIZEOF_LONG = @SIZEOF_LONG@
-SIZEOF_PTR = @SIZEOF_PTR@
-SIZEOF_PTRINBIT = @SIZEOF_PTRINBIT@
-SKIP_TESTS_EIGEN = @SKIP_TESTS_EIGEN@
-SKIP_TESTS_MPI = @SKIP_TESTS_MPI@
-STATICTOOL = @STATICTOOL@
-STDPROG = @STDPROG@
-STD_GRAPH_OBJ = @STD_GRAPH_OBJ@
-STD_LDFLAGS = @STD_LDFLAGS@
-STD_LIBS = @STD_LIBS@
-STRIP = @STRIP@
-TEST_FFPP = @TEST_FFPP@
-TEST_FFPPMPI = @TEST_FFPPMPI@
-TEST_FFPP_MPI = @TEST_FFPP_MPI@
-TOOL_COMPILE_NewSolver = @TOOL_COMPILE_NewSolver@
-TOOL_COMPILE_fflapack = @TOOL_COMPILE_fflapack@
-TOOL_COMPILE_gsl = @TOOL_COMPILE_gsl@
-TOOL_COMPILE_hips = @TOOL_COMPILE_hips@
-TOOL_COMPILE_iohdf5 = @TOOL_COMPILE_iohdf5@
-TOOL_COMPILE_ipopt = @TOOL_COMPILE_ipopt@
-TOOL_COMPILE_lapack = @TOOL_COMPILE_lapack@
-TOOL_COMPILE_metis = @TOOL_COMPILE_metis@
-TOOL_COMPILE_mmg3d = @TOOL_COMPILE_mmg3d@
-TOOL_COMPILE_mshmet = @TOOL_COMPILE_mshmet@
-TOOL_COMPILE_mumps = @TOOL_COMPILE_mumps@
-TOOL_COMPILE_mumps_seq = @TOOL_COMPILE_mumps_seq@
-TOOL_COMPILE_nlopt = @TOOL_COMPILE_nlopt@
-TOOL_COMPILE_pardiso = @TOOL_COMPILE_pardiso@
-TOOL_COMPILE_parmetis = @TOOL_COMPILE_parmetis@
-TOOL_COMPILE_parms = @TOOL_COMPILE_parms@
-TOOL_COMPILE_pastix = @TOOL_COMPILE_pastix@
-TOOL_COMPILE_pipe = @TOOL_COMPILE_pipe@
-TOOL_COMPILE_schwarz = @TOOL_COMPILE_schwarz@
-TOOL_COMPILE_scotch = @TOOL_COMPILE_scotch@
-TOOL_COMPILE_superlu = @TOOL_COMPILE_superlu@
-TOOL_COMPILE_superludist = @TOOL_COMPILE_superludist@
-TOOL_COMPILE_umfpack = @TOOL_COMPILE_umfpack@
-TOOL_COMPILE_yams = @TOOL_COMPILE_yams@
-TOOL_DYLIB_NewSolver = @TOOL_DYLIB_NewSolver@
-TOOL_DYLIB_fflapack = @TOOL_DYLIB_fflapack@
-TOOL_DYLIB_gsl = @TOOL_DYLIB_gsl@
-TOOL_DYLIB_hips = @TOOL_DYLIB_hips@
-TOOL_DYLIB_iohdf5 = @TOOL_DYLIB_iohdf5@
-TOOL_DYLIB_ipopt = @TOOL_DYLIB_ipopt@
-TOOL_DYLIB_lapack = @TOOL_DYLIB_lapack@
-TOOL_DYLIB_metis = @TOOL_DYLIB_metis@
-TOOL_DYLIB_mmg3d = @TOOL_DYLIB_mmg3d@
-TOOL_DYLIB_mshmet = @TOOL_DYLIB_mshmet@
-TOOL_DYLIB_mumps = @TOOL_DYLIB_mumps@
-TOOL_DYLIB_mumps_seq = @TOOL_DYLIB_mumps_seq@
-TOOL_DYLIB_nlopt = @TOOL_DYLIB_nlopt@
-TOOL_DYLIB_pardiso = @TOOL_DYLIB_pardiso@
-TOOL_DYLIB_parmetis = @TOOL_DYLIB_parmetis@
-TOOL_DYLIB_parms = @TOOL_DYLIB_parms@
-TOOL_DYLIB_pastix = @TOOL_DYLIB_pastix@
-TOOL_DYLIB_pipe = @TOOL_DYLIB_pipe@
-TOOL_DYLIB_schwarz = @TOOL_DYLIB_schwarz@
-TOOL_DYLIB_scotch = @TOOL_DYLIB_scotch@
-TOOL_DYLIB_superlu = @TOOL_DYLIB_superlu@
-TOOL_DYLIB_superludist = @TOOL_DYLIB_superludist@
-TOOL_DYLIB_umfpack = @TOOL_DYLIB_umfpack@
-TOOL_DYLIB_yams = @TOOL_DYLIB_yams@
-UMFPACKLIBS = @UMFPACKLIBS@
-VERSION = @VERSION@
-WGET = @WGET@
-WIN32DLLTARGET = @WIN32DLLTARGET@
-WINDRESOBJ = @WINDRESOBJ@
-WITH_CXX11 = @WITH_CXX11@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_FC = @ac_ct_FC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-ff_bison = @ff_bison@
-ff_convert = @ff_convert@
-ff_curl = @ff_curl@
-ff_dvips = @ff_dvips@
-ff_git = @ff_git@
-ff_gzip = @ff_gzip@
-ff_history = @ff_history@
-ff_latex = @ff_latex@
-ff_libtool = @ff_libtool@
-ff_m4 = @ff_m4@
-ff_makeindex = @ff_makeindex@
-ff_patch = @ff_patch@
-ff_pdf2ps = @ff_pdf2ps@
-ff_pdflatex = @ff_pdflatex@
-ff_prefix_dir = @ff_prefix_dir@
-ff_unzip = @ff_unzip@
-ff_wget = @ff_wget@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-
-# To create statically linked executables (see configure.ac)
-CXXLD = $(STATICTOOL) $(CXX)
-
-# FFCS:visualization stream redirection
-ffglut_SOURCES = ../Graphics/ffglut.cpp ../Graphics/gggg.cpp ../Graphics/ffthreads.cpp \
-../Graphics/ffthreads.hpp \
-../femlib/fem.cpp ../femlib/Mesh3dn.cpp ../femlib/Mesh2dn.cpp  ../femlib/Mesh1dn.cpp ../femlib/GQuadTree.cpp  ../femlib/FQuadTree.cpp \
-../femlib/Drawing.cpp ../femlib/mshptg.cpp ../fflib/ffapi.cpp
-
-ffglut_DEPENDENCIES = ../libMesh/libMesh.a
-ffglut_LDADD = ../libMesh/libMesh.a @LIBSGLUT@ @LIBSPTHREAD@ 
-FreeFem___nw_SOURCES = ../Graphics/sansrgraph.cpp ../mpi/parallelempi-empty.cpp ../fflib/ffapi.cpp
-FreeFem___SOURCES = ../Graphics/sansrgraph.cpp  ../mpi/parallelempi-empty.cpp ../fflib/ffapi.cpp
-FreeFem___nw_DEPENDENCIES = ../fflib/libff.a ../lglib/liblg.a
-FreeFem___DEPENDENCIES = ../fflib/libff.a ../lglib/liblg.a
-LDADD = ../lglib/liblg.a ../fflib/libff.a @UMFPACKLIBS@ @ARPACKLIBS@ @BLASLIBS@
-AM_CPPFLAGS = -I$(srcdir)/../fflib -I$(srcdir)/../Graphics -I$(srcdir)/../.. -I$(srcdir)/../femlib 
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/nw/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/nw/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	if test -n "$$list"; then \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-	fi; \
-	for p in $$list; do echo "$$p $$p"; done | \
-	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p \
-	  ; then echo "$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n;h' \
-	    -e 's|.*|.|' \
-	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
-	sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
-	    else { print "f", $$3 "/" $$4, $$1; } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	    test -z "$$files" || { \
-	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	    } \
-	; done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' \
-	`; \
-	test -n "$$list" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-FreeFem++$(EXEEXT): $(FreeFem___OBJECTS) $(FreeFem___DEPENDENCIES) $(EXTRA_FreeFem___DEPENDENCIES) 
-	@rm -f FreeFem++$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(FreeFem___OBJECTS) $(FreeFem___LDADD) $(LIBS)
-
-FreeFem++-nw$(EXEEXT): $(FreeFem___nw_OBJECTS) $(FreeFem___nw_DEPENDENCIES) $(EXTRA_FreeFem___nw_DEPENDENCIES) 
-	@rm -f FreeFem++-nw$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(FreeFem___nw_OBJECTS) $(FreeFem___nw_LDADD) $(LIBS)
-
-ffglut$(EXEEXT): $(ffglut_OBJECTS) $(ffglut_DEPENDENCIES) $(EXTRA_ffglut_DEPENDENCIES) 
-	@rm -f ffglut$(EXEEXT)
-	$(AM_V_CXXLD)$(CXXLINK) $(ffglut_OBJECTS) $(ffglut_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Drawing.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/FQuadTree.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GQuadTree.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Mesh1dn.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Mesh2dn.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Mesh3dn.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fem.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffapi.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffglut.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ffthreads.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gggg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mshptg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/parallelempi-empty.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sansrgraph.Po at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-sansrgraph.o: ../Graphics/sansrgraph.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sansrgraph.o -MD -MP -MF $(DEPDIR)/sansrgraph.Tpo -c -o sansrgraph.o `test -f '../Graphics/sansrgraph.cpp' || echo '$(srcdir)/'`../Graphics/sansrgraph.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/sansrgraph.Tpo $(DEPDIR)/sansrgraph.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/sansrgraph.cpp' object='sansrgraph.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sansrgraph.o `test -f '../Graphics/sansrgraph.cpp' || echo '$(srcdir)/'`../Graphics/sansrgraph.cpp
-
-sansrgraph.obj: ../Graphics/sansrgraph.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sansrgraph.obj -MD -MP -MF $(DEPDIR)/sansrgraph.Tpo -c -o sansrgraph.obj `if test -f '../Graphics/sansrgraph.cpp'; then $(CYGPATH_W) '../Graphics/sansrgraph.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/sansrgraph.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/sansrgraph.Tpo $(DEPDIR)/sansrgraph.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/sansrgraph.cpp' object='sansrgraph.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sansrgraph.obj `if test -f '../Graphics/sansrgraph.cpp'; then $(CYGPATH_W) '../Graphics/sansrgraph.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/sansrgraph.cpp'; fi`
-
-parallelempi-empty.o: ../mpi/parallelempi-empty.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT parallelempi-empty.o -MD -MP -MF $(DEPDIR)/parallelempi-empty.Tpo -c -o parallelempi-empty.o `test -f '../mpi/parallelempi-empty.cpp' || echo '$(srcdir)/'`../mpi/parallelempi-empty.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/parallelempi-empty.Tpo $(DEPDIR)/parallelempi-empty.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../mpi/parallelempi-empty.cpp' object='parallelempi-empty.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o parallelempi-empty.o `test -f '../mpi/parallelempi-empty.cpp' || echo '$(srcdir)/'`../mpi/parallelempi-empty.cpp
-
-parallelempi-empty.obj: ../mpi/parallelempi-empty.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT parallelempi-empty.obj -MD -MP -MF $(DEPDIR)/parallelempi-empty.Tpo -c -o parallelempi-empty.obj `if test -f '../mpi/parallelempi-empty.cpp'; then $(CYGPATH_W) '../mpi/parallelempi-empty.cpp'; else $(CYGPATH_W) '$(srcdir)/../mpi/parallelempi-empty.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/parallelempi-empty.Tpo $(DEPDIR)/parallelempi-empty.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../mpi/parallelempi-empty.cpp' object='parallelempi-empty.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o parallelempi-empty.obj `if test -f '../mpi/parallelempi-empty.cpp'; then $(CYGPATH_W) '../mpi/parallelempi-empty.cpp'; else $(CYGPATH_W) '$(srcdir)/../mpi/parallelempi-empty.cpp'; fi`
-
-ffapi.o: ../fflib/ffapi.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ffapi.o -MD -MP -MF $(DEPDIR)/ffapi.Tpo -c -o ffapi.o `test -f '../fflib/ffapi.cpp' || echo '$(srcdir)/'`../fflib/ffapi.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ffapi.Tpo $(DEPDIR)/ffapi.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../fflib/ffapi.cpp' object='ffapi.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ffapi.o `test -f '../fflib/ffapi.cpp' || echo '$(srcdir)/'`../fflib/ffapi.cpp
-
-ffapi.obj: ../fflib/ffapi.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ffapi.obj -MD -MP -MF $(DEPDIR)/ffapi.Tpo -c -o ffapi.obj `if test -f '../fflib/ffapi.cpp'; then $(CYGPATH_W) '../fflib/ffapi.cpp'; else $(CYGPATH_W) '$(srcdir)/../fflib/ffapi.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ffapi.Tpo $(DEPDIR)/ffapi.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../fflib/ffapi.cpp' object='ffapi.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ffapi.obj `if test -f '../fflib/ffapi.cpp'; then $(CYGPATH_W) '../fflib/ffapi.cpp'; else $(CYGPATH_W) '$(srcdir)/../fflib/ffapi.cpp'; fi`
-
-ffglut.o: ../Graphics/ffglut.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ffglut.o -MD -MP -MF $(DEPDIR)/ffglut.Tpo -c -o ffglut.o `test -f '../Graphics/ffglut.cpp' || echo '$(srcdir)/'`../Graphics/ffglut.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ffglut.Tpo $(DEPDIR)/ffglut.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/ffglut.cpp' object='ffglut.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ffglut.o `test -f '../Graphics/ffglut.cpp' || echo '$(srcdir)/'`../Graphics/ffglut.cpp
-
-ffglut.obj: ../Graphics/ffglut.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ffglut.obj -MD -MP -MF $(DEPDIR)/ffglut.Tpo -c -o ffglut.obj `if test -f '../Graphics/ffglut.cpp'; then $(CYGPATH_W) '../Graphics/ffglut.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/ffglut.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ffglut.Tpo $(DEPDIR)/ffglut.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/ffglut.cpp' object='ffglut.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ffglut.obj `if test -f '../Graphics/ffglut.cpp'; then $(CYGPATH_W) '../Graphics/ffglut.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/ffglut.cpp'; fi`
-
-gggg.o: ../Graphics/gggg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gggg.o -MD -MP -MF $(DEPDIR)/gggg.Tpo -c -o gggg.o `test -f '../Graphics/gggg.cpp' || echo '$(srcdir)/'`../Graphics/gggg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gggg.Tpo $(DEPDIR)/gggg.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/gggg.cpp' object='gggg.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gggg.o `test -f '../Graphics/gggg.cpp' || echo '$(srcdir)/'`../Graphics/gggg.cpp
-
-gggg.obj: ../Graphics/gggg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gggg.obj -MD -MP -MF $(DEPDIR)/gggg.Tpo -c -o gggg.obj `if test -f '../Graphics/gggg.cpp'; then $(CYGPATH_W) '../Graphics/gggg.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/gggg.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gggg.Tpo $(DEPDIR)/gggg.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/gggg.cpp' object='gggg.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gggg.obj `if test -f '../Graphics/gggg.cpp'; then $(CYGPATH_W) '../Graphics/gggg.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/gggg.cpp'; fi`
-
-ffthreads.o: ../Graphics/ffthreads.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ffthreads.o -MD -MP -MF $(DEPDIR)/ffthreads.Tpo -c -o ffthreads.o `test -f '../Graphics/ffthreads.cpp' || echo '$(srcdir)/'`../Graphics/ffthreads.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ffthreads.Tpo $(DEPDIR)/ffthreads.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/ffthreads.cpp' object='ffthreads.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ffthreads.o `test -f '../Graphics/ffthreads.cpp' || echo '$(srcdir)/'`../Graphics/ffthreads.cpp
-
-ffthreads.obj: ../Graphics/ffthreads.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ffthreads.obj -MD -MP -MF $(DEPDIR)/ffthreads.Tpo -c -o ffthreads.obj `if test -f '../Graphics/ffthreads.cpp'; then $(CYGPATH_W) '../Graphics/ffthreads.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/ffthreads.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ffthreads.Tpo $(DEPDIR)/ffthreads.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../Graphics/ffthreads.cpp' object='ffthreads.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ffthreads.obj `if test -f '../Graphics/ffthreads.cpp'; then $(CYGPATH_W) '../Graphics/ffthreads.cpp'; else $(CYGPATH_W) '$(srcdir)/../Graphics/ffthreads.cpp'; fi`
-
-fem.o: ../femlib/fem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fem.o -MD -MP -MF $(DEPDIR)/fem.Tpo -c -o fem.o `test -f '../femlib/fem.cpp' || echo '$(srcdir)/'`../femlib/fem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fem.Tpo $(DEPDIR)/fem.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/fem.cpp' object='fem.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fem.o `test -f '../femlib/fem.cpp' || echo '$(srcdir)/'`../femlib/fem.cpp
-
-fem.obj: ../femlib/fem.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT fem.obj -MD -MP -MF $(DEPDIR)/fem.Tpo -c -o fem.obj `if test -f '../femlib/fem.cpp'; then $(CYGPATH_W) '../femlib/fem.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/fem.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fem.Tpo $(DEPDIR)/fem.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/fem.cpp' object='fem.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o fem.obj `if test -f '../femlib/fem.cpp'; then $(CYGPATH_W) '../femlib/fem.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/fem.cpp'; fi`
-
-Mesh3dn.o: ../femlib/Mesh3dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh3dn.o -MD -MP -MF $(DEPDIR)/Mesh3dn.Tpo -c -o Mesh3dn.o `test -f '../femlib/Mesh3dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh3dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh3dn.Tpo $(DEPDIR)/Mesh3dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh3dn.cpp' object='Mesh3dn.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh3dn.o `test -f '../femlib/Mesh3dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh3dn.cpp
-
-Mesh3dn.obj: ../femlib/Mesh3dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh3dn.obj -MD -MP -MF $(DEPDIR)/Mesh3dn.Tpo -c -o Mesh3dn.obj `if test -f '../femlib/Mesh3dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh3dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh3dn.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh3dn.Tpo $(DEPDIR)/Mesh3dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh3dn.cpp' object='Mesh3dn.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh3dn.obj `if test -f '../femlib/Mesh3dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh3dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh3dn.cpp'; fi`
-
-Mesh2dn.o: ../femlib/Mesh2dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh2dn.o -MD -MP -MF $(DEPDIR)/Mesh2dn.Tpo -c -o Mesh2dn.o `test -f '../femlib/Mesh2dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh2dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh2dn.Tpo $(DEPDIR)/Mesh2dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh2dn.cpp' object='Mesh2dn.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh2dn.o `test -f '../femlib/Mesh2dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh2dn.cpp
-
-Mesh2dn.obj: ../femlib/Mesh2dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh2dn.obj -MD -MP -MF $(DEPDIR)/Mesh2dn.Tpo -c -o Mesh2dn.obj `if test -f '../femlib/Mesh2dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh2dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh2dn.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh2dn.Tpo $(DEPDIR)/Mesh2dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh2dn.cpp' object='Mesh2dn.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh2dn.obj `if test -f '../femlib/Mesh2dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh2dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh2dn.cpp'; fi`
-
-Mesh1dn.o: ../femlib/Mesh1dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh1dn.o -MD -MP -MF $(DEPDIR)/Mesh1dn.Tpo -c -o Mesh1dn.o `test -f '../femlib/Mesh1dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh1dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh1dn.Tpo $(DEPDIR)/Mesh1dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh1dn.cpp' object='Mesh1dn.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh1dn.o `test -f '../femlib/Mesh1dn.cpp' || echo '$(srcdir)/'`../femlib/Mesh1dn.cpp
-
-Mesh1dn.obj: ../femlib/Mesh1dn.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mesh1dn.obj -MD -MP -MF $(DEPDIR)/Mesh1dn.Tpo -c -o Mesh1dn.obj `if test -f '../femlib/Mesh1dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh1dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh1dn.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Mesh1dn.Tpo $(DEPDIR)/Mesh1dn.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Mesh1dn.cpp' object='Mesh1dn.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mesh1dn.obj `if test -f '../femlib/Mesh1dn.cpp'; then $(CYGPATH_W) '../femlib/Mesh1dn.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Mesh1dn.cpp'; fi`
-
-GQuadTree.o: ../femlib/GQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GQuadTree.o -MD -MP -MF $(DEPDIR)/GQuadTree.Tpo -c -o GQuadTree.o `test -f '../femlib/GQuadTree.cpp' || echo '$(srcdir)/'`../femlib/GQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/GQuadTree.Tpo $(DEPDIR)/GQuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/GQuadTree.cpp' object='GQuadTree.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GQuadTree.o `test -f '../femlib/GQuadTree.cpp' || echo '$(srcdir)/'`../femlib/GQuadTree.cpp
-
-GQuadTree.obj: ../femlib/GQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GQuadTree.obj -MD -MP -MF $(DEPDIR)/GQuadTree.Tpo -c -o GQuadTree.obj `if test -f '../femlib/GQuadTree.cpp'; then $(CYGPATH_W) '../femlib/GQuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/GQuadTree.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/GQuadTree.Tpo $(DEPDIR)/GQuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/GQuadTree.cpp' object='GQuadTree.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GQuadTree.obj `if test -f '../femlib/GQuadTree.cpp'; then $(CYGPATH_W) '../femlib/GQuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/GQuadTree.cpp'; fi`
-
-FQuadTree.o: ../femlib/FQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FQuadTree.o -MD -MP -MF $(DEPDIR)/FQuadTree.Tpo -c -o FQuadTree.o `test -f '../femlib/FQuadTree.cpp' || echo '$(srcdir)/'`../femlib/FQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/FQuadTree.Tpo $(DEPDIR)/FQuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/FQuadTree.cpp' object='FQuadTree.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FQuadTree.o `test -f '../femlib/FQuadTree.cpp' || echo '$(srcdir)/'`../femlib/FQuadTree.cpp
-
-FQuadTree.obj: ../femlib/FQuadTree.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FQuadTree.obj -MD -MP -MF $(DEPDIR)/FQuadTree.Tpo -c -o FQuadTree.obj `if test -f '../femlib/FQuadTree.cpp'; then $(CYGPATH_W) '../femlib/FQuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/FQuadTree.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/FQuadTree.Tpo $(DEPDIR)/FQuadTree.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/FQuadTree.cpp' object='FQuadTree.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FQuadTree.obj `if test -f '../femlib/FQuadTree.cpp'; then $(CYGPATH_W) '../femlib/FQuadTree.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/FQuadTree.cpp'; fi`
-
-Drawing.o: ../femlib/Drawing.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Drawing.o -MD -MP -MF $(DEPDIR)/Drawing.Tpo -c -o Drawing.o `test -f '../femlib/Drawing.cpp' || echo '$(srcdir)/'`../femlib/Drawing.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Drawing.Tpo $(DEPDIR)/Drawing.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Drawing.cpp' object='Drawing.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Drawing.o `test -f '../femlib/Drawing.cpp' || echo '$(srcdir)/'`../femlib/Drawing.cpp
-
-Drawing.obj: ../femlib/Drawing.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Drawing.obj -MD -MP -MF $(DEPDIR)/Drawing.Tpo -c -o Drawing.obj `if test -f '../femlib/Drawing.cpp'; then $(CYGPATH_W) '../femlib/Drawing.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Drawing.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/Drawing.Tpo $(DEPDIR)/Drawing.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/Drawing.cpp' object='Drawing.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Drawing.obj `if test -f '../femlib/Drawing.cpp'; then $(CYGPATH_W) '../femlib/Drawing.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/Drawing.cpp'; fi`
-
-mshptg.o: ../femlib/mshptg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mshptg.o -MD -MP -MF $(DEPDIR)/mshptg.Tpo -c -o mshptg.o `test -f '../femlib/mshptg.cpp' || echo '$(srcdir)/'`../femlib/mshptg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mshptg.Tpo $(DEPDIR)/mshptg.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/mshptg.cpp' object='mshptg.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mshptg.o `test -f '../femlib/mshptg.cpp' || echo '$(srcdir)/'`../femlib/mshptg.cpp
-
-mshptg.obj: ../femlib/mshptg.cpp
- at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mshptg.obj -MD -MP -MF $(DEPDIR)/mshptg.Tpo -c -o mshptg.obj `if test -f '../femlib/mshptg.cpp'; then $(CYGPATH_W) '../femlib/mshptg.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/mshptg.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mshptg.Tpo $(DEPDIR)/mshptg.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='../femlib/mshptg.cpp' object='mshptg.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mshptg.obj `if test -f '../femlib/mshptg.cpp'; then $(CYGPATH_W) '../femlib/mshptg.cpp'; else $(CYGPATH_W) '$(srcdir)/../femlib/mshptg.cpp'; fi`
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
-	clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
-	distclean distclean-compile distclean-generic distclean-tags \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-binPROGRAMS install-data install-data-am \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
-	ps ps-am tags tags-am uninstall uninstall-am \
-	uninstall-binPROGRAMS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/freefempp.git



More information about the debian-science-commits mailing list