20#ifndef CCGSL_MOVSTAT_FUNCTION_HPP
21#define CCGSL_MOVSTAT_FUNCTION_HPP
23#include<gsl/gsl_movstat.h>
68 typedef double (*function_t)(size_t,
double*,
void*);
82 class Fuvcr :
public base_F {
88 Fuvcr(
double (*
const f)(
gsl::vector const&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
109 static double fn(
size_t n,
double* x,
void* params ){
110 Fuvcr* ft =
reinterpret_cast<Fuvcr*
>( params );
111 ft->xv.get()->size =
n;
112 ft->xv.get()->data = x;
113 double result = ft->f( ft->xv );
114 ft->xv.get()->data = 0;
115 ft->xv.get()->size = 0;
122 class FuvCr :
public base_F {
128 FuvCr(
double (*
const f)(
gsl::vector const volatile&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
149 static double fn(
size_t n,
double* x,
void* params ){
150 FuvCr* ft =
reinterpret_cast<FuvCr*
>( params );
151 ft->xv.get()->size =
n;
152 ft->xv.get()->data = x;
153 double result = ft->f( ft->xv );
154 ft->xv.get()->data = 0;
155 ft->xv.get()->size = 0;
162 class Fcvcr :
public base_F {
168 Fcvcr(
double const (*
const f)(
gsl::vector const&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
189 static double fn(
size_t n,
double* x,
void* params ){
190 Fcvcr* ft =
reinterpret_cast<Fcvcr*
>( params );
191 ft->xv.get()->size =
n;
192 ft->xv.get()->data = x;
193 double result = ft->f( ft->xv );
194 ft->xv.get()->data = 0;
195 ft->xv.get()->size = 0;
202 class FcvCr :
public base_F {
208 FcvCr(
double const (*
const f)(
gsl::vector const volatile&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
217 double const (*
const f)(
gsl::vector const volatile&);
229 static double fn(
size_t n,
double* x,
void* params ){
230 FcvCr* ft =
reinterpret_cast<FcvCr*
>( params );
231 ft->xv.get()->size =
n;
232 ft->xv.get()->data = x;
233 double result = ft->f( ft->xv );
234 ft->xv.get()->data = 0;
235 ft->xv.get()->size = 0;
242 class Furcr :
public base_F {
248 Furcr(
double& (*
const f)(
gsl::vector const&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
269 static double fn(
size_t n,
double* x,
void* params ){
270 Furcr* ft =
reinterpret_cast<Furcr*
>( params );
271 ft->xv.get()->size =
n;
272 ft->xv.get()->data = x;
273 double result = ft->f( ft->xv );
274 ft->xv.get()->data = 0;
275 ft->xv.get()->size = 0;
282 class FurCr :
public base_F {
288 FurCr(
double& (*
const f)(
gsl::vector const volatile&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
309 static double fn(
size_t n,
double* x,
void* params ){
310 FurCr* ft =
reinterpret_cast<FurCr*
>( params );
311 ft->xv.get()->size =
n;
312 ft->xv.get()->data = x;
313 double result = ft->f( ft->xv );
314 ft->xv.get()->data = 0;
315 ft->xv.get()->size = 0;
322 class Fcrcr :
public base_F {
328 Fcrcr(
double const& (*
const f)(
gsl::vector const&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
349 static double fn(
size_t n,
double* x,
void* params ){
350 Fcrcr* ft =
reinterpret_cast<Fcrcr*
>( params );
351 ft->xv.get()->size =
n;
352 ft->xv.get()->data = x;
353 double result = ft->f( ft->xv );
354 ft->xv.get()->data = 0;
355 ft->xv.get()->size = 0;
362 class FcrCr :
public base_F {
368 FcrCr(
double const& (*
const f)(
gsl::vector const volatile&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
377 double const& (*
const f)(
gsl::vector const volatile&);
389 static double fn(
size_t n,
double* x,
void* params ){
390 FcrCr* ft =
reinterpret_cast<FcrCr*
>( params );
391 ft->xv.get()->size =
n;
392 ft->xv.get()->data = x;
393 double result = ft->f( ft->xv );
394 ft->xv.get()->data = 0;
395 ft->xv.get()->size = 0;
402 class FVrcr :
public base_F {
408 FVrcr(
double volatile& (*
const f)(
gsl::vector const&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
429 static double fn(
size_t n,
double* x,
void* params ){
430 FVrcr* ft =
reinterpret_cast<FVrcr*
>( params );
431 ft->xv.get()->size =
n;
432 ft->xv.get()->data = x;
433 double result = ft->f( ft->xv );
434 ft->xv.get()->data = 0;
435 ft->xv.get()->size = 0;
442 class FVrCr :
public base_F {
448 FVrCr(
double volatile& (*
const f)(
gsl::vector const volatile&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
457 double volatile& (*
const f)(
gsl::vector const volatile&);
469 static double fn(
size_t n,
double* x,
void* params ){
470 FVrCr* ft =
reinterpret_cast<FVrCr*
>( params );
471 ft->xv.get()->size =
n;
472 ft->xv.get()->data = x;
473 double result = ft->f( ft->xv );
474 ft->xv.get()->data = 0;
475 ft->xv.get()->size = 0;
482 class FCrcr :
public base_F {
488 FCrcr(
double const volatile& (*
const f)(
gsl::vector const&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
497 double const volatile& (*
const f)(
gsl::vector const&);
509 static double fn(
size_t n,
double* x,
void* params ){
510 FCrcr* ft =
reinterpret_cast<FCrcr*
>( params );
511 ft->xv.get()->size =
n;
512 ft->xv.get()->data = x;
513 double result = ft->f( ft->xv );
514 ft->xv.get()->data = 0;
515 ft->xv.get()->size = 0;
522 class FCrCr :
public base_F {
528 FCrCr(
double const volatile& (*
const f)(
gsl::vector const volatile&) ) : f( f ), xv(
static_cast<size_t>(0) ){}
537 double const volatile& (*
const f)(
gsl::vector const volatile&);
549 static double fn(
size_t n,
double* x,
void* params ){
550 FCrCr* ft =
reinterpret_cast<FCrCr*
>( params );
551 ft->xv.get()->size =
n;
552 ft->xv.get()->data = x;
553 double result = ft->f( ft->xv );
554 ft->xv.get()->data = 0;
555 ft->xv.get()->size = 0;
564 class Fuvcru :
public base_F {
574 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
580 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
584 function_t
function(){
return &function_s; }
599 static double function_s(
size_t n,
double* x,
void* params ){
600 Fuvcru<T>*
const cl =
reinterpret_cast<Fuvcru<T>*
>( params );
601 cl->xv.get()->size =
n;
602 cl->xv.get()->data = x;
603 double result = (cl->c.*cl->f)( cl->xv );
604 cl->xv.get()->data = 0;
605 cl->xv.get()->size = 0;
622 class FuvCru :
public base_F {
631 FuvCru( T& c,
double (T::*f)(
gsl::vector const volatile&) )
632 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
638 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
642 function_t
function(){
return &function_s; }
657 static double function_s(
size_t n,
double* x,
void* params ){
658 FuvCru<T>*
const cl =
reinterpret_cast<FuvCru<T>*
>( params );
659 cl->xv.get()->size =
n;
660 cl->xv.get()->data = x;
661 double result = (cl->c.*cl->f)( cl->xv );
662 cl->xv.get()->data = 0;
663 cl->xv.get()->size = 0;
680 class Fcvcru :
public base_F {
689 Fcvcru( T& c,
double const (T::*f)(
gsl::vector const&) )
690 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
696 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
700 function_t
function(){
return &function_s; }
715 static double function_s(
size_t n,
double* x,
void* params ){
716 Fcvcru<T>*
const cl =
reinterpret_cast<Fcvcru<T>*
>( params );
717 cl->xv.get()->size =
n;
718 cl->xv.get()->data = x;
719 double result = (cl->c.*cl->f)( cl->xv );
720 cl->xv.get()->data = 0;
721 cl->xv.get()->size = 0;
738 class FcvCru :
public base_F {
747 FcvCru( T& c,
double const (T::*f)(
gsl::vector const volatile&) )
748 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
754 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
758 function_t
function(){
return &function_s; }
773 static double function_s(
size_t n,
double* x,
void* params ){
774 FcvCru<T>*
const cl =
reinterpret_cast<FcvCru<T>*
>( params );
775 cl->xv.get()->size =
n;
776 cl->xv.get()->data = x;
777 double result = (cl->c.*cl->f)( cl->xv );
778 cl->xv.get()->data = 0;
779 cl->xv.get()->size = 0;
796 class Furcru :
public base_F {
805 Furcru( T& c,
double& (T::*f)(
gsl::vector const&) )
806 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
812 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
816 function_t
function(){
return &function_s; }
831 static double function_s(
size_t n,
double* x,
void* params ){
832 Furcru<T>*
const cl =
reinterpret_cast<Furcru<T>*
>( params );
833 cl->xv.get()->size =
n;
834 cl->xv.get()->data = x;
835 double result = (cl->c.*cl->f)( cl->xv );
836 cl->xv.get()->data = 0;
837 cl->xv.get()->size = 0;
854 class FurCru :
public base_F {
863 FurCru( T& c,
double& (T::*f)(
gsl::vector const volatile&) )
864 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
870 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
874 function_t
function(){
return &function_s; }
889 static double function_s(
size_t n,
double* x,
void* params ){
890 FurCru<T>*
const cl =
reinterpret_cast<FurCru<T>*
>( params );
891 cl->xv.get()->size =
n;
892 cl->xv.get()->data = x;
893 double result = (cl->c.*cl->f)( cl->xv );
894 cl->xv.get()->data = 0;
895 cl->xv.get()->size = 0;
912 class Fcrcru :
public base_F {
921 Fcrcru( T& c,
double const& (T::*f)(
gsl::vector const&) )
922 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
928 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
932 function_t
function(){
return &function_s; }
947 static double function_s(
size_t n,
double* x,
void* params ){
948 Fcrcru<T>*
const cl =
reinterpret_cast<Fcrcru<T>*
>( params );
949 cl->xv.get()->size =
n;
950 cl->xv.get()->data = x;
951 double result = (cl->c.*cl->f)( cl->xv );
952 cl->xv.get()->data = 0;
953 cl->xv.get()->size = 0;
970 class FcrCru :
public base_F {
979 FcrCru( T& c,
double const& (T::*f)(
gsl::vector const volatile&) )
980 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
986 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
990 function_t
function(){
return &function_s; }
1005 static double function_s(
size_t n,
double* x,
void* params ){
1006 FcrCru<T>*
const cl =
reinterpret_cast<FcrCru<T>*
>( params );
1007 cl->xv.get()->size =
n;
1008 cl->xv.get()->data = x;
1009 double result = (cl->c.*cl->f)( cl->xv );
1010 cl->xv.get()->data = 0;
1011 cl->xv.get()->size = 0;
1021 double const& (T::*f)(
gsl::vector const volatile&);
1027 template<
typename T>
1028 class FVrcru :
public base_F {
1037 FVrcru( T& c,
double volatile& (T::*f)(
gsl::vector const&) )
1038 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1044 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1048 function_t
function(){
return &function_s; }
1063 static double function_s(
size_t n,
double* x,
void* params ){
1064 FVrcru<T>*
const cl =
reinterpret_cast<FVrcru<T>*
>( params );
1065 cl->xv.get()->size =
n;
1066 cl->xv.get()->data = x;
1067 double result = (cl->c.*cl->f)( cl->xv );
1068 cl->xv.get()->data = 0;
1069 cl->xv.get()->size = 0;
1085 template<
typename T>
1086 class FVrCru :
public base_F {
1095 FVrCru( T& c,
double volatile& (T::*f)(
gsl::vector const volatile&) )
1096 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1102 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1106 function_t
function(){
return &function_s; }
1121 static double function_s(
size_t n,
double* x,
void* params ){
1122 FVrCru<T>*
const cl =
reinterpret_cast<FVrCru<T>*
>( params );
1123 cl->xv.get()->size =
n;
1124 cl->xv.get()->data = x;
1125 double result = (cl->c.*cl->f)( cl->xv );
1126 cl->xv.get()->data = 0;
1127 cl->xv.get()->size = 0;
1137 double volatile& (T::*f)(
gsl::vector const volatile&);
1143 template<
typename T>
1144 class FCrcru :
public base_F {
1153 FCrcru( T& c,
double const volatile& (T::*f)(
gsl::vector const&) )
1154 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1160 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1164 function_t
function(){
return &function_s; }
1179 static double function_s(
size_t n,
double* x,
void* params ){
1180 FCrcru<T>*
const cl =
reinterpret_cast<FCrcru<T>*
>( params );
1181 cl->xv.get()->size =
n;
1182 cl->xv.get()->data = x;
1183 double result = (cl->c.*cl->f)( cl->xv );
1184 cl->xv.get()->data = 0;
1185 cl->xv.get()->size = 0;
1195 double const volatile& (T::*f)(
gsl::vector const&);
1201 template<
typename T>
1202 class FCrCru :
public base_F {
1211 FCrCru( T& c,
double const volatile& (T::*f)(
gsl::vector const volatile&) )
1212 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1218 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1222 function_t
function(){
return &function_s; }
1237 static double function_s(
size_t n,
double* x,
void* params ){
1238 FCrCru<T>*
const cl =
reinterpret_cast<FCrCru<T>*
>( params );
1239 cl->xv.get()->size =
n;
1240 cl->xv.get()->data = x;
1241 double result = (cl->c.*cl->f)( cl->xv );
1242 cl->xv.get()->data = 0;
1243 cl->xv.get()->size = 0;
1253 double const volatile& (T::*f)(
gsl::vector const volatile&);
1259 template<
typename T>
1260 class Fuvcrc :
public base_F {
1269 Fuvcrc( T& c,
double (T::*f)(
gsl::vector const&)
const )
1270 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1276 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1280 function_t
function(){
return &function_s; }
1295 static double function_s(
size_t n,
double* x,
void* params ){
1296 Fuvcrc<T>*
const cl =
reinterpret_cast<Fuvcrc<T>*
>( params );
1297 cl->xv.get()->size =
n;
1298 cl->xv.get()->data = x;
1299 double result = (cl->c.*cl->f)( cl->xv );
1300 cl->xv.get()->data = 0;
1301 cl->xv.get()->size = 0;
1317 template<
typename T>
1318 class FuvCrc :
public base_F {
1327 FuvCrc( T& c,
double (T::*f)(
gsl::vector const volatile&)
const )
1328 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1334 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1338 function_t
function(){
return &function_s; }
1353 static double function_s(
size_t n,
double* x,
void* params ){
1354 FuvCrc<T>*
const cl =
reinterpret_cast<FuvCrc<T>*
>( params );
1355 cl->xv.get()->size =
n;
1356 cl->xv.get()->data = x;
1357 double result = (cl->c.*cl->f)( cl->xv );
1358 cl->xv.get()->data = 0;
1359 cl->xv.get()->size = 0;
1369 double (T::*f)(
gsl::vector const volatile&)
const;
1375 template<
typename T>
1376 class Fcvcrc :
public base_F {
1385 Fcvcrc( T& c,
double const (T::*f)(
gsl::vector const&)
const )
1386 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1392 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1396 function_t
function(){
return &function_s; }
1411 static double function_s(
size_t n,
double* x,
void* params ){
1412 Fcvcrc<T>*
const cl =
reinterpret_cast<Fcvcrc<T>*
>( params );
1413 cl->xv.get()->size =
n;
1414 cl->xv.get()->data = x;
1415 double result = (cl->c.*cl->f)( cl->xv );
1416 cl->xv.get()->data = 0;
1417 cl->xv.get()->size = 0;
1433 template<
typename T>
1434 class FcvCrc :
public base_F {
1443 FcvCrc( T& c,
double const (T::*f)(
gsl::vector const volatile&)
const )
1444 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1450 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1454 function_t
function(){
return &function_s; }
1469 static double function_s(
size_t n,
double* x,
void* params ){
1470 FcvCrc<T>*
const cl =
reinterpret_cast<FcvCrc<T>*
>( params );
1471 cl->xv.get()->size =
n;
1472 cl->xv.get()->data = x;
1473 double result = (cl->c.*cl->f)( cl->xv );
1474 cl->xv.get()->data = 0;
1475 cl->xv.get()->size = 0;
1485 double const (T::*f)(
gsl::vector const volatile&)
const;
1491 template<
typename T>
1492 class Furcrc :
public base_F {
1501 Furcrc( T& c,
double& (T::*f)(
gsl::vector const&)
const )
1502 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1508 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1512 function_t
function(){
return &function_s; }
1527 static double function_s(
size_t n,
double* x,
void* params ){
1528 Furcrc<T>*
const cl =
reinterpret_cast<Furcrc<T>*
>( params );
1529 cl->xv.get()->size =
n;
1530 cl->xv.get()->data = x;
1531 double result = (cl->c.*cl->f)( cl->xv );
1532 cl->xv.get()->data = 0;
1533 cl->xv.get()->size = 0;
1549 template<
typename T>
1550 class FurCrc :
public base_F {
1559 FurCrc( T& c,
double& (T::*f)(
gsl::vector const volatile&)
const )
1560 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1566 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1570 function_t
function(){
return &function_s; }
1585 static double function_s(
size_t n,
double* x,
void* params ){
1586 FurCrc<T>*
const cl =
reinterpret_cast<FurCrc<T>*
>( params );
1587 cl->xv.get()->size =
n;
1588 cl->xv.get()->data = x;
1589 double result = (cl->c.*cl->f)( cl->xv );
1590 cl->xv.get()->data = 0;
1591 cl->xv.get()->size = 0;
1601 double& (T::*f)(
gsl::vector const volatile&)
const;
1607 template<
typename T>
1608 class Fcrcrc :
public base_F {
1617 Fcrcrc( T& c,
double const& (T::*f)(
gsl::vector const&)
const )
1618 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1624 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1628 function_t
function(){
return &function_s; }
1643 static double function_s(
size_t n,
double* x,
void* params ){
1644 Fcrcrc<T>*
const cl =
reinterpret_cast<Fcrcrc<T>*
>( params );
1645 cl->xv.get()->size =
n;
1646 cl->xv.get()->data = x;
1647 double result = (cl->c.*cl->f)( cl->xv );
1648 cl->xv.get()->data = 0;
1649 cl->xv.get()->size = 0;
1665 template<
typename T>
1666 class FcrCrc :
public base_F {
1675 FcrCrc( T& c,
double const& (T::*f)(
gsl::vector const volatile&)
const )
1676 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1682 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1686 function_t
function(){
return &function_s; }
1701 static double function_s(
size_t n,
double* x,
void* params ){
1702 FcrCrc<T>*
const cl =
reinterpret_cast<FcrCrc<T>*
>( params );
1703 cl->xv.get()->size =
n;
1704 cl->xv.get()->data = x;
1705 double result = (cl->c.*cl->f)( cl->xv );
1706 cl->xv.get()->data = 0;
1707 cl->xv.get()->size = 0;
1717 double const& (T::*f)(
gsl::vector const volatile&)
const;
1723 template<
typename T>
1724 class FVrcrc :
public base_F {
1733 FVrcrc( T& c,
double volatile& (T::*f)(
gsl::vector const&)
const )
1734 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1740 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1744 function_t
function(){
return &function_s; }
1759 static double function_s(
size_t n,
double* x,
void* params ){
1760 FVrcrc<T>*
const cl =
reinterpret_cast<FVrcrc<T>*
>( params );
1761 cl->xv.get()->size =
n;
1762 cl->xv.get()->data = x;
1763 double result = (cl->c.*cl->f)( cl->xv );
1764 cl->xv.get()->data = 0;
1765 cl->xv.get()->size = 0;
1775 double volatile& (T::*f)(
gsl::vector const&)
const;
1781 template<
typename T>
1782 class FVrCrc :
public base_F {
1791 FVrCrc( T& c,
double volatile& (T::*f)(
gsl::vector const volatile&)
const )
1792 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1798 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1802 function_t
function(){
return &function_s; }
1817 static double function_s(
size_t n,
double* x,
void* params ){
1818 FVrCrc<T>*
const cl =
reinterpret_cast<FVrCrc<T>*
>( params );
1819 cl->xv.get()->size =
n;
1820 cl->xv.get()->data = x;
1821 double result = (cl->c.*cl->f)( cl->xv );
1822 cl->xv.get()->data = 0;
1823 cl->xv.get()->size = 0;
1833 double volatile& (T::*f)(
gsl::vector const volatile&)
const;
1839 template<
typename T>
1840 class FCrcrc :
public base_F {
1849 FCrcrc( T& c,
double const volatile& (T::*f)(
gsl::vector const&)
const )
1850 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1856 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1860 function_t
function(){
return &function_s; }
1875 static double function_s(
size_t n,
double* x,
void* params ){
1876 FCrcrc<T>*
const cl =
reinterpret_cast<FCrcrc<T>*
>( params );
1877 cl->xv.get()->size =
n;
1878 cl->xv.get()->data = x;
1879 double result = (cl->c.*cl->f)( cl->xv );
1880 cl->xv.get()->data = 0;
1881 cl->xv.get()->size = 0;
1891 double const volatile& (T::*f)(
gsl::vector const&)
const;
1897 template<
typename T>
1898 class FCrCrc :
public base_F {
1907 FCrCrc( T& c,
double const volatile& (T::*f)(
gsl::vector const volatile&)
const )
1908 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1914 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1918 function_t
function(){
return &function_s; }
1933 static double function_s(
size_t n,
double* x,
void* params ){
1934 FCrCrc<T>*
const cl =
reinterpret_cast<FCrCrc<T>*
>( params );
1935 cl->xv.get()->size =
n;
1936 cl->xv.get()->data = x;
1937 double result = (cl->c.*cl->f)( cl->xv );
1938 cl->xv.get()->data = 0;
1939 cl->xv.get()->size = 0;
1949 double const volatile& (T::*f)(
gsl::vector const volatile&)
const;
1955 template<
typename T>
1956 class FuvcrV :
public base_F {
1965 FuvcrV( T& c,
double (T::*f)(
gsl::vector const&)
volatile )
1966 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
1972 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
1976 function_t
function(){
return &function_s; }
1991 static double function_s(
size_t n,
double* x,
void* params ){
1992 FuvcrV<T>*
const cl =
reinterpret_cast<FuvcrV<T>*
>( params );
1993 cl->xv.get()->size =
n;
1994 cl->xv.get()->data = x;
1995 double result = (cl->c.*cl->f)( cl->xv );
1996 cl->xv.get()->data = 0;
1997 cl->xv.get()->size = 0;
2013 template<
typename T>
2014 class FuvCrV :
public base_F {
2023 FuvCrV( T& c,
double (T::*f)(
gsl::vector const volatile&)
volatile )
2024 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2030 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2034 function_t
function(){
return &function_s; }
2049 static double function_s(
size_t n,
double* x,
void* params ){
2050 FuvCrV<T>*
const cl =
reinterpret_cast<FuvCrV<T>*
>( params );
2051 cl->xv.get()->size =
n;
2052 cl->xv.get()->data = x;
2053 double result = (cl->c.*cl->f)( cl->xv );
2054 cl->xv.get()->data = 0;
2055 cl->xv.get()->size = 0;
2065 double (T::*f)(
gsl::vector const volatile&)
volatile;
2071 template<
typename T>
2072 class FcvcrV :
public base_F {
2081 FcvcrV( T& c,
double const (T::*f)(
gsl::vector const&)
volatile )
2082 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2088 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2092 function_t
function(){
return &function_s; }
2107 static double function_s(
size_t n,
double* x,
void* params ){
2108 FcvcrV<T>*
const cl =
reinterpret_cast<FcvcrV<T>*
>( params );
2109 cl->xv.get()->size =
n;
2110 cl->xv.get()->data = x;
2111 double result = (cl->c.*cl->f)( cl->xv );
2112 cl->xv.get()->data = 0;
2113 cl->xv.get()->size = 0;
2123 double const (T::*f)(
gsl::vector const&)
volatile;
2129 template<
typename T>
2130 class FcvCrV :
public base_F {
2139 FcvCrV( T& c,
double const (T::*f)(
gsl::vector const volatile&)
volatile )
2140 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2146 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2150 function_t
function(){
return &function_s; }
2165 static double function_s(
size_t n,
double* x,
void* params ){
2166 FcvCrV<T>*
const cl =
reinterpret_cast<FcvCrV<T>*
>( params );
2167 cl->xv.get()->size =
n;
2168 cl->xv.get()->data = x;
2169 double result = (cl->c.*cl->f)( cl->xv );
2170 cl->xv.get()->data = 0;
2171 cl->xv.get()->size = 0;
2181 double const (T::*f)(
gsl::vector const volatile&)
volatile;
2187 template<
typename T>
2188 class FurcrV :
public base_F {
2197 FurcrV( T& c,
double& (T::*f)(
gsl::vector const&)
volatile )
2198 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2204 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2208 function_t
function(){
return &function_s; }
2223 static double function_s(
size_t n,
double* x,
void* params ){
2224 FurcrV<T>*
const cl =
reinterpret_cast<FurcrV<T>*
>( params );
2225 cl->xv.get()->size =
n;
2226 cl->xv.get()->data = x;
2227 double result = (cl->c.*cl->f)( cl->xv );
2228 cl->xv.get()->data = 0;
2229 cl->xv.get()->size = 0;
2245 template<
typename T>
2246 class FurCrV :
public base_F {
2255 FurCrV( T& c,
double& (T::*f)(
gsl::vector const volatile&)
volatile )
2256 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2262 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2266 function_t
function(){
return &function_s; }
2281 static double function_s(
size_t n,
double* x,
void* params ){
2282 FurCrV<T>*
const cl =
reinterpret_cast<FurCrV<T>*
>( params );
2283 cl->xv.get()->size =
n;
2284 cl->xv.get()->data = x;
2285 double result = (cl->c.*cl->f)( cl->xv );
2286 cl->xv.get()->data = 0;
2287 cl->xv.get()->size = 0;
2297 double& (T::*f)(
gsl::vector const volatile&)
volatile;
2303 template<
typename T>
2304 class FcrcrV :
public base_F {
2313 FcrcrV( T& c,
double const& (T::*f)(
gsl::vector const&)
volatile )
2314 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2320 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2324 function_t
function(){
return &function_s; }
2339 static double function_s(
size_t n,
double* x,
void* params ){
2340 FcrcrV<T>*
const cl =
reinterpret_cast<FcrcrV<T>*
>( params );
2341 cl->xv.get()->size =
n;
2342 cl->xv.get()->data = x;
2343 double result = (cl->c.*cl->f)( cl->xv );
2344 cl->xv.get()->data = 0;
2345 cl->xv.get()->size = 0;
2355 double const& (T::*f)(
gsl::vector const&)
volatile;
2361 template<
typename T>
2362 class FcrCrV :
public base_F {
2371 FcrCrV( T& c,
double const& (T::*f)(
gsl::vector const volatile&)
volatile )
2372 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2378 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2382 function_t
function(){
return &function_s; }
2397 static double function_s(
size_t n,
double* x,
void* params ){
2398 FcrCrV<T>*
const cl =
reinterpret_cast<FcrCrV<T>*
>( params );
2399 cl->xv.get()->size =
n;
2400 cl->xv.get()->data = x;
2401 double result = (cl->c.*cl->f)( cl->xv );
2402 cl->xv.get()->data = 0;
2403 cl->xv.get()->size = 0;
2413 double const& (T::*f)(
gsl::vector const volatile&)
volatile;
2419 template<
typename T>
2420 class FVrcrV :
public base_F {
2429 FVrcrV( T& c,
double volatile& (T::*f)(
gsl::vector const&)
volatile )
2430 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2436 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2440 function_t
function(){
return &function_s; }
2455 static double function_s(
size_t n,
double* x,
void* params ){
2456 FVrcrV<T>*
const cl =
reinterpret_cast<FVrcrV<T>*
>( params );
2457 cl->xv.get()->size =
n;
2458 cl->xv.get()->data = x;
2459 double result = (cl->c.*cl->f)( cl->xv );
2460 cl->xv.get()->data = 0;
2461 cl->xv.get()->size = 0;
2471 double volatile& (T::*f)(
gsl::vector const&)
volatile;
2477 template<
typename T>
2478 class FVrCrV :
public base_F {
2487 FVrCrV( T& c,
double volatile& (T::*f)(
gsl::vector const volatile&)
volatile )
2488 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2494 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2498 function_t
function(){
return &function_s; }
2513 static double function_s(
size_t n,
double* x,
void* params ){
2514 FVrCrV<T>*
const cl =
reinterpret_cast<FVrCrV<T>*
>( params );
2515 cl->xv.get()->size =
n;
2516 cl->xv.get()->data = x;
2517 double result = (cl->c.*cl->f)( cl->xv );
2518 cl->xv.get()->data = 0;
2519 cl->xv.get()->size = 0;
2529 double volatile& (T::*f)(
gsl::vector const volatile&)
volatile;
2535 template<
typename T>
2536 class FCrcrV :
public base_F {
2545 FCrcrV( T& c,
double const volatile& (T::*f)(
gsl::vector const&)
volatile )
2546 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2552 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2556 function_t
function(){
return &function_s; }
2571 static double function_s(
size_t n,
double* x,
void* params ){
2572 FCrcrV<T>*
const cl =
reinterpret_cast<FCrcrV<T>*
>( params );
2573 cl->xv.get()->size =
n;
2574 cl->xv.get()->data = x;
2575 double result = (cl->c.*cl->f)( cl->xv );
2576 cl->xv.get()->data = 0;
2577 cl->xv.get()->size = 0;
2587 double const volatile& (T::*f)(
gsl::vector const&)
volatile;
2593 template<
typename T>
2594 class FCrCrV :
public base_F {
2603 FCrCrV( T& c,
double const volatile& (T::*f)(
gsl::vector const volatile&)
volatile )
2604 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2610 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2614 function_t
function(){
return &function_s; }
2629 static double function_s(
size_t n,
double* x,
void* params ){
2630 FCrCrV<T>*
const cl =
reinterpret_cast<FCrCrV<T>*
>( params );
2631 cl->xv.get()->size =
n;
2632 cl->xv.get()->data = x;
2633 double result = (cl->c.*cl->f)( cl->xv );
2634 cl->xv.get()->data = 0;
2635 cl->xv.get()->size = 0;
2645 double const volatile& (T::*f)(
gsl::vector const volatile&)
volatile;
2651 template<
typename T>
2652 class FuvcrC :
public base_F {
2661 FuvcrC( T& c,
double (T::*f)(
gsl::vector const&)
const volatile )
2662 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2668 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2672 function_t
function(){
return &function_s; }
2687 static double function_s(
size_t n,
double* x,
void* params ){
2688 FuvcrC<T>*
const cl =
reinterpret_cast<FuvcrC<T>*
>( params );
2689 cl->xv.get()->size =
n;
2690 cl->xv.get()->data = x;
2691 double result = (cl->c.*cl->f)( cl->xv );
2692 cl->xv.get()->data = 0;
2693 cl->xv.get()->size = 0;
2703 double (T::*f)(
gsl::vector const&)
const volatile;
2709 template<
typename T>
2710 class FuvCrC :
public base_F {
2719 FuvCrC( T& c,
double (T::*f)(
gsl::vector const volatile&)
const volatile )
2720 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2726 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2730 function_t
function(){
return &function_s; }
2745 static double function_s(
size_t n,
double* x,
void* params ){
2746 FuvCrC<T>*
const cl =
reinterpret_cast<FuvCrC<T>*
>( params );
2747 cl->xv.get()->size =
n;
2748 cl->xv.get()->data = x;
2749 double result = (cl->c.*cl->f)( cl->xv );
2750 cl->xv.get()->data = 0;
2751 cl->xv.get()->size = 0;
2761 double (T::*f)(
gsl::vector const volatile&)
const volatile;
2767 template<
typename T>
2768 class FcvcrC :
public base_F {
2777 FcvcrC( T& c,
double const (T::*f)(
gsl::vector const&)
const volatile )
2778 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2784 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2788 function_t
function(){
return &function_s; }
2803 static double function_s(
size_t n,
double* x,
void* params ){
2804 FcvcrC<T>*
const cl =
reinterpret_cast<FcvcrC<T>*
>( params );
2805 cl->xv.get()->size =
n;
2806 cl->xv.get()->data = x;
2807 double result = (cl->c.*cl->f)( cl->xv );
2808 cl->xv.get()->data = 0;
2809 cl->xv.get()->size = 0;
2819 double const (T::*f)(
gsl::vector const&)
const volatile;
2825 template<
typename T>
2826 class FcvCrC :
public base_F {
2835 FcvCrC( T& c,
double const (T::*f)(
gsl::vector const volatile&)
const volatile )
2836 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2842 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2846 function_t
function(){
return &function_s; }
2861 static double function_s(
size_t n,
double* x,
void* params ){
2862 FcvCrC<T>*
const cl =
reinterpret_cast<FcvCrC<T>*
>( params );
2863 cl->xv.get()->size =
n;
2864 cl->xv.get()->data = x;
2865 double result = (cl->c.*cl->f)( cl->xv );
2866 cl->xv.get()->data = 0;
2867 cl->xv.get()->size = 0;
2877 double const (T::*f)(
gsl::vector const volatile&)
const volatile;
2883 template<
typename T>
2884 class FurcrC :
public base_F {
2893 FurcrC( T& c,
double& (T::*f)(
gsl::vector const&)
const volatile )
2894 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2900 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2904 function_t
function(){
return &function_s; }
2919 static double function_s(
size_t n,
double* x,
void* params ){
2920 FurcrC<T>*
const cl =
reinterpret_cast<FurcrC<T>*
>( params );
2921 cl->xv.get()->size =
n;
2922 cl->xv.get()->data = x;
2923 double result = (cl->c.*cl->f)( cl->xv );
2924 cl->xv.get()->data = 0;
2925 cl->xv.get()->size = 0;
2935 double& (T::*f)(
gsl::vector const&)
const volatile;
2941 template<
typename T>
2942 class FurCrC :
public base_F {
2951 FurCrC( T& c,
double& (T::*f)(
gsl::vector const volatile&)
const volatile )
2952 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
2958 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
2962 function_t
function(){
return &function_s; }
2977 static double function_s(
size_t n,
double* x,
void* params ){
2978 FurCrC<T>*
const cl =
reinterpret_cast<FurCrC<T>*
>( params );
2979 cl->xv.get()->size =
n;
2980 cl->xv.get()->data = x;
2981 double result = (cl->c.*cl->f)( cl->xv );
2982 cl->xv.get()->data = 0;
2983 cl->xv.get()->size = 0;
2993 double& (T::*f)(
gsl::vector const volatile&)
const volatile;
2999 template<
typename T>
3000 class FcrcrC :
public base_F {
3009 FcrcrC( T& c,
double const& (T::*f)(
gsl::vector const&)
const volatile )
3010 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
3016 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
3020 function_t
function(){
return &function_s; }
3035 static double function_s(
size_t n,
double* x,
void* params ){
3036 FcrcrC<T>*
const cl =
reinterpret_cast<FcrcrC<T>*
>( params );
3037 cl->xv.get()->size =
n;
3038 cl->xv.get()->data = x;
3039 double result = (cl->c.*cl->f)( cl->xv );
3040 cl->xv.get()->data = 0;
3041 cl->xv.get()->size = 0;
3051 double const& (T::*f)(
gsl::vector const&)
const volatile;
3057 template<
typename T>
3058 class FcrCrC :
public base_F {
3067 FcrCrC( T& c,
double const& (T::*f)(
gsl::vector const volatile&)
const volatile )
3068 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
3074 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
3078 function_t
function(){
return &function_s; }
3093 static double function_s(
size_t n,
double* x,
void* params ){
3094 FcrCrC<T>*
const cl =
reinterpret_cast<FcrCrC<T>*
>( params );
3095 cl->xv.get()->size =
n;
3096 cl->xv.get()->data = x;
3097 double result = (cl->c.*cl->f)( cl->xv );
3098 cl->xv.get()->data = 0;
3099 cl->xv.get()->size = 0;
3109 double const& (T::*f)(
gsl::vector const volatile&)
const volatile;
3115 template<
typename T>
3116 class FVrcrC :
public base_F {
3125 FVrcrC( T& c,
double volatile& (T::*f)(
gsl::vector const&)
const volatile )
3126 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
3132 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
3136 function_t
function(){
return &function_s; }
3151 static double function_s(
size_t n,
double* x,
void* params ){
3152 FVrcrC<T>*
const cl =
reinterpret_cast<FVrcrC<T>*
>( params );
3153 cl->xv.get()->size =
n;
3154 cl->xv.get()->data = x;
3155 double result = (cl->c.*cl->f)( cl->xv );
3156 cl->xv.get()->data = 0;
3157 cl->xv.get()->size = 0;
3167 double volatile& (T::*f)(
gsl::vector const&)
const volatile;
3173 template<
typename T>
3174 class FVrCrC :
public base_F {
3183 FVrCrC( T& c,
double volatile& (T::*f)(
gsl::vector const volatile&)
const volatile )
3184 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
3190 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
3194 function_t
function(){
return &function_s; }
3209 static double function_s(
size_t n,
double* x,
void* params ){
3210 FVrCrC<T>*
const cl =
reinterpret_cast<FVrCrC<T>*
>( params );
3211 cl->xv.get()->size =
n;
3212 cl->xv.get()->data = x;
3213 double result = (cl->c.*cl->f)( cl->xv );
3214 cl->xv.get()->data = 0;
3215 cl->xv.get()->size = 0;
3225 double volatile& (T::*f)(
gsl::vector const volatile&)
const volatile;
3231 template<
typename T>
3232 class FCrcrC :
public base_F {
3241 FCrcrC( T& c,
double const volatile& (T::*f)(
gsl::vector const&)
const volatile )
3242 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
3248 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
3252 function_t
function(){
return &function_s; }
3267 static double function_s(
size_t n,
double* x,
void* params ){
3268 FCrcrC<T>*
const cl =
reinterpret_cast<FCrcrC<T>*
>( params );
3269 cl->xv.get()->size =
n;
3270 cl->xv.get()->data = x;
3271 double result = (cl->c.*cl->f)( cl->xv );
3272 cl->xv.get()->data = 0;
3273 cl->xv.get()->size = 0;
3283 double const volatile& (T::*f)(
gsl::vector const&)
const volatile;
3289 template<
typename T>
3290 class FCrCrC :
public base_F {
3299 FCrCrC( T& c,
double const volatile& (T::*f)(
gsl::vector const volatile&)
const volatile )
3300 : xv(
static_cast<size_t>(0) ), c( c ), f( f ){}
3306 double operator()(
gsl::vector const& x ){
return (c.*f)( x ); }
3310 function_t
function(){
return &function_s; }
3325 static double function_s(
size_t n,
double* x,
void* params ){
3326 FCrCrC<T>*
const cl =
reinterpret_cast<FCrCrC<T>*
>( params );
3327 cl->xv.get()->size =
n;
3328 cl->xv.get()->data = x;
3329 double result = (cl->c.*cl->f)( cl->xv );
3330 cl->xv.get()->data = 0;
3331 cl->xv.get()->size = 0;
3341 double const volatile& (T::*f)(
gsl::vector const volatile&)
const volatile;
3355 gsl_movstat_function::function = 0;
3366 gsl_movstat_function::function =
base_f->function();
3379 gsl_movstat_function::function =
base_f->function();
3391 gsl_movstat_function::function =
base_f->function();
3403 gsl_movstat_function::function =
base_f->function();
3417 gsl_movstat_function::function =
base_f->function();
3429 gsl_movstat_function::function =
base_f->function();
3443 gsl_movstat_function::function =
base_f->function();
3455 gsl_movstat_function::function =
base_f->function();
3469 gsl_movstat_function::function =
base_f->function();
3481 gsl_movstat_function::function =
base_f->function();
3495 gsl_movstat_function::function =
base_f->function();
3507 gsl_movstat_function::function =
base_f->function();
3519 base_f =
new Fuvcru<T>( c, f );
3521 gsl_movstat_function::function =
base_f->function();
3533 base_f =
new FuvCru<T>( c, f );
3535 gsl_movstat_function::function =
base_f->function();
3546 base_f =
new Fcvcru<T>( c, f );
3548 gsl_movstat_function::function =
base_f->function();
3559 base_f =
new FcvCru<T>( c, f );
3561 gsl_movstat_function::function =
base_f->function();
3574 base_f =
new Furcru<T>( c, f );
3576 gsl_movstat_function::function =
base_f->function();
3587 base_f =
new FurCru<T>( c, f );
3589 gsl_movstat_function::function =
base_f->function();
3602 base_f =
new Fcrcru<T>( c, f );
3604 gsl_movstat_function::function =
base_f->function();
3614 template<
typename T>
function( T& c,
double const& (T::*f)(
gsl::vector const volatile&) ){
3615 base_f =
new FcrCru<T>( c, f );
3617 gsl_movstat_function::function =
base_f->function();
3630 base_f =
new FVrcru<T>( c, f );
3632 gsl_movstat_function::function =
base_f->function();
3642 template<
typename T>
function( T& c,
double volatile& (T::*f)(
gsl::vector const volatile&) ){
3643 base_f =
new FVrCru<T>( c, f );
3645 gsl_movstat_function::function =
base_f->function();
3657 template<
typename T>
function( T& c,
double const volatile& (T::*f)(
gsl::vector const&) ){
3658 base_f =
new FCrcru<T>( c, f );
3660 gsl_movstat_function::function =
base_f->function();
3670 template<
typename T>
function( T& c,
double const volatile& (T::*f)(
gsl::vector const volatile&) ){
3671 base_f =
new FCrCru<T>( c, f );
3673 gsl_movstat_function::function =
base_f->function();
3686 base_f =
new Fuvcrc<T>( c, f );
3688 gsl_movstat_function::function =
base_f->function();
3699 base_f =
new FuvCrc<T>( c, f );
3701 gsl_movstat_function::function =
base_f->function();
3714 base_f =
new Fcvcrc<T>( c, f );
3716 gsl_movstat_function::function =
base_f->function();
3726 template<
typename T>
function( T& c,
double const (T::*f)(
gsl::vector const volatile&)
const ){
3727 base_f =
new FcvCrc<T>( c, f );
3729 gsl_movstat_function::function =
base_f->function();
3742 base_f =
new Furcrc<T>( c, f );
3744 gsl_movstat_function::function =
base_f->function();
3754 template<
typename T>
function( T& c,
double& (T::*f)(
gsl::vector const volatile&)
const ){
3755 base_f =
new FurCrc<T>( c, f );
3757 gsl_movstat_function::function =
base_f->function();
3770 base_f =
new Fcrcrc<T>( c, f );
3772 gsl_movstat_function::function =
base_f->function();
3782 template<
typename T>
function( T& c,
double const& (T::*f)(
gsl::vector const volatile&)
const ){
3783 base_f =
new FcrCrc<T>( c, f );
3785 gsl_movstat_function::function =
base_f->function();
3797 template<
typename T>
function( T& c,
double volatile& (T::*f)(
gsl::vector const&)
const ){
3798 base_f =
new FVrcrc<T>( c, f );
3800 gsl_movstat_function::function =
base_f->function();
3810 template<
typename T>
function( T& c,
double volatile& (T::*f)(
gsl::vector const volatile&)
const ){
3811 base_f =
new FVrCrc<T>( c, f );
3813 gsl_movstat_function::function =
base_f->function();
3825 template<
typename T>
function( T& c,
double const volatile& (T::*f)(
gsl::vector const&)
const ){
3826 base_f =
new FCrcrc<T>( c, f );
3828 gsl_movstat_function::function =
base_f->function();
3838 template<
typename T>
function( T& c,
double const volatile& (T::*f)(
gsl::vector const volatile&)
const ){
3839 base_f =
new FCrCrc<T>( c, f );
3841 gsl_movstat_function::function =
base_f->function();
3854 base_f =
new FuvcrV<T>( c, f );
3856 gsl_movstat_function::function =
base_f->function();
3866 template<
typename T>
function( T& c,
double (T::*f)(
gsl::vector const volatile&)
volatile ){
3867 base_f =
new FuvCrV<T>( c, f );
3869 gsl_movstat_function::function =
base_f->function();
3882 base_f =
new FcvcrV<T>( c, f );
3884 gsl_movstat_function::function =
base_f->function();
3894 template<
typename T>
function( T& c,
double const (T::*f)(
gsl::vector const volatile&)
volatile ){
3895 base_f =
new FcvCrV<T>( c, f );
3897 gsl_movstat_function::function =
base_f->function();
3910 base_f =
new FurcrV<T>( c, f );
3912 gsl_movstat_function::function =
base_f->function();
3922 template<
typename T>
function( T& c,
double& (T::*f)(
gsl::vector const volatile&)
volatile ){
3923 base_f =
new FurCrV<T>( c, f );
3925 gsl_movstat_function::function =
base_f->function();
3937 template<
typename T>
function( T& c,
double const& (T::*f)(
gsl::vector const&)
volatile ){
3938 base_f =
new FcrcrV<T>( c, f );
3940 gsl_movstat_function::function =
base_f->function();
3950 template<
typename T>
function( T& c,
double const& (T::*f)(
gsl::vector const volatile&)
volatile ){
3951 base_f =
new FcrCrV<T>( c, f );
3953 gsl_movstat_function::function =
base_f->function();
3965 template<
typename T>
function( T& c,
double volatile& (T::*f)(
gsl::vector const&)
volatile ){
3966 base_f =
new FVrcrV<T>( c, f );
3968 gsl_movstat_function::function =
base_f->function();
3978 template<
typename T>
function( T& c,
double volatile& (T::*f)(
gsl::vector const volatile&)
volatile ){
3979 base_f =
new FVrCrV<T>( c, f );
3981 gsl_movstat_function::function =
base_f->function();
3993 template<
typename T>
function( T& c,
double const volatile& (T::*f)(
gsl::vector const&)
volatile ){
3994 base_f =
new FCrcrV<T>( c, f );
3996 gsl_movstat_function::function =
base_f->function();
4006 template<
typename T>
function( T& c,
double const volatile& (T::*f)(
gsl::vector const volatile&)
volatile ){
4007 base_f =
new FCrCrV<T>( c, f );
4009 gsl_movstat_function::function =
base_f->function();
4022 base_f =
new FuvcrC<T>( c, f );
4024 gsl_movstat_function::function =
base_f->function();
4034 template<
typename T>
function( T& c,
double (T::*f)(
gsl::vector const volatile&)
const volatile ){
4035 base_f =
new FuvCrC<T>( c, f );
4037 gsl_movstat_function::function =
base_f->function();
4049 template<
typename T>
function( T& c,
double const (T::*f)(
gsl::vector const&)
const volatile ){
4050 base_f =
new FcvcrC<T>( c, f );
4052 gsl_movstat_function::function =
base_f->function();
4062 template<
typename T>
function( T& c,
double const (T::*f)(
gsl::vector const volatile&)
const volatile ){
4063 base_f =
new FcvCrC<T>( c, f );
4065 gsl_movstat_function::function =
base_f->function();
4077 template<
typename T>
function( T& c,
double& (T::*f)(
gsl::vector const&)
const volatile ){
4078 base_f =
new FurcrC<T>( c, f );
4080 gsl_movstat_function::function =
base_f->function();
4090 template<
typename T>
function( T& c,
double& (T::*f)(
gsl::vector const volatile&)
const volatile ){
4091 base_f =
new FurCrC<T>( c, f );
4093 gsl_movstat_function::function =
base_f->function();
4105 template<
typename T>
function( T& c,
double const& (T::*f)(
gsl::vector const&)
const volatile ){
4106 base_f =
new FcrcrC<T>( c, f );
4108 gsl_movstat_function::function =
base_f->function();
4118 template<
typename T>
function( T& c,
double const& (T::*f)(
gsl::vector const volatile&)
const volatile ){
4119 base_f =
new FcrCrC<T>( c, f );
4121 gsl_movstat_function::function =
base_f->function();
4133 template<
typename T>
function( T& c,
double volatile& (T::*f)(
gsl::vector const&)
const volatile ){
4134 base_f =
new FVrcrC<T>( c, f );
4136 gsl_movstat_function::function =
base_f->function();
4146 template<
typename T>
function( T& c,
double volatile& (T::*f)(
gsl::vector const volatile&)
const volatile ){
4147 base_f =
new FVrCrC<T>( c, f );
4149 gsl_movstat_function::function =
base_f->function();
4161 template<
typename T>
function( T& c,
double const volatile& (T::*f)(
gsl::vector const&)
const volatile ){
4162 base_f =
new FCrcrC<T>( c, f );
4164 gsl_movstat_function::function =
base_f->function();
4174 template<
typename T>
function( T& c,
double const volatile& (T::*f)(
gsl::vector const volatile&)
const volatile ){
4175 base_f =
new FCrCrC<T>( c, f );
4177 gsl_movstat_function::function =
base_f->function();
4190 gsl_movstat_function::function = v.gsl_movstat_function::function;
4207 gsl_movstat_function::function = v.gsl_movstat_function::function;
4213#ifdef __GXX_EXPERIMENTAL_CXX0X__
4219 std::swap( gsl_movstat_function::function, v.gsl_movstat_function::function );
4220 std::swap( params, v.params );
4221 std::swap(
count, v.count );
4230 std::swap(
base_f, v.base_f );
4231 std::swap( gsl_movstat_function::function, v.gsl_movstat_function::function );
4232 std::swap( params, v.params );
4233 std::swap(
count, v.count );
4257 static double fn(
size_t n,
double* x,
void* params ){
4258 base_F*
const b =
reinterpret_cast<base_F*
>( params );
4259 return b->function()(
n, x, params );
4267 template<
typename T>
4278 template<
typename T>
4280 function fn( c, f );
4288 template<
typename T>
4290 function fn( c, f );
4298 template<
typename T>
4300 function fn( c, f );
4310 template<
typename T>
4312 function fn( c, f );
4320 template<
typename T>
4322 function fn( c, f );
4332 template<
typename T>
4334 function fn( c, f );
4342 template<
typename T>
4344 function fn( c, f );
4354 template<
typename T>
4356 function fn( c, f );
4364 template<
typename T>
4366 function fn( c, f );
4376 template<
typename T>
4378 function fn( c, f );
4386 template<
typename T>
4388 function fn( c, f );
4398 template<
typename T>
4400 function fn( c, f );
4408 template<
typename T>
4410 function fn( c, f );
4420 template<
typename T>
4422 function fn( c, f );
4430 template<
typename T>
4432 function fn( c, f );
4442 template<
typename T>
4444 function fn( c, f );
4452 template<
typename T>
4454 function fn( c, f );
4464 template<
typename T>
4466 function fn( c, f );
4474 template<
typename T>
4476 function fn( c, f );
4486 template<
typename T>
4488 function fn( c, f );
4496 template<
typename T>
4498 function fn( c, f );
4508 template<
typename T>
4510 function fn( c, f );
4518 template<
typename T>
4520 function fn( c, f );
4530 template<
typename T>
4532 function fn( c, f );
4540 template<
typename T>
4542 function fn( c, f );
4552 template<
typename T>
4554 function fn( c, f );
4562 template<
typename T>
4564 function fn( c, f );
4574 template<
typename T>
4576 function fn( c, f );
4584 template<
typename T>
4586 function fn( c, f );
4596 template<
typename T>
4598 function fn( c, f );
4606 template<
typename T>
4608 function fn( c, f );
4618 template<
typename T>
4620 function fn( c, f );
4628 template<
typename T>
4630 function fn( c, f );
4640 template<
typename T>
4642 function fn( c, f );
4650 template<
typename T>
4652 function fn( c, f );
4662 template<
typename T>
4664 function fn( c, f );
4672 template<
typename T>
4674 function fn( c, f );
4684 template<
typename T>
4686 function fn( c, f );
4694 template<
typename T>
4696 function fn( c, f );
4706 template<
typename T>
4708 function fn( c, f );
4716 template<
typename T>
4718 function fn( c, f );
4728 template<
typename T>
4730 function fn( c, f );
4738 template<
typename T>
4740 function fn( c, f );
4750 template<
typename T>
4752 function fn( c, f );
4760 template<
typename T>
4762 function fn( c, f );
4772 template<
typename T>
4774 function fn( c, f );
4782 template<
typename T>
4784 function fn( c, f );
Class that extends gsl_movstat_function so that it can be constructed from arbitrary function objects...
function(function &&v)
Move constructor.
size_t * count
The shared reference count.
~function()
The destructor unshares any shared resource.
function()
The default constructor is only really useful for assigning to.
function & operator=(function &&v)
Move operator.
function(double(*const f)(gsl::vector const &))
Construct from a function.
function & operator=(function const &v)
The assignment operator.
function(T &c, double(T::*f)(gsl::vector const &))
Construct from a function object and a suitable member function.
static double fn(size_t n, double *x, void *params)
This is the function that gsl_movstat_function points to if function is constructed from a function o...
function(function const &v)
The copy constructor.
This class handles vector objects as shared handles.
function make_function(T &c, double(T::*f)(gsl::vector const &))
Make a gsl::movstat::function from a function object and a suitable member function.
size_t n(workspace const &w)
C++ version of gsl_rstat_n().
double b(int order, double qq)
C++ version of gsl_sf_mathieu_b().
gsl_sf_result result
Typedef for gsl_sf_result.
The gsl package creates an interface to the GNU Scientific Library for C++.