mirror of
https://github.com/triqs/dft_tools
synced 2024-10-31 19:23:45 +01:00
Merge pull request #41 from lmessio/master
Changes in the doc and one bug removed in det_manip
This commit is contained in:
commit
c185be83c0
@ -10,7 +10,6 @@ Multidimensional arrays
|
|||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:numbered:
|
|
||||||
|
|
||||||
introduction
|
introduction
|
||||||
concepts
|
concepts
|
||||||
@ -35,4 +34,4 @@ Multidimensional arrays
|
|||||||
multithreading
|
multithreading
|
||||||
FAQ
|
FAQ
|
||||||
implementation_notes/contents
|
implementation_notes/contents
|
||||||
|
./../../../tutorials/c++/array_tutorial
|
||||||
|
@ -39,4 +39,4 @@ This class implements these general operations. It contains :
|
|||||||
|
|
||||||
det_manip
|
det_manip
|
||||||
behind
|
behind
|
||||||
cookbook/contents
|
./../../../tutorials/c++/det_manip_tutorial
|
||||||
|
@ -1,68 +0,0 @@
|
|||||||
Basics
|
|
||||||
------
|
|
||||||
|
|
||||||
Here, an exemple of creation of a class det_manip, of use of insert and remove.
|
|
||||||
|
|
||||||
.. compileblock::
|
|
||||||
|
|
||||||
#include <triqs/det_manip/det_manip.hpp>
|
|
||||||
|
|
||||||
struct fun {
|
|
||||||
|
|
||||||
typedef double result_type;
|
|
||||||
typedef double argument_type;
|
|
||||||
|
|
||||||
//gives the coefficients of the matrix
|
|
||||||
double operator()(double x, double y) const {
|
|
||||||
return(x-y);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
//creation of the class det_manip
|
|
||||||
fun f;
|
|
||||||
int init_size=100;
|
|
||||||
triqs::det_manip::det_manip<fun> D(f,init_size);
|
|
||||||
//the initial matrix is empty:
|
|
||||||
std::cout<<std::endl<<"After construction: D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
|
||||||
|
|
||||||
double detratio;
|
|
||||||
//insertion of a line and a column at position (1,1) in the matrix, with x[i]=x, y[j]=y.
|
|
||||||
double x=2, y=9;
|
|
||||||
int i=0, j=0;
|
|
||||||
detratio = D.try_insert(i,j,x,y);
|
|
||||||
D.complete_operation();
|
|
||||||
std::cout<<"We add a line and a column for i="<<i<<", j="<<j<<", x="<<x<<", y="<<y<<" (f(x,y)="<<f(x,y)<<")."<<std::endl;
|
|
||||||
std::cout<<"D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
|
||||||
|
|
||||||
x=3; y=4; i=0; j=0;
|
|
||||||
detratio = D.try_insert(i,j,x,y);
|
|
||||||
D.complete_operation();
|
|
||||||
std::cout<<"We add a line and a column for i="<<i<<", j="<<j<<", x="<<x<<", y="<<y<<" (f(x,y)="<<f(x,y)<<")."<<std::endl;
|
|
||||||
std::cout<<"D.matrix()="<<D.matrix()<<std::endl;
|
|
||||||
std::cout<<"The determinant is "<<D.determinant()<<std::endl;
|
|
||||||
std::cout<<"The inverse matrix is"<<D.inverse_matrix()<< std::endl<<std::endl;
|
|
||||||
|
|
||||||
x=-7; y=1; i=1; j=2;
|
|
||||||
detratio = D.try_insert(i,j,x,y);
|
|
||||||
D.complete_operation();
|
|
||||||
std::cout<<"We add a line and a column for i="<<i<<", j="<<j<<", x="<<x<<", y="<<y<<" (f(x,y)="<<f(x,y)<<")."<<std::endl;
|
|
||||||
std::cout<<"D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
|
||||||
std::cout<<"The size of the matrix is now "<<D.size()<<std::endl;
|
|
||||||
std::cout<<"The value of the parameters for coefficient (i,j)=(0,2) is (x,y)=("<<D.get_x(0)<<","<<D.get_y(2)<<") (f("<<D.get_x(0)<<","<<D.get_y(2)<<")="<<f(D.get_x(0),D.get_y(2))<<")."<<std::endl<<std::endl;
|
|
||||||
|
|
||||||
i=0; j=1;
|
|
||||||
detratio = D.try_remove(i,j);
|
|
||||||
D.complete_operation();
|
|
||||||
std::cout<<"We remove a line and a column for i="<<i<<", j="<<j<<"."<<std::endl;
|
|
||||||
std::cout<<"D.matrix()="<<D.matrix()<<std::endl;
|
|
||||||
std::cout<<"The determinant is "<<D.determinant()<<std::endl;
|
|
||||||
std::cout<<"The inverse matrix is"<<D.inverse_matrix()<< std::endl<<std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Learn more in the full reference, see :ref:`det_manip`
|
|
||||||
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
|||||||
.. highlight:: c
|
|
||||||
|
|
||||||
Det_manip cookbook
|
|
||||||
===================
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 2
|
|
||||||
|
|
||||||
basic
|
|
@ -79,9 +79,11 @@ Doxygen documentation
|
|||||||
The :doxy:`full C++ documentation<triqs::det_manip::det_manip>` is available here.
|
The :doxy:`full C++ documentation<triqs::det_manip::det_manip>` is available here.
|
||||||
|
|
||||||
Example
|
Example
|
||||||
-------------
|
---------
|
||||||
|
|
||||||
.. code-block:: c
|
.. compileblock::
|
||||||
|
|
||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
struct fun {
|
struct fun {
|
||||||
|
|
||||||
@ -89,7 +91,7 @@ Example
|
|||||||
typedef double argument_type;
|
typedef double argument_type;
|
||||||
|
|
||||||
double operator()(double x, double y) const {
|
double operator()(double x, double y) const {
|
||||||
const double pi = acos(-1);
|
const double pi = acos(-1.);
|
||||||
const double beta = 10.0;
|
const double beta = 10.0;
|
||||||
const double epsi = 0.1;
|
const double epsi = 0.1;
|
||||||
double tau = x-y;
|
double tau = x-y;
|
||||||
@ -103,14 +105,18 @@ Example
|
|||||||
int main() {
|
int main() {
|
||||||
|
|
||||||
fun f;
|
fun f;
|
||||||
triqs::det_manip::det_manip<fun> D;
|
triqs::det_manip::det_manip<fun> D(f,100);
|
||||||
|
|
||||||
/// ....
|
/// insertions of 3 lines and 3 columns
|
||||||
double x=2, y=9, detratio;
|
double x=2., y=9., detratio;
|
||||||
detratio = D.try_insert(1,3, x,y);
|
detratio = D.try_insert(0, 0, x, y );
|
||||||
|
D.complete_operation();
|
||||||
|
detratio = D.try_insert(0, 1, 2., 3.);
|
||||||
|
D.complete_operation();
|
||||||
|
detratio = D.try_insert(0, 0, 4., 5.);
|
||||||
D.complete_operation();
|
D.complete_operation();
|
||||||
|
|
||||||
///...
|
/// removal of a line (the 3rd) and a column (the 2nd)
|
||||||
detratio = D.try_remove(2,1);
|
detratio = D.try_remove(2,1);
|
||||||
D.complete_operation();
|
D.complete_operation();
|
||||||
}
|
}
|
||||||
|
@ -183,7 +183,7 @@ behaves like
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
g(z) \sim ... + M_{-1} z + M_0 + \frac{M_1}{z} + \frac{M_2}{z} + ...
|
g(z) \sim ... + M_{-1} z + M_0 + \frac{M_1}{z} + \frac{M_2}{z^2} + ...
|
||||||
|
|
||||||
where :math:`M_i` are matrices with the same dimensions as :math:`g`.
|
where :math:`M_i` are matrices with the same dimensions as :math:`g`.
|
||||||
|
|
||||||
|
@ -1,9 +1,14 @@
|
|||||||
Using arrays
|
Examples of use of arrays
|
||||||
===============
|
==========================
|
||||||
|
|
||||||
.. highlight:: c
|
.. highlight:: c
|
||||||
|
|
||||||
TRIQS comes with a library of multidimensional arrays. This library, among others, allows for easy slicing, archiving and algebraic manipulations of multidimensional arrays. Here are a couple of simple examples showing the basic use of this class.
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
TRIQS comes with a library of multidimensional arrays.
|
||||||
|
This library, among others, allows for easy slicing, archiving and algebraic manipulations of multidimensional arrays.
|
||||||
|
Here are a couple of simple examples showing the basic use of this class.
|
||||||
|
|
||||||
|
|
||||||
Declaring and printing an array
|
Declaring and printing an array
|
||||||
@ -173,4 +178,4 @@ Map and fold
|
|||||||
std::cout << "F(2*A) = "<<C<<std::endl;
|
std::cout << "F(2*A) = "<<C<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
The full reference of the array library can be found :doc:`here: <../../reference/c++/arrays/contents>`
|
The full reference of the array library can be found :doc:`here <../../reference/c++/arrays/contents>`
|
||||||
|
@ -9,6 +9,6 @@ C++ libraries
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
array_tutorial
|
array_tutorial
|
||||||
|
det_manip_tutorial
|
||||||
|
|
||||||
..
|
..
|
||||||
|
227
doc/tutorials/c++/det_manip_tutorial.rst
Normal file
227
doc/tutorials/c++/det_manip_tutorial.rst
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
Det_manip cookbook
|
||||||
|
===================
|
||||||
|
|
||||||
|
.. highlight:: c
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
TRIQS comes with a class called det_manip to easily perform operations on a special type of matrices
|
||||||
|
(see :doc:`here <../../reference/c++/det_manip/contents>`).
|
||||||
|
This library, among others, allows to easily add or remove lines or columns to the matrix, to calculate the determinant and the inverse.
|
||||||
|
Here are a couple of simple examples showing the basic use of this class.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Creation of an empty det_manip class
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
.. compileblock::
|
||||||
|
|
||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
|
struct fun {
|
||||||
|
|
||||||
|
typedef double result_type;
|
||||||
|
typedef double argument_type;
|
||||||
|
|
||||||
|
//gives the coefficients of the matrix (function F of the documentation)
|
||||||
|
double operator()(double x, double y) const {
|
||||||
|
return(x-y);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
fun f;
|
||||||
|
int init_size = 100; // maximum size of the matrix before a resize
|
||||||
|
|
||||||
|
//creation of a class det_manip
|
||||||
|
triqs::det_manip::det_manip<fun> D(f, init_size);
|
||||||
|
|
||||||
|
//the initial matrix is empty:
|
||||||
|
std::cout<<std::endl<< "After construction: D.matrix()=" << D.matrix()<<std::endl<<std::endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Creation of a non empty det_manip class
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
.. compileblock::
|
||||||
|
|
||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
|
struct fun {
|
||||||
|
|
||||||
|
typedef double result_type;
|
||||||
|
typedef double argument_type;
|
||||||
|
|
||||||
|
//gives the coefficients of the matrix (function F of the documentation)
|
||||||
|
double operator()(double x, double y) const {
|
||||||
|
return(x-y);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
fun f;
|
||||||
|
std::vector<double> initial_x{1,2}, initial_y{3,4};
|
||||||
|
|
||||||
|
//creation of a class det_manip with a 2 by 2 matrix
|
||||||
|
triqs::det_manip::det_manip<fun> D(f, initial_x, initial_y);
|
||||||
|
|
||||||
|
//the initial matrix:
|
||||||
|
std::cout<<std::endl<< "After construction: D.matrix()=" << D.matrix()<<std::endl<<std::endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Get informations about a det_manip class
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
.. compileblock::
|
||||||
|
|
||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
|
struct fun {
|
||||||
|
typedef double result_type;
|
||||||
|
typedef double argument_type;
|
||||||
|
double operator()(double x, double y) const { return(x-y); }
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
fun f;
|
||||||
|
int i=0, j=1;
|
||||||
|
std::vector<double> initial_x{1,2}, initial_y{3,4};
|
||||||
|
triqs::det_manip::det_manip<fun> D(f, initial_x, initial_y);
|
||||||
|
std::cout<<std::endl<<"D.matrix()=" << D.matrix() <<std::endl<<std::endl;
|
||||||
|
std::cout<<"The size of the matrix is "<< D.size() <<std::endl<<std::endl;
|
||||||
|
std::cout<<"The determinant is "<< D.determinant() <<std::endl<<std::endl;
|
||||||
|
std::cout<<"The inverse matrix is"<< D.inverse_matrix() << std::endl<<std::endl;
|
||||||
|
std::cout<<"The value of the parameters for coefficient (i,j)=("<<i<<","<<j<<") is (x,y)=("
|
||||||
|
<<D.get_x(i)<<","<<D.get_y(j)<<")"<<std::endl<<std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Add a line and a column
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
.. compileblock::
|
||||||
|
|
||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
|
struct fun {
|
||||||
|
typedef double result_type;
|
||||||
|
typedef double argument_type;
|
||||||
|
double operator()(double x, double y) const { return(exp(x)-y*y); }
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
triqs::det_manip::det_manip<fun> D(fun(), std::vector<double>{1,2,2.5}, std::vector<double>{3,4,9});
|
||||||
|
std::cout<<std::endl<<"After construction, D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
||||||
|
double x0 = 2.1, y0 = 7;
|
||||||
|
int i = 2, j = 0; // number of the added line and column
|
||||||
|
std::cout<<"We want to add a line and a column for i="<<i<<", j="<<j
|
||||||
|
<<", x="<<x0<<", y="<<y0<<"."<<std::endl;
|
||||||
|
// (try of) insertion of a line and a column at position (3,1) in the matrix
|
||||||
|
// with x[i]=x0, y[j]=y0.
|
||||||
|
double detratio = D.try_insert(i, j, x0, y0); // the ratio between new and old determinants
|
||||||
|
// while the operation is not complete, the matrix stays unchanged
|
||||||
|
std::cout<<"After try_insert, D.matrix()="<<D.matrix()<<std::endl;
|
||||||
|
// here we validate the insertion: the (inverse) matrix and determinant are updated
|
||||||
|
D.complete_operation();
|
||||||
|
std::cout<<"After complete_operation, D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Remove a line and a column
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
.. compileblock::
|
||||||
|
|
||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
|
struct fun {
|
||||||
|
typedef double result_type;
|
||||||
|
typedef double argument_type;
|
||||||
|
double operator()(double x, double y) const { return(exp(x)-y*y); }
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
triqs::det_manip::det_manip<fun> D(fun(), std::vector<double>{1,2,2.5}, std::vector<double>{3,4,9});
|
||||||
|
std::cout<<std::endl<<"After construction, D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
||||||
|
int i = 1, j = 0; // number of the removed line and column
|
||||||
|
std::cout<<"We want to remove a line and a column for i="<<i<<", j="<<j<<"."<<std::endl;
|
||||||
|
// (try of) removal of a line and a column at position (1,0) in the matrix.
|
||||||
|
double detratio = D.try_remove(i, j); // the ratio between new and old determinants
|
||||||
|
// while the operation is not complete, the matrix stays unchanged
|
||||||
|
std::cout<<"After try_remove, D.matrix()="<<D.matrix()<<std::endl;
|
||||||
|
// here we validate the removal: the (inverse) matrix and determinant are updated
|
||||||
|
D.complete_operation();
|
||||||
|
std::cout<<"After complete_operation, D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Add two lines and two columns
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
.. compileblock::
|
||||||
|
|
||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
|
struct fun {
|
||||||
|
typedef double result_type;
|
||||||
|
typedef double argument_type;
|
||||||
|
double operator()(double x, double y) const { return(exp(x)-y*y); }
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
triqs::det_manip::det_manip<fun> D(fun(), std::vector<double>{1,2,2.5}, std::vector<double>{3,4,9});
|
||||||
|
std::cout<<std::endl<<"After construction, D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
||||||
|
double x0 = 2.1, y0 = 7, x1 = 3.5, y1 = 5;
|
||||||
|
int i0 = 2, i1 = 1, j0 = 0, j1 = 3; // number of the added lines and columns
|
||||||
|
std::cout<<"We want to add a line and a column for i0="<<i0<<", j0="<<j0<<", i1="<<i1<<", j1="<<j1
|
||||||
|
<<", x0="<<x0<<", y0="<<y0<<", x1="<<x1<<", y1="<<y1<<")."<<std::endl;
|
||||||
|
// (try of) insertion of 2 lines and 2 columns in the matrix
|
||||||
|
double detratio = D.try_insert2 (i0, i1, j0, j1, x0, x1, y0, y1); // the ratio between new and old determinants
|
||||||
|
// while the operation is not complete, the matrix stays unchanged
|
||||||
|
std::cout<<"After try_insert2, D.matrix()="<<D.matrix()<<std::endl;
|
||||||
|
// here we validate the insertion: the (inverse) matrix and determinant are updated
|
||||||
|
D.complete_operation();
|
||||||
|
std::cout<<"After complete_operation, D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Remove two lines and two columns
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
.. compileblock::
|
||||||
|
|
||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
|
struct fun {
|
||||||
|
typedef double result_type;
|
||||||
|
typedef double argument_type;
|
||||||
|
double operator()(double x, double y) const { return(exp(x)-y*y); }
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
triqs::det_manip::det_manip<fun> D(fun(), std::vector<double>{1,2,2.5}, std::vector<double>{3,4,9});
|
||||||
|
std::cout<<std::endl<<"After construction, D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
||||||
|
int i0 = 2, i1 = 1, j0 = 0, j1 = 1; // number of the removed lines and columns
|
||||||
|
std::cout<<"We want to remove 2 lines and 2 columns for i0="
|
||||||
|
<<i0<<", j0="<<j0<<", i1="<<i1<<", j1="<<j1<<"."<<std::endl;
|
||||||
|
// (try of) removal of a line and a column at position (1,0) in the matrix.
|
||||||
|
double detratio = D.try_remove2(i0, i1, j0, j1); // the ratio between new and old determinants
|
||||||
|
// while the operation is not complete, the matrix stays unchanged
|
||||||
|
std::cout<<"After try_remove2, D.matrix()="<<D.matrix()<<std::endl;
|
||||||
|
// here we validate the removal: the (inverse) matrix and determinant are updated
|
||||||
|
D.complete_operation();
|
||||||
|
std::cout<<"After complete_operation, D.matrix()="<<D.matrix()<<std::endl<<std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Learn more in the full reference, see :ref:`det_manip`
|
||||||
|
|
||||||
|
|
31
test/triqs/det_manip/det_manip_constructors.cpp
Normal file
31
test/triqs/det_manip/det_manip_constructors.cpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include <triqs/det_manip/det_manip.hpp>
|
||||||
|
|
||||||
|
struct fun {
|
||||||
|
|
||||||
|
typedef double result_type;
|
||||||
|
typedef double argument_type;
|
||||||
|
|
||||||
|
//gives the coefficients of the matrix (function F of the documentation)
|
||||||
|
double operator()(double x, double y) const {
|
||||||
|
return(x-y);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
fun f;
|
||||||
|
int init_size=10;
|
||||||
|
std::vector<double> initial_x{1,2,2.5}, initial_y{3,4,9};
|
||||||
|
|
||||||
|
//creation of an empty class det_manip
|
||||||
|
triqs::det_manip::det_manip<fun> D1(f, init_size);
|
||||||
|
|
||||||
|
//creation of a class det_manip with a 3 by 3 matrix
|
||||||
|
triqs::det_manip::det_manip<fun> D2(f, initial_x, initial_y);
|
||||||
|
|
||||||
|
//the initial matrix:
|
||||||
|
std::cout<<std::endl<< "After construction: D.matrix()=" << D1.matrix()<<std::endl;
|
||||||
|
std::cout<<std::endl<< "After construction: D.matrix()=" << D2.matrix()<<std::endl;
|
||||||
|
|
||||||
|
}
|
@ -206,7 +206,7 @@ namespace triqs { namespace det_manip {
|
|||||||
* \param X, Y : container for X,Y.
|
* \param X, Y : container for X,Y.
|
||||||
*/
|
*/
|
||||||
template<typename ArgumentContainer1, typename ArgumentContainer2>
|
template<typename ArgumentContainer1, typename ArgumentContainer2>
|
||||||
det_manip(FunctionType F, ArgumentContainer1 const & X, ArgumentContainer2 const & Y) : f(std::move(F)) {
|
det_manip(FunctionType F, ArgumentContainer1 const & X, ArgumentContainer2 const & Y) : f(std::move(F)), Nmax(0) {
|
||||||
if (X.size() != Y.size()) TRIQS_RUNTIME_ERROR<< " X.size != Y.size";
|
if (X.size() != Y.size()) TRIQS_RUNTIME_ERROR<< " X.size != Y.size";
|
||||||
_construct_common();
|
_construct_common();
|
||||||
N =X.size();
|
N =X.size();
|
||||||
|
Loading…
Reference in New Issue
Block a user