summaryrefslogtreecommitdiffhomepage
path: root/eigen/bench/btl/actions
diff options
context:
space:
mode:
Diffstat (limited to 'eigen/bench/btl/actions')
-rw-r--r--eigen/bench/btl/actions/action_aat_product.hh145
-rw-r--r--eigen/bench/btl/actions/action_ata_product.hh145
-rw-r--r--eigen/bench/btl/actions/action_atv_product.hh134
-rw-r--r--eigen/bench/btl/actions/action_axpby.hh127
-rw-r--r--eigen/bench/btl/actions/action_axpy.hh139
-rw-r--r--eigen/bench/btl/actions/action_cholesky.hh128
-rw-r--r--eigen/bench/btl/actions/action_ger.hh128
-rw-r--r--eigen/bench/btl/actions/action_hessenberg.hh233
-rw-r--r--eigen/bench/btl/actions/action_lu_decomp.hh124
-rw-r--r--eigen/bench/btl/actions/action_lu_solve.hh136
-rw-r--r--eigen/bench/btl/actions/action_matrix_matrix_product.hh150
-rw-r--r--eigen/bench/btl/actions/action_matrix_matrix_product_bis.hh152
-rw-r--r--eigen/bench/btl/actions/action_matrix_vector_product.hh153
-rw-r--r--eigen/bench/btl/actions/action_partial_lu.hh125
-rw-r--r--eigen/bench/btl/actions/action_rot.hh116
-rw-r--r--eigen/bench/btl/actions/action_symv.hh139
-rw-r--r--eigen/bench/btl/actions/action_syr2.hh133
-rw-r--r--eigen/bench/btl/actions/action_trisolve.hh137
-rw-r--r--eigen/bench/btl/actions/action_trisolve_matrix.hh165
-rw-r--r--eigen/bench/btl/actions/action_trmm.hh165
-rw-r--r--eigen/bench/btl/actions/basic_actions.hh21
21 files changed, 0 insertions, 2895 deletions
diff --git a/eigen/bench/btl/actions/action_aat_product.hh b/eigen/bench/btl/actions/action_aat_product.hh
deleted file mode 100644
index aa5b35c..0000000
--- a/eigen/bench/btl/actions/action_aat_product.hh
+++ /dev/null
@@ -1,145 +0,0 @@
-//=====================================================
-// File : action_aat_product.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_AAT_PRODUCT
-#define ACTION_AAT_PRODUCT
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_aat_product {
-
-public :
-
- // Ctor
-
- Action_aat_product( int size ):_size(size)
- {
- MESSAGE("Action_aat_product Ctor");
-
- // STL matrix and vector initialization
-
- init_matrix<pseudo_random>(A_stl,_size);
- init_matrix<null_function>(X_stl,_size);
- init_matrix<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
-
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(X_ref,X_stl);
-
- Interface::matrix_from_stl(A,A_stl);
- Interface::matrix_from_stl(X,X_stl);
-
- }
-
- // invalidate copy ctor
-
- Action_aat_product( const Action_aat_product & )
- {
- INFOS("illegal call to Action_aat_product Copy Ctor");
- exit(0);
- }
-
- // Dtor
-
- ~Action_aat_product( void ){
-
- MESSAGE("Action_aat_product Dtor");
-
- // deallocation
-
- Interface::free_matrix(A,_size);
- Interface::free_matrix(X,_size);
-
- Interface::free_matrix(A_ref,_size);
- Interface::free_matrix(X_ref,_size);
-
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "aat_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return double(_size)*double(_size)*double(_size);
- }
-
- inline void initialize( void ){
-
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_matrix(X_ref,X,_size);
-
- }
-
- inline void calculate( void ) {
-
- Interface::aat_product(A,X,_size);
-
- }
-
- void check_result( void ){
- if (_size>128) return;
- // calculation check
-
- Interface::matrix_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::aat_product(A_stl,X_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-6){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(1);
- }
-
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_matrix X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_matrix X;
-
-
- int _size;
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/action_ata_product.hh b/eigen/bench/btl/actions/action_ata_product.hh
deleted file mode 100644
index 04364fe..0000000
--- a/eigen/bench/btl/actions/action_ata_product.hh
+++ /dev/null
@@ -1,145 +0,0 @@
-//=====================================================
-// File : action_ata_product.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_ATA_PRODUCT
-#define ACTION_ATA_PRODUCT
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_ata_product {
-
-public :
-
- // Ctor
-
- Action_ata_product( int size ):_size(size)
- {
- MESSAGE("Action_ata_product Ctor");
-
- // STL matrix and vector initialization
-
- init_matrix<pseudo_random>(A_stl,_size);
- init_matrix<null_function>(X_stl,_size);
- init_matrix<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
-
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(X_ref,X_stl);
-
- Interface::matrix_from_stl(A,A_stl);
- Interface::matrix_from_stl(X,X_stl);
-
- }
-
- // invalidate copy ctor
-
- Action_ata_product( const Action_ata_product & )
- {
- INFOS("illegal call to Action_ata_product Copy Ctor");
- exit(0);
- }
-
- // Dtor
-
- ~Action_ata_product( void ){
-
- MESSAGE("Action_ata_product Dtor");
-
- // deallocation
-
- Interface::free_matrix(A,_size);
- Interface::free_matrix(X,_size);
-
- Interface::free_matrix(A_ref,_size);
- Interface::free_matrix(X_ref,_size);
-
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "ata_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return 2.0*_size*_size*_size;
- }
-
- inline void initialize( void ){
-
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_matrix(X_ref,X,_size);
-
- }
-
- inline void calculate( void ) {
-
- Interface::ata_product(A,X,_size);
-
- }
-
- void check_result( void ){
- if (_size>128) return;
- // calculation check
-
- Interface::matrix_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::ata_product(A_stl,X_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-6){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(1);
- }
-
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_matrix X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_matrix X;
-
-
- int _size;
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/action_atv_product.hh b/eigen/bench/btl/actions/action_atv_product.hh
deleted file mode 100644
index a823451..0000000
--- a/eigen/bench/btl/actions/action_atv_product.hh
+++ /dev/null
@@ -1,134 +0,0 @@
-//=====================================================
-// File : action_atv_product.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_ATV_PRODUCT
-#define ACTION_ATV_PRODUCT
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_atv_product {
-
-public :
-
- Action_atv_product( int size ) : _size(size)
- {
- MESSAGE("Action_atv_product Ctor");
-
- // STL matrix and vector initialization
-
- init_matrix<pseudo_random>(A_stl,_size);
- init_vector<pseudo_random>(B_stl,_size);
- init_vector<null_function>(X_stl,_size);
- init_vector<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
-
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::vector_from_stl(B_ref,B_stl);
- Interface::vector_from_stl(X_ref,X_stl);
-
- Interface::matrix_from_stl(A,A_stl);
- Interface::vector_from_stl(B,B_stl);
- Interface::vector_from_stl(X,X_stl);
- }
-
- // invalidate copy ctor
- Action_atv_product( const Action_atv_product & )
- {
- INFOS("illegal call to Action_atv_product Copy Ctor");
- exit(1);
- }
-
- ~Action_atv_product( void )
- {
- MESSAGE("Action_atv_product Dtor");
-
- Interface::free_matrix(A,_size);
- Interface::free_vector(B);
- Interface::free_vector(X);
-
- Interface::free_matrix(A_ref,_size);
- Interface::free_vector(B_ref);
- Interface::free_vector(X_ref);
- }
-
- static inline std::string name() { return "atv_" + Interface::name(); }
-
- double nb_op_base( void ) { return 2.0*_size*_size; }
-
- inline void initialize( void ){
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_vector(B_ref,B,_size);
- Interface::copy_vector(X_ref,X,_size);
- }
-
- BTL_DONT_INLINE void calculate( void ) {
- BTL_ASM_COMMENT("begin atv");
- Interface::atv_product(A,B,X,_size);
- BTL_ASM_COMMENT("end atv");
- }
-
- void check_result( void )
- {
- if (_size>128) return;
- Interface::vector_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::atv_product(A_stl,B_stl,X_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-6){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(1);
- }
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_vector B_stl;
- typename Interface::stl_vector X_stl;
- typename Interface::stl_vector resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_vector B_ref;
- typename Interface::gene_vector X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_vector B;
- typename Interface::gene_vector X;
-
-
- int _size;
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/action_axpby.hh b/eigen/bench/btl/actions/action_axpby.hh
deleted file mode 100644
index dadd0cc..0000000
--- a/eigen/bench/btl/actions/action_axpby.hh
+++ /dev/null
@@ -1,127 +0,0 @@
-//=====================================================
-// File : action_axpby.hh
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_AXPBY
-#define ACTION_AXPBY
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_axpby {
-
-public :
-
- // Ctor
- Action_axpby( int size ):_alpha(0.5),_beta(0.95),_size(size)
- {
- MESSAGE("Action_axpby Ctor");
-
- // STL vector initialization
- init_vector<pseudo_random>(X_stl,_size);
- init_vector<pseudo_random>(Y_stl,_size);
- init_vector<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
- Interface::vector_from_stl(X_ref,X_stl);
- Interface::vector_from_stl(Y_ref,Y_stl);
-
- Interface::vector_from_stl(X,X_stl);
- Interface::vector_from_stl(Y,Y_stl);
- }
-
- // invalidate copy ctor
- Action_axpby( const Action_axpby & )
- {
- INFOS("illegal call to Action_axpby Copy Ctor");
- exit(1);
- }
-
- // Dtor
- ~Action_axpby( void ){
- MESSAGE("Action_axpby Dtor");
-
- // deallocation
- Interface::free_vector(X_ref);
- Interface::free_vector(Y_ref);
-
- Interface::free_vector(X);
- Interface::free_vector(Y);
- }
-
- // action name
- static inline std::string name( void )
- {
- return "axpby_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return 3.0*_size;
- }
-
- inline void initialize( void ){
- Interface::copy_vector(X_ref,X,_size);
- Interface::copy_vector(Y_ref,Y,_size);
- }
-
- inline void calculate( void ) {
- BTL_ASM_COMMENT("mybegin axpby");
- Interface::axpby(_alpha,X,_beta,Y,_size);
- BTL_ASM_COMMENT("myend axpby");
- }
-
- void check_result( void ){
- if (_size>128) return;
- // calculation check
- Interface::vector_to_stl(Y,resu_stl);
-
- STL_interface<typename Interface::real_type>::axpby(_alpha,X_stl,_beta,Y_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(Y_stl,resu_stl);
-
- if (error>1.e-6){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(2);
- }
- }
-
-private :
-
- typename Interface::stl_vector X_stl;
- typename Interface::stl_vector Y_stl;
- typename Interface::stl_vector resu_stl;
-
- typename Interface::gene_vector X_ref;
- typename Interface::gene_vector Y_ref;
-
- typename Interface::gene_vector X;
- typename Interface::gene_vector Y;
-
- typename Interface::real_type _alpha;
- typename Interface::real_type _beta;
-
- int _size;
-};
-
-#endif
diff --git a/eigen/bench/btl/actions/action_axpy.hh b/eigen/bench/btl/actions/action_axpy.hh
deleted file mode 100644
index 261be4c..0000000
--- a/eigen/bench/btl/actions/action_axpy.hh
+++ /dev/null
@@ -1,139 +0,0 @@
-//=====================================================
-// File : action_axpy.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_AXPY
-#define ACTION_AXPY
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_axpy {
-
-public :
-
- // Ctor
-
- Action_axpy( int size ):_coef(1.0),_size(size)
- {
- MESSAGE("Action_axpy Ctor");
-
- // STL vector initialization
-
- init_vector<pseudo_random>(X_stl,_size);
- init_vector<pseudo_random>(Y_stl,_size);
- init_vector<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
-
- Interface::vector_from_stl(X_ref,X_stl);
- Interface::vector_from_stl(Y_ref,Y_stl);
-
- Interface::vector_from_stl(X,X_stl);
- Interface::vector_from_stl(Y,Y_stl);
-
-
- }
-
- // invalidate copy ctor
-
- Action_axpy( const Action_axpy & )
- {
- INFOS("illegal call to Action_axpy Copy Ctor");
- exit(1);
- }
-
- // Dtor
-
- ~Action_axpy( void ){
-
- MESSAGE("Action_axpy Dtor");
-
- // deallocation
-
- Interface::free_vector(X_ref);
- Interface::free_vector(Y_ref);
-
- Interface::free_vector(X);
- Interface::free_vector(Y);
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "axpy_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return 2.0*_size;
- }
-
- inline void initialize( void ){
- Interface::copy_vector(X_ref,X,_size);
- Interface::copy_vector(Y_ref,Y,_size);
- }
-
- inline void calculate( void ) {
- BTL_ASM_COMMENT("mybegin axpy");
- Interface::axpy(_coef,X,Y,_size);
- BTL_ASM_COMMENT("myend axpy");
- }
-
- void check_result( void ){
- if (_size>128) return;
- // calculation check
-
- Interface::vector_to_stl(Y,resu_stl);
-
- STL_interface<typename Interface::real_type>::axpy(_coef,X_stl,Y_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(Y_stl,resu_stl);
-
- if (error>1.e-6){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(0);
- }
-
- }
-
-private :
-
- typename Interface::stl_vector X_stl;
- typename Interface::stl_vector Y_stl;
- typename Interface::stl_vector resu_stl;
-
- typename Interface::gene_vector X_ref;
- typename Interface::gene_vector Y_ref;
-
- typename Interface::gene_vector X;
- typename Interface::gene_vector Y;
-
- typename Interface::real_type _coef;
-
- int _size;
-};
-
-#endif
diff --git a/eigen/bench/btl/actions/action_cholesky.hh b/eigen/bench/btl/actions/action_cholesky.hh
deleted file mode 100644
index 5f66d11..0000000
--- a/eigen/bench/btl/actions/action_cholesky.hh
+++ /dev/null
@@ -1,128 +0,0 @@
-//=====================================================
-// File : action_cholesky.hh
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_CHOLESKY
-#define ACTION_CHOLESKY
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_cholesky {
-
-public :
-
- // Ctor
-
- Action_cholesky( int size ):_size(size)
- {
- MESSAGE("Action_cholesky Ctor");
-
- // STL mat/vec initialization
- init_matrix_symm<pseudo_random>(X_stl,_size);
- init_matrix<null_function>(C_stl,_size);
-
- // make sure X is invertible
- for (int i=0; i<_size; ++i)
- X_stl[i][i] = std::abs(X_stl[i][i]) * 1e2 + 100;
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(X_ref,X_stl);
- Interface::matrix_from_stl(X,X_stl);
- Interface::matrix_from_stl(C,C_stl);
-
- _cost = 0;
- for (int j=0; j<_size; ++j)
- {
- double r = std::max(_size - j -1,0);
- _cost += 2*(r*j+r+j);
- }
- }
-
- // invalidate copy ctor
-
- Action_cholesky( const Action_cholesky & )
- {
- INFOS("illegal call to Action_cholesky Copy Ctor");
- exit(1);
- }
-
- // Dtor
-
- ~Action_cholesky( void ){
-
- MESSAGE("Action_cholesky Dtor");
-
- // deallocation
- Interface::free_matrix(X_ref,_size);
- Interface::free_matrix(X,_size);
- Interface::free_matrix(C,_size);
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "cholesky_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return _cost;
- }
-
- inline void initialize( void ){
- Interface::copy_matrix(X_ref,X,_size);
- }
-
- inline void calculate( void ) {
- Interface::cholesky(X,C,_size);
- }
-
- void check_result( void ){
- // calculation check
-// STL_interface<typename Interface::real_type>::cholesky(X_stl,C_stl,_size);
-//
-// typename Interface::real_type error=
-// STL_interface<typename Interface::real_type>::norm_diff(C_stl,resu_stl);
-//
-// if (error>1.e-6){
-// INFOS("WRONG CALCULATION...residual=" << error);
-// exit(0);
-// }
-
- }
-
-private :
-
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix C_stl;
-
- typename Interface::gene_matrix X_ref;
- typename Interface::gene_matrix X;
- typename Interface::gene_matrix C;
-
- int _size;
- double _cost;
-};
-
-#endif
diff --git a/eigen/bench/btl/actions/action_ger.hh b/eigen/bench/btl/actions/action_ger.hh
deleted file mode 100644
index dc766ef..0000000
--- a/eigen/bench/btl/actions/action_ger.hh
+++ /dev/null
@@ -1,128 +0,0 @@
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_GER
-#define ACTION_GER
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_ger {
-
-public :
-
- // Ctor
- BTL_DONT_INLINE Action_ger( int size ):_size(size)
- {
- MESSAGE("Action_ger Ctor");
-
- // STL matrix and vector initialization
- typename Interface::stl_matrix tmp;
- init_matrix<pseudo_random>(A_stl,_size);
- init_vector<pseudo_random>(B_stl,_size);
- init_vector<pseudo_random>(X_stl,_size);
- init_vector<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(A,A_stl);
- Interface::vector_from_stl(B_ref,B_stl);
- Interface::vector_from_stl(B,B_stl);
- Interface::vector_from_stl(X_ref,X_stl);
- Interface::vector_from_stl(X,X_stl);
- }
-
- // invalidate copy ctor
- Action_ger( const Action_ger & )
- {
- INFOS("illegal call to Action_ger Copy Ctor");
- exit(1);
- }
-
- // Dtor
- BTL_DONT_INLINE ~Action_ger( void ){
- MESSAGE("Action_ger Dtor");
- Interface::free_matrix(A,_size);
- Interface::free_vector(B);
- Interface::free_vector(X);
- Interface::free_matrix(A_ref,_size);
- Interface::free_vector(B_ref);
- Interface::free_vector(X_ref);
-
- }
-
- // action name
- static inline std::string name( void )
- {
- return "ger_" + Interface::name();
- }
-
- double nb_op_base( void ){
- return 2.0*_size*_size;
- }
-
- BTL_DONT_INLINE void initialize( void ){
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_vector(B_ref,B,_size);
- Interface::copy_vector(X_ref,X,_size);
- }
-
- BTL_DONT_INLINE void calculate( void ) {
- BTL_ASM_COMMENT("#begin ger");
- Interface::ger(A,B,X,_size);
- BTL_ASM_COMMENT("end ger");
- }
-
- BTL_DONT_INLINE void check_result( void ){
- // calculation check
- Interface::vector_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::ger(A_stl,B_stl,X_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-3){
- INFOS("WRONG CALCULATION...residual=" << error);
-// exit(0);
- }
-
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_vector B_stl;
- typename Interface::stl_vector X_stl;
- typename Interface::stl_vector resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_vector B_ref;
- typename Interface::gene_vector X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_vector B;
- typename Interface::gene_vector X;
-
- int _size;
-};
-
-
-#endif
diff --git a/eigen/bench/btl/actions/action_hessenberg.hh b/eigen/bench/btl/actions/action_hessenberg.hh
deleted file mode 100644
index 2100ebd..0000000
--- a/eigen/bench/btl/actions/action_hessenberg.hh
+++ /dev/null
@@ -1,233 +0,0 @@
-//=====================================================
-// File : action_hessenberg.hh
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_HESSENBERG
-#define ACTION_HESSENBERG
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_hessenberg {
-
-public :
-
- // Ctor
-
- Action_hessenberg( int size ):_size(size)
- {
- MESSAGE("Action_hessenberg Ctor");
-
- // STL vector initialization
- init_matrix<pseudo_random>(X_stl,_size);
-
- init_matrix<null_function>(C_stl,_size);
- init_matrix<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(X_ref,X_stl);
- Interface::matrix_from_stl(X,X_stl);
- Interface::matrix_from_stl(C,C_stl);
-
- _cost = 0;
- for (int j=0; j<_size-2; ++j)
- {
- double r = std::max(0,_size-j-1);
- double b = std::max(0,_size-j-2);
- _cost += 6 + 3*b + r*r*4 + r*_size*4;
- }
- }
-
- // invalidate copy ctor
-
- Action_hessenberg( const Action_hessenberg & )
- {
- INFOS("illegal call to Action_hessenberg Copy Ctor");
- exit(1);
- }
-
- // Dtor
-
- ~Action_hessenberg( void ){
-
- MESSAGE("Action_hessenberg Dtor");
-
- // deallocation
- Interface::free_matrix(X_ref,_size);
- Interface::free_matrix(X,_size);
- Interface::free_matrix(C,_size);
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "hessenberg_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return _cost;
- }
-
- inline void initialize( void ){
- Interface::copy_matrix(X_ref,X,_size);
- }
-
- inline void calculate( void ) {
- Interface::hessenberg(X,C,_size);
- }
-
- void check_result( void ){
- // calculation check
- Interface::matrix_to_stl(C,resu_stl);
-
-// STL_interface<typename Interface::real_type>::hessenberg(X_stl,C_stl,_size);
-//
-// typename Interface::real_type error=
-// STL_interface<typename Interface::real_type>::norm_diff(C_stl,resu_stl);
-//
-// if (error>1.e-6){
-// INFOS("WRONG CALCULATION...residual=" << error);
-// exit(0);
-// }
-
- }
-
-private :
-
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix C_stl;
- typename Interface::stl_matrix resu_stl;
-
- typename Interface::gene_matrix X_ref;
- typename Interface::gene_matrix X;
- typename Interface::gene_matrix C;
-
- int _size;
- double _cost;
-};
-
-template<class Interface>
-class Action_tridiagonalization {
-
-public :
-
- // Ctor
-
- Action_tridiagonalization( int size ):_size(size)
- {
- MESSAGE("Action_tridiagonalization Ctor");
-
- // STL vector initialization
- init_matrix<pseudo_random>(X_stl,_size);
-
- for(int i=0; i<_size; ++i)
- {
- for(int j=0; j<i; ++j)
- X_stl[i][j] = X_stl[j][i];
- }
-
- init_matrix<null_function>(C_stl,_size);
- init_matrix<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(X_ref,X_stl);
- Interface::matrix_from_stl(X,X_stl);
- Interface::matrix_from_stl(C,C_stl);
-
- _cost = 0;
- for (int j=0; j<_size-2; ++j)
- {
- double r = std::max(0,_size-j-1);
- double b = std::max(0,_size-j-2);
- _cost += 6. + 3.*b + r*r*8.;
- }
- }
-
- // invalidate copy ctor
-
- Action_tridiagonalization( const Action_tridiagonalization & )
- {
- INFOS("illegal call to Action_tridiagonalization Copy Ctor");
- exit(1);
- }
-
- // Dtor
-
- ~Action_tridiagonalization( void ){
-
- MESSAGE("Action_tridiagonalization Dtor");
-
- // deallocation
- Interface::free_matrix(X_ref,_size);
- Interface::free_matrix(X,_size);
- Interface::free_matrix(C,_size);
- }
-
- // action name
-
- static inline std::string name( void ) { return "tridiagonalization_"+Interface::name(); }
-
- double nb_op_base( void ){
- return _cost;
- }
-
- inline void initialize( void ){
- Interface::copy_matrix(X_ref,X,_size);
- }
-
- inline void calculate( void ) {
- Interface::tridiagonalization(X,C,_size);
- }
-
- void check_result( void ){
- // calculation check
- Interface::matrix_to_stl(C,resu_stl);
-
-// STL_interface<typename Interface::real_type>::tridiagonalization(X_stl,C_stl,_size);
-//
-// typename Interface::real_type error=
-// STL_interface<typename Interface::real_type>::norm_diff(C_stl,resu_stl);
-//
-// if (error>1.e-6){
-// INFOS("WRONG CALCULATION...residual=" << error);
-// exit(0);
-// }
-
- }
-
-private :
-
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix C_stl;
- typename Interface::stl_matrix resu_stl;
-
- typename Interface::gene_matrix X_ref;
- typename Interface::gene_matrix X;
- typename Interface::gene_matrix C;
-
- int _size;
- double _cost;
-};
-
-#endif
diff --git a/eigen/bench/btl/actions/action_lu_decomp.hh b/eigen/bench/btl/actions/action_lu_decomp.hh
deleted file mode 100644
index 2448e82..0000000
--- a/eigen/bench/btl/actions/action_lu_decomp.hh
+++ /dev/null
@@ -1,124 +0,0 @@
-//=====================================================
-// File : action_lu_decomp.hh
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_LU_DECOMP
-#define ACTION_LU_DECOMP
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_lu_decomp {
-
-public :
-
- // Ctor
-
- Action_lu_decomp( int size ):_size(size)
- {
- MESSAGE("Action_lu_decomp Ctor");
-
- // STL vector initialization
- init_matrix<pseudo_random>(X_stl,_size);
-
- init_matrix<null_function>(C_stl,_size);
- init_matrix<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(X_ref,X_stl);
- Interface::matrix_from_stl(X,X_stl);
- Interface::matrix_from_stl(C,C_stl);
-
- _cost = 2.0*size*size*size/3.0 + size*size;
- }
-
- // invalidate copy ctor
-
- Action_lu_decomp( const Action_lu_decomp & )
- {
- INFOS("illegal call to Action_lu_decomp Copy Ctor");
- exit(1);
- }
-
- // Dtor
-
- ~Action_lu_decomp( void ){
-
- MESSAGE("Action_lu_decomp Dtor");
-
- // deallocation
- Interface::free_matrix(X_ref,_size);
- Interface::free_matrix(X,_size);
- Interface::free_matrix(C,_size);
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "complete_lu_decomp_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return _cost;
- }
-
- inline void initialize( void ){
- Interface::copy_matrix(X_ref,X,_size);
- }
-
- inline void calculate( void ) {
- Interface::lu_decomp(X,C,_size);
- }
-
- void check_result( void ){
- // calculation check
- Interface::matrix_to_stl(C,resu_stl);
-
-// STL_interface<typename Interface::real_type>::lu_decomp(X_stl,C_stl,_size);
-//
-// typename Interface::real_type error=
-// STL_interface<typename Interface::real_type>::norm_diff(C_stl,resu_stl);
-//
-// if (error>1.e-6){
-// INFOS("WRONG CALCULATION...residual=" << error);
-// exit(0);
-// }
-
- }
-
-private :
-
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix C_stl;
- typename Interface::stl_matrix resu_stl;
-
- typename Interface::gene_matrix X_ref;
- typename Interface::gene_matrix X;
- typename Interface::gene_matrix C;
-
- int _size;
- double _cost;
-};
-
-#endif
diff --git a/eigen/bench/btl/actions/action_lu_solve.hh b/eigen/bench/btl/actions/action_lu_solve.hh
deleted file mode 100644
index 5a81e63..0000000
--- a/eigen/bench/btl/actions/action_lu_solve.hh
+++ /dev/null
@@ -1,136 +0,0 @@
-//=====================================================
-// File : action_lu_solve.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_LU_SOLVE
-#define ACTION_LU_SOLVE
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_lu_solve
-{
-
-public :
-
- static inline std::string name( void )
- {
- return "lu_solve_"+Interface::name();
- }
-
- static double nb_op_base(int size){
- return 2.0*size*size*size/3.0; // questionable but not really important
- }
-
-
- static double calculate( int nb_calc, int size ) {
-
- // STL matrix and vector initialization
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_vector B_stl;
- typename Interface::stl_vector X_stl;
-
- init_matrix<pseudo_random>(A_stl,size);
- init_vector<pseudo_random>(B_stl,size);
- init_vector<null_function>(X_stl,size);
-
- // generic matrix and vector initialization
-
- typename Interface::gene_matrix A;
- typename Interface::gene_vector B;
- typename Interface::gene_vector X;
-
- typename Interface::gene_matrix LU;
-
- Interface::matrix_from_stl(A,A_stl);
- Interface::vector_from_stl(B,B_stl);
- Interface::vector_from_stl(X,X_stl);
- Interface::matrix_from_stl(LU,A_stl);
-
- // local variable :
-
- typename Interface::Pivot_Vector pivot; // pivot vector
- Interface::new_Pivot_Vector(pivot,size);
-
- // timer utilities
-
- Portable_Timer chronos;
-
- // time measurement
-
- chronos.start();
-
- for (int ii=0;ii<nb_calc;ii++){
-
- // LU factorization
- Interface::copy_matrix(A,LU,size);
- Interface::LU_factor(LU,pivot,size);
-
- // LU solve
-
- Interface::LU_solve(LU,pivot,B,X,size);
-
- }
-
- // Time stop
-
- chronos.stop();
-
- double time=chronos.user_time();
-
- // check result :
-
- typename Interface::stl_vector B_new_stl(size);
- Interface::vector_to_stl(X,X_stl);
-
- STL_interface<typename Interface::real_type>::matrix_vector_product(A_stl,X_stl,B_new_stl,size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(B_stl,B_new_stl);
-
- if (error>1.e-5){
- INFOS("WRONG CALCULATION...residual=" << error);
- STL_interface<typename Interface::real_type>::display_vector(B_stl);
- STL_interface<typename Interface::real_type>::display_vector(B_new_stl);
- exit(0);
- }
-
- // deallocation and return time
-
- Interface::free_matrix(A,size);
- Interface::free_vector(B);
- Interface::free_vector(X);
- Interface::free_Pivot_Vector(pivot);
-
- return time;
- }
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/action_matrix_matrix_product.hh b/eigen/bench/btl/actions/action_matrix_matrix_product.hh
deleted file mode 100644
index f65ee05..0000000
--- a/eigen/bench/btl/actions/action_matrix_matrix_product.hh
+++ /dev/null
@@ -1,150 +0,0 @@
-//=====================================================
-// File : action_matrix_matrix_product.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_MATRIX_MATRIX_PRODUCT
-#define ACTION_MATRIX_MATRIX_PRODUCT
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_matrix_matrix_product {
-
-public :
-
- // Ctor
-
- Action_matrix_matrix_product( int size ):_size(size)
- {
- MESSAGE("Action_matrix_matrix_product Ctor");
-
- // STL matrix and vector initialization
-
- init_matrix<pseudo_random>(A_stl,_size);
- init_matrix<pseudo_random>(B_stl,_size);
- init_matrix<null_function>(X_stl,_size);
- init_matrix<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
-
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(B_ref,B_stl);
- Interface::matrix_from_stl(X_ref,X_stl);
-
- Interface::matrix_from_stl(A,A_stl);
- Interface::matrix_from_stl(B,B_stl);
- Interface::matrix_from_stl(X,X_stl);
-
- }
-
- // invalidate copy ctor
-
- Action_matrix_matrix_product( const Action_matrix_matrix_product & )
- {
- INFOS("illegal call to Action_matrix_matrix_product Copy Ctor");
- exit(0);
- }
-
- // Dtor
-
- ~Action_matrix_matrix_product( void ){
-
- MESSAGE("Action_matrix_matrix_product Dtor");
-
- // deallocation
-
- Interface::free_matrix(A,_size);
- Interface::free_matrix(B,_size);
- Interface::free_matrix(X,_size);
-
- Interface::free_matrix(A_ref,_size);
- Interface::free_matrix(B_ref,_size);
- Interface::free_matrix(X_ref,_size);
-
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "matrix_matrix_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return 2.0*_size*_size*_size;
- }
-
- inline void initialize( void ){
-
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_matrix(B_ref,B,_size);
- Interface::copy_matrix(X_ref,X,_size);
-
- }
-
- inline void calculate( void ) {
- Interface::matrix_matrix_product(A,B,X,_size);
- }
-
- void check_result( void ){
-
- // calculation check
- if (_size<200)
- {
- Interface::matrix_to_stl(X,resu_stl);
- STL_interface<typename Interface::real_type>::matrix_matrix_product(A_stl,B_stl,X_stl,_size);
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
- if (error>1.e-6){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(1);
- }
- }
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_matrix B_stl;
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_matrix B_ref;
- typename Interface::gene_matrix X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_matrix B;
- typename Interface::gene_matrix X;
-
-
- int _size;
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/action_matrix_matrix_product_bis.hh b/eigen/bench/btl/actions/action_matrix_matrix_product_bis.hh
deleted file mode 100644
index 29c10a6..0000000
--- a/eigen/bench/btl/actions/action_matrix_matrix_product_bis.hh
+++ /dev/null
@@ -1,152 +0,0 @@
-//=====================================================
-// File : action_matrix_matrix_product_bis.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_MATRIX_MATRIX_PRODUCT_BIS
-#define ACTION_MATRIX_MATRIX_PRODUCT_BIS
-#include "utilities.h"
-#include "STL_interface.hh"
-#include "STL_timer.hh"
-#include <string>
-#include "init_function.hh"
-#include "init_vector.hh"
-#include "init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_matrix_matrix_product_bis {
-
-public :
-
- static inline std::string name( void )
- {
- return "matrix_matrix_"+Interface::name();
- }
-
- static double nb_op_base(int size){
- return 2.0*size*size*size;
- }
-
- static double calculate( int nb_calc, int size ) {
-
- // STL matrix and vector initialization
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_matrix B_stl;
- typename Interface::stl_matrix X_stl;
-
- init_matrix<pseudo_random>(A_stl,size);
- init_matrix<pseudo_random>(B_stl,size);
- init_matrix<null_function>(X_stl,size);
-
- // generic matrix and vector initialization
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_matrix B_ref;
- typename Interface::gene_matrix X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_matrix B;
- typename Interface::gene_matrix X;
-
-
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(B_ref,B_stl);
- Interface::matrix_from_stl(X_ref,X_stl);
-
- Interface::matrix_from_stl(A,A_stl);
- Interface::matrix_from_stl(B,B_stl);
- Interface::matrix_from_stl(X,X_stl);
-
-
- // STL_timer utilities
-
- STL_timer chronos;
-
- // Baseline evaluation
-
- chronos.start_baseline(nb_calc);
-
- do {
-
- Interface::copy_matrix(A_ref,A,size);
- Interface::copy_matrix(B_ref,B,size);
- Interface::copy_matrix(X_ref,X,size);
-
-
- // Interface::matrix_matrix_product(A,B,X,size); This line must be commented !!!!
- }
- while(chronos.check());
-
- chronos.report(true);
-
- // Time measurement
-
- chronos.start(nb_calc);
-
- do {
-
- Interface::copy_matrix(A_ref,A,size);
- Interface::copy_matrix(B_ref,B,size);
- Interface::copy_matrix(X_ref,X,size);
-
- Interface::matrix_matrix_product(A,B,X,size); // here it is not commented !!!!
- }
- while(chronos.check());
-
- chronos.report(true);
-
- double time=chronos.calculated_time/2000.0;
-
- // calculation check
-
- typename Interface::stl_matrix resu_stl(size);
-
- Interface::matrix_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::matrix_matrix_product(A_stl,B_stl,X_stl,size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-6){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(1);
- }
-
- // deallocation and return time
-
- Interface::free_matrix(A,size);
- Interface::free_matrix(B,size);
- Interface::free_matrix(X,size);
-
- Interface::free_matrix(A_ref,size);
- Interface::free_matrix(B_ref,size);
- Interface::free_matrix(X_ref,size);
-
- return time;
- }
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/action_matrix_vector_product.hh b/eigen/bench/btl/actions/action_matrix_vector_product.hh
deleted file mode 100644
index 8bab79d..0000000
--- a/eigen/bench/btl/actions/action_matrix_vector_product.hh
+++ /dev/null
@@ -1,153 +0,0 @@
-//=====================================================
-// File : action_matrix_vector_product.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_MATRIX_VECTOR_PRODUCT
-#define ACTION_MATRIX_VECTOR_PRODUCT
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_matrix_vector_product {
-
-public :
-
- // Ctor
-
- BTL_DONT_INLINE Action_matrix_vector_product( int size ):_size(size)
- {
- MESSAGE("Action_matrix_vector_product Ctor");
-
- // STL matrix and vector initialization
-
- init_matrix<pseudo_random>(A_stl,_size);
- init_vector<pseudo_random>(B_stl,_size);
- init_vector<null_function>(X_stl,_size);
- init_vector<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
-
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(A,A_stl);
- Interface::vector_from_stl(B_ref,B_stl);
- Interface::vector_from_stl(B,B_stl);
- Interface::vector_from_stl(X_ref,X_stl);
- Interface::vector_from_stl(X,X_stl);
-
- }
-
- // invalidate copy ctor
-
- Action_matrix_vector_product( const Action_matrix_vector_product & )
- {
- INFOS("illegal call to Action_matrix_vector_product Copy Ctor");
- exit(1);
- }
-
- // Dtor
-
- BTL_DONT_INLINE ~Action_matrix_vector_product( void ){
-
- MESSAGE("Action_matrix_vector_product Dtor");
-
- // deallocation
-
- Interface::free_matrix(A,_size);
- Interface::free_vector(B);
- Interface::free_vector(X);
-
- Interface::free_matrix(A_ref,_size);
- Interface::free_vector(B_ref);
- Interface::free_vector(X_ref);
-
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "matrix_vector_" + Interface::name();
- }
-
- double nb_op_base( void ){
- return 2.0*_size*_size;
- }
-
- BTL_DONT_INLINE void initialize( void ){
-
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_vector(B_ref,B,_size);
- Interface::copy_vector(X_ref,X,_size);
-
- }
-
- BTL_DONT_INLINE void calculate( void ) {
- BTL_ASM_COMMENT("#begin matrix_vector_product");
- Interface::matrix_vector_product(A,B,X,_size);
- BTL_ASM_COMMENT("end matrix_vector_product");
- }
-
- BTL_DONT_INLINE void check_result( void ){
-
- // calculation check
-
- Interface::vector_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::matrix_vector_product(A_stl,B_stl,X_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-5){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(0);
- }
-
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_vector B_stl;
- typename Interface::stl_vector X_stl;
- typename Interface::stl_vector resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_vector B_ref;
- typename Interface::gene_vector X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_vector B;
- typename Interface::gene_vector X;
-
-
- int _size;
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/action_partial_lu.hh b/eigen/bench/btl/actions/action_partial_lu.hh
deleted file mode 100644
index 770ea1d..0000000
--- a/eigen/bench/btl/actions/action_partial_lu.hh
+++ /dev/null
@@ -1,125 +0,0 @@
-//=====================================================
-// File : action_lu_decomp.hh
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_PARTIAL_LU
-#define ACTION_PARTIAL_LU
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_partial_lu {
-
-public :
-
- // Ctor
-
- Action_partial_lu( int size ):_size(size)
- {
- MESSAGE("Action_partial_lu Ctor");
-
- // STL vector initialization
- init_matrix<pseudo_random>(X_stl,_size);
- init_matrix<null_function>(C_stl,_size);
-
- // make sure X is invertible
- for (int i=0; i<_size; ++i)
- X_stl[i][i] = X_stl[i][i] * 1e2 + 1;
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(X_ref,X_stl);
- Interface::matrix_from_stl(X,X_stl);
- Interface::matrix_from_stl(C,C_stl);
-
- _cost = 2.0*size*size*size/3.0 + size*size;
- }
-
- // invalidate copy ctor
-
- Action_partial_lu( const Action_partial_lu & )
- {
- INFOS("illegal call to Action_partial_lu Copy Ctor");
- exit(1);
- }
-
- // Dtor
-
- ~Action_partial_lu( void ){
-
- MESSAGE("Action_partial_lu Dtor");
-
- // deallocation
- Interface::free_matrix(X_ref,_size);
- Interface::free_matrix(X,_size);
- Interface::free_matrix(C,_size);
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "partial_lu_decomp_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return _cost;
- }
-
- inline void initialize( void ){
- Interface::copy_matrix(X_ref,X,_size);
- }
-
- inline void calculate( void ) {
- Interface::partial_lu_decomp(X,C,_size);
- }
-
- void check_result( void ){
- // calculation check
-// Interface::matrix_to_stl(C,resu_stl);
-
-// STL_interface<typename Interface::real_type>::lu_decomp(X_stl,C_stl,_size);
-//
-// typename Interface::real_type error=
-// STL_interface<typename Interface::real_type>::norm_diff(C_stl,resu_stl);
-//
-// if (error>1.e-6){
-// INFOS("WRONG CALCULATION...residual=" << error);
-// exit(0);
-// }
-
- }
-
-private :
-
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix C_stl;
-
- typename Interface::gene_matrix X_ref;
- typename Interface::gene_matrix X;
- typename Interface::gene_matrix C;
-
- int _size;
- double _cost;
-};
-
-#endif
diff --git a/eigen/bench/btl/actions/action_rot.hh b/eigen/bench/btl/actions/action_rot.hh
deleted file mode 100644
index df822a6..0000000
--- a/eigen/bench/btl/actions/action_rot.hh
+++ /dev/null
@@ -1,116 +0,0 @@
-
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_ROT
-#define ACTION_ROT
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_rot {
-
-public :
-
- // Ctor
- BTL_DONT_INLINE Action_rot( int size ):_size(size)
- {
- MESSAGE("Action_rot Ctor");
-
- // STL matrix and vector initialization
- typename Interface::stl_matrix tmp;
- init_vector<pseudo_random>(A_stl,_size);
- init_vector<pseudo_random>(B_stl,_size);
-
- // generic matrix and vector initialization
- Interface::vector_from_stl(A_ref,A_stl);
- Interface::vector_from_stl(A,A_stl);
- Interface::vector_from_stl(B_ref,B_stl);
- Interface::vector_from_stl(B,B_stl);
- }
-
- // invalidate copy ctor
- Action_rot( const Action_rot & )
- {
- INFOS("illegal call to Action_rot Copy Ctor");
- exit(1);
- }
-
- // Dtor
- BTL_DONT_INLINE ~Action_rot( void ){
- MESSAGE("Action_rot Dtor");
- Interface::free_vector(A);
- Interface::free_vector(B);
- Interface::free_vector(A_ref);
- Interface::free_vector(B_ref);
- }
-
- // action name
- static inline std::string name( void )
- {
- return "rot_" + Interface::name();
- }
-
- double nb_op_base( void ){
- return 6.0*_size;
- }
-
- BTL_DONT_INLINE void initialize( void ){
- Interface::copy_vector(A_ref,A,_size);
- Interface::copy_vector(B_ref,B,_size);
- }
-
- BTL_DONT_INLINE void calculate( void ) {
- BTL_ASM_COMMENT("#begin rot");
- Interface::rot(A,B,0.5,0.6,_size);
- BTL_ASM_COMMENT("end rot");
- }
-
- BTL_DONT_INLINE void check_result( void ){
- // calculation check
-// Interface::vector_to_stl(X,resu_stl);
-
-// STL_interface<typename Interface::real_type>::rot(A_stl,B_stl,X_stl,_size);
-
-// typename Interface::real_type error=
-// STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
-// if (error>1.e-3){
-// INFOS("WRONG CALCULATION...residual=" << error);
-// exit(0);
-// }
-
- }
-
-private :
-
- typename Interface::stl_vector A_stl;
- typename Interface::stl_vector B_stl;
-
- typename Interface::gene_vector A_ref;
- typename Interface::gene_vector B_ref;
-
- typename Interface::gene_vector A;
- typename Interface::gene_vector B;
-
- int _size;
-};
-
-
-#endif
diff --git a/eigen/bench/btl/actions/action_symv.hh b/eigen/bench/btl/actions/action_symv.hh
deleted file mode 100644
index a32b9df..0000000
--- a/eigen/bench/btl/actions/action_symv.hh
+++ /dev/null
@@ -1,139 +0,0 @@
-//=====================================================
-// File : action_symv.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_SYMV
-#define ACTION_SYMV
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_symv {
-
-public :
-
- // Ctor
-
- BTL_DONT_INLINE Action_symv( int size ):_size(size)
- {
- MESSAGE("Action_symv Ctor");
-
- // STL matrix and vector initialization
- init_matrix_symm<pseudo_random>(A_stl,_size);
- init_vector<pseudo_random>(B_stl,_size);
- init_vector<null_function>(X_stl,_size);
- init_vector<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(A,A_stl);
- Interface::vector_from_stl(B_ref,B_stl);
- Interface::vector_from_stl(B,B_stl);
- Interface::vector_from_stl(X_ref,X_stl);
- Interface::vector_from_stl(X,X_stl);
-
- }
-
- // invalidate copy ctor
-
- Action_symv( const Action_symv & )
- {
- INFOS("illegal call to Action_symv Copy Ctor");
- exit(1);
- }
-
- // Dtor
- BTL_DONT_INLINE ~Action_symv( void ){
- Interface::free_matrix(A,_size);
- Interface::free_vector(B);
- Interface::free_vector(X);
- Interface::free_matrix(A_ref,_size);
- Interface::free_vector(B_ref);
- Interface::free_vector(X_ref);
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "symv_" + Interface::name();
- }
-
- double nb_op_base( void ){
- return 2.0*_size*_size;
- }
-
- BTL_DONT_INLINE void initialize( void ){
-
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_vector(B_ref,B,_size);
- Interface::copy_vector(X_ref,X,_size);
-
- }
-
- BTL_DONT_INLINE void calculate( void ) {
- BTL_ASM_COMMENT("#begin symv");
- Interface::symv(A,B,X,_size);
- BTL_ASM_COMMENT("end symv");
- }
-
- BTL_DONT_INLINE void check_result( void ){
- if (_size>128) return;
- // calculation check
- Interface::vector_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::symv(A_stl,B_stl,X_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-5){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(0);
- }
-
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_vector B_stl;
- typename Interface::stl_vector X_stl;
- typename Interface::stl_vector resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_vector B_ref;
- typename Interface::gene_vector X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_vector B;
- typename Interface::gene_vector X;
-
-
- int _size;
-
-};
-
-
-#endif
diff --git a/eigen/bench/btl/actions/action_syr2.hh b/eigen/bench/btl/actions/action_syr2.hh
deleted file mode 100644
index 7c6712b..0000000
--- a/eigen/bench/btl/actions/action_syr2.hh
+++ /dev/null
@@ -1,133 +0,0 @@
-//=====================================================
-// File : action_syr2.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_SYR2
-#define ACTION_SYR2
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_syr2 {
-
-public :
-
- // Ctor
-
- BTL_DONT_INLINE Action_syr2( int size ):_size(size)
- {
- // STL matrix and vector initialization
- typename Interface::stl_matrix tmp;
- init_matrix<pseudo_random>(A_stl,_size);
- init_vector<pseudo_random>(B_stl,_size);
- init_vector<pseudo_random>(X_stl,_size);
- init_vector<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(A,A_stl);
- Interface::vector_from_stl(B_ref,B_stl);
- Interface::vector_from_stl(B,B_stl);
- Interface::vector_from_stl(X_ref,X_stl);
- Interface::vector_from_stl(X,X_stl);
- }
-
- // invalidate copy ctor
- Action_syr2( const Action_syr2 & )
- {
- INFOS("illegal call to Action_syr2 Copy Ctor");
- exit(1);
- }
-
- // Dtor
- BTL_DONT_INLINE ~Action_syr2( void ){
- Interface::free_matrix(A,_size);
- Interface::free_vector(B);
- Interface::free_vector(X);
- Interface::free_matrix(A_ref,_size);
- Interface::free_vector(B_ref);
- Interface::free_vector(X_ref);
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "syr2_" + Interface::name();
- }
-
- double nb_op_base( void ){
- return 2.0*_size*_size;
- }
-
- BTL_DONT_INLINE void initialize( void ){
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_vector(B_ref,B,_size);
- Interface::copy_vector(X_ref,X,_size);
- }
-
- BTL_DONT_INLINE void calculate( void ) {
- BTL_ASM_COMMENT("#begin syr2");
- Interface::syr2(A,B,X,_size);
- BTL_ASM_COMMENT("end syr2");
- }
-
- BTL_DONT_INLINE void check_result( void ){
- // calculation check
- Interface::vector_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::syr2(A_stl,B_stl,X_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-3){
- INFOS("WRONG CALCULATION...residual=" << error);
-// exit(0);
- }
-
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_vector B_stl;
- typename Interface::stl_vector X_stl;
- typename Interface::stl_vector resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_vector B_ref;
- typename Interface::gene_vector X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_vector B;
- typename Interface::gene_vector X;
-
-
- int _size;
-
-};
-
-
-#endif
diff --git a/eigen/bench/btl/actions/action_trisolve.hh b/eigen/bench/btl/actions/action_trisolve.hh
deleted file mode 100644
index d6f0b47..0000000
--- a/eigen/bench/btl/actions/action_trisolve.hh
+++ /dev/null
@@ -1,137 +0,0 @@
-//=====================================================
-// File : action_trisolve.hh
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_TRISOLVE
-#define ACTION_TRISOLVE
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_trisolve {
-
-public :
-
- // Ctor
-
- Action_trisolve( int size ):_size(size)
- {
- MESSAGE("Action_trisolve Ctor");
-
- // STL vector initialization
- init_matrix<pseudo_random>(L_stl,_size);
- init_vector<pseudo_random>(B_stl,_size);
- init_vector<null_function>(X_stl,_size);
- for (int j=0; j<_size; ++j)
- {
- for (int i=0; i<j; ++i)
- L_stl[j][i] = 0;
- L_stl[j][j] += 3;
- }
-
- init_vector<null_function>(resu_stl,_size);
-
- // generic matrix and vector initialization
- Interface::matrix_from_stl(L,L_stl);
- Interface::vector_from_stl(X,X_stl);
- Interface::vector_from_stl(B,B_stl);
-
- _cost = 0;
- for (int j=0; j<_size; ++j)
- {
- _cost += 2*j + 1;
- }
- }
-
- // invalidate copy ctor
-
- Action_trisolve( const Action_trisolve & )
- {
- INFOS("illegal call to Action_trisolve Copy Ctor");
- exit(1);
- }
-
- // Dtor
-
- ~Action_trisolve( void ){
-
- MESSAGE("Action_trisolve Dtor");
-
- // deallocation
- Interface::free_matrix(L,_size);
- Interface::free_vector(B);
- Interface::free_vector(X);
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "trisolve_vector_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return _cost;
- }
-
- inline void initialize( void ){
- //Interface::copy_vector(X_ref,X,_size);
- }
-
- inline void calculate( void ) {
- Interface::trisolve_lower(L,B,X,_size);
- }
-
- void check_result(){
- if (_size>128) return;
- // calculation check
- Interface::vector_to_stl(X,resu_stl);
-
- STL_interface<typename Interface::real_type>::trisolve_lower(L_stl,B_stl,X_stl,_size);
-
- typename Interface::real_type error=
- STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-
- if (error>1.e-4){
- INFOS("WRONG CALCULATION...residual=" << error);
- exit(2);
- } //else INFOS("CALCULATION OK...residual=" << error);
-
- }
-
-private :
-
- typename Interface::stl_matrix L_stl;
- typename Interface::stl_vector X_stl;
- typename Interface::stl_vector B_stl;
- typename Interface::stl_vector resu_stl;
-
- typename Interface::gene_matrix L;
- typename Interface::gene_vector X;
- typename Interface::gene_vector B;
-
- int _size;
- double _cost;
-};
-
-#endif
diff --git a/eigen/bench/btl/actions/action_trisolve_matrix.hh b/eigen/bench/btl/actions/action_trisolve_matrix.hh
deleted file mode 100644
index 0fc2bb9..0000000
--- a/eigen/bench/btl/actions/action_trisolve_matrix.hh
+++ /dev/null
@@ -1,165 +0,0 @@
-//=====================================================
-// File : action_matrix_matrix_product.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_TRISOLVE_MATRIX_PRODUCT
-#define ACTION_TRISOLVE_MATRIX_PRODUCT
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_trisolve_matrix {
-
-public :
-
- // Ctor
-
- Action_trisolve_matrix( int size ):_size(size)
- {
- MESSAGE("Action_trisolve_matrix Ctor");
-
- // STL matrix and vector initialization
-
- init_matrix<pseudo_random>(A_stl,_size);
- init_matrix<pseudo_random>(B_stl,_size);
- init_matrix<null_function>(X_stl,_size);
- init_matrix<null_function>(resu_stl,_size);
-
- for (int j=0; j<_size; ++j)
- {
- for (int i=0; i<j; ++i)
- A_stl[j][i] = 0;
- A_stl[j][j] += 3;
- }
-
- // generic matrix and vector initialization
-
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(B_ref,B_stl);
- Interface::matrix_from_stl(X_ref,X_stl);
-
- Interface::matrix_from_stl(A,A_stl);
- Interface::matrix_from_stl(B,B_stl);
- Interface::matrix_from_stl(X,X_stl);
-
- _cost = 0;
- for (int j=0; j<_size; ++j)
- {
- _cost += 2*j + 1;
- }
- _cost *= _size;
- }
-
- // invalidate copy ctor
-
- Action_trisolve_matrix( const Action_trisolve_matrix & )
- {
- INFOS("illegal call to Action_trisolve_matrix Copy Ctor");
- exit(0);
- }
-
- // Dtor
-
- ~Action_trisolve_matrix( void ){
-
- MESSAGE("Action_trisolve_matrix Dtor");
-
- // deallocation
-
- Interface::free_matrix(A,_size);
- Interface::free_matrix(B,_size);
- Interface::free_matrix(X,_size);
-
- Interface::free_matrix(A_ref,_size);
- Interface::free_matrix(B_ref,_size);
- Interface::free_matrix(X_ref,_size);
-
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "trisolve_matrix_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return _cost;
- }
-
- inline void initialize( void ){
-
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_matrix(B_ref,B,_size);
- Interface::copy_matrix(X_ref,X,_size);
-
- }
-
- inline void calculate( void ) {
- Interface::trisolve_lower_matrix(A,B,X,_size);
- }
-
- void check_result( void ){
-
- // calculation check
-
-// Interface::matrix_to_stl(X,resu_stl);
-//
-// STL_interface<typename Interface::real_type>::matrix_matrix_product(A_stl,B_stl,X_stl,_size);
-//
-// typename Interface::real_type error=
-// STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-//
-// if (error>1.e-6){
-// INFOS("WRONG CALCULATION...residual=" << error);
-// // exit(1);
-// }
-
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_matrix B_stl;
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_matrix B_ref;
- typename Interface::gene_matrix X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_matrix B;
- typename Interface::gene_matrix X;
-
- int _size;
- double _cost;
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/action_trmm.hh b/eigen/bench/btl/actions/action_trmm.hh
deleted file mode 100644
index 8f78138..0000000
--- a/eigen/bench/btl/actions/action_trmm.hh
+++ /dev/null
@@ -1,165 +0,0 @@
-//=====================================================
-// File : action_matrix_matrix_product.hh
-// Author : L. Plagne <laurent.plagne@edf.fr)>
-// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
-//=====================================================
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program 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 General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-//
-#ifndef ACTION_TRMM
-#define ACTION_TRMM
-#include "utilities.h"
-#include "STL_interface.hh"
-#include <string>
-#include "init/init_function.hh"
-#include "init/init_vector.hh"
-#include "init/init_matrix.hh"
-
-using namespace std;
-
-template<class Interface>
-class Action_trmm {
-
-public :
-
- // Ctor
-
- Action_trmm( int size ):_size(size)
- {
- MESSAGE("Action_trmm Ctor");
-
- // STL matrix and vector initialization
-
- init_matrix<pseudo_random>(A_stl,_size);
- init_matrix<pseudo_random>(B_stl,_size);
- init_matrix<null_function>(X_stl,_size);
- init_matrix<null_function>(resu_stl,_size);
-
- for (int j=0; j<_size; ++j)
- {
- for (int i=0; i<j; ++i)
- A_stl[j][i] = 0;
- A_stl[j][j] += 3;
- }
-
- // generic matrix and vector initialization
-
- Interface::matrix_from_stl(A_ref,A_stl);
- Interface::matrix_from_stl(B_ref,B_stl);
- Interface::matrix_from_stl(X_ref,X_stl);
-
- Interface::matrix_from_stl(A,A_stl);
- Interface::matrix_from_stl(B,B_stl);
- Interface::matrix_from_stl(X,X_stl);
-
- _cost = 0;
- for (int j=0; j<_size; ++j)
- {
- _cost += 2*j + 1;
- }
- _cost *= _size;
- }
-
- // invalidate copy ctor
-
- Action_trmm( const Action_trmm & )
- {
- INFOS("illegal call to Action_trmm Copy Ctor");
- exit(0);
- }
-
- // Dtor
-
- ~Action_trmm( void ){
-
- MESSAGE("Action_trmm Dtor");
-
- // deallocation
-
- Interface::free_matrix(A,_size);
- Interface::free_matrix(B,_size);
- Interface::free_matrix(X,_size);
-
- Interface::free_matrix(A_ref,_size);
- Interface::free_matrix(B_ref,_size);
- Interface::free_matrix(X_ref,_size);
-
- }
-
- // action name
-
- static inline std::string name( void )
- {
- return "trmm_"+Interface::name();
- }
-
- double nb_op_base( void ){
- return _cost;
- }
-
- inline void initialize( void ){
-
- Interface::copy_matrix(A_ref,A,_size);
- Interface::copy_matrix(B_ref,B,_size);
- Interface::copy_matrix(X_ref,X,_size);
-
- }
-
- inline void calculate( void ) {
- Interface::trmm(A,B,X,_size);
- }
-
- void check_result( void ){
-
- // calculation check
-
-// Interface::matrix_to_stl(X,resu_stl);
-//
-// STL_interface<typename Interface::real_type>::matrix_matrix_product(A_stl,B_stl,X_stl,_size);
-//
-// typename Interface::real_type error=
-// STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
-//
-// if (error>1.e-6){
-// INFOS("WRONG CALCULATION...residual=" << error);
-// // exit(1);
-// }
-
- }
-
-private :
-
- typename Interface::stl_matrix A_stl;
- typename Interface::stl_matrix B_stl;
- typename Interface::stl_matrix X_stl;
- typename Interface::stl_matrix resu_stl;
-
- typename Interface::gene_matrix A_ref;
- typename Interface::gene_matrix B_ref;
- typename Interface::gene_matrix X_ref;
-
- typename Interface::gene_matrix A;
- typename Interface::gene_matrix B;
- typename Interface::gene_matrix X;
-
- int _size;
- double _cost;
-
-};
-
-
-#endif
-
-
-
diff --git a/eigen/bench/btl/actions/basic_actions.hh b/eigen/bench/btl/actions/basic_actions.hh
deleted file mode 100644
index a3333ea..0000000
--- a/eigen/bench/btl/actions/basic_actions.hh
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#include "action_axpy.hh"
-#include "action_axpby.hh"
-
-#include "action_matrix_vector_product.hh"
-#include "action_atv_product.hh"
-
-#include "action_matrix_matrix_product.hh"
-// #include "action_ata_product.hh"
-#include "action_aat_product.hh"
-
-#include "action_trisolve.hh"
-#include "action_trmm.hh"
-#include "action_symv.hh"
-// #include "action_symm.hh"
-#include "action_syr2.hh"
-#include "action_ger.hh"
-#include "action_rot.hh"
-
-// #include "action_lu_solve.hh"
-